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/v1"
16//   ...
17//   ctx := context.Background()
18//   computeService, err := compute.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package compute // import "google.golang.org/api/compute/v1"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "compute:v1"
79const apiName = "compute"
80const apiVersion = "v1"
81const basePath = "https://compute.googleapis.com/compute/v1/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.HealthChecks = NewHealthChecksService(s)
156	s.HttpHealthChecks = NewHttpHealthChecksService(s)
157	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
158	s.Images = NewImagesService(s)
159	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
160	s.InstanceGroups = NewInstanceGroupsService(s)
161	s.InstanceTemplates = NewInstanceTemplatesService(s)
162	s.Instances = NewInstancesService(s)
163	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
164	s.InterconnectLocations = NewInterconnectLocationsService(s)
165	s.Interconnects = NewInterconnectsService(s)
166	s.LicenseCodes = NewLicenseCodesService(s)
167	s.Licenses = NewLicensesService(s)
168	s.MachineTypes = NewMachineTypesService(s)
169	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
170	s.Networks = NewNetworksService(s)
171	s.NodeGroups = NewNodeGroupsService(s)
172	s.NodeTemplates = NewNodeTemplatesService(s)
173	s.NodeTypes = NewNodeTypesService(s)
174	s.PacketMirrorings = NewPacketMirroringsService(s)
175	s.Projects = NewProjectsService(s)
176	s.RegionAutoscalers = NewRegionAutoscalersService(s)
177	s.RegionBackendServices = NewRegionBackendServicesService(s)
178	s.RegionCommitments = NewRegionCommitmentsService(s)
179	s.RegionDiskTypes = NewRegionDiskTypesService(s)
180	s.RegionDisks = NewRegionDisksService(s)
181	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
182	s.RegionHealthChecks = NewRegionHealthChecksService(s)
183	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
184	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
185	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
186	s.RegionOperations = NewRegionOperationsService(s)
187	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
188	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
189	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
190	s.RegionUrlMaps = NewRegionUrlMapsService(s)
191	s.Regions = NewRegionsService(s)
192	s.Reservations = NewReservationsService(s)
193	s.ResourcePolicies = NewResourcePoliciesService(s)
194	s.Routers = NewRoutersService(s)
195	s.Routes = NewRoutesService(s)
196	s.SecurityPolicies = NewSecurityPoliciesService(s)
197	s.Snapshots = NewSnapshotsService(s)
198	s.SslCertificates = NewSslCertificatesService(s)
199	s.SslPolicies = NewSslPoliciesService(s)
200	s.Subnetworks = NewSubnetworksService(s)
201	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
202	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
203	s.TargetInstances = NewTargetInstancesService(s)
204	s.TargetPools = NewTargetPoolsService(s)
205	s.TargetSslProxies = NewTargetSslProxiesService(s)
206	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
207	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
208	s.UrlMaps = NewUrlMapsService(s)
209	s.VpnGateways = NewVpnGatewaysService(s)
210	s.VpnTunnels = NewVpnTunnelsService(s)
211	s.ZoneOperations = NewZoneOperationsService(s)
212	s.Zones = NewZonesService(s)
213	return s, nil
214}
215
216type Service struct {
217	client    *http.Client
218	BasePath  string // API endpoint base URL
219	UserAgent string // optional additional User-Agent fragment
220
221	AcceleratorTypes *AcceleratorTypesService
222
223	Addresses *AddressesService
224
225	Autoscalers *AutoscalersService
226
227	BackendBuckets *BackendBucketsService
228
229	BackendServices *BackendServicesService
230
231	DiskTypes *DiskTypesService
232
233	Disks *DisksService
234
235	ExternalVpnGateways *ExternalVpnGatewaysService
236
237	Firewalls *FirewallsService
238
239	ForwardingRules *ForwardingRulesService
240
241	GlobalAddresses *GlobalAddressesService
242
243	GlobalForwardingRules *GlobalForwardingRulesService
244
245	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
246
247	GlobalOperations *GlobalOperationsService
248
249	HealthChecks *HealthChecksService
250
251	HttpHealthChecks *HttpHealthChecksService
252
253	HttpsHealthChecks *HttpsHealthChecksService
254
255	Images *ImagesService
256
257	InstanceGroupManagers *InstanceGroupManagersService
258
259	InstanceGroups *InstanceGroupsService
260
261	InstanceTemplates *InstanceTemplatesService
262
263	Instances *InstancesService
264
265	InterconnectAttachments *InterconnectAttachmentsService
266
267	InterconnectLocations *InterconnectLocationsService
268
269	Interconnects *InterconnectsService
270
271	LicenseCodes *LicenseCodesService
272
273	Licenses *LicensesService
274
275	MachineTypes *MachineTypesService
276
277	NetworkEndpointGroups *NetworkEndpointGroupsService
278
279	Networks *NetworksService
280
281	NodeGroups *NodeGroupsService
282
283	NodeTemplates *NodeTemplatesService
284
285	NodeTypes *NodeTypesService
286
287	PacketMirrorings *PacketMirroringsService
288
289	Projects *ProjectsService
290
291	RegionAutoscalers *RegionAutoscalersService
292
293	RegionBackendServices *RegionBackendServicesService
294
295	RegionCommitments *RegionCommitmentsService
296
297	RegionDiskTypes *RegionDiskTypesService
298
299	RegionDisks *RegionDisksService
300
301	RegionHealthCheckServices *RegionHealthCheckServicesService
302
303	RegionHealthChecks *RegionHealthChecksService
304
305	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
306
307	RegionInstanceGroups *RegionInstanceGroupsService
308
309	RegionNotificationEndpoints *RegionNotificationEndpointsService
310
311	RegionOperations *RegionOperationsService
312
313	RegionSslCertificates *RegionSslCertificatesService
314
315	RegionTargetHttpProxies *RegionTargetHttpProxiesService
316
317	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
318
319	RegionUrlMaps *RegionUrlMapsService
320
321	Regions *RegionsService
322
323	Reservations *ReservationsService
324
325	ResourcePolicies *ResourcePoliciesService
326
327	Routers *RoutersService
328
329	Routes *RoutesService
330
331	SecurityPolicies *SecurityPoliciesService
332
333	Snapshots *SnapshotsService
334
335	SslCertificates *SslCertificatesService
336
337	SslPolicies *SslPoliciesService
338
339	Subnetworks *SubnetworksService
340
341	TargetHttpProxies *TargetHttpProxiesService
342
343	TargetHttpsProxies *TargetHttpsProxiesService
344
345	TargetInstances *TargetInstancesService
346
347	TargetPools *TargetPoolsService
348
349	TargetSslProxies *TargetSslProxiesService
350
351	TargetTcpProxies *TargetTcpProxiesService
352
353	TargetVpnGateways *TargetVpnGatewaysService
354
355	UrlMaps *UrlMapsService
356
357	VpnGateways *VpnGatewaysService
358
359	VpnTunnels *VpnTunnelsService
360
361	ZoneOperations *ZoneOperationsService
362
363	Zones *ZonesService
364}
365
366func (s *Service) userAgent() string {
367	if s.UserAgent == "" {
368		return googleapi.UserAgent
369	}
370	return googleapi.UserAgent + " " + s.UserAgent
371}
372
373func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
374	rs := &AcceleratorTypesService{s: s}
375	return rs
376}
377
378type AcceleratorTypesService struct {
379	s *Service
380}
381
382func NewAddressesService(s *Service) *AddressesService {
383	rs := &AddressesService{s: s}
384	return rs
385}
386
387type AddressesService struct {
388	s *Service
389}
390
391func NewAutoscalersService(s *Service) *AutoscalersService {
392	rs := &AutoscalersService{s: s}
393	return rs
394}
395
396type AutoscalersService struct {
397	s *Service
398}
399
400func NewBackendBucketsService(s *Service) *BackendBucketsService {
401	rs := &BackendBucketsService{s: s}
402	return rs
403}
404
405type BackendBucketsService struct {
406	s *Service
407}
408
409func NewBackendServicesService(s *Service) *BackendServicesService {
410	rs := &BackendServicesService{s: s}
411	return rs
412}
413
414type BackendServicesService struct {
415	s *Service
416}
417
418func NewDiskTypesService(s *Service) *DiskTypesService {
419	rs := &DiskTypesService{s: s}
420	return rs
421}
422
423type DiskTypesService struct {
424	s *Service
425}
426
427func NewDisksService(s *Service) *DisksService {
428	rs := &DisksService{s: s}
429	return rs
430}
431
432type DisksService struct {
433	s *Service
434}
435
436func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
437	rs := &ExternalVpnGatewaysService{s: s}
438	return rs
439}
440
441type ExternalVpnGatewaysService struct {
442	s *Service
443}
444
445func NewFirewallsService(s *Service) *FirewallsService {
446	rs := &FirewallsService{s: s}
447	return rs
448}
449
450type FirewallsService struct {
451	s *Service
452}
453
454func NewForwardingRulesService(s *Service) *ForwardingRulesService {
455	rs := &ForwardingRulesService{s: s}
456	return rs
457}
458
459type ForwardingRulesService struct {
460	s *Service
461}
462
463func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
464	rs := &GlobalAddressesService{s: s}
465	return rs
466}
467
468type GlobalAddressesService struct {
469	s *Service
470}
471
472func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
473	rs := &GlobalForwardingRulesService{s: s}
474	return rs
475}
476
477type GlobalForwardingRulesService struct {
478	s *Service
479}
480
481func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
482	rs := &GlobalNetworkEndpointGroupsService{s: s}
483	return rs
484}
485
486type GlobalNetworkEndpointGroupsService struct {
487	s *Service
488}
489
490func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
491	rs := &GlobalOperationsService{s: s}
492	return rs
493}
494
495type GlobalOperationsService struct {
496	s *Service
497}
498
499func NewHealthChecksService(s *Service) *HealthChecksService {
500	rs := &HealthChecksService{s: s}
501	return rs
502}
503
504type HealthChecksService struct {
505	s *Service
506}
507
508func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
509	rs := &HttpHealthChecksService{s: s}
510	return rs
511}
512
513type HttpHealthChecksService struct {
514	s *Service
515}
516
517func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
518	rs := &HttpsHealthChecksService{s: s}
519	return rs
520}
521
522type HttpsHealthChecksService struct {
523	s *Service
524}
525
526func NewImagesService(s *Service) *ImagesService {
527	rs := &ImagesService{s: s}
528	return rs
529}
530
531type ImagesService struct {
532	s *Service
533}
534
535func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
536	rs := &InstanceGroupManagersService{s: s}
537	return rs
538}
539
540type InstanceGroupManagersService struct {
541	s *Service
542}
543
544func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
545	rs := &InstanceGroupsService{s: s}
546	return rs
547}
548
549type InstanceGroupsService struct {
550	s *Service
551}
552
553func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
554	rs := &InstanceTemplatesService{s: s}
555	return rs
556}
557
558type InstanceTemplatesService struct {
559	s *Service
560}
561
562func NewInstancesService(s *Service) *InstancesService {
563	rs := &InstancesService{s: s}
564	return rs
565}
566
567type InstancesService struct {
568	s *Service
569}
570
571func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
572	rs := &InterconnectAttachmentsService{s: s}
573	return rs
574}
575
576type InterconnectAttachmentsService struct {
577	s *Service
578}
579
580func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
581	rs := &InterconnectLocationsService{s: s}
582	return rs
583}
584
585type InterconnectLocationsService struct {
586	s *Service
587}
588
589func NewInterconnectsService(s *Service) *InterconnectsService {
590	rs := &InterconnectsService{s: s}
591	return rs
592}
593
594type InterconnectsService struct {
595	s *Service
596}
597
598func NewLicenseCodesService(s *Service) *LicenseCodesService {
599	rs := &LicenseCodesService{s: s}
600	return rs
601}
602
603type LicenseCodesService struct {
604	s *Service
605}
606
607func NewLicensesService(s *Service) *LicensesService {
608	rs := &LicensesService{s: s}
609	return rs
610}
611
612type LicensesService struct {
613	s *Service
614}
615
616func NewMachineTypesService(s *Service) *MachineTypesService {
617	rs := &MachineTypesService{s: s}
618	return rs
619}
620
621type MachineTypesService struct {
622	s *Service
623}
624
625func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
626	rs := &NetworkEndpointGroupsService{s: s}
627	return rs
628}
629
630type NetworkEndpointGroupsService struct {
631	s *Service
632}
633
634func NewNetworksService(s *Service) *NetworksService {
635	rs := &NetworksService{s: s}
636	return rs
637}
638
639type NetworksService struct {
640	s *Service
641}
642
643func NewNodeGroupsService(s *Service) *NodeGroupsService {
644	rs := &NodeGroupsService{s: s}
645	return rs
646}
647
648type NodeGroupsService struct {
649	s *Service
650}
651
652func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
653	rs := &NodeTemplatesService{s: s}
654	return rs
655}
656
657type NodeTemplatesService struct {
658	s *Service
659}
660
661func NewNodeTypesService(s *Service) *NodeTypesService {
662	rs := &NodeTypesService{s: s}
663	return rs
664}
665
666type NodeTypesService struct {
667	s *Service
668}
669
670func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
671	rs := &PacketMirroringsService{s: s}
672	return rs
673}
674
675type PacketMirroringsService struct {
676	s *Service
677}
678
679func NewProjectsService(s *Service) *ProjectsService {
680	rs := &ProjectsService{s: s}
681	return rs
682}
683
684type ProjectsService struct {
685	s *Service
686}
687
688func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
689	rs := &RegionAutoscalersService{s: s}
690	return rs
691}
692
693type RegionAutoscalersService struct {
694	s *Service
695}
696
697func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
698	rs := &RegionBackendServicesService{s: s}
699	return rs
700}
701
702type RegionBackendServicesService struct {
703	s *Service
704}
705
706func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
707	rs := &RegionCommitmentsService{s: s}
708	return rs
709}
710
711type RegionCommitmentsService struct {
712	s *Service
713}
714
715func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
716	rs := &RegionDiskTypesService{s: s}
717	return rs
718}
719
720type RegionDiskTypesService struct {
721	s *Service
722}
723
724func NewRegionDisksService(s *Service) *RegionDisksService {
725	rs := &RegionDisksService{s: s}
726	return rs
727}
728
729type RegionDisksService struct {
730	s *Service
731}
732
733func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
734	rs := &RegionHealthCheckServicesService{s: s}
735	return rs
736}
737
738type RegionHealthCheckServicesService struct {
739	s *Service
740}
741
742func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
743	rs := &RegionHealthChecksService{s: s}
744	return rs
745}
746
747type RegionHealthChecksService struct {
748	s *Service
749}
750
751func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
752	rs := &RegionInstanceGroupManagersService{s: s}
753	return rs
754}
755
756type RegionInstanceGroupManagersService struct {
757	s *Service
758}
759
760func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
761	rs := &RegionInstanceGroupsService{s: s}
762	return rs
763}
764
765type RegionInstanceGroupsService struct {
766	s *Service
767}
768
769func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
770	rs := &RegionNotificationEndpointsService{s: s}
771	return rs
772}
773
774type RegionNotificationEndpointsService struct {
775	s *Service
776}
777
778func NewRegionOperationsService(s *Service) *RegionOperationsService {
779	rs := &RegionOperationsService{s: s}
780	return rs
781}
782
783type RegionOperationsService struct {
784	s *Service
785}
786
787func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
788	rs := &RegionSslCertificatesService{s: s}
789	return rs
790}
791
792type RegionSslCertificatesService struct {
793	s *Service
794}
795
796func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
797	rs := &RegionTargetHttpProxiesService{s: s}
798	return rs
799}
800
801type RegionTargetHttpProxiesService struct {
802	s *Service
803}
804
805func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
806	rs := &RegionTargetHttpsProxiesService{s: s}
807	return rs
808}
809
810type RegionTargetHttpsProxiesService struct {
811	s *Service
812}
813
814func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
815	rs := &RegionUrlMapsService{s: s}
816	return rs
817}
818
819type RegionUrlMapsService struct {
820	s *Service
821}
822
823func NewRegionsService(s *Service) *RegionsService {
824	rs := &RegionsService{s: s}
825	return rs
826}
827
828type RegionsService struct {
829	s *Service
830}
831
832func NewReservationsService(s *Service) *ReservationsService {
833	rs := &ReservationsService{s: s}
834	return rs
835}
836
837type ReservationsService struct {
838	s *Service
839}
840
841func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
842	rs := &ResourcePoliciesService{s: s}
843	return rs
844}
845
846type ResourcePoliciesService struct {
847	s *Service
848}
849
850func NewRoutersService(s *Service) *RoutersService {
851	rs := &RoutersService{s: s}
852	return rs
853}
854
855type RoutersService struct {
856	s *Service
857}
858
859func NewRoutesService(s *Service) *RoutesService {
860	rs := &RoutesService{s: s}
861	return rs
862}
863
864type RoutesService struct {
865	s *Service
866}
867
868func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
869	rs := &SecurityPoliciesService{s: s}
870	return rs
871}
872
873type SecurityPoliciesService struct {
874	s *Service
875}
876
877func NewSnapshotsService(s *Service) *SnapshotsService {
878	rs := &SnapshotsService{s: s}
879	return rs
880}
881
882type SnapshotsService struct {
883	s *Service
884}
885
886func NewSslCertificatesService(s *Service) *SslCertificatesService {
887	rs := &SslCertificatesService{s: s}
888	return rs
889}
890
891type SslCertificatesService struct {
892	s *Service
893}
894
895func NewSslPoliciesService(s *Service) *SslPoliciesService {
896	rs := &SslPoliciesService{s: s}
897	return rs
898}
899
900type SslPoliciesService struct {
901	s *Service
902}
903
904func NewSubnetworksService(s *Service) *SubnetworksService {
905	rs := &SubnetworksService{s: s}
906	return rs
907}
908
909type SubnetworksService struct {
910	s *Service
911}
912
913func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
914	rs := &TargetHttpProxiesService{s: s}
915	return rs
916}
917
918type TargetHttpProxiesService struct {
919	s *Service
920}
921
922func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
923	rs := &TargetHttpsProxiesService{s: s}
924	return rs
925}
926
927type TargetHttpsProxiesService struct {
928	s *Service
929}
930
931func NewTargetInstancesService(s *Service) *TargetInstancesService {
932	rs := &TargetInstancesService{s: s}
933	return rs
934}
935
936type TargetInstancesService struct {
937	s *Service
938}
939
940func NewTargetPoolsService(s *Service) *TargetPoolsService {
941	rs := &TargetPoolsService{s: s}
942	return rs
943}
944
945type TargetPoolsService struct {
946	s *Service
947}
948
949func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
950	rs := &TargetSslProxiesService{s: s}
951	return rs
952}
953
954type TargetSslProxiesService struct {
955	s *Service
956}
957
958func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
959	rs := &TargetTcpProxiesService{s: s}
960	return rs
961}
962
963type TargetTcpProxiesService struct {
964	s *Service
965}
966
967func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
968	rs := &TargetVpnGatewaysService{s: s}
969	return rs
970}
971
972type TargetVpnGatewaysService struct {
973	s *Service
974}
975
976func NewUrlMapsService(s *Service) *UrlMapsService {
977	rs := &UrlMapsService{s: s}
978	return rs
979}
980
981type UrlMapsService struct {
982	s *Service
983}
984
985func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
986	rs := &VpnGatewaysService{s: s}
987	return rs
988}
989
990type VpnGatewaysService struct {
991	s *Service
992}
993
994func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
995	rs := &VpnTunnelsService{s: s}
996	return rs
997}
998
999type VpnTunnelsService struct {
1000	s *Service
1001}
1002
1003func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1004	rs := &ZoneOperationsService{s: s}
1005	return rs
1006}
1007
1008type ZoneOperationsService struct {
1009	s *Service
1010}
1011
1012func NewZonesService(s *Service) *ZonesService {
1013	rs := &ZonesService{s: s}
1014	return rs
1015}
1016
1017type ZonesService struct {
1018	s *Service
1019}
1020
1021// AcceleratorConfig: A specification of the type and number of
1022// accelerator cards attached to the instance.
1023type AcceleratorConfig struct {
1024	// AcceleratorCount: The number of the guest accelerator cards exposed
1025	// to this instance.
1026	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1027
1028	// AcceleratorType: Full or partial URL of the accelerator type resource
1029	// to attach to this instance. For example:
1030	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1031	// p100 If you are creating an instance template, specify only the
1032	// accelerator name. See GPUs on Compute Engine for a full list of
1033	// accelerator types.
1034	AcceleratorType string `json:"acceleratorType,omitempty"`
1035
1036	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1037	// unconditionally include in API requests. By default, fields with
1038	// empty values are omitted from API requests. However, any non-pointer,
1039	// non-interface field appearing in ForceSendFields will be sent to the
1040	// server regardless of whether the field is empty or not. This may be
1041	// used to include empty fields in Patch requests.
1042	ForceSendFields []string `json:"-"`
1043
1044	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1045	// include in API requests with the JSON null value. By default, fields
1046	// with empty values are omitted from API requests. However, any field
1047	// with an empty value appearing in NullFields will be sent to the
1048	// server as null. It is an error if a field in this list has a
1049	// non-empty value. This may be used to include null fields in Patch
1050	// requests.
1051	NullFields []string `json:"-"`
1052}
1053
1054func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1055	type NoMethod AcceleratorConfig
1056	raw := NoMethod(*s)
1057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1058}
1059
1060// AcceleratorType: Represents an Accelerator Type resource.
1061//
1062// Google Cloud Platform provides graphics processing units
1063// (accelerators) that you can add to VM instances to improve or
1064// accelerate performance when working with intensive workloads. For
1065// more information, read GPUs on Compute Engine. (== resource_for
1066// {$api_version}.acceleratorTypes ==)
1067type AcceleratorType struct {
1068	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1069	// format.
1070	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1071
1072	// Deprecated: [Output Only] The deprecation status associated with this
1073	// accelerator type.
1074	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1075
1076	// Description: [Output Only] An optional textual description of the
1077	// resource.
1078	Description string `json:"description,omitempty"`
1079
1080	// Id: [Output Only] The unique identifier for the resource. This
1081	// identifier is defined by the server.
1082	Id uint64 `json:"id,omitempty,string"`
1083
1084	// Kind: [Output Only] The type of the resource. Always
1085	// compute#acceleratorType for accelerator types.
1086	Kind string `json:"kind,omitempty"`
1087
1088	// MaximumCardsPerInstance: [Output Only] Maximum number of accelerator
1089	// cards allowed per instance.
1090	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1091
1092	// Name: [Output Only] Name of the resource.
1093	Name string `json:"name,omitempty"`
1094
1095	// SelfLink: [Output Only] Server-defined, fully qualified URL for this
1096	// resource.
1097	SelfLink string `json:"selfLink,omitempty"`
1098
1099	// Zone: [Output Only] The name of the zone where the accelerator type
1100	// resides, such as us-central1-a. You must specify this field as part
1101	// of the HTTP request URL. It is not settable as a field in the request
1102	// body.
1103	Zone string `json:"zone,omitempty"`
1104
1105	// ServerResponse contains the HTTP response code and headers from the
1106	// server.
1107	googleapi.ServerResponse `json:"-"`
1108
1109	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1110	// to unconditionally include in API requests. By default, fields with
1111	// empty values are omitted from API requests. However, any non-pointer,
1112	// non-interface field appearing in ForceSendFields will be sent to the
1113	// server regardless of whether the field is empty or not. This may be
1114	// used to include empty fields in Patch requests.
1115	ForceSendFields []string `json:"-"`
1116
1117	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1118	// include in API requests with the JSON null value. By default, fields
1119	// with empty values are omitted from API requests. However, any field
1120	// with an empty value appearing in NullFields will be sent to the
1121	// server as null. It is an error if a field in this list has a
1122	// non-empty value. This may be used to include null fields in Patch
1123	// requests.
1124	NullFields []string `json:"-"`
1125}
1126
1127func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1128	type NoMethod AcceleratorType
1129	raw := NoMethod(*s)
1130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1131}
1132
1133type AcceleratorTypeAggregatedList struct {
1134	// Id: [Output Only] Unique identifier for the resource; defined by the
1135	// server.
1136	Id string `json:"id,omitempty"`
1137
1138	// Items: A list of AcceleratorTypesScopedList resources.
1139	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1140
1141	// Kind: [Output Only] Type of resource. Always
1142	// compute#acceleratorTypeAggregatedList for aggregated lists of
1143	// accelerator types.
1144	Kind string `json:"kind,omitempty"`
1145
1146	// NextPageToken: [Output Only] This token allows you to get the next
1147	// page of results for list requests. If the number of results is larger
1148	// than maxResults, use the nextPageToken as a value for the query
1149	// parameter pageToken in the next list request. Subsequent list
1150	// requests will have their own nextPageToken to continue paging through
1151	// the results.
1152	NextPageToken string `json:"nextPageToken,omitempty"`
1153
1154	// SelfLink: [Output Only] Server-defined URL for this resource.
1155	SelfLink string `json:"selfLink,omitempty"`
1156
1157	// Warning: [Output Only] Informational warning message.
1158	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1159
1160	// ServerResponse contains the HTTP response code and headers from the
1161	// server.
1162	googleapi.ServerResponse `json:"-"`
1163
1164	// ForceSendFields is a list of field names (e.g. "Id") to
1165	// unconditionally include in API requests. By default, fields with
1166	// empty values are omitted from API requests. However, any non-pointer,
1167	// non-interface field appearing in ForceSendFields will be sent to the
1168	// server regardless of whether the field is empty or not. This may be
1169	// used to include empty fields in Patch requests.
1170	ForceSendFields []string `json:"-"`
1171
1172	// NullFields is a list of field names (e.g. "Id") to include in API
1173	// requests with the JSON null value. By default, fields with empty
1174	// values are omitted from API requests. However, any field with an
1175	// empty value appearing in NullFields will be sent to the server as
1176	// null. It is an error if a field in this list has a non-empty value.
1177	// This may be used to include null fields in Patch requests.
1178	NullFields []string `json:"-"`
1179}
1180
1181func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1182	type NoMethod AcceleratorTypeAggregatedList
1183	raw := NoMethod(*s)
1184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1185}
1186
1187// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1188// warning message.
1189type AcceleratorTypeAggregatedListWarning struct {
1190	// Code: [Output Only] A warning code, if applicable. For example,
1191	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1192	// the response.
1193	//
1194	// Possible values:
1195	//   "CLEANUP_FAILED"
1196	//   "DEPRECATED_RESOURCE_USED"
1197	//   "DEPRECATED_TYPE_USED"
1198	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1199	//   "EXPERIMENTAL_TYPE_USED"
1200	//   "EXTERNAL_API_WARNING"
1201	//   "FIELD_VALUE_OVERRIDEN"
1202	//   "INJECTED_KERNELS_DEPRECATED"
1203	//   "MISSING_TYPE_DEPENDENCY"
1204	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1205	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1206	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1207	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1208	//   "NEXT_HOP_NOT_RUNNING"
1209	//   "NOT_CRITICAL_ERROR"
1210	//   "NO_RESULTS_ON_PAGE"
1211	//   "REQUIRED_TOS_AGREEMENT"
1212	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1213	//   "RESOURCE_NOT_DELETED"
1214	//   "SCHEMA_VALIDATION_IGNORED"
1215	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1216	//   "UNDECLARED_PROPERTIES"
1217	//   "UNREACHABLE"
1218	Code string `json:"code,omitempty"`
1219
1220	// Data: [Output Only] Metadata about this warning in key: value format.
1221	// For example:
1222	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1223	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1224
1225	// Message: [Output Only] A human-readable description of the warning
1226	// code.
1227	Message string `json:"message,omitempty"`
1228
1229	// ForceSendFields is a list of field names (e.g. "Code") to
1230	// unconditionally include in API requests. By default, fields with
1231	// empty values are omitted from API requests. However, any non-pointer,
1232	// non-interface field appearing in ForceSendFields will be sent to the
1233	// server regardless of whether the field is empty or not. This may be
1234	// used to include empty fields in Patch requests.
1235	ForceSendFields []string `json:"-"`
1236
1237	// NullFields is a list of field names (e.g. "Code") to include in API
1238	// requests with the JSON null value. By default, fields with empty
1239	// values are omitted from API requests. However, any field with an
1240	// empty value appearing in NullFields will be sent to the server as
1241	// null. It is an error if a field in this list has a non-empty value.
1242	// This may be used to include null fields in Patch requests.
1243	NullFields []string `json:"-"`
1244}
1245
1246func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1247	type NoMethod AcceleratorTypeAggregatedListWarning
1248	raw := NoMethod(*s)
1249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1250}
1251
1252type AcceleratorTypeAggregatedListWarningData struct {
1253	// Key: [Output Only] A key that provides more detail on the warning
1254	// being returned. For example, for warnings where there are no results
1255	// in a list request for a particular zone, this key might be scope and
1256	// the key value might be the zone name. Other examples might be a key
1257	// indicating a deprecated resource and a suggested replacement, or a
1258	// warning about invalid network settings (for example, if an instance
1259	// attempts to perform IP forwarding but is not enabled for IP
1260	// forwarding).
1261	Key string `json:"key,omitempty"`
1262
1263	// Value: [Output Only] A warning data value corresponding to the key.
1264	Value string `json:"value,omitempty"`
1265
1266	// ForceSendFields is a list of field names (e.g. "Key") to
1267	// unconditionally include in API requests. By default, fields with
1268	// empty values are omitted from API requests. However, any non-pointer,
1269	// non-interface field appearing in ForceSendFields will be sent to the
1270	// server regardless of whether the field is empty or not. This may be
1271	// used to include empty fields in Patch requests.
1272	ForceSendFields []string `json:"-"`
1273
1274	// NullFields is a list of field names (e.g. "Key") to include in API
1275	// requests with the JSON null value. By default, fields with empty
1276	// values are omitted from API requests. However, any field with an
1277	// empty value appearing in NullFields will be sent to the server as
1278	// null. It is an error if a field in this list has a non-empty value.
1279	// This may be used to include null fields in Patch requests.
1280	NullFields []string `json:"-"`
1281}
1282
1283func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1284	type NoMethod AcceleratorTypeAggregatedListWarningData
1285	raw := NoMethod(*s)
1286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1287}
1288
1289// AcceleratorTypeList: Contains a list of accelerator types.
1290type AcceleratorTypeList struct {
1291	// Id: [Output Only] Unique identifier for the resource; defined by the
1292	// server.
1293	Id string `json:"id,omitempty"`
1294
1295	// Items: A list of AcceleratorType resources.
1296	Items []*AcceleratorType `json:"items,omitempty"`
1297
1298	// Kind: [Output Only] Type of resource. Always
1299	// compute#acceleratorTypeList for lists of accelerator types.
1300	Kind string `json:"kind,omitempty"`
1301
1302	// NextPageToken: [Output Only] This token allows you to get the next
1303	// page of results for list requests. If the number of results is larger
1304	// than maxResults, use the nextPageToken as a value for the query
1305	// parameter pageToken in the next list request. Subsequent list
1306	// requests will have their own nextPageToken to continue paging through
1307	// the results.
1308	NextPageToken string `json:"nextPageToken,omitempty"`
1309
1310	// SelfLink: [Output Only] Server-defined URL for this resource.
1311	SelfLink string `json:"selfLink,omitempty"`
1312
1313	// Warning: [Output Only] Informational warning message.
1314	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1315
1316	// ServerResponse contains the HTTP response code and headers from the
1317	// server.
1318	googleapi.ServerResponse `json:"-"`
1319
1320	// ForceSendFields is a list of field names (e.g. "Id") to
1321	// unconditionally include in API requests. By default, fields with
1322	// empty values are omitted from API requests. However, any non-pointer,
1323	// non-interface field appearing in ForceSendFields will be sent to the
1324	// server regardless of whether the field is empty or not. This may be
1325	// used to include empty fields in Patch requests.
1326	ForceSendFields []string `json:"-"`
1327
1328	// NullFields is a list of field names (e.g. "Id") to include in API
1329	// requests with the JSON null value. By default, fields with empty
1330	// values are omitted from API requests. However, any field with an
1331	// empty value appearing in NullFields will be sent to the server as
1332	// null. It is an error if a field in this list has a non-empty value.
1333	// This may be used to include null fields in Patch requests.
1334	NullFields []string `json:"-"`
1335}
1336
1337func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1338	type NoMethod AcceleratorTypeList
1339	raw := NoMethod(*s)
1340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1341}
1342
1343// AcceleratorTypeListWarning: [Output Only] Informational warning
1344// message.
1345type AcceleratorTypeListWarning struct {
1346	// Code: [Output Only] A warning code, if applicable. For example,
1347	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1348	// the response.
1349	//
1350	// Possible values:
1351	//   "CLEANUP_FAILED"
1352	//   "DEPRECATED_RESOURCE_USED"
1353	//   "DEPRECATED_TYPE_USED"
1354	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1355	//   "EXPERIMENTAL_TYPE_USED"
1356	//   "EXTERNAL_API_WARNING"
1357	//   "FIELD_VALUE_OVERRIDEN"
1358	//   "INJECTED_KERNELS_DEPRECATED"
1359	//   "MISSING_TYPE_DEPENDENCY"
1360	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1361	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1362	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1363	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1364	//   "NEXT_HOP_NOT_RUNNING"
1365	//   "NOT_CRITICAL_ERROR"
1366	//   "NO_RESULTS_ON_PAGE"
1367	//   "REQUIRED_TOS_AGREEMENT"
1368	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1369	//   "RESOURCE_NOT_DELETED"
1370	//   "SCHEMA_VALIDATION_IGNORED"
1371	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1372	//   "UNDECLARED_PROPERTIES"
1373	//   "UNREACHABLE"
1374	Code string `json:"code,omitempty"`
1375
1376	// Data: [Output Only] Metadata about this warning in key: value format.
1377	// For example:
1378	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1379	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1380
1381	// Message: [Output Only] A human-readable description of the warning
1382	// code.
1383	Message string `json:"message,omitempty"`
1384
1385	// ForceSendFields is a list of field names (e.g. "Code") to
1386	// unconditionally include in API requests. By default, fields with
1387	// empty values are omitted from API requests. However, any non-pointer,
1388	// non-interface field appearing in ForceSendFields will be sent to the
1389	// server regardless of whether the field is empty or not. This may be
1390	// used to include empty fields in Patch requests.
1391	ForceSendFields []string `json:"-"`
1392
1393	// NullFields is a list of field names (e.g. "Code") to include in API
1394	// requests with the JSON null value. By default, fields with empty
1395	// values are omitted from API requests. However, any field with an
1396	// empty value appearing in NullFields will be sent to the server as
1397	// null. It is an error if a field in this list has a non-empty value.
1398	// This may be used to include null fields in Patch requests.
1399	NullFields []string `json:"-"`
1400}
1401
1402func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1403	type NoMethod AcceleratorTypeListWarning
1404	raw := NoMethod(*s)
1405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1406}
1407
1408type AcceleratorTypeListWarningData struct {
1409	// Key: [Output Only] A key that provides more detail on the warning
1410	// being returned. For example, for warnings where there are no results
1411	// in a list request for a particular zone, this key might be scope and
1412	// the key value might be the zone name. Other examples might be a key
1413	// indicating a deprecated resource and a suggested replacement, or a
1414	// warning about invalid network settings (for example, if an instance
1415	// attempts to perform IP forwarding but is not enabled for IP
1416	// forwarding).
1417	Key string `json:"key,omitempty"`
1418
1419	// Value: [Output Only] A warning data value corresponding to the key.
1420	Value string `json:"value,omitempty"`
1421
1422	// ForceSendFields is a list of field names (e.g. "Key") to
1423	// unconditionally include in API requests. By default, fields with
1424	// empty values are omitted from API requests. However, any non-pointer,
1425	// non-interface field appearing in ForceSendFields will be sent to the
1426	// server regardless of whether the field is empty or not. This may be
1427	// used to include empty fields in Patch requests.
1428	ForceSendFields []string `json:"-"`
1429
1430	// NullFields is a list of field names (e.g. "Key") to include in API
1431	// requests with the JSON null value. By default, fields with empty
1432	// values are omitted from API requests. However, any field with an
1433	// empty value appearing in NullFields will be sent to the server as
1434	// null. It is an error if a field in this list has a non-empty value.
1435	// This may be used to include null fields in Patch requests.
1436	NullFields []string `json:"-"`
1437}
1438
1439func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1440	type NoMethod AcceleratorTypeListWarningData
1441	raw := NoMethod(*s)
1442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1443}
1444
1445type AcceleratorTypesScopedList struct {
1446	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1447	// in this scope.
1448	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1449
1450	// Warning: [Output Only] An informational warning that appears when the
1451	// accelerator types list is empty.
1452	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1453
1454	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1455	// unconditionally include in API requests. By default, fields with
1456	// empty values are omitted from API requests. However, any non-pointer,
1457	// non-interface field appearing in ForceSendFields will be sent to the
1458	// server regardless of whether the field is empty or not. This may be
1459	// used to include empty fields in Patch requests.
1460	ForceSendFields []string `json:"-"`
1461
1462	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1463	// include in API requests with the JSON null value. By default, fields
1464	// with empty values are omitted from API requests. However, any field
1465	// with an empty value appearing in NullFields will be sent to the
1466	// server as null. It is an error if a field in this list has a
1467	// non-empty value. This may be used to include null fields in Patch
1468	// requests.
1469	NullFields []string `json:"-"`
1470}
1471
1472func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1473	type NoMethod AcceleratorTypesScopedList
1474	raw := NoMethod(*s)
1475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1476}
1477
1478// AcceleratorTypesScopedListWarning: [Output Only] An informational
1479// warning that appears when the accelerator types list is empty.
1480type AcceleratorTypesScopedListWarning struct {
1481	// Code: [Output Only] A warning code, if applicable. For example,
1482	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1483	// the response.
1484	//
1485	// Possible values:
1486	//   "CLEANUP_FAILED"
1487	//   "DEPRECATED_RESOURCE_USED"
1488	//   "DEPRECATED_TYPE_USED"
1489	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1490	//   "EXPERIMENTAL_TYPE_USED"
1491	//   "EXTERNAL_API_WARNING"
1492	//   "FIELD_VALUE_OVERRIDEN"
1493	//   "INJECTED_KERNELS_DEPRECATED"
1494	//   "MISSING_TYPE_DEPENDENCY"
1495	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1496	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1497	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1498	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1499	//   "NEXT_HOP_NOT_RUNNING"
1500	//   "NOT_CRITICAL_ERROR"
1501	//   "NO_RESULTS_ON_PAGE"
1502	//   "REQUIRED_TOS_AGREEMENT"
1503	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1504	//   "RESOURCE_NOT_DELETED"
1505	//   "SCHEMA_VALIDATION_IGNORED"
1506	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1507	//   "UNDECLARED_PROPERTIES"
1508	//   "UNREACHABLE"
1509	Code string `json:"code,omitempty"`
1510
1511	// Data: [Output Only] Metadata about this warning in key: value format.
1512	// For example:
1513	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1514	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1515
1516	// Message: [Output Only] A human-readable description of the warning
1517	// code.
1518	Message string `json:"message,omitempty"`
1519
1520	// ForceSendFields is a list of field names (e.g. "Code") to
1521	// unconditionally include in API requests. By default, fields with
1522	// empty values are omitted from API requests. However, any non-pointer,
1523	// non-interface field appearing in ForceSendFields will be sent to the
1524	// server regardless of whether the field is empty or not. This may be
1525	// used to include empty fields in Patch requests.
1526	ForceSendFields []string `json:"-"`
1527
1528	// NullFields is a list of field names (e.g. "Code") to include in API
1529	// requests with the JSON null value. By default, fields with empty
1530	// values are omitted from API requests. However, any field with an
1531	// empty value appearing in NullFields will be sent to the server as
1532	// null. It is an error if a field in this list has a non-empty value.
1533	// This may be used to include null fields in Patch requests.
1534	NullFields []string `json:"-"`
1535}
1536
1537func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1538	type NoMethod AcceleratorTypesScopedListWarning
1539	raw := NoMethod(*s)
1540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1541}
1542
1543type AcceleratorTypesScopedListWarningData struct {
1544	// Key: [Output Only] A key that provides more detail on the warning
1545	// being returned. For example, for warnings where there are no results
1546	// in a list request for a particular zone, this key might be scope and
1547	// the key value might be the zone name. Other examples might be a key
1548	// indicating a deprecated resource and a suggested replacement, or a
1549	// warning about invalid network settings (for example, if an instance
1550	// attempts to perform IP forwarding but is not enabled for IP
1551	// forwarding).
1552	Key string `json:"key,omitempty"`
1553
1554	// Value: [Output Only] A warning data value corresponding to the key.
1555	Value string `json:"value,omitempty"`
1556
1557	// ForceSendFields is a list of field names (e.g. "Key") to
1558	// unconditionally include in API requests. By default, fields with
1559	// empty values are omitted from API requests. However, any non-pointer,
1560	// non-interface field appearing in ForceSendFields will be sent to the
1561	// server regardless of whether the field is empty or not. This may be
1562	// used to include empty fields in Patch requests.
1563	ForceSendFields []string `json:"-"`
1564
1565	// NullFields is a list of field names (e.g. "Key") to include in API
1566	// requests with the JSON null value. By default, fields with empty
1567	// values are omitted from API requests. However, any field with an
1568	// empty value appearing in NullFields will be sent to the server as
1569	// null. It is an error if a field in this list has a non-empty value.
1570	// This may be used to include null fields in Patch requests.
1571	NullFields []string `json:"-"`
1572}
1573
1574func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1575	type NoMethod AcceleratorTypesScopedListWarningData
1576	raw := NoMethod(*s)
1577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1578}
1579
1580// AccessConfig: An access configuration attached to an instance's
1581// network interface. Only one access config per instance is supported.
1582type AccessConfig struct {
1583	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1584	// for access configs.
1585	Kind string `json:"kind,omitempty"`
1586
1587	// Name: The name of this access configuration. The default and
1588	// recommended name is External NAT, but you can use any arbitrary
1589	// string, such as My external IP or Network Access.
1590	Name string `json:"name,omitempty"`
1591
1592	// NatIP: An external IP address associated with this instance. Specify
1593	// an unused static external IP address available to the project or
1594	// leave this field undefined to use an IP from a shared ephemeral IP
1595	// address pool. If you specify a static external IP address, it must
1596	// live in the same region as the zone of the instance.
1597	NatIP string `json:"natIP,omitempty"`
1598
1599	// NetworkTier: This signifies the networking tier used for configuring
1600	// this access configuration and can only take the following values:
1601	// PREMIUM, STANDARD.
1602	//
1603	// If an AccessConfig is specified without a valid external IP address,
1604	// an ephemeral IP will be created with this networkTier.
1605	//
1606	// If an AccessConfig with a valid external IP address is specified, it
1607	// must match that of the networkTier associated with the Address
1608	// resource owning that IP.
1609	//
1610	// Possible values:
1611	//   "PREMIUM"
1612	//   "STANDARD"
1613	NetworkTier string `json:"networkTier,omitempty"`
1614
1615	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1616	// You can set this field only if the `setPublicPtr` field is enabled.
1617	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1618
1619	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1620	// created to map the external IP address of the instance to a DNS
1621	// domain name.
1622	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1623
1624	// Type: The type of configuration. The default and only option is
1625	// ONE_TO_ONE_NAT.
1626	//
1627	// Possible values:
1628	//   "ONE_TO_ONE_NAT" (default)
1629	Type string `json:"type,omitempty"`
1630
1631	// ForceSendFields is a list of field names (e.g. "Kind") to
1632	// unconditionally include in API requests. By default, fields with
1633	// empty values are omitted from API requests. However, any non-pointer,
1634	// non-interface field appearing in ForceSendFields will be sent to the
1635	// server regardless of whether the field is empty or not. This may be
1636	// used to include empty fields in Patch requests.
1637	ForceSendFields []string `json:"-"`
1638
1639	// NullFields is a list of field names (e.g. "Kind") to include in API
1640	// requests with the JSON null value. By default, fields with empty
1641	// values are omitted from API requests. However, any field with an
1642	// empty value appearing in NullFields will be sent to the server as
1643	// null. It is an error if a field in this list has a non-empty value.
1644	// This may be used to include null fields in Patch requests.
1645	NullFields []string `json:"-"`
1646}
1647
1648func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1649	type NoMethod AccessConfig
1650	raw := NoMethod(*s)
1651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1652}
1653
1654// Address: Use global external addresses for GFE-based external HTTP(S)
1655// load balancers in Premium Tier.
1656//
1657// Use global internal addresses for reserved peering network
1658// range.
1659//
1660// Use regional external addresses for the following resources:
1661//
1662// - External IP addresses for VM instances - Regional external
1663// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1664// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1665// gateways (both Classic and HA)
1666//
1667// Use regional internal IP addresses for subnet IP ranges (primary and
1668// secondary). This includes:
1669//
1670// - Internal IP addresses for VM instances - Alias IP ranges of VM
1671// instances (/32 only) - Regional internal forwarding rules - Internal
1672// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1673// addresses - Cloud DNS inbound forwarding IP addresses
1674//
1675// For more information, read reserved IP address.
1676//
1677// (== resource_for {$api_version}.addresses ==) (== resource_for
1678// {$api_version}.globalAddresses ==)
1679type Address struct {
1680	// Address: The static IP address represented by this resource.
1681	Address string `json:"address,omitempty"`
1682
1683	// AddressType: The type of address to reserve, either INTERNAL or
1684	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1685	//
1686	// Possible values:
1687	//   "EXTERNAL"
1688	//   "INTERNAL"
1689	//   "UNSPECIFIED_TYPE"
1690	AddressType string `json:"addressType,omitempty"`
1691
1692	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1693	// format.
1694	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1695
1696	// Description: An optional description of this resource. Provide this
1697	// field when you create the resource.
1698	Description string `json:"description,omitempty"`
1699
1700	// Id: [Output Only] The unique identifier for the resource. This
1701	// identifier is defined by the server.
1702	Id uint64 `json:"id,omitempty,string"`
1703
1704	// IpVersion: The IP version that will be used by this address. Valid
1705	// options are IPV4 or IPV6. This can only be specified for a global
1706	// address.
1707	//
1708	// Possible values:
1709	//   "IPV4"
1710	//   "IPV6"
1711	//   "UNSPECIFIED_VERSION"
1712	IpVersion string `json:"ipVersion,omitempty"`
1713
1714	// Kind: [Output Only] Type of the resource. Always compute#address for
1715	// addresses.
1716	Kind string `json:"kind,omitempty"`
1717
1718	// Name: Name of the resource. Provided by the client when the resource
1719	// is created. The name must be 1-63 characters long, and comply with
1720	// RFC1035. Specifically, the name must be 1-63 characters long and
1721	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1722	// character must be a lowercase letter, and all following characters
1723	// (except for the last character) must be a dash, lowercase letter, or
1724	// digit. The last character must be a lowercase letter or digit.
1725	Name string `json:"name,omitempty"`
1726
1727	// Network: The URL of the network in which to reserve the address. This
1728	// field can only be used with INTERNAL type with the VPC_PEERING
1729	// purpose.
1730	Network string `json:"network,omitempty"`
1731
1732	// NetworkTier: This signifies the networking tier used for configuring
1733	// this address and can only take the following values: PREMIUM or
1734	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1735	// forwarding rules can be either Premium or Standard Tier. Standard
1736	// Tier addresses applied to regional forwarding rules can be used with
1737	// any external load balancer. Regional forwarding rules in Premium Tier
1738	// can only be used with a network load balancer.
1739	//
1740	// If this field is not specified, it is assumed to be PREMIUM.
1741	//
1742	// Possible values:
1743	//   "PREMIUM"
1744	//   "STANDARD"
1745	NetworkTier string `json:"networkTier,omitempty"`
1746
1747	// PrefixLength: The prefix length if the resource reprensents an IP
1748	// range.
1749	PrefixLength int64 `json:"prefixLength,omitempty"`
1750
1751	// Purpose: The purpose of this resource, which can be one of the
1752	// following values:
1753	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1754	// IP ranges, internal load balancers, and similar resources.
1755	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1756	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1757	// networks.
1758	// - `NAT_AUTO` for addresses that are external IP addresses
1759	// automatically reserved for Cloud NAT.
1760	//
1761	// Possible values:
1762	//   "DNS_RESOLVER"
1763	//   "GCE_ENDPOINT"
1764	//   "NAT_AUTO"
1765	//   "VPC_PEERING"
1766	Purpose string `json:"purpose,omitempty"`
1767
1768	// Region: [Output Only] The URL of the region where the regional
1769	// address resides. This field is not applicable to global addresses.
1770	// You must specify this field as part of the HTTP request URL.
1771	Region string `json:"region,omitempty"`
1772
1773	// SelfLink: [Output Only] Server-defined URL for the resource.
1774	SelfLink string `json:"selfLink,omitempty"`
1775
1776	// Status: [Output Only] The status of the address, which can be one of
1777	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1778	// currently in the process of being reserved. A RESERVED address is
1779	// currently reserved and available to use. An IN_USE address is
1780	// currently being used by another resource and is not available.
1781	//
1782	// Possible values:
1783	//   "IN_USE"
1784	//   "RESERVED"
1785	//   "RESERVING"
1786	Status string `json:"status,omitempty"`
1787
1788	// Subnetwork: The URL of the subnetwork in which to reserve the
1789	// address. If an IP address is specified, it must be within the
1790	// subnetwork's IP range. This field can only be used with INTERNAL type
1791	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1792	Subnetwork string `json:"subnetwork,omitempty"`
1793
1794	// Users: [Output Only] The URLs of the resources that are using this
1795	// address.
1796	Users []string `json:"users,omitempty"`
1797
1798	// ServerResponse contains the HTTP response code and headers from the
1799	// server.
1800	googleapi.ServerResponse `json:"-"`
1801
1802	// ForceSendFields is a list of field names (e.g. "Address") to
1803	// unconditionally include in API requests. By default, fields with
1804	// empty values are omitted from API requests. However, any non-pointer,
1805	// non-interface field appearing in ForceSendFields will be sent to the
1806	// server regardless of whether the field is empty or not. This may be
1807	// used to include empty fields in Patch requests.
1808	ForceSendFields []string `json:"-"`
1809
1810	// NullFields is a list of field names (e.g. "Address") to include in
1811	// API requests with the JSON null value. By default, fields with empty
1812	// values are omitted from API requests. However, any field with an
1813	// empty value appearing in NullFields will be sent to the server as
1814	// null. It is an error if a field in this list has a non-empty value.
1815	// This may be used to include null fields in Patch requests.
1816	NullFields []string `json:"-"`
1817}
1818
1819func (s *Address) MarshalJSON() ([]byte, error) {
1820	type NoMethod Address
1821	raw := NoMethod(*s)
1822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1823}
1824
1825type AddressAggregatedList struct {
1826	// Id: [Output Only] Unique identifier for the resource; defined by the
1827	// server.
1828	Id string `json:"id,omitempty"`
1829
1830	// Items: A list of AddressesScopedList resources.
1831	Items map[string]AddressesScopedList `json:"items,omitempty"`
1832
1833	// Kind: [Output Only] Type of resource. Always
1834	// compute#addressAggregatedList for aggregated lists of addresses.
1835	Kind string `json:"kind,omitempty"`
1836
1837	// NextPageToken: [Output Only] This token allows you to get the next
1838	// page of results for list requests. If the number of results is larger
1839	// than maxResults, use the nextPageToken as a value for the query
1840	// parameter pageToken in the next list request. Subsequent list
1841	// requests will have their own nextPageToken to continue paging through
1842	// the results.
1843	NextPageToken string `json:"nextPageToken,omitempty"`
1844
1845	// SelfLink: [Output Only] Server-defined URL for this resource.
1846	SelfLink string `json:"selfLink,omitempty"`
1847
1848	// Warning: [Output Only] Informational warning message.
1849	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1850
1851	// ServerResponse contains the HTTP response code and headers from the
1852	// server.
1853	googleapi.ServerResponse `json:"-"`
1854
1855	// ForceSendFields is a list of field names (e.g. "Id") to
1856	// unconditionally include in API requests. By default, fields with
1857	// empty values are omitted from API requests. However, any non-pointer,
1858	// non-interface field appearing in ForceSendFields will be sent to the
1859	// server regardless of whether the field is empty or not. This may be
1860	// used to include empty fields in Patch requests.
1861	ForceSendFields []string `json:"-"`
1862
1863	// NullFields is a list of field names (e.g. "Id") to include in API
1864	// requests with the JSON null value. By default, fields with empty
1865	// values are omitted from API requests. However, any field with an
1866	// empty value appearing in NullFields will be sent to the server as
1867	// null. It is an error if a field in this list has a non-empty value.
1868	// This may be used to include null fields in Patch requests.
1869	NullFields []string `json:"-"`
1870}
1871
1872func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1873	type NoMethod AddressAggregatedList
1874	raw := NoMethod(*s)
1875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1876}
1877
1878// AddressAggregatedListWarning: [Output Only] Informational warning
1879// message.
1880type AddressAggregatedListWarning struct {
1881	// Code: [Output Only] A warning code, if applicable. For example,
1882	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1883	// the response.
1884	//
1885	// Possible values:
1886	//   "CLEANUP_FAILED"
1887	//   "DEPRECATED_RESOURCE_USED"
1888	//   "DEPRECATED_TYPE_USED"
1889	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1890	//   "EXPERIMENTAL_TYPE_USED"
1891	//   "EXTERNAL_API_WARNING"
1892	//   "FIELD_VALUE_OVERRIDEN"
1893	//   "INJECTED_KERNELS_DEPRECATED"
1894	//   "MISSING_TYPE_DEPENDENCY"
1895	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1896	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1897	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1898	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1899	//   "NEXT_HOP_NOT_RUNNING"
1900	//   "NOT_CRITICAL_ERROR"
1901	//   "NO_RESULTS_ON_PAGE"
1902	//   "REQUIRED_TOS_AGREEMENT"
1903	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1904	//   "RESOURCE_NOT_DELETED"
1905	//   "SCHEMA_VALIDATION_IGNORED"
1906	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1907	//   "UNDECLARED_PROPERTIES"
1908	//   "UNREACHABLE"
1909	Code string `json:"code,omitempty"`
1910
1911	// Data: [Output Only] Metadata about this warning in key: value format.
1912	// For example:
1913	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1914	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
1915
1916	// Message: [Output Only] A human-readable description of the warning
1917	// code.
1918	Message string `json:"message,omitempty"`
1919
1920	// ForceSendFields is a list of field names (e.g. "Code") to
1921	// unconditionally include in API requests. By default, fields with
1922	// empty values are omitted from API requests. However, any non-pointer,
1923	// non-interface field appearing in ForceSendFields will be sent to the
1924	// server regardless of whether the field is empty or not. This may be
1925	// used to include empty fields in Patch requests.
1926	ForceSendFields []string `json:"-"`
1927
1928	// NullFields is a list of field names (e.g. "Code") to include in API
1929	// requests with the JSON null value. By default, fields with empty
1930	// values are omitted from API requests. However, any field with an
1931	// empty value appearing in NullFields will be sent to the server as
1932	// null. It is an error if a field in this list has a non-empty value.
1933	// This may be used to include null fields in Patch requests.
1934	NullFields []string `json:"-"`
1935}
1936
1937func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
1938	type NoMethod AddressAggregatedListWarning
1939	raw := NoMethod(*s)
1940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1941}
1942
1943type AddressAggregatedListWarningData struct {
1944	// Key: [Output Only] A key that provides more detail on the warning
1945	// being returned. For example, for warnings where there are no results
1946	// in a list request for a particular zone, this key might be scope and
1947	// the key value might be the zone name. Other examples might be a key
1948	// indicating a deprecated resource and a suggested replacement, or a
1949	// warning about invalid network settings (for example, if an instance
1950	// attempts to perform IP forwarding but is not enabled for IP
1951	// forwarding).
1952	Key string `json:"key,omitempty"`
1953
1954	// Value: [Output Only] A warning data value corresponding to the key.
1955	Value string `json:"value,omitempty"`
1956
1957	// ForceSendFields is a list of field names (e.g. "Key") to
1958	// unconditionally include in API requests. By default, fields with
1959	// empty values are omitted from API requests. However, any non-pointer,
1960	// non-interface field appearing in ForceSendFields will be sent to the
1961	// server regardless of whether the field is empty or not. This may be
1962	// used to include empty fields in Patch requests.
1963	ForceSendFields []string `json:"-"`
1964
1965	// NullFields is a list of field names (e.g. "Key") to include in API
1966	// requests with the JSON null value. By default, fields with empty
1967	// values are omitted from API requests. However, any field with an
1968	// empty value appearing in NullFields will be sent to the server as
1969	// null. It is an error if a field in this list has a non-empty value.
1970	// This may be used to include null fields in Patch requests.
1971	NullFields []string `json:"-"`
1972}
1973
1974func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1975	type NoMethod AddressAggregatedListWarningData
1976	raw := NoMethod(*s)
1977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1978}
1979
1980// AddressList: Contains a list of addresses.
1981type AddressList struct {
1982	// Id: [Output Only] Unique identifier for the resource; defined by the
1983	// server.
1984	Id string `json:"id,omitempty"`
1985
1986	// Items: A list of Address resources.
1987	Items []*Address `json:"items,omitempty"`
1988
1989	// Kind: [Output Only] Type of resource. Always compute#addressList for
1990	// lists of addresses.
1991	Kind string `json:"kind,omitempty"`
1992
1993	// NextPageToken: [Output Only] This token allows you to get the next
1994	// page of results for list requests. If the number of results is larger
1995	// than maxResults, use the nextPageToken as a value for the query
1996	// parameter pageToken in the next list request. Subsequent list
1997	// requests will have their own nextPageToken to continue paging through
1998	// the results.
1999	NextPageToken string `json:"nextPageToken,omitempty"`
2000
2001	// SelfLink: [Output Only] Server-defined URL for this resource.
2002	SelfLink string `json:"selfLink,omitempty"`
2003
2004	// Warning: [Output Only] Informational warning message.
2005	Warning *AddressListWarning `json:"warning,omitempty"`
2006
2007	// ServerResponse contains the HTTP response code and headers from the
2008	// server.
2009	googleapi.ServerResponse `json:"-"`
2010
2011	// ForceSendFields is a list of field names (e.g. "Id") to
2012	// unconditionally include in API requests. By default, fields with
2013	// empty values are omitted from API requests. However, any non-pointer,
2014	// non-interface field appearing in ForceSendFields will be sent to the
2015	// server regardless of whether the field is empty or not. This may be
2016	// used to include empty fields in Patch requests.
2017	ForceSendFields []string `json:"-"`
2018
2019	// NullFields is a list of field names (e.g. "Id") to include in API
2020	// requests with the JSON null value. By default, fields with empty
2021	// values are omitted from API requests. However, any field with an
2022	// empty value appearing in NullFields will be sent to the server as
2023	// null. It is an error if a field in this list has a non-empty value.
2024	// This may be used to include null fields in Patch requests.
2025	NullFields []string `json:"-"`
2026}
2027
2028func (s *AddressList) MarshalJSON() ([]byte, error) {
2029	type NoMethod AddressList
2030	raw := NoMethod(*s)
2031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2032}
2033
2034// AddressListWarning: [Output Only] Informational warning message.
2035type AddressListWarning struct {
2036	// Code: [Output Only] A warning code, if applicable. For example,
2037	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2038	// the response.
2039	//
2040	// Possible values:
2041	//   "CLEANUP_FAILED"
2042	//   "DEPRECATED_RESOURCE_USED"
2043	//   "DEPRECATED_TYPE_USED"
2044	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2045	//   "EXPERIMENTAL_TYPE_USED"
2046	//   "EXTERNAL_API_WARNING"
2047	//   "FIELD_VALUE_OVERRIDEN"
2048	//   "INJECTED_KERNELS_DEPRECATED"
2049	//   "MISSING_TYPE_DEPENDENCY"
2050	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2051	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2052	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2053	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2054	//   "NEXT_HOP_NOT_RUNNING"
2055	//   "NOT_CRITICAL_ERROR"
2056	//   "NO_RESULTS_ON_PAGE"
2057	//   "REQUIRED_TOS_AGREEMENT"
2058	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2059	//   "RESOURCE_NOT_DELETED"
2060	//   "SCHEMA_VALIDATION_IGNORED"
2061	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2062	//   "UNDECLARED_PROPERTIES"
2063	//   "UNREACHABLE"
2064	Code string `json:"code,omitempty"`
2065
2066	// Data: [Output Only] Metadata about this warning in key: value format.
2067	// For example:
2068	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2069	Data []*AddressListWarningData `json:"data,omitempty"`
2070
2071	// Message: [Output Only] A human-readable description of the warning
2072	// code.
2073	Message string `json:"message,omitempty"`
2074
2075	// ForceSendFields is a list of field names (e.g. "Code") to
2076	// unconditionally include in API requests. By default, fields with
2077	// empty values are omitted from API requests. However, any non-pointer,
2078	// non-interface field appearing in ForceSendFields will be sent to the
2079	// server regardless of whether the field is empty or not. This may be
2080	// used to include empty fields in Patch requests.
2081	ForceSendFields []string `json:"-"`
2082
2083	// NullFields is a list of field names (e.g. "Code") to include in API
2084	// requests with the JSON null value. By default, fields with empty
2085	// values are omitted from API requests. However, any field with an
2086	// empty value appearing in NullFields will be sent to the server as
2087	// null. It is an error if a field in this list has a non-empty value.
2088	// This may be used to include null fields in Patch requests.
2089	NullFields []string `json:"-"`
2090}
2091
2092func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2093	type NoMethod AddressListWarning
2094	raw := NoMethod(*s)
2095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2096}
2097
2098type AddressListWarningData struct {
2099	// Key: [Output Only] A key that provides more detail on the warning
2100	// being returned. For example, for warnings where there are no results
2101	// in a list request for a particular zone, this key might be scope and
2102	// the key value might be the zone name. Other examples might be a key
2103	// indicating a deprecated resource and a suggested replacement, or a
2104	// warning about invalid network settings (for example, if an instance
2105	// attempts to perform IP forwarding but is not enabled for IP
2106	// forwarding).
2107	Key string `json:"key,omitempty"`
2108
2109	// Value: [Output Only] A warning data value corresponding to the key.
2110	Value string `json:"value,omitempty"`
2111
2112	// ForceSendFields is a list of field names (e.g. "Key") to
2113	// unconditionally include in API requests. By default, fields with
2114	// empty values are omitted from API requests. However, any non-pointer,
2115	// non-interface field appearing in ForceSendFields will be sent to the
2116	// server regardless of whether the field is empty or not. This may be
2117	// used to include empty fields in Patch requests.
2118	ForceSendFields []string `json:"-"`
2119
2120	// NullFields is a list of field names (e.g. "Key") to include in API
2121	// requests with the JSON null value. By default, fields with empty
2122	// values are omitted from API requests. However, any field with an
2123	// empty value appearing in NullFields will be sent to the server as
2124	// null. It is an error if a field in this list has a non-empty value.
2125	// This may be used to include null fields in Patch requests.
2126	NullFields []string `json:"-"`
2127}
2128
2129func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2130	type NoMethod AddressListWarningData
2131	raw := NoMethod(*s)
2132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2133}
2134
2135type AddressesScopedList struct {
2136	// Addresses: [Output Only] A list of addresses contained in this scope.
2137	Addresses []*Address `json:"addresses,omitempty"`
2138
2139	// Warning: [Output Only] Informational warning which replaces the list
2140	// of addresses when the list is empty.
2141	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2142
2143	// ForceSendFields is a list of field names (e.g. "Addresses") to
2144	// unconditionally include in API requests. By default, fields with
2145	// empty values are omitted from API requests. However, any non-pointer,
2146	// non-interface field appearing in ForceSendFields will be sent to the
2147	// server regardless of whether the field is empty or not. This may be
2148	// used to include empty fields in Patch requests.
2149	ForceSendFields []string `json:"-"`
2150
2151	// NullFields is a list of field names (e.g. "Addresses") to include in
2152	// API requests with the JSON null value. By default, fields with empty
2153	// values are omitted from API requests. However, any field with an
2154	// empty value appearing in NullFields will be sent to the server as
2155	// null. It is an error if a field in this list has a non-empty value.
2156	// This may be used to include null fields in Patch requests.
2157	NullFields []string `json:"-"`
2158}
2159
2160func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2161	type NoMethod AddressesScopedList
2162	raw := NoMethod(*s)
2163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2164}
2165
2166// AddressesScopedListWarning: [Output Only] Informational warning which
2167// replaces the list of addresses when the list is empty.
2168type AddressesScopedListWarning struct {
2169	// Code: [Output Only] A warning code, if applicable. For example,
2170	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2171	// the response.
2172	//
2173	// Possible values:
2174	//   "CLEANUP_FAILED"
2175	//   "DEPRECATED_RESOURCE_USED"
2176	//   "DEPRECATED_TYPE_USED"
2177	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2178	//   "EXPERIMENTAL_TYPE_USED"
2179	//   "EXTERNAL_API_WARNING"
2180	//   "FIELD_VALUE_OVERRIDEN"
2181	//   "INJECTED_KERNELS_DEPRECATED"
2182	//   "MISSING_TYPE_DEPENDENCY"
2183	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2184	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2185	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2186	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2187	//   "NEXT_HOP_NOT_RUNNING"
2188	//   "NOT_CRITICAL_ERROR"
2189	//   "NO_RESULTS_ON_PAGE"
2190	//   "REQUIRED_TOS_AGREEMENT"
2191	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2192	//   "RESOURCE_NOT_DELETED"
2193	//   "SCHEMA_VALIDATION_IGNORED"
2194	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2195	//   "UNDECLARED_PROPERTIES"
2196	//   "UNREACHABLE"
2197	Code string `json:"code,omitempty"`
2198
2199	// Data: [Output Only] Metadata about this warning in key: value format.
2200	// For example:
2201	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2202	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2203
2204	// Message: [Output Only] A human-readable description of the warning
2205	// code.
2206	Message string `json:"message,omitempty"`
2207
2208	// ForceSendFields is a list of field names (e.g. "Code") to
2209	// unconditionally include in API requests. By default, fields with
2210	// empty values are omitted from API requests. However, any non-pointer,
2211	// non-interface field appearing in ForceSendFields will be sent to the
2212	// server regardless of whether the field is empty or not. This may be
2213	// used to include empty fields in Patch requests.
2214	ForceSendFields []string `json:"-"`
2215
2216	// NullFields is a list of field names (e.g. "Code") to include in API
2217	// requests with the JSON null value. By default, fields with empty
2218	// values are omitted from API requests. However, any field with an
2219	// empty value appearing in NullFields will be sent to the server as
2220	// null. It is an error if a field in this list has a non-empty value.
2221	// This may be used to include null fields in Patch requests.
2222	NullFields []string `json:"-"`
2223}
2224
2225func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2226	type NoMethod AddressesScopedListWarning
2227	raw := NoMethod(*s)
2228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2229}
2230
2231type AddressesScopedListWarningData struct {
2232	// Key: [Output Only] A key that provides more detail on the warning
2233	// being returned. For example, for warnings where there are no results
2234	// in a list request for a particular zone, this key might be scope and
2235	// the key value might be the zone name. Other examples might be a key
2236	// indicating a deprecated resource and a suggested replacement, or a
2237	// warning about invalid network settings (for example, if an instance
2238	// attempts to perform IP forwarding but is not enabled for IP
2239	// forwarding).
2240	Key string `json:"key,omitempty"`
2241
2242	// Value: [Output Only] A warning data value corresponding to the key.
2243	Value string `json:"value,omitempty"`
2244
2245	// ForceSendFields is a list of field names (e.g. "Key") to
2246	// unconditionally include in API requests. By default, fields with
2247	// empty values are omitted from API requests. However, any non-pointer,
2248	// non-interface field appearing in ForceSendFields will be sent to the
2249	// server regardless of whether the field is empty or not. This may be
2250	// used to include empty fields in Patch requests.
2251	ForceSendFields []string `json:"-"`
2252
2253	// NullFields is a list of field names (e.g. "Key") to include in API
2254	// requests with the JSON null value. By default, fields with empty
2255	// values are omitted from API requests. However, any field with an
2256	// empty value appearing in NullFields will be sent to the server as
2257	// null. It is an error if a field in this list has a non-empty value.
2258	// This may be used to include null fields in Patch requests.
2259	NullFields []string `json:"-"`
2260}
2261
2262func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2263	type NoMethod AddressesScopedListWarningData
2264	raw := NoMethod(*s)
2265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2266}
2267
2268// AliasIpRange: An alias IP range attached to an instance's network
2269// interface.
2270type AliasIpRange struct {
2271	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2272	// IP CIDR range must belong to the specified subnetwork and cannot
2273	// contain IP addresses reserved by system or used by other network
2274	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2275	// a netmask (such as /24) or a CIDR-formatted string (such as
2276	// 10.1.2.0/24).
2277	IpCidrRange string `json:"ipCidrRange,omitempty"`
2278
2279	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2280	// which to allocate an IP alias range. If not specified, the primary
2281	// range of the subnetwork is used.
2282	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2283
2284	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2285	// unconditionally include in API requests. By default, fields with
2286	// empty values are omitted from API requests. However, any non-pointer,
2287	// non-interface field appearing in ForceSendFields will be sent to the
2288	// server regardless of whether the field is empty or not. This may be
2289	// used to include empty fields in Patch requests.
2290	ForceSendFields []string `json:"-"`
2291
2292	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2293	// in API requests with the JSON null value. By default, fields with
2294	// empty values are omitted from API requests. However, any field with
2295	// an empty value appearing in NullFields will be sent to the server as
2296	// null. It is an error if a field in this list has a non-empty value.
2297	// This may be used to include null fields in Patch requests.
2298	NullFields []string `json:"-"`
2299}
2300
2301func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2302	type NoMethod AliasIpRange
2303	raw := NoMethod(*s)
2304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2305}
2306
2307type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2308	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2309	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2310
2311	// Interface: Specifies the disk interface to use for attaching this
2312	// disk, which is either SCSI or NVME. The default is SCSI. For
2313	// performance characteristics of SCSI over NVMe, see Local SSD
2314	// performance.
2315	//
2316	// Possible values:
2317	//   "NVME"
2318	//   "SCSI"
2319	Interface string `json:"interface,omitempty"`
2320
2321	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2322	// unconditionally include in API requests. By default, fields with
2323	// empty values are omitted from API requests. However, any non-pointer,
2324	// non-interface field appearing in ForceSendFields will be sent to the
2325	// server regardless of whether the field is empty or not. This may be
2326	// used to include empty fields in Patch requests.
2327	ForceSendFields []string `json:"-"`
2328
2329	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2330	// API requests with the JSON null value. By default, fields with empty
2331	// values are omitted from API requests. However, any field with an
2332	// empty value appearing in NullFields will be sent to the server as
2333	// null. It is an error if a field in this list has a non-empty value.
2334	// This may be used to include null fields in Patch requests.
2335	NullFields []string `json:"-"`
2336}
2337
2338func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2339	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2340	raw := NoMethod(*s)
2341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2342}
2343
2344// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2345// of the SKU instances being reserved. Next ID: 9
2346type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2347	// GuestAccelerators: Specifies accelerator type and count.
2348	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2349
2350	// LocalSsds: Specifies amount of local ssd to reserve with each
2351	// instance. The type of disk is local-ssd.
2352	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2353
2354	// MachineType: Specifies type of machine (name only) which has fixed
2355	// number of vCPUs and fixed amount of memory. This also includes
2356	// specifying custom machine type following
2357	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2358	MachineType string `json:"machineType,omitempty"`
2359
2360	// MaintenanceInterval: Specifies whether this VM may be a stable fleet
2361	// VM. Setting this to "Periodic" designates this VM as a Stable Fleet
2362	// VM.
2363	//
2364	// See go/stable-fleet-ug for more details.
2365	//
2366	// Possible values:
2367	//   "AS_NEEDED"
2368	//   "PERIODIC"
2369	MaintenanceInterval string `json:"maintenanceInterval,omitempty"`
2370
2371	// MinCpuPlatform: Minimum cpu platform the reservation.
2372	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2373
2374	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2375	// to unconditionally include in API requests. By default, fields with
2376	// empty values are omitted from API requests. However, any non-pointer,
2377	// non-interface field appearing in ForceSendFields will be sent to the
2378	// server regardless of whether the field is empty or not. This may be
2379	// used to include empty fields in Patch requests.
2380	ForceSendFields []string `json:"-"`
2381
2382	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2383	// include in API requests with the JSON null value. By default, fields
2384	// with empty values are omitted from API requests. However, any field
2385	// with an empty value appearing in NullFields will be sent to the
2386	// server as null. It is an error if a field in this list has a
2387	// non-empty value. This may be used to include null fields in Patch
2388	// requests.
2389	NullFields []string `json:"-"`
2390}
2391
2392func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2393	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2394	raw := NoMethod(*s)
2395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2396}
2397
2398// AllocationSpecificSKUReservation: This reservation type allows to pre
2399// allocate specific instance configuration.
2400type AllocationSpecificSKUReservation struct {
2401	// Count: Specifies the number of resources that are allocated.
2402	Count int64 `json:"count,omitempty,string"`
2403
2404	// InUseCount: [Output Only] Indicates how many instances are in use.
2405	InUseCount int64 `json:"inUseCount,omitempty,string"`
2406
2407	// InstanceProperties: The instance properties for the reservation.
2408	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2409
2410	// ForceSendFields is a list of field names (e.g. "Count") to
2411	// unconditionally include in API requests. By default, fields with
2412	// empty values are omitted from API requests. However, any non-pointer,
2413	// non-interface field appearing in ForceSendFields will be sent to the
2414	// server regardless of whether the field is empty or not. This may be
2415	// used to include empty fields in Patch requests.
2416	ForceSendFields []string `json:"-"`
2417
2418	// NullFields is a list of field names (e.g. "Count") to include in API
2419	// requests with the JSON null value. By default, fields with empty
2420	// values are omitted from API requests. However, any field with an
2421	// empty value appearing in NullFields will be sent to the server as
2422	// null. It is an error if a field in this list has a non-empty value.
2423	// This may be used to include null fields in Patch requests.
2424	NullFields []string `json:"-"`
2425}
2426
2427func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2428	type NoMethod AllocationSpecificSKUReservation
2429	raw := NoMethod(*s)
2430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2431}
2432
2433// AttachedDisk: An instance-attached disk resource.
2434type AttachedDisk struct {
2435	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2436	// instance is deleted (but not when the disk is detached from the
2437	// instance).
2438	AutoDelete bool `json:"autoDelete,omitempty"`
2439
2440	// Boot: Indicates that this is a boot disk. The virtual machine will
2441	// use the first partition of the disk for its root filesystem.
2442	Boot bool `json:"boot,omitempty"`
2443
2444	// DeviceName: Specifies a unique device name of your choice that is
2445	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2446	// system running within the instance. This name can be used to
2447	// reference the device for mounting, resizing, and so on, from within
2448	// the instance.
2449	//
2450	// If not specified, the server chooses a default device name to apply
2451	// to this disk, in the form persistent-disk-x, where x is a number
2452	// assigned by Google Compute Engine. This field is only applicable for
2453	// persistent disks.
2454	DeviceName string `json:"deviceName,omitempty"`
2455
2456	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2457	// customer-supplied encryption key.
2458	//
2459	// If you are creating a new disk, this field encrypts the new disk
2460	// using an encryption key that you provide. If you are attaching an
2461	// existing disk that is already encrypted, this field decrypts the disk
2462	// using the customer-supplied encryption key.
2463	//
2464	// If you encrypt a disk using a customer-supplied key, you must provide
2465	// the same key again when you attempt to use this resource at a later
2466	// time. For example, you must provide the key when you create a
2467	// snapshot or an image from the disk or when you attach the disk to a
2468	// virtual machine instance.
2469	//
2470	// If you do not provide an encryption key, then the disk will be
2471	// encrypted using an automatically generated key and you do not need to
2472	// provide a key to use the disk later.
2473	//
2474	// Instance templates do not store customer-supplied encryption keys, so
2475	// you cannot use your own keys to encrypt disks in a managed instance
2476	// group.
2477	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2478
2479	// DiskSizeGb: The size of the disk in GB.
2480	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2481
2482	// GuestOsFeatures: A list of features to enable on the guest operating
2483	// system. Applicable only for bootable images. Read  Enabling guest
2484	// operating system features to see a list of available options.
2485	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2486
2487	// Index: [Output Only] A zero-based index to this disk, where 0 is
2488	// reserved for the boot disk. If you have many disks attached to an
2489	// instance, each disk would have a unique index number.
2490	Index int64 `json:"index,omitempty"`
2491
2492	// InitializeParams: [Input Only] Specifies the parameters for a new
2493	// disk that will be created alongside the new instance. Use
2494	// initialization parameters to create boot disks or local SSDs attached
2495	// to the new instance.
2496	//
2497	// This property is mutually exclusive with the source property; you can
2498	// only define one or the other, but not both.
2499	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2500
2501	// Interface: Specifies the disk interface to use for attaching this
2502	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2503	// disks must always use SCSI and the request will fail if you attempt
2504	// to attach a persistent disk in any other format than SCSI. Local SSDs
2505	// can use either NVME or SCSI. For performance characteristics of SCSI
2506	// over NVMe, see Local SSD performance.
2507	//
2508	// Possible values:
2509	//   "NVME"
2510	//   "SCSI"
2511	Interface string `json:"interface,omitempty"`
2512
2513	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2514	// for attached disks.
2515	Kind string `json:"kind,omitempty"`
2516
2517	// Licenses: [Output Only] Any valid publicly visible licenses.
2518	Licenses []string `json:"licenses,omitempty"`
2519
2520	// Mode: The mode in which to attach this disk, either READ_WRITE or
2521	// READ_ONLY. If not specified, the default is to attach the disk in
2522	// READ_WRITE mode.
2523	//
2524	// Possible values:
2525	//   "READ_ONLY"
2526	//   "READ_WRITE"
2527	Mode string `json:"mode,omitempty"`
2528
2529	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2530	// stored on disk
2531	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2532
2533	// Source: Specifies a valid partial or full URL to an existing
2534	// Persistent Disk resource. When creating a new instance, one of
2535	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2536	// disks.source is required except for local SSD.
2537	//
2538	// If desired, you can also attach existing non-root persistent disks
2539	// using this property. This field is only applicable for persistent
2540	// disks.
2541	//
2542	// Note that for InstanceTemplate, specify the disk name, not the URL
2543	// for the disk.
2544	Source string `json:"source,omitempty"`
2545
2546	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2547	// If not specified, the default is PERSISTENT.
2548	//
2549	// Possible values:
2550	//   "PERSISTENT"
2551	//   "SCRATCH"
2552	Type string `json:"type,omitempty"`
2553
2554	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2555	// unconditionally include in API requests. By default, fields with
2556	// empty values are omitted from API requests. However, any non-pointer,
2557	// non-interface field appearing in ForceSendFields will be sent to the
2558	// server regardless of whether the field is empty or not. This may be
2559	// used to include empty fields in Patch requests.
2560	ForceSendFields []string `json:"-"`
2561
2562	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2563	// API requests with the JSON null value. By default, fields with empty
2564	// values are omitted from API requests. However, any field with an
2565	// empty value appearing in NullFields will be sent to the server as
2566	// null. It is an error if a field in this list has a non-empty value.
2567	// This may be used to include null fields in Patch requests.
2568	NullFields []string `json:"-"`
2569}
2570
2571func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2572	type NoMethod AttachedDisk
2573	raw := NoMethod(*s)
2574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2575}
2576
2577// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2578// for a new disk that will be created alongside the new instance. Use
2579// initialization parameters to create boot disks or local SSDs attached
2580// to the new instance.
2581//
2582// This property is mutually exclusive with the source property; you can
2583// only define one or the other, but not both.
2584type AttachedDiskInitializeParams struct {
2585	// Description: An optional description. Provide this property when
2586	// creating the disk.
2587	Description string `json:"description,omitempty"`
2588
2589	// DiskName: Specifies the disk name. If not specified, the default is
2590	// to use the name of the instance. If a disk with the same name already
2591	// exists in the given region, the existing disk is attached to the new
2592	// instance and the new disk is not created.
2593	DiskName string `json:"diskName,omitempty"`
2594
2595	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2596	// must be at least 10 GB. If you specify a sourceImage, which is
2597	// required for boot disks, the default size is the size of the
2598	// sourceImage. If you do not specify a sourceImage, the default disk
2599	// size is 500 GB.
2600	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2601
2602	// DiskType: Specifies the disk type to use to create the instance. If
2603	// not specified, the default is pd-standard, specified using the full
2604	// URL. For
2605	// example:
2606	// https://www.googleapis.com/compute/v1/projects/project/zones/
2607	// zone/diskTypes/pd-standard
2608	//
2609	//
2610	// Other values include pd-ssd and local-ssd. If you define this field,
2611	// you can provide either the full or partial URL. For example, the
2612	// following are valid values:
2613	// -
2614	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2615	// - projects/project/zones/zone/diskTypes/diskType
2616	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2617	// is the name of the disk type, not URL.
2618	DiskType string `json:"diskType,omitempty"`
2619
2620	// Labels: Labels to apply to this disk. These can be later modified by
2621	// the disks.setLabels method. This field is only applicable for
2622	// persistent disks.
2623	Labels map[string]string `json:"labels,omitempty"`
2624
2625	// OnUpdateAction: Specifies which action to take on instance update
2626	// with this disk. Default is to use the existing disk.
2627	//
2628	// Possible values:
2629	//   "RECREATE_DISK"
2630	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2631	//   "USE_EXISTING_DISK"
2632	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2633
2634	// ResourcePolicies: Resource policies applied to this disk for
2635	// automatic snapshot creations. Specified using the full or partial
2636	// URL. For instance template, specify only the resource policy name.
2637	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2638
2639	// SourceImage: The source image to create this disk. When creating a
2640	// new instance, one of initializeParams.sourceImage or
2641	// initializeParams.sourceSnapshot or disks.source is required except
2642	// for local SSD.
2643	//
2644	// To create a disk with one of the public operating system images,
2645	// specify the image by its family name. For example, specify
2646	// family/debian-9 to use the latest Debian 9
2647	// image:
2648	// projects/debian-cloud/global/images/family/debian-9
2649	//
2650	//
2651	// Alternati
2652	// vely, use a specific version of a public operating system
2653	// image:
2654	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2655	//
2656	//
2657	//
2658	// To create a disk with a custom image that you created, specify the
2659	// image name in the following
2660	// format:
2661	// global/images/my-custom-image
2662	//
2663	//
2664	// You can also specify a custom image by its image family, which
2665	// returns the latest version of the image in that family. Replace the
2666	// image name with
2667	// family/family-name:
2668	// global/images/family/my-image-family
2669	//
2670	//
2671	// If the source image is deleted later, this field will not be set.
2672	SourceImage string `json:"sourceImage,omitempty"`
2673
2674	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2675	// source image. Required if the source image is protected by a
2676	// customer-supplied encryption key.
2677	//
2678	// Instance templates do not store customer-supplied encryption keys, so
2679	// you cannot create disks for instances in a managed instance group if
2680	// the source images are encrypted with your own keys.
2681	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2682
2683	// SourceSnapshot: The source snapshot to create this disk. When
2684	// creating a new instance, one of initializeParams.sourceSnapshot or
2685	// initializeParams.sourceImage or disks.source is required except for
2686	// local SSD.
2687	//
2688	// To create a disk with a snapshot that you created, specify the
2689	// snapshot name in the following
2690	// format:
2691	// global/snapshots/my-backup
2692	//
2693	//
2694	// If the source snapshot is deleted later, this field will not be set.
2695	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2696
2697	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2698	// the source snapshot.
2699	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2700
2701	// ForceSendFields is a list of field names (e.g. "Description") to
2702	// unconditionally include in API requests. By default, fields with
2703	// empty values are omitted from API requests. However, any non-pointer,
2704	// non-interface field appearing in ForceSendFields will be sent to the
2705	// server regardless of whether the field is empty or not. This may be
2706	// used to include empty fields in Patch requests.
2707	ForceSendFields []string `json:"-"`
2708
2709	// NullFields is a list of field names (e.g. "Description") to include
2710	// in API requests with the JSON null value. By default, fields with
2711	// empty values are omitted from API requests. However, any field with
2712	// an empty value appearing in NullFields will be sent to the server as
2713	// null. It is an error if a field in this list has a non-empty value.
2714	// This may be used to include null fields in Patch requests.
2715	NullFields []string `json:"-"`
2716}
2717
2718func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2719	type NoMethod AttachedDiskInitializeParams
2720	raw := NoMethod(*s)
2721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2722}
2723
2724// AuditConfig: Specifies the audit configuration for a service. The
2725// configuration determines which permission types are logged, and what
2726// identities, if any, are exempted from logging. An AuditConfig must
2727// have one or more AuditLogConfigs.
2728//
2729// If there are AuditConfigs for both `allServices` and a specific
2730// service, the union of the two AuditConfigs is used for that service:
2731// the log_types specified in each AuditConfig are enabled, and the
2732// exempted_members in each AuditLogConfig are exempted.
2733//
2734// Example Policy with multiple AuditConfigs:
2735//
2736// { "audit_configs": [ { "service": "allServices", "audit_log_configs":
2737// [ { "log_type": "DATA_READ", "exempted_members": [
2738// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
2739// "log_type": "ADMIN_READ" } ] }, { "service":
2740// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
2741// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
2742// "user:aliya@example.com" ] } ] } ] }
2743//
2744// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2745// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2746// logging, and aliya@example.com from DATA_WRITE logging.
2747type AuditConfig struct {
2748	// AuditLogConfigs: The configuration for logging of each type of
2749	// permission.
2750	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2751
2752	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2753
2754	// Service: Specifies a service that will be enabled for audit logging.
2755	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2756	// `allServices` is a special value that covers all services.
2757	Service string `json:"service,omitempty"`
2758
2759	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2760	// unconditionally include in API requests. By default, fields with
2761	// empty values are omitted from API requests. However, any non-pointer,
2762	// non-interface field appearing in ForceSendFields will be sent to the
2763	// server regardless of whether the field is empty or not. This may be
2764	// used to include empty fields in Patch requests.
2765	ForceSendFields []string `json:"-"`
2766
2767	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2768	// include in API requests with the JSON null value. By default, fields
2769	// with empty values are omitted from API requests. However, any field
2770	// with an empty value appearing in NullFields will be sent to the
2771	// server as null. It is an error if a field in this list has a
2772	// non-empty value. This may be used to include null fields in Patch
2773	// requests.
2774	NullFields []string `json:"-"`
2775}
2776
2777func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2778	type NoMethod AuditConfig
2779	raw := NoMethod(*s)
2780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2781}
2782
2783// AuditLogConfig: Provides the configuration for logging a type of
2784// permissions. Example:
2785//
2786// { "audit_log_configs": [ { "log_type": "DATA_READ",
2787// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
2788// "DATA_WRITE" } ] }
2789//
2790// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2791// jose@example.com from DATA_READ logging.
2792type AuditLogConfig struct {
2793	// ExemptedMembers: Specifies the identities that do not cause logging
2794	// for this type of permission. Follows the same format of
2795	// [Binding.members][].
2796	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2797
2798	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
2799
2800	// LogType: The log type that this config enables.
2801	//
2802	// Possible values:
2803	//   "ADMIN_READ"
2804	//   "DATA_READ"
2805	//   "DATA_WRITE"
2806	//   "LOG_TYPE_UNSPECIFIED"
2807	LogType string `json:"logType,omitempty"`
2808
2809	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
2810	// unconditionally include in API requests. By default, fields with
2811	// empty values are omitted from API requests. However, any non-pointer,
2812	// non-interface field appearing in ForceSendFields will be sent to the
2813	// server regardless of whether the field is empty or not. This may be
2814	// used to include empty fields in Patch requests.
2815	ForceSendFields []string `json:"-"`
2816
2817	// NullFields is a list of field names (e.g. "ExemptedMembers") to
2818	// include in API requests with the JSON null value. By default, fields
2819	// with empty values are omitted from API requests. However, any field
2820	// with an empty value appearing in NullFields will be sent to the
2821	// server as null. It is an error if a field in this list has a
2822	// non-empty value. This may be used to include null fields in Patch
2823	// requests.
2824	NullFields []string `json:"-"`
2825}
2826
2827func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
2828	type NoMethod AuditLogConfig
2829	raw := NoMethod(*s)
2830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2831}
2832
2833// AuthorizationLoggingOptions: Authorization-related information used
2834// by Cloud Audit Logging.
2835type AuthorizationLoggingOptions struct {
2836	// PermissionType: The type of the permission that was checked.
2837	//
2838	// Possible values:
2839	//   "ADMIN_READ"
2840	//   "ADMIN_WRITE"
2841	//   "DATA_READ"
2842	//   "DATA_WRITE"
2843	//   "PERMISSION_TYPE_UNSPECIFIED"
2844	PermissionType string `json:"permissionType,omitempty"`
2845
2846	// ForceSendFields is a list of field names (e.g. "PermissionType") to
2847	// unconditionally include in API requests. By default, fields with
2848	// empty values are omitted from API requests. However, any non-pointer,
2849	// non-interface field appearing in ForceSendFields will be sent to the
2850	// server regardless of whether the field is empty or not. This may be
2851	// used to include empty fields in Patch requests.
2852	ForceSendFields []string `json:"-"`
2853
2854	// NullFields is a list of field names (e.g. "PermissionType") to
2855	// include in API requests with the JSON null value. By default, fields
2856	// with empty values are omitted from API requests. However, any field
2857	// with an empty value appearing in NullFields will be sent to the
2858	// server as null. It is an error if a field in this list has a
2859	// non-empty value. This may be used to include null fields in Patch
2860	// requests.
2861	NullFields []string `json:"-"`
2862}
2863
2864func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
2865	type NoMethod AuthorizationLoggingOptions
2866	raw := NoMethod(*s)
2867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2868}
2869
2870// Autoscaler: Represents an Autoscaler resource.
2871//
2872// Google Compute Engine has two Autoscaler resources:
2873//
2874// * [Global](/compute/docs/reference/rest/{$api_version}/autoscalers) *
2875// [Regional](/compute/docs/reference/rest/{$api_version}/regionAutoscale
2876// rs)
2877//
2878// Use autoscalers to automatically add or delete instances from a
2879// managed instance group according to your defined autoscaling policy.
2880// For more information, read Autoscaling Groups of Instances.
2881//
2882// For zonal managed instance groups resource, use the autoscaler
2883// resource.
2884//
2885// For regional managed instance groups, use the regionAutoscalers
2886// resource. (== resource_for {$api_version}.autoscalers ==) (==
2887// resource_for {$api_version}.regionAutoscalers ==)
2888type Autoscaler struct {
2889	// AutoscalingPolicy: The configuration parameters for the autoscaling
2890	// algorithm. You can define one or more of the policies for an
2891	// autoscaler: cpuUtilization, customMetricUtilizations, and
2892	// loadBalancingUtilization.
2893	//
2894	// If none of these are specified, the default will be to autoscale
2895	// based on cpuUtilization to 0.6 or 60%.
2896	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
2897
2898	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
2899	// format.
2900	CreationTimestamp string `json:"creationTimestamp,omitempty"`
2901
2902	// Description: An optional description of this resource. Provide this
2903	// property when you create the resource.
2904	Description string `json:"description,omitempty"`
2905
2906	// Id: [Output Only] The unique identifier for the resource. This
2907	// identifier is defined by the server.
2908	Id uint64 `json:"id,omitempty,string"`
2909
2910	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
2911	// for autoscalers.
2912	Kind string `json:"kind,omitempty"`
2913
2914	// Name: Name of the resource. Provided by the client when the resource
2915	// is created. The name must be 1-63 characters long, and comply with
2916	// RFC1035. Specifically, the name must be 1-63 characters long and
2917	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
2918	// the first character must be a lowercase letter, and all following
2919	// characters must be a dash, lowercase letter, or digit, except the
2920	// last character, which cannot be a dash.
2921	Name string `json:"name,omitempty"`
2922
2923	// RecommendedSize: [Output Only] Target recommended MIG size (number of
2924	// instances) computed by autoscaler. Autoscaler calculates recommended
2925	// MIG size even when autoscaling policy mode is different from ON. This
2926	// field is empty when autoscaler is not connected to the existing
2927	// managed instance group or autoscaler did not generate its prediction.
2928	RecommendedSize int64 `json:"recommendedSize,omitempty"`
2929
2930	// Region: [Output Only] URL of the region where the instance group
2931	// resides (for autoscalers living in regional scope).
2932	Region string `json:"region,omitempty"`
2933
2934	// SelfLink: [Output Only] Server-defined URL for the resource.
2935	SelfLink string `json:"selfLink,omitempty"`
2936
2937	// Status: [Output Only] The status of the autoscaler configuration.
2938	// Current set of possible values:
2939	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
2940	//
2941	// - DELETING: Configuration is being deleted.
2942	// - ACTIVE: Configuration is acknowledged to be effective. Some
2943	// warnings might be present in the statusDetails field.
2944	// - ERROR: Configuration has errors. Actionable for users. Details are
2945	// present in the statusDetails field.  New values might be added in the
2946	// future.
2947	//
2948	// Possible values:
2949	//   "ACTIVE"
2950	//   "DELETING"
2951	//   "ERROR"
2952	//   "PENDING"
2953	Status string `json:"status,omitempty"`
2954
2955	// StatusDetails: [Output Only] Human-readable details about the current
2956	// state of the autoscaler. Read the documentation for Commonly returned
2957	// status messages for examples of status messages you might encounter.
2958	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
2959
2960	// Target: URL of the managed instance group that this autoscaler will
2961	// scale.
2962	Target string `json:"target,omitempty"`
2963
2964	// Zone: [Output Only] URL of the zone where the instance group resides
2965	// (for autoscalers living in zonal scope).
2966	Zone string `json:"zone,omitempty"`
2967
2968	// ServerResponse contains the HTTP response code and headers from the
2969	// server.
2970	googleapi.ServerResponse `json:"-"`
2971
2972	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
2973	// to unconditionally include in API requests. By default, fields with
2974	// empty values are omitted from API requests. However, any non-pointer,
2975	// non-interface field appearing in ForceSendFields will be sent to the
2976	// server regardless of whether the field is empty or not. This may be
2977	// used to include empty fields in Patch requests.
2978	ForceSendFields []string `json:"-"`
2979
2980	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
2981	// include in API requests with the JSON null value. By default, fields
2982	// with empty values are omitted from API requests. However, any field
2983	// with an empty value appearing in NullFields will be sent to the
2984	// server as null. It is an error if a field in this list has a
2985	// non-empty value. This may be used to include null fields in Patch
2986	// requests.
2987	NullFields []string `json:"-"`
2988}
2989
2990func (s *Autoscaler) MarshalJSON() ([]byte, error) {
2991	type NoMethod Autoscaler
2992	raw := NoMethod(*s)
2993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2994}
2995
2996type AutoscalerAggregatedList struct {
2997	// Id: [Output Only] Unique identifier for the resource; defined by the
2998	// server.
2999	Id string `json:"id,omitempty"`
3000
3001	// Items: A list of AutoscalersScopedList resources.
3002	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3003
3004	// Kind: [Output Only] Type of resource. Always
3005	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3006	Kind string `json:"kind,omitempty"`
3007
3008	// NextPageToken: [Output Only] This token allows you to get the next
3009	// page of results for list requests. If the number of results is larger
3010	// than maxResults, use the nextPageToken as a value for the query
3011	// parameter pageToken in the next list request. Subsequent list
3012	// requests will have their own nextPageToken to continue paging through
3013	// the results.
3014	NextPageToken string `json:"nextPageToken,omitempty"`
3015
3016	// SelfLink: [Output Only] Server-defined URL for this resource.
3017	SelfLink string `json:"selfLink,omitempty"`
3018
3019	// Warning: [Output Only] Informational warning message.
3020	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3021
3022	// ServerResponse contains the HTTP response code and headers from the
3023	// server.
3024	googleapi.ServerResponse `json:"-"`
3025
3026	// ForceSendFields is a list of field names (e.g. "Id") to
3027	// unconditionally include in API requests. By default, fields with
3028	// empty values are omitted from API requests. However, any non-pointer,
3029	// non-interface field appearing in ForceSendFields will be sent to the
3030	// server regardless of whether the field is empty or not. This may be
3031	// used to include empty fields in Patch requests.
3032	ForceSendFields []string `json:"-"`
3033
3034	// NullFields is a list of field names (e.g. "Id") to include in API
3035	// requests with the JSON null value. By default, fields with empty
3036	// values are omitted from API requests. However, any field with an
3037	// empty value appearing in NullFields will be sent to the server as
3038	// null. It is an error if a field in this list has a non-empty value.
3039	// This may be used to include null fields in Patch requests.
3040	NullFields []string `json:"-"`
3041}
3042
3043func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3044	type NoMethod AutoscalerAggregatedList
3045	raw := NoMethod(*s)
3046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3047}
3048
3049// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3050// message.
3051type AutoscalerAggregatedListWarning struct {
3052	// Code: [Output Only] A warning code, if applicable. For example,
3053	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3054	// the response.
3055	//
3056	// Possible values:
3057	//   "CLEANUP_FAILED"
3058	//   "DEPRECATED_RESOURCE_USED"
3059	//   "DEPRECATED_TYPE_USED"
3060	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3061	//   "EXPERIMENTAL_TYPE_USED"
3062	//   "EXTERNAL_API_WARNING"
3063	//   "FIELD_VALUE_OVERRIDEN"
3064	//   "INJECTED_KERNELS_DEPRECATED"
3065	//   "MISSING_TYPE_DEPENDENCY"
3066	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3067	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3068	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3069	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3070	//   "NEXT_HOP_NOT_RUNNING"
3071	//   "NOT_CRITICAL_ERROR"
3072	//   "NO_RESULTS_ON_PAGE"
3073	//   "REQUIRED_TOS_AGREEMENT"
3074	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3075	//   "RESOURCE_NOT_DELETED"
3076	//   "SCHEMA_VALIDATION_IGNORED"
3077	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3078	//   "UNDECLARED_PROPERTIES"
3079	//   "UNREACHABLE"
3080	Code string `json:"code,omitempty"`
3081
3082	// Data: [Output Only] Metadata about this warning in key: value format.
3083	// For example:
3084	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3085	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3086
3087	// Message: [Output Only] A human-readable description of the warning
3088	// code.
3089	Message string `json:"message,omitempty"`
3090
3091	// ForceSendFields is a list of field names (e.g. "Code") to
3092	// unconditionally include in API requests. By default, fields with
3093	// empty values are omitted from API requests. However, any non-pointer,
3094	// non-interface field appearing in ForceSendFields will be sent to the
3095	// server regardless of whether the field is empty or not. This may be
3096	// used to include empty fields in Patch requests.
3097	ForceSendFields []string `json:"-"`
3098
3099	// NullFields is a list of field names (e.g. "Code") to include in API
3100	// requests with the JSON null value. By default, fields with empty
3101	// values are omitted from API requests. However, any field with an
3102	// empty value appearing in NullFields will be sent to the server as
3103	// null. It is an error if a field in this list has a non-empty value.
3104	// This may be used to include null fields in Patch requests.
3105	NullFields []string `json:"-"`
3106}
3107
3108func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3109	type NoMethod AutoscalerAggregatedListWarning
3110	raw := NoMethod(*s)
3111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3112}
3113
3114type AutoscalerAggregatedListWarningData struct {
3115	// Key: [Output Only] A key that provides more detail on the warning
3116	// being returned. For example, for warnings where there are no results
3117	// in a list request for a particular zone, this key might be scope and
3118	// the key value might be the zone name. Other examples might be a key
3119	// indicating a deprecated resource and a suggested replacement, or a
3120	// warning about invalid network settings (for example, if an instance
3121	// attempts to perform IP forwarding but is not enabled for IP
3122	// forwarding).
3123	Key string `json:"key,omitempty"`
3124
3125	// Value: [Output Only] A warning data value corresponding to the key.
3126	Value string `json:"value,omitempty"`
3127
3128	// ForceSendFields is a list of field names (e.g. "Key") to
3129	// unconditionally include in API requests. By default, fields with
3130	// empty values are omitted from API requests. However, any non-pointer,
3131	// non-interface field appearing in ForceSendFields will be sent to the
3132	// server regardless of whether the field is empty or not. This may be
3133	// used to include empty fields in Patch requests.
3134	ForceSendFields []string `json:"-"`
3135
3136	// NullFields is a list of field names (e.g. "Key") to include in API
3137	// requests with the JSON null value. By default, fields with empty
3138	// values are omitted from API requests. However, any field with an
3139	// empty value appearing in NullFields will be sent to the server as
3140	// null. It is an error if a field in this list has a non-empty value.
3141	// This may be used to include null fields in Patch requests.
3142	NullFields []string `json:"-"`
3143}
3144
3145func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3146	type NoMethod AutoscalerAggregatedListWarningData
3147	raw := NoMethod(*s)
3148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3149}
3150
3151// AutoscalerList: Contains a list of Autoscaler resources.
3152type AutoscalerList struct {
3153	// Id: [Output Only] Unique identifier for the resource; defined by the
3154	// server.
3155	Id string `json:"id,omitempty"`
3156
3157	// Items: A list of Autoscaler resources.
3158	Items []*Autoscaler `json:"items,omitempty"`
3159
3160	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3161	// for lists of autoscalers.
3162	Kind string `json:"kind,omitempty"`
3163
3164	// NextPageToken: [Output Only] This token allows you to get the next
3165	// page of results for list requests. If the number of results is larger
3166	// than maxResults, use the nextPageToken as a value for the query
3167	// parameter pageToken in the next list request. Subsequent list
3168	// requests will have their own nextPageToken to continue paging through
3169	// the results.
3170	NextPageToken string `json:"nextPageToken,omitempty"`
3171
3172	// SelfLink: [Output Only] Server-defined URL for this resource.
3173	SelfLink string `json:"selfLink,omitempty"`
3174
3175	// Warning: [Output Only] Informational warning message.
3176	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3177
3178	// ServerResponse contains the HTTP response code and headers from the
3179	// server.
3180	googleapi.ServerResponse `json:"-"`
3181
3182	// ForceSendFields is a list of field names (e.g. "Id") to
3183	// unconditionally include in API requests. By default, fields with
3184	// empty values are omitted from API requests. However, any non-pointer,
3185	// non-interface field appearing in ForceSendFields will be sent to the
3186	// server regardless of whether the field is empty or not. This may be
3187	// used to include empty fields in Patch requests.
3188	ForceSendFields []string `json:"-"`
3189
3190	// NullFields is a list of field names (e.g. "Id") to include in API
3191	// requests with the JSON null value. By default, fields with empty
3192	// values are omitted from API requests. However, any field with an
3193	// empty value appearing in NullFields will be sent to the server as
3194	// null. It is an error if a field in this list has a non-empty value.
3195	// This may be used to include null fields in Patch requests.
3196	NullFields []string `json:"-"`
3197}
3198
3199func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3200	type NoMethod AutoscalerList
3201	raw := NoMethod(*s)
3202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3203}
3204
3205// AutoscalerListWarning: [Output Only] Informational warning message.
3206type AutoscalerListWarning struct {
3207	// Code: [Output Only] A warning code, if applicable. For example,
3208	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3209	// the response.
3210	//
3211	// Possible values:
3212	//   "CLEANUP_FAILED"
3213	//   "DEPRECATED_RESOURCE_USED"
3214	//   "DEPRECATED_TYPE_USED"
3215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3216	//   "EXPERIMENTAL_TYPE_USED"
3217	//   "EXTERNAL_API_WARNING"
3218	//   "FIELD_VALUE_OVERRIDEN"
3219	//   "INJECTED_KERNELS_DEPRECATED"
3220	//   "MISSING_TYPE_DEPENDENCY"
3221	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3222	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3223	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3224	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3225	//   "NEXT_HOP_NOT_RUNNING"
3226	//   "NOT_CRITICAL_ERROR"
3227	//   "NO_RESULTS_ON_PAGE"
3228	//   "REQUIRED_TOS_AGREEMENT"
3229	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3230	//   "RESOURCE_NOT_DELETED"
3231	//   "SCHEMA_VALIDATION_IGNORED"
3232	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3233	//   "UNDECLARED_PROPERTIES"
3234	//   "UNREACHABLE"
3235	Code string `json:"code,omitempty"`
3236
3237	// Data: [Output Only] Metadata about this warning in key: value format.
3238	// For example:
3239	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3240	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3241
3242	// Message: [Output Only] A human-readable description of the warning
3243	// code.
3244	Message string `json:"message,omitempty"`
3245
3246	// ForceSendFields is a list of field names (e.g. "Code") to
3247	// unconditionally include in API requests. By default, fields with
3248	// empty values are omitted from API requests. However, any non-pointer,
3249	// non-interface field appearing in ForceSendFields will be sent to the
3250	// server regardless of whether the field is empty or not. This may be
3251	// used to include empty fields in Patch requests.
3252	ForceSendFields []string `json:"-"`
3253
3254	// NullFields is a list of field names (e.g. "Code") to include in API
3255	// requests with the JSON null value. By default, fields with empty
3256	// values are omitted from API requests. However, any field with an
3257	// empty value appearing in NullFields will be sent to the server as
3258	// null. It is an error if a field in this list has a non-empty value.
3259	// This may be used to include null fields in Patch requests.
3260	NullFields []string `json:"-"`
3261}
3262
3263func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3264	type NoMethod AutoscalerListWarning
3265	raw := NoMethod(*s)
3266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3267}
3268
3269type AutoscalerListWarningData struct {
3270	// Key: [Output Only] A key that provides more detail on the warning
3271	// being returned. For example, for warnings where there are no results
3272	// in a list request for a particular zone, this key might be scope and
3273	// the key value might be the zone name. Other examples might be a key
3274	// indicating a deprecated resource and a suggested replacement, or a
3275	// warning about invalid network settings (for example, if an instance
3276	// attempts to perform IP forwarding but is not enabled for IP
3277	// forwarding).
3278	Key string `json:"key,omitempty"`
3279
3280	// Value: [Output Only] A warning data value corresponding to the key.
3281	Value string `json:"value,omitempty"`
3282
3283	// ForceSendFields is a list of field names (e.g. "Key") to
3284	// unconditionally include in API requests. By default, fields with
3285	// empty values are omitted from API requests. However, any non-pointer,
3286	// non-interface field appearing in ForceSendFields will be sent to the
3287	// server regardless of whether the field is empty or not. This may be
3288	// used to include empty fields in Patch requests.
3289	ForceSendFields []string `json:"-"`
3290
3291	// NullFields is a list of field names (e.g. "Key") to include in API
3292	// requests with the JSON null value. By default, fields with empty
3293	// values are omitted from API requests. However, any field with an
3294	// empty value appearing in NullFields will be sent to the server as
3295	// null. It is an error if a field in this list has a non-empty value.
3296	// This may be used to include null fields in Patch requests.
3297	NullFields []string `json:"-"`
3298}
3299
3300func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3301	type NoMethod AutoscalerListWarningData
3302	raw := NoMethod(*s)
3303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3304}
3305
3306type AutoscalerStatusDetails struct {
3307	// Message: The status message.
3308	Message string `json:"message,omitempty"`
3309
3310	// Type: The type of error, warning, or notice returned. Current set of
3311	// possible values:
3312	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3313	// group are unhealthy (not in RUNNING state).
3314	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3315	// attached to the instance group.
3316	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3317	// greater than maxNumReplicas.
3318	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3319	// samples are not exported often enough to be a credible base for
3320	// autoscaling.
3321	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3322	// does not exist or does not have the necessary labels.
3323	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3324	// maxNumReplicas. This means the autoscaler cannot add or remove
3325	// instances from the instance group.
3326	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3327	// receive any data from the custom metric configured for autoscaling.
3328	//
3329	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3330	// configured to scale based on a load balancing signal but the instance
3331	// group has not received any requests from the load balancer.
3332	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3333	// instances in the group won't change automatically. The autoscaling
3334	// configuration is preserved.
3335	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up"
3336	// mode. The autoscaler can add instances but not remove any.
3337	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3338	// autoscaled because it has more than one backend service attached to
3339	// it.
3340	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3341	// the necessary resources, such as CPU or number of instances.
3342	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3343	// autoscalers: there is a resource stockout in the chosen region.
3344	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3345	// not exist.
3346	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3347	// Autoscaling does not work with an HTTP/S load balancer that has been
3348	// configured for maxRate.
3349	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3350	// resource stockout in the chosen zone. For regional autoscalers: in at
3351	// least one of the zones you're using there is a resource stockout.
3352	// New values might be added in the future. Some of the values might not
3353	// be available in all API versions.
3354	//
3355	// Possible values:
3356	//   "ALL_INSTANCES_UNHEALTHY"
3357	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3358	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3359	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3360	//   "CUSTOM_METRIC_INVALID"
3361	//   "MIN_EQUALS_MAX"
3362	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3363	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3364	//   "MODE_OFF"
3365	//   "MODE_ONLY_SCALE_OUT"
3366	//   "MODE_ONLY_UP"
3367	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3368	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3369	//   "REGION_RESOURCE_STOCKOUT"
3370	//   "SCALING_TARGET_DOES_NOT_EXIST"
3371	//   "UNKNOWN"
3372	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3373	//   "ZONE_RESOURCE_STOCKOUT"
3374	Type string `json:"type,omitempty"`
3375
3376	// ForceSendFields is a list of field names (e.g. "Message") to
3377	// unconditionally include in API requests. By default, fields with
3378	// empty values are omitted from API requests. However, any non-pointer,
3379	// non-interface field appearing in ForceSendFields will be sent to the
3380	// server regardless of whether the field is empty or not. This may be
3381	// used to include empty fields in Patch requests.
3382	ForceSendFields []string `json:"-"`
3383
3384	// NullFields is a list of field names (e.g. "Message") to include in
3385	// API requests with the JSON null value. By default, fields with empty
3386	// values are omitted from API requests. However, any field with an
3387	// empty value appearing in NullFields will be sent to the server as
3388	// null. It is an error if a field in this list has a non-empty value.
3389	// This may be used to include null fields in Patch requests.
3390	NullFields []string `json:"-"`
3391}
3392
3393func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3394	type NoMethod AutoscalerStatusDetails
3395	raw := NoMethod(*s)
3396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3397}
3398
3399type AutoscalersScopedList struct {
3400	// Autoscalers: [Output Only] A list of autoscalers contained in this
3401	// scope.
3402	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3403
3404	// Warning: [Output Only] Informational warning which replaces the list
3405	// of autoscalers when the list is empty.
3406	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3407
3408	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3409	// unconditionally include in API requests. By default, fields with
3410	// empty values are omitted from API requests. However, any non-pointer,
3411	// non-interface field appearing in ForceSendFields will be sent to the
3412	// server regardless of whether the field is empty or not. This may be
3413	// used to include empty fields in Patch requests.
3414	ForceSendFields []string `json:"-"`
3415
3416	// NullFields is a list of field names (e.g. "Autoscalers") to include
3417	// in API requests with the JSON null value. By default, fields with
3418	// empty values are omitted from API requests. However, any field with
3419	// an empty value appearing in NullFields will be sent to the server as
3420	// null. It is an error if a field in this list has a non-empty value.
3421	// This may be used to include null fields in Patch requests.
3422	NullFields []string `json:"-"`
3423}
3424
3425func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3426	type NoMethod AutoscalersScopedList
3427	raw := NoMethod(*s)
3428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3429}
3430
3431// AutoscalersScopedListWarning: [Output Only] Informational warning
3432// which replaces the list of autoscalers when the list is empty.
3433type AutoscalersScopedListWarning struct {
3434	// Code: [Output Only] A warning code, if applicable. For example,
3435	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3436	// the response.
3437	//
3438	// Possible values:
3439	//   "CLEANUP_FAILED"
3440	//   "DEPRECATED_RESOURCE_USED"
3441	//   "DEPRECATED_TYPE_USED"
3442	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3443	//   "EXPERIMENTAL_TYPE_USED"
3444	//   "EXTERNAL_API_WARNING"
3445	//   "FIELD_VALUE_OVERRIDEN"
3446	//   "INJECTED_KERNELS_DEPRECATED"
3447	//   "MISSING_TYPE_DEPENDENCY"
3448	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3449	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3450	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3451	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3452	//   "NEXT_HOP_NOT_RUNNING"
3453	//   "NOT_CRITICAL_ERROR"
3454	//   "NO_RESULTS_ON_PAGE"
3455	//   "REQUIRED_TOS_AGREEMENT"
3456	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3457	//   "RESOURCE_NOT_DELETED"
3458	//   "SCHEMA_VALIDATION_IGNORED"
3459	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3460	//   "UNDECLARED_PROPERTIES"
3461	//   "UNREACHABLE"
3462	Code string `json:"code,omitempty"`
3463
3464	// Data: [Output Only] Metadata about this warning in key: value format.
3465	// For example:
3466	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3467	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3468
3469	// Message: [Output Only] A human-readable description of the warning
3470	// code.
3471	Message string `json:"message,omitempty"`
3472
3473	// ForceSendFields is a list of field names (e.g. "Code") to
3474	// unconditionally include in API requests. By default, fields with
3475	// empty values are omitted from API requests. However, any non-pointer,
3476	// non-interface field appearing in ForceSendFields will be sent to the
3477	// server regardless of whether the field is empty or not. This may be
3478	// used to include empty fields in Patch requests.
3479	ForceSendFields []string `json:"-"`
3480
3481	// NullFields is a list of field names (e.g. "Code") to include in API
3482	// requests with the JSON null value. By default, fields with empty
3483	// values are omitted from API requests. However, any field with an
3484	// empty value appearing in NullFields will be sent to the server as
3485	// null. It is an error if a field in this list has a non-empty value.
3486	// This may be used to include null fields in Patch requests.
3487	NullFields []string `json:"-"`
3488}
3489
3490func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3491	type NoMethod AutoscalersScopedListWarning
3492	raw := NoMethod(*s)
3493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3494}
3495
3496type AutoscalersScopedListWarningData struct {
3497	// Key: [Output Only] A key that provides more detail on the warning
3498	// being returned. For example, for warnings where there are no results
3499	// in a list request for a particular zone, this key might be scope and
3500	// the key value might be the zone name. Other examples might be a key
3501	// indicating a deprecated resource and a suggested replacement, or a
3502	// warning about invalid network settings (for example, if an instance
3503	// attempts to perform IP forwarding but is not enabled for IP
3504	// forwarding).
3505	Key string `json:"key,omitempty"`
3506
3507	// Value: [Output Only] A warning data value corresponding to the key.
3508	Value string `json:"value,omitempty"`
3509
3510	// ForceSendFields is a list of field names (e.g. "Key") to
3511	// unconditionally include in API requests. By default, fields with
3512	// empty values are omitted from API requests. However, any non-pointer,
3513	// non-interface field appearing in ForceSendFields will be sent to the
3514	// server regardless of whether the field is empty or not. This may be
3515	// used to include empty fields in Patch requests.
3516	ForceSendFields []string `json:"-"`
3517
3518	// NullFields is a list of field names (e.g. "Key") to include in API
3519	// requests with the JSON null value. By default, fields with empty
3520	// values are omitted from API requests. However, any field with an
3521	// empty value appearing in NullFields will be sent to the server as
3522	// null. It is an error if a field in this list has a non-empty value.
3523	// This may be used to include null fields in Patch requests.
3524	NullFields []string `json:"-"`
3525}
3526
3527func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3528	type NoMethod AutoscalersScopedListWarningData
3529	raw := NoMethod(*s)
3530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3531}
3532
3533// AutoscalingPolicy: Cloud Autoscaler policy.
3534type AutoscalingPolicy struct {
3535	// CoolDownPeriodSec: The number of seconds that the autoscaler should
3536	// wait before it starts collecting information from a new instance.
3537	// This prevents the autoscaler from collecting information when the
3538	// instance is initializing, during which the collected usage would not
3539	// be reliable. The default time autoscaler waits is 60
3540	// seconds.
3541	//
3542	// Virtual machine initialization times might vary because of numerous
3543	// factors. We recommend that you test how long an instance may take to
3544	// initialize. To do this, create an instance and time the startup
3545	// process.
3546	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3547
3548	// CpuUtilization: Defines the CPU utilization policy that allows the
3549	// autoscaler to scale based on the average CPU utilization of a managed
3550	// instance group.
3551	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3552
3553	// CustomMetricUtilizations: Configuration parameters of autoscaling
3554	// based on a custom metric.
3555	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3556
3557	// LoadBalancingUtilization: Configuration parameters of autoscaling
3558	// based on load balancer.
3559	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3560
3561	// MaxNumReplicas: The maximum number of instances that the autoscaler
3562	// can scale up to. This is required when creating or updating an
3563	// autoscaler. The maximum number of replicas should not be lower than
3564	// minimal number of replicas.
3565	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3566
3567	// MinNumReplicas: The minimum number of replicas that the autoscaler
3568	// can scale down to. This cannot be less than 0. If not provided,
3569	// autoscaler will choose a default value depending on maximum number of
3570	// instances allowed.
3571	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3572
3573	// Mode: Defines operating mode for this policy.
3574	//
3575	// Possible values:
3576	//   "OFF"
3577	//   "ON"
3578	//   "ONLY_SCALE_OUT"
3579	//   "ONLY_UP"
3580	Mode string `json:"mode,omitempty"`
3581
3582	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3583	// to unconditionally include in API requests. By default, fields with
3584	// empty values are omitted from API requests. However, any non-pointer,
3585	// non-interface field appearing in ForceSendFields will be sent to the
3586	// server regardless of whether the field is empty or not. This may be
3587	// used to include empty fields in Patch requests.
3588	ForceSendFields []string `json:"-"`
3589
3590	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3591	// include in API requests with the JSON null value. By default, fields
3592	// with empty values are omitted from API requests. However, any field
3593	// with an empty value appearing in NullFields will be sent to the
3594	// server as null. It is an error if a field in this list has a
3595	// non-empty value. This may be used to include null fields in Patch
3596	// requests.
3597	NullFields []string `json:"-"`
3598}
3599
3600func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3601	type NoMethod AutoscalingPolicy
3602	raw := NoMethod(*s)
3603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3604}
3605
3606// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3607type AutoscalingPolicyCpuUtilization struct {
3608	// UtilizationTarget: The target CPU utilization that the autoscaler
3609	// should maintain. Must be a float value in the range (0, 1]. If not
3610	// specified, the default is 0.6.
3611	//
3612	// If the CPU level is below the target utilization, the autoscaler
3613	// scales down the number of instances until it reaches the minimum
3614	// number of instances you specified or until the average CPU of your
3615	// instances reaches the target utilization.
3616	//
3617	// If the average CPU is above the target utilization, the autoscaler
3618	// scales up until it reaches the maximum number of instances you
3619	// specified or until the average utilization reaches the target
3620	// utilization.
3621	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3622
3623	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3624	// to unconditionally include in API requests. By default, fields with
3625	// empty values are omitted from API requests. However, any non-pointer,
3626	// non-interface field appearing in ForceSendFields will be sent to the
3627	// server regardless of whether the field is empty or not. This may be
3628	// used to include empty fields in Patch requests.
3629	ForceSendFields []string `json:"-"`
3630
3631	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3632	// include in API requests with the JSON null value. By default, fields
3633	// with empty values are omitted from API requests. However, any field
3634	// with an empty value appearing in NullFields will be sent to the
3635	// server as null. It is an error if a field in this list has a
3636	// non-empty value. This may be used to include null fields in Patch
3637	// requests.
3638	NullFields []string `json:"-"`
3639}
3640
3641func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3642	type NoMethod AutoscalingPolicyCpuUtilization
3643	raw := NoMethod(*s)
3644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3645}
3646
3647func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3648	type NoMethod AutoscalingPolicyCpuUtilization
3649	var s1 struct {
3650		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3651		*NoMethod
3652	}
3653	s1.NoMethod = (*NoMethod)(s)
3654	if err := json.Unmarshal(data, &s1); err != nil {
3655		return err
3656	}
3657	s.UtilizationTarget = float64(s1.UtilizationTarget)
3658	return nil
3659}
3660
3661// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3662// policy.
3663type AutoscalingPolicyCustomMetricUtilization struct {
3664	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3665	// The metric cannot have negative values.
3666	//
3667	// The metric must have a value type of INT64 or DOUBLE.
3668	Metric string `json:"metric,omitempty"`
3669
3670	// UtilizationTarget: The target value of the metric that autoscaler
3671	// should maintain. This must be a positive value. A utilization metric
3672	// scales number of virtual machines handling requests to increase or
3673	// decrease proportionally to the metric.
3674	//
3675	// For example, a good metric to use as a utilization_target is
3676	// compute.googleapis.com/instance/network/received_bytes_count. The
3677	// autoscaler will work to keep this value constant for each of the
3678	// instances.
3679	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3680
3681	// UtilizationTargetType: Defines how target utilization value is
3682	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3683	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3684	//
3685	// Possible values:
3686	//   "DELTA_PER_MINUTE"
3687	//   "DELTA_PER_SECOND"
3688	//   "GAUGE"
3689	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
3690
3691	// ForceSendFields is a list of field names (e.g. "Metric") to
3692	// unconditionally include in API requests. By default, fields with
3693	// empty values are omitted from API requests. However, any non-pointer,
3694	// non-interface field appearing in ForceSendFields will be sent to the
3695	// server regardless of whether the field is empty or not. This may be
3696	// used to include empty fields in Patch requests.
3697	ForceSendFields []string `json:"-"`
3698
3699	// NullFields is a list of field names (e.g. "Metric") to include in API
3700	// requests with the JSON null value. By default, fields with empty
3701	// values are omitted from API requests. However, any field with an
3702	// empty value appearing in NullFields will be sent to the server as
3703	// null. It is an error if a field in this list has a non-empty value.
3704	// This may be used to include null fields in Patch requests.
3705	NullFields []string `json:"-"`
3706}
3707
3708func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
3709	type NoMethod AutoscalingPolicyCustomMetricUtilization
3710	raw := NoMethod(*s)
3711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3712}
3713
3714func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
3715	type NoMethod AutoscalingPolicyCustomMetricUtilization
3716	var s1 struct {
3717		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3718		*NoMethod
3719	}
3720	s1.NoMethod = (*NoMethod)(s)
3721	if err := json.Unmarshal(data, &s1); err != nil {
3722		return err
3723	}
3724	s.UtilizationTarget = float64(s1.UtilizationTarget)
3725	return nil
3726}
3727
3728// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
3729// of autoscaling based on load balancing.
3730type AutoscalingPolicyLoadBalancingUtilization struct {
3731	// UtilizationTarget: Fraction of backend capacity utilization (set in
3732	// HTTP(S) load balancing configuration) that autoscaler should
3733	// maintain. Must be a positive float value. If not defined, the default
3734	// is 0.8.
3735	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3736
3737	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3738	// to unconditionally include in API requests. By default, fields with
3739	// empty values are omitted from API requests. However, any non-pointer,
3740	// non-interface field appearing in ForceSendFields will be sent to the
3741	// server regardless of whether the field is empty or not. This may be
3742	// used to include empty fields in Patch requests.
3743	ForceSendFields []string `json:"-"`
3744
3745	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3746	// include in API requests with the JSON null value. By default, fields
3747	// with empty values are omitted from API requests. However, any field
3748	// with an empty value appearing in NullFields will be sent to the
3749	// server as null. It is an error if a field in this list has a
3750	// non-empty value. This may be used to include null fields in Patch
3751	// requests.
3752	NullFields []string `json:"-"`
3753}
3754
3755func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
3756	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3757	raw := NoMethod(*s)
3758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3759}
3760
3761func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
3762	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3763	var s1 struct {
3764		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3765		*NoMethod
3766	}
3767	s1.NoMethod = (*NoMethod)(s)
3768	if err := json.Unmarshal(data, &s1); err != nil {
3769		return err
3770	}
3771	s.UtilizationTarget = float64(s1.UtilizationTarget)
3772	return nil
3773}
3774
3775// Backend: Message containing information of one individual backend.
3776type Backend struct {
3777	// BalancingMode: Specifies the balancing mode for the backend.
3778	//
3779	// When choosing a balancing mode, you need to consider the
3780	// loadBalancingScheme, and protocol for the backend service, as well as
3781	// the type of backend (instance group or NEG).
3782	//
3783	//
3784	// - If the load balancing mode is CONNECTION, then the load is spread
3785	// based on how many concurrent connections the backend can handle.
3786	// You can use the CONNECTION balancing mode if the protocol for the
3787	// backend service is SSL, TCP, or UDP.
3788	//
3789	// If the loadBalancingScheme for the backend service is EXTERNAL (SSL
3790	// Proxy and TCP Proxy load balancers), you must also specify exactly
3791	// one of the following parameters: maxConnections (except for regional
3792	// managed instance groups), maxConnectionsPerInstance, or
3793	// maxConnectionsPerEndpoint.
3794	//
3795	// If the loadBalancingScheme for the backend service is INTERNAL
3796	// (internal TCP/UDP load balancers), you cannot specify any additional
3797	// parameters.
3798	//
3799	// - If the load balancing mode is RATE, the load is spread based on the
3800	// rate of HTTP requests per second (RPS).
3801	// You can use the RATE balancing mode if the protocol for the backend
3802	// service is HTTP or HTTPS. You must specify exactly one of the
3803	// following parameters: maxRate (except for regional managed instance
3804	// groups), maxRatePerInstance, or maxRatePerEndpoint.
3805	//
3806	// - If the load balancing mode is UTILIZATION, the load is spread based
3807	// on the backend utilization of instances in an instance group.
3808	// You can use the UTILIZATION balancing mode if the loadBalancingScheme
3809	// of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or
3810	// INTERNAL_MANAGED and the backends are instance groups. There are no
3811	// restrictions on the backend service protocol.
3812	//
3813	// Possible values:
3814	//   "CONNECTION"
3815	//   "RATE"
3816	//   "UTILIZATION"
3817	BalancingMode string `json:"balancingMode,omitempty"`
3818
3819	// CapacityScaler: A multiplier applied to the group's maximum servicing
3820	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
3821	// 1, which means the group will serve up to 100% of its configured
3822	// capacity (depending on balancingMode). A setting of 0 means the group
3823	// is completely drained, offering 0% of its available capacity. Valid
3824	// range is 0.0 and [0.1,1.0]. You cannot configure a setting larger
3825	// than 0 and smaller than 0.1. You cannot configure a setting of 0 when
3826	// there is only one backend attached to the backend service.
3827	//
3828	// This cannot be used for internal load balancing.
3829	CapacityScaler float64 `json:"capacityScaler,omitempty"`
3830
3831	// Description: An optional description of this resource. Provide this
3832	// property when you create the resource.
3833	Description string `json:"description,omitempty"`
3834
3835	// Failover: This field designates whether this is a failover backend.
3836	// More than one failover backend can be configured for a given
3837	// BackendService.
3838	Failover bool `json:"failover,omitempty"`
3839
3840	// Group: The fully-qualified URL of an instance group or network
3841	// endpoint group (NEG) resource. The type of backend that a backend
3842	// service supports depends on the backend service's
3843	// loadBalancingScheme.
3844	//
3845	//
3846	// - When the loadBalancingScheme for the backend service is EXTERNAL,
3847	// INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either
3848	// an instance group or a NEG. The backends on the backend service must
3849	// be either all instance groups or all NEGs. You cannot mix instance
3850	// group and NEG backends on the same backend service.
3851	//
3852	//
3853	// - When the loadBalancingScheme for the backend service is INTERNAL,
3854	// the backend must be an instance group in the same region as the
3855	// backend service. NEGs are not supported.
3856	//
3857	// You must use the fully-qualified URL (starting with
3858	// https://www.googleapis.com/) to specify the instance group or NEG.
3859	// Partial URLs are not supported.
3860	Group string `json:"group,omitempty"`
3861
3862	// MaxConnections: Defines a target maximum number of simultaneous
3863	// connections that the backend can handle. Valid for network endpoint
3864	// group and instance group backends (except for regional managed
3865	// instance groups). If the backend's balancingMode is UTILIZATION, this
3866	// is an optional parameter. If the backend's balancingMode is
3867	// CONNECTION, and backend is attached to a backend service whose
3868	// loadBalancingScheme is EXTERNAL, you must specify either this
3869	// parameter, maxConnectionsPerInstance, or
3870	// maxConnectionsPerEndpoint.
3871	//
3872	// Not available if the backend's balancingMode is RATE. If the
3873	// loadBalancingScheme is INTERNAL, then maxConnections is not
3874	// supported, even though the backend requires a balancing mode of
3875	// CONNECTION.
3876	MaxConnections int64 `json:"maxConnections,omitempty"`
3877
3878	// MaxConnectionsPerEndpoint: Defines a target maximum number of
3879	// simultaneous connections for an endpoint of a NEG. This is multiplied
3880	// by the number of endpoints in the NEG to implicitly calculate a
3881	// maximum number of target maximum simultaneous connections for the
3882	// NEG. If the backend's balancingMode is CONNECTION, and the backend is
3883	// attached to a backend service whose loadBalancingScheme is EXTERNAL,
3884	// you must specify either this parameter, maxConnections, or
3885	// maxConnectionsPerInstance.
3886	//
3887	// Not available if the backend's balancingMode is RATE. Internal
3888	// TCP/UDP load balancing does not support setting
3889	// maxConnectionsPerEndpoint even though its backends require a
3890	// balancing mode of CONNECTION.
3891	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
3892
3893	// MaxConnectionsPerInstance: Defines a target maximum number of
3894	// simultaneous connections for a single VM in a backend instance group.
3895	// This is multiplied by the number of instances in the instance group
3896	// to implicitly calculate a target maximum number of simultaneous
3897	// connections for the whole instance group. If the backend's
3898	// balancingMode is UTILIZATION, this is an optional parameter. If the
3899	// backend's balancingMode is CONNECTION, and backend is attached to a
3900	// backend service whose loadBalancingScheme is EXTERNAL, you must
3901	// specify either this parameter, maxConnections, or
3902	// maxConnectionsPerEndpoint.
3903	//
3904	// Not available if the backend's balancingMode is RATE. Internal
3905	// TCP/UDP load balancing does not support setting
3906	// maxConnectionsPerInstance even though its backends require a
3907	// balancing mode of CONNECTION.
3908	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
3909
3910	// MaxRate: Defines a maximum number of HTTP requests per second (RPS)
3911	// that the backend can handle. Valid for network endpoint group and
3912	// instance group backends (except for regional managed instance
3913	// groups). Must not be defined if the backend is a managed instance
3914	// group that uses autoscaling based on load balancing.
3915	//
3916	// If the backend's balancingMode is UTILIZATION, this is an optional
3917	// parameter. If the backend's balancingMode is RATE, you must specify
3918	// maxRate, maxRatePerInstance, or maxRatePerEndpoint.
3919	//
3920	// Not available if the backend's balancingMode is CONNECTION.
3921	MaxRate int64 `json:"maxRate,omitempty"`
3922
3923	// MaxRatePerEndpoint: Defines a maximum target for requests per second
3924	// (RPS) for an endpoint of a NEG. This is multiplied by the number of
3925	// endpoints in the NEG to implicitly calculate a target maximum rate
3926	// for the NEG.
3927	//
3928	// If the backend's balancingMode is RATE, you must specify either this
3929	// parameter, maxRate (except for regional managed instance groups), or
3930	// maxRatePerInstance.
3931	//
3932	// Not available if the backend's balancingMode is CONNECTION.
3933	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
3934
3935	// MaxRatePerInstance: Defines a maximum target for requests per second
3936	// (RPS) for a single VM in a backend instance group. This is multiplied
3937	// by the number of instances in the instance group to implicitly
3938	// calculate a target maximum rate for the whole instance group.
3939	//
3940	// If the backend's balancingMode is UTILIZATION, this is an optional
3941	// parameter. If the backend's balancingMode is RATE, you must specify
3942	// either this parameter, maxRate (except for regional managed instance
3943	// groups), or maxRatePerEndpoint.
3944	//
3945	// Not available if the backend's balancingMode is CONNECTION.
3946	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
3947
3948	// MaxUtilization: Defines the maximum average backend utilization of a
3949	// backend VM in an instance group. The valid range is [0.0, 1.0]. This
3950	// is an optional parameter if the backend's balancingMode is
3951	// UTILIZATION.
3952	//
3953	// This parameter can be used in conjunction with maxRate,
3954	// maxRatePerInstance, maxConnections (except for regional managed
3955	// instance groups), or maxConnectionsPerInstance.
3956	MaxUtilization float64 `json:"maxUtilization,omitempty"`
3957
3958	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
3959	// unconditionally include in API requests. By default, fields with
3960	// empty values are omitted from API requests. However, any non-pointer,
3961	// non-interface field appearing in ForceSendFields will be sent to the
3962	// server regardless of whether the field is empty or not. This may be
3963	// used to include empty fields in Patch requests.
3964	ForceSendFields []string `json:"-"`
3965
3966	// NullFields is a list of field names (e.g. "BalancingMode") to include
3967	// in API requests with the JSON null value. By default, fields with
3968	// empty values are omitted from API requests. However, any field with
3969	// an empty value appearing in NullFields will be sent to the server as
3970	// null. It is an error if a field in this list has a non-empty value.
3971	// This may be used to include null fields in Patch requests.
3972	NullFields []string `json:"-"`
3973}
3974
3975func (s *Backend) MarshalJSON() ([]byte, error) {
3976	type NoMethod Backend
3977	raw := NoMethod(*s)
3978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3979}
3980
3981func (s *Backend) UnmarshalJSON(data []byte) error {
3982	type NoMethod Backend
3983	var s1 struct {
3984		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
3985		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
3986		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
3987		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
3988		*NoMethod
3989	}
3990	s1.NoMethod = (*NoMethod)(s)
3991	if err := json.Unmarshal(data, &s1); err != nil {
3992		return err
3993	}
3994	s.CapacityScaler = float64(s1.CapacityScaler)
3995	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
3996	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
3997	s.MaxUtilization = float64(s1.MaxUtilization)
3998	return nil
3999}
4000
4001// BackendBucket: Represents a Cloud Storage Bucket resource.
4002//
4003// This Cloud Storage bucket resource is referenced by a URL map of a
4004// load balancer. For more information, read Backend Buckets.
4005type BackendBucket struct {
4006	// BucketName: Cloud Storage bucket name.
4007	BucketName string `json:"bucketName,omitempty"`
4008
4009	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4010	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4011
4012	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4013	// format.
4014	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4015
4016	// Description: An optional textual description of the resource;
4017	// provided by the client when the resource is created.
4018	Description string `json:"description,omitempty"`
4019
4020	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4021	EnableCdn bool `json:"enableCdn,omitempty"`
4022
4023	// Id: [Output Only] Unique identifier for the resource; defined by the
4024	// server.
4025	Id uint64 `json:"id,omitempty,string"`
4026
4027	// Kind: Type of the resource.
4028	Kind string `json:"kind,omitempty"`
4029
4030	// Name: Name of the resource. Provided by the client when the resource
4031	// is created. The name must be 1-63 characters long, and comply with
4032	// RFC1035. Specifically, the name must be 1-63 characters long and
4033	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4034	// the first character must be a lowercase letter, and all following
4035	// characters must be a dash, lowercase letter, or digit, except the
4036	// last character, which cannot be a dash.
4037	Name string `json:"name,omitempty"`
4038
4039	// SelfLink: [Output Only] Server-defined URL for the resource.
4040	SelfLink string `json:"selfLink,omitempty"`
4041
4042	// ServerResponse contains the HTTP response code and headers from the
4043	// server.
4044	googleapi.ServerResponse `json:"-"`
4045
4046	// ForceSendFields is a list of field names (e.g. "BucketName") to
4047	// unconditionally include in API requests. By default, fields with
4048	// empty values are omitted from API requests. However, any non-pointer,
4049	// non-interface field appearing in ForceSendFields will be sent to the
4050	// server regardless of whether the field is empty or not. This may be
4051	// used to include empty fields in Patch requests.
4052	ForceSendFields []string `json:"-"`
4053
4054	// NullFields is a list of field names (e.g. "BucketName") to include in
4055	// API requests with the JSON null value. By default, fields with empty
4056	// values are omitted from API requests. However, any field with an
4057	// empty value appearing in NullFields will be sent to the server as
4058	// null. It is an error if a field in this list has a non-empty value.
4059	// This may be used to include null fields in Patch requests.
4060	NullFields []string `json:"-"`
4061}
4062
4063func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4064	type NoMethod BackendBucket
4065	raw := NoMethod(*s)
4066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4067}
4068
4069// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4070// for a backend bucket.
4071type BackendBucketCdnPolicy struct {
4072	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4073	// signed URL request will be considered fresh. After this time period,
4074	// the response will be revalidated before being served. Defaults to 1hr
4075	// (3600s). When serving responses to signed URL requests, Cloud CDN
4076	// will internally behave as though all responses from this backend had
4077	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4078	// existing Cache-Control header. The actual headers served in responses
4079	// will not be altered.
4080	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4081
4082	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4083	// request URLs.
4084	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4085
4086	// ForceSendFields is a list of field names (e.g.
4087	// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
4088	// requests. By default, fields with empty values are omitted from API
4089	// requests. However, any non-pointer, non-interface field appearing in
4090	// ForceSendFields will be sent to the server regardless of whether the
4091	// field is empty or not. This may be used to include empty fields in
4092	// Patch requests.
4093	ForceSendFields []string `json:"-"`
4094
4095	// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
4096	// to include in API requests with the JSON null value. By default,
4097	// fields with empty values are omitted from API requests. However, any
4098	// field with an empty value appearing in NullFields will be sent to the
4099	// server as null. It is an error if a field in this list has a
4100	// non-empty value. This may be used to include null fields in Patch
4101	// requests.
4102	NullFields []string `json:"-"`
4103}
4104
4105func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4106	type NoMethod BackendBucketCdnPolicy
4107	raw := NoMethod(*s)
4108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4109}
4110
4111// BackendBucketList: Contains a list of BackendBucket resources.
4112type BackendBucketList struct {
4113	// Id: [Output Only] Unique identifier for the resource; defined by the
4114	// server.
4115	Id string `json:"id,omitempty"`
4116
4117	// Items: A list of BackendBucket resources.
4118	Items []*BackendBucket `json:"items,omitempty"`
4119
4120	// Kind: Type of resource.
4121	Kind string `json:"kind,omitempty"`
4122
4123	// NextPageToken: [Output Only] This token allows you to get the next
4124	// page of results for list requests. If the number of results is larger
4125	// than maxResults, use the nextPageToken as a value for the query
4126	// parameter pageToken in the next list request. Subsequent list
4127	// requests will have their own nextPageToken to continue paging through
4128	// the results.
4129	NextPageToken string `json:"nextPageToken,omitempty"`
4130
4131	// SelfLink: [Output Only] Server-defined URL for this resource.
4132	SelfLink string `json:"selfLink,omitempty"`
4133
4134	// Warning: [Output Only] Informational warning message.
4135	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4136
4137	// ServerResponse contains the HTTP response code and headers from the
4138	// server.
4139	googleapi.ServerResponse `json:"-"`
4140
4141	// ForceSendFields is a list of field names (e.g. "Id") to
4142	// unconditionally include in API requests. By default, fields with
4143	// empty values are omitted from API requests. However, any non-pointer,
4144	// non-interface field appearing in ForceSendFields will be sent to the
4145	// server regardless of whether the field is empty or not. This may be
4146	// used to include empty fields in Patch requests.
4147	ForceSendFields []string `json:"-"`
4148
4149	// NullFields is a list of field names (e.g. "Id") to include in API
4150	// requests with the JSON null value. By default, fields with empty
4151	// values are omitted from API requests. However, any field with an
4152	// empty value appearing in NullFields will be sent to the server as
4153	// null. It is an error if a field in this list has a non-empty value.
4154	// This may be used to include null fields in Patch requests.
4155	NullFields []string `json:"-"`
4156}
4157
4158func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4159	type NoMethod BackendBucketList
4160	raw := NoMethod(*s)
4161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4162}
4163
4164// BackendBucketListWarning: [Output Only] Informational warning
4165// message.
4166type BackendBucketListWarning struct {
4167	// Code: [Output Only] A warning code, if applicable. For example,
4168	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4169	// the response.
4170	//
4171	// Possible values:
4172	//   "CLEANUP_FAILED"
4173	//   "DEPRECATED_RESOURCE_USED"
4174	//   "DEPRECATED_TYPE_USED"
4175	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4176	//   "EXPERIMENTAL_TYPE_USED"
4177	//   "EXTERNAL_API_WARNING"
4178	//   "FIELD_VALUE_OVERRIDEN"
4179	//   "INJECTED_KERNELS_DEPRECATED"
4180	//   "MISSING_TYPE_DEPENDENCY"
4181	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4182	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4183	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4184	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4185	//   "NEXT_HOP_NOT_RUNNING"
4186	//   "NOT_CRITICAL_ERROR"
4187	//   "NO_RESULTS_ON_PAGE"
4188	//   "REQUIRED_TOS_AGREEMENT"
4189	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4190	//   "RESOURCE_NOT_DELETED"
4191	//   "SCHEMA_VALIDATION_IGNORED"
4192	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4193	//   "UNDECLARED_PROPERTIES"
4194	//   "UNREACHABLE"
4195	Code string `json:"code,omitempty"`
4196
4197	// Data: [Output Only] Metadata about this warning in key: value format.
4198	// For example:
4199	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4200	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4201
4202	// Message: [Output Only] A human-readable description of the warning
4203	// code.
4204	Message string `json:"message,omitempty"`
4205
4206	// ForceSendFields is a list of field names (e.g. "Code") to
4207	// unconditionally include in API requests. By default, fields with
4208	// empty values are omitted from API requests. However, any non-pointer,
4209	// non-interface field appearing in ForceSendFields will be sent to the
4210	// server regardless of whether the field is empty or not. This may be
4211	// used to include empty fields in Patch requests.
4212	ForceSendFields []string `json:"-"`
4213
4214	// NullFields is a list of field names (e.g. "Code") to include in API
4215	// requests with the JSON null value. By default, fields with empty
4216	// values are omitted from API requests. However, any field with an
4217	// empty value appearing in NullFields will be sent to the server as
4218	// null. It is an error if a field in this list has a non-empty value.
4219	// This may be used to include null fields in Patch requests.
4220	NullFields []string `json:"-"`
4221}
4222
4223func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4224	type NoMethod BackendBucketListWarning
4225	raw := NoMethod(*s)
4226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4227}
4228
4229type BackendBucketListWarningData struct {
4230	// Key: [Output Only] A key that provides more detail on the warning
4231	// being returned. For example, for warnings where there are no results
4232	// in a list request for a particular zone, this key might be scope and
4233	// the key value might be the zone name. Other examples might be a key
4234	// indicating a deprecated resource and a suggested replacement, or a
4235	// warning about invalid network settings (for example, if an instance
4236	// attempts to perform IP forwarding but is not enabled for IP
4237	// forwarding).
4238	Key string `json:"key,omitempty"`
4239
4240	// Value: [Output Only] A warning data value corresponding to the key.
4241	Value string `json:"value,omitempty"`
4242
4243	// ForceSendFields is a list of field names (e.g. "Key") to
4244	// unconditionally include in API requests. By default, fields with
4245	// empty values are omitted from API requests. However, any non-pointer,
4246	// non-interface field appearing in ForceSendFields will be sent to the
4247	// server regardless of whether the field is empty or not. This may be
4248	// used to include empty fields in Patch requests.
4249	ForceSendFields []string `json:"-"`
4250
4251	// NullFields is a list of field names (e.g. "Key") to include in API
4252	// requests with the JSON null value. By default, fields with empty
4253	// values are omitted from API requests. However, any field with an
4254	// empty value appearing in NullFields will be sent to the server as
4255	// null. It is an error if a field in this list has a non-empty value.
4256	// This may be used to include null fields in Patch requests.
4257	NullFields []string `json:"-"`
4258}
4259
4260func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4261	type NoMethod BackendBucketListWarningData
4262	raw := NoMethod(*s)
4263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4264}
4265
4266// BackendService: Represents a Backend Service resource.
4267//
4268// A backend service defines how Google Cloud load balancers distribute
4269// traffic. The backend service configuration contains a set of values,
4270// such as the protocol used to connect to backends, various
4271// distribution and session settings, health checks, and timeouts. These
4272// settings provide fine-grained control over how your load balancer
4273// behaves. Most of the settings have default values that allow for easy
4274// configuration if you need to get started quickly.
4275//
4276// Backend services in Google Compute Engine can be either regionally or
4277// globally scoped.
4278//
4279// *
4280// [Global](/compute/docs/reference/rest/{$api_version}/backendServices)
4281// *
4282// [Regional](/compute/docs/reference/rest/{$api_version}/regionBackendSe
4283// rvices)
4284//
4285// For more information, see Backend Services.
4286//
4287// (== resource_for {$api_version}.backendService ==)
4288type BackendService struct {
4289	// AffinityCookieTtlSec: If set to 0, the cookie is non-persistent and
4290	// lasts only until the end of the browser session (or equivalent). The
4291	// maximum allowed value is one day (86,400).
4292	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4293
4294	// Backends: The list of backends that serve this BackendService.
4295	Backends []*Backend `json:"backends,omitempty"`
4296
4297	// CdnPolicy: Cloud CDN configuration for this BackendService.
4298	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4299
4300	// CircuitBreakers: Settings controlling the volume of connections to a
4301	// backend service. If not set, this feature is considered
4302	// disabled.
4303	//
4304	// This field is applicable to either:
4305	// - A regional backend service with the service_protocol set to HTTP,
4306	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4307	//
4308	// - A global backend service with the load_balancing_scheme set to
4309	// INTERNAL_SELF_MANAGED.
4310	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4311
4312	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4313
4314	// ConsistentHash: Consistent Hash-based load balancing can be used to
4315	// provide soft session affinity based on HTTP headers, cookies or other
4316	// properties. This load balancing policy is applicable only for HTTP
4317	// connections. The affinity to a particular destination host will be
4318	// lost when one or more hosts are added/removed from the destination
4319	// service. This field specifies parameters that control consistent
4320	// hashing. This field is only applicable when localityLbPolicy is set
4321	// to MAGLEV or RING_HASH.
4322	//
4323	// This field is applicable to either:
4324	// - A regional backend service with the service_protocol set to HTTP,
4325	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4326	//
4327	// - A global backend service with the load_balancing_scheme set to
4328	// INTERNAL_SELF_MANAGED.
4329	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4330
4331	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4332	// format.
4333	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4334
4335	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4336	// add to proxied requests.
4337	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4338
4339	// Description: An optional description of this resource. Provide this
4340	// property when you create the resource.
4341	Description string `json:"description,omitempty"`
4342
4343	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4344	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4345	// HTTP or HTTPS.
4346	EnableCDN bool `json:"enableCDN,omitempty"`
4347
4348	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4349	// Balancing. Requires at least one backend instance group to be defined
4350	// as a backup (failover) backend.
4351	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4352
4353	// Fingerprint: Fingerprint of this resource. A hash of the contents
4354	// stored in this object. This field is used in optimistic locking. This
4355	// field will be ignored when inserting a BackendService. An up-to-date
4356	// fingerprint must be provided in order to update the BackendService,
4357	// otherwise the request will fail with error 412 conditionNotMet.
4358	//
4359	// To see the latest fingerprint, make a get() request to retrieve a
4360	// BackendService.
4361	Fingerprint string `json:"fingerprint,omitempty"`
4362
4363	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
4364	// (legacy), or httpsHealthChecks (legacy) resource for health checking
4365	// this backend service. Not all backend services support legacy health
4366	// checks. See  Load balancer guide. Currently at most one health check
4367	// can be specified. Backend services with instance group or zonal NEG
4368	// backends must have a health check. Backend services with internet NEG
4369	// backends must not have a health check. A health check must
4370	HealthChecks []string `json:"healthChecks,omitempty"`
4371
4372	// Iap: The configurations for Identity-Aware Proxy on this resource.
4373	Iap *BackendServiceIAP `json:"iap,omitempty"`
4374
4375	// Id: [Output Only] The unique identifier for the resource. This
4376	// identifier is defined by the server.
4377	Id uint64 `json:"id,omitempty,string"`
4378
4379	// Kind: [Output Only] Type of resource. Always compute#backendService
4380	// for backend services.
4381	Kind string `json:"kind,omitempty"`
4382
4383	// LoadBalancingScheme: Specifies the load balancer type. Choose
4384	// EXTERNAL for load balancers that receive traffic from external
4385	// clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose
4386	// INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose
4387	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4388	// for one type of load balancing cannot be used with another. For more
4389	// information, refer to Choosing a load balancer.
4390	//
4391	// Possible values:
4392	//   "EXTERNAL"
4393	//   "INTERNAL"
4394	//   "INTERNAL_MANAGED"
4395	//   "INTERNAL_SELF_MANAGED"
4396	//   "INVALID_LOAD_BALANCING_SCHEME"
4397	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4398
4399	// LocalityLbPolicy: The load balancing algorithm used within the scope
4400	// of the locality. The possible values are:
4401	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
4402	// is selected in round robin order. This is the default.
4403	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
4404	// hosts and picks the host which has fewer active requests.
4405	// - RING_HASH: The ring/modulo hash load balancer implements consistent
4406	// hashing to backends. The algorithm has the property that the
4407	// addition/removal of a host from a set of N hosts only affects 1/N of
4408	// the requests.
4409	// - RANDOM: The load balancer selects a random healthy host.
4410	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
4411	// connection metadata, i.e., connections are opened to the same address
4412	// as the destination address of the incoming connection before the
4413	// connection was redirected to the load balancer.
4414	// - MAGLEV: used as a drop in replacement for the ring hash load
4415	// balancer. Maglev is not as stable as ring hash but has faster table
4416	// lookup build times and host selection times. For more information
4417	// about Maglev, see https://ai.google/research/pubs/pub44824
4418	//
4419	// This field is applicable to either:
4420	// - A regional backend service with the service_protocol set to HTTP,
4421	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4422	//
4423	// - A global backend service with the load_balancing_scheme set to
4424	// INTERNAL_SELF_MANAGED.
4425	//
4426	// If sessionAffinity is not NONE, and this field is not set to >MAGLEV
4427	// or RING_HASH, session affinity settings will not take effect.
4428	//
4429	// Possible values:
4430	//   "INVALID_LB_POLICY"
4431	//   "LEAST_REQUEST"
4432	//   "MAGLEV"
4433	//   "ORIGINAL_DESTINATION"
4434	//   "RANDOM"
4435	//   "RING_HASH"
4436	//   "ROUND_ROBIN"
4437	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
4438
4439	// LogConfig: This field denotes the logging options for the load
4440	// balancer traffic served by this backend service. If logging is
4441	// enabled, logs will be exported to Stackdriver.
4442	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
4443
4444	// Name: Name of the resource. Provided by the client when the resource
4445	// is created. The name must be 1-63 characters long, and comply with
4446	// RFC1035. Specifically, the name must be 1-63 characters long and
4447	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4448	// the first character must be a lowercase letter, and all following
4449	// characters must be a dash, lowercase letter, or digit, except the
4450	// last character, which cannot be a dash.
4451	Name string `json:"name,omitempty"`
4452
4453	// Network: The URL of the network to which this backend service
4454	// belongs. This field can only be spcified when the load balancing
4455	// scheme is set to INTERNAL.
4456	Network string `json:"network,omitempty"`
4457
4458	// OutlierDetection: Settings controlling the eviction of unhealthy
4459	// hosts from the load balancing pool for the backend service. If not
4460	// set, this feature is considered disabled.
4461	//
4462	// This field is applicable to either:
4463	// - A regional backend service with the service_protocol set to HTTP,
4464	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4465	//
4466	// - A global backend service with the load_balancing_scheme set to
4467	// INTERNAL_SELF_MANAGED.
4468	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
4469
4470	// Port: Deprecated in favor of portName. The TCP port to connect on the
4471	// backend. The default value is 80.
4472	//
4473	// This cannot be used if the loadBalancingScheme is INTERNAL (Internal
4474	// TCP/UDP Load Balancing).
4475	Port int64 `json:"port,omitempty"`
4476
4477	// PortName: A named port on a backend instance group representing the
4478	// port for communication to the backend VMs in that group. Required
4479	// when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or
4480	// INTERNAL_SELF_MANAGED and the backends are instance groups. The named
4481	// port must be defined on each backend instance group. This parameter
4482	// has no meaning if the backends are NEGs.
4483	//
4484	//
4485	//
4486	// Must be omitted when the loadBalancingScheme is INTERNAL (Internal
4487	// TCP/UDP Load Balancing).
4488	PortName string `json:"portName,omitempty"`
4489
4490	// Protocol: The protocol this BackendService uses to communicate with
4491	// backends.
4492	//
4493	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, or UDP. depending
4494	// on the chosen load balancer or Traffic Director configuration. Refer
4495	// to the documentation for the load balancer or for Traffic Director
4496	// for more information.
4497	//
4498	// Possible values:
4499	//   "HTTP"
4500	//   "HTTP2"
4501	//   "HTTPS"
4502	//   "SSL"
4503	//   "TCP"
4504	//   "UDP"
4505	Protocol string `json:"protocol,omitempty"`
4506
4507	// Region: [Output Only] URL of the region where the regional backend
4508	// service resides. This field is not applicable to global backend
4509	// services. You must specify this field as part of the HTTP request
4510	// URL. It is not settable as a field in the request body.
4511	Region string `json:"region,omitempty"`
4512
4513	// SecurityPolicy: [Output Only] The resource URL for the security
4514	// policy associated with this backend service.
4515	SecurityPolicy string `json:"securityPolicy,omitempty"`
4516
4517	// SelfLink: [Output Only] Server-defined URL for the resource.
4518	SelfLink string `json:"selfLink,omitempty"`
4519
4520	// SessionAffinity: Type of session affinity to use. The default is
4521	// NONE. Session affinity is not applicable if the --protocol is
4522	// UDP.
4523	//
4524	// When the loadBalancingScheme is EXTERNAL, possible values are NONE,
4525	// CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the
4526	// protocol is HTTP or HTTPS.
4527	//
4528	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
4529	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
4530	//
4531	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
4532	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
4533	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
4534	//
4535	// Possible values:
4536	//   "CLIENT_IP"
4537	//   "CLIENT_IP_PORT_PROTO"
4538	//   "CLIENT_IP_PROTO"
4539	//   "GENERATED_COOKIE"
4540	//   "HEADER_FIELD"
4541	//   "HTTP_COOKIE"
4542	//   "NONE"
4543	SessionAffinity string `json:"sessionAffinity,omitempty"`
4544
4545	// TimeoutSec: The backend service timeout has a different meaning
4546	// depending on the type of load balancer. For more information see,
4547	// Backend service settings The default is 30 seconds.
4548	TimeoutSec int64 `json:"timeoutSec,omitempty"`
4549
4550	// ServerResponse contains the HTTP response code and headers from the
4551	// server.
4552	googleapi.ServerResponse `json:"-"`
4553
4554	// ForceSendFields is a list of field names (e.g.
4555	// "AffinityCookieTtlSec") to unconditionally include in API requests.
4556	// By default, fields with empty values are omitted from API requests.
4557	// However, any non-pointer, non-interface field appearing in
4558	// ForceSendFields will be sent to the server regardless of whether the
4559	// field is empty or not. This may be used to include empty fields in
4560	// Patch requests.
4561	ForceSendFields []string `json:"-"`
4562
4563	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
4564	// include in API requests with the JSON null value. By default, fields
4565	// with empty values are omitted from API requests. However, any field
4566	// with an empty value appearing in NullFields will be sent to the
4567	// server as null. It is an error if a field in this list has a
4568	// non-empty value. This may be used to include null fields in Patch
4569	// requests.
4570	NullFields []string `json:"-"`
4571}
4572
4573func (s *BackendService) MarshalJSON() ([]byte, error) {
4574	type NoMethod BackendService
4575	raw := NoMethod(*s)
4576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4577}
4578
4579// BackendServiceAggregatedList: Contains a list of
4580// BackendServicesScopedList.
4581type BackendServiceAggregatedList struct {
4582	// Id: [Output Only] Unique identifier for the resource; defined by the
4583	// server.
4584	Id string `json:"id,omitempty"`
4585
4586	// Items: A list of BackendServicesScopedList resources.
4587	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
4588
4589	// Kind: Type of resource.
4590	Kind string `json:"kind,omitempty"`
4591
4592	// NextPageToken: [Output Only] This token allows you to get the next
4593	// page of results for list requests. If the number of results is larger
4594	// than maxResults, use the nextPageToken as a value for the query
4595	// parameter pageToken in the next list request. Subsequent list
4596	// requests will have their own nextPageToken to continue paging through
4597	// the results.
4598	NextPageToken string `json:"nextPageToken,omitempty"`
4599
4600	// SelfLink: [Output Only] Server-defined URL for this resource.
4601	SelfLink string `json:"selfLink,omitempty"`
4602
4603	// Warning: [Output Only] Informational warning message.
4604	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
4605
4606	// ServerResponse contains the HTTP response code and headers from the
4607	// server.
4608	googleapi.ServerResponse `json:"-"`
4609
4610	// ForceSendFields is a list of field names (e.g. "Id") to
4611	// unconditionally include in API requests. By default, fields with
4612	// empty values are omitted from API requests. However, any non-pointer,
4613	// non-interface field appearing in ForceSendFields will be sent to the
4614	// server regardless of whether the field is empty or not. This may be
4615	// used to include empty fields in Patch requests.
4616	ForceSendFields []string `json:"-"`
4617
4618	// NullFields is a list of field names (e.g. "Id") to include in API
4619	// requests with the JSON null value. By default, fields with empty
4620	// values are omitted from API requests. However, any field with an
4621	// empty value appearing in NullFields will be sent to the server as
4622	// null. It is an error if a field in this list has a non-empty value.
4623	// This may be used to include null fields in Patch requests.
4624	NullFields []string `json:"-"`
4625}
4626
4627func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
4628	type NoMethod BackendServiceAggregatedList
4629	raw := NoMethod(*s)
4630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4631}
4632
4633// BackendServiceAggregatedListWarning: [Output Only] Informational
4634// warning message.
4635type BackendServiceAggregatedListWarning struct {
4636	// Code: [Output Only] A warning code, if applicable. For example,
4637	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4638	// the response.
4639	//
4640	// Possible values:
4641	//   "CLEANUP_FAILED"
4642	//   "DEPRECATED_RESOURCE_USED"
4643	//   "DEPRECATED_TYPE_USED"
4644	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4645	//   "EXPERIMENTAL_TYPE_USED"
4646	//   "EXTERNAL_API_WARNING"
4647	//   "FIELD_VALUE_OVERRIDEN"
4648	//   "INJECTED_KERNELS_DEPRECATED"
4649	//   "MISSING_TYPE_DEPENDENCY"
4650	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4651	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4652	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4653	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4654	//   "NEXT_HOP_NOT_RUNNING"
4655	//   "NOT_CRITICAL_ERROR"
4656	//   "NO_RESULTS_ON_PAGE"
4657	//   "REQUIRED_TOS_AGREEMENT"
4658	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4659	//   "RESOURCE_NOT_DELETED"
4660	//   "SCHEMA_VALIDATION_IGNORED"
4661	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4662	//   "UNDECLARED_PROPERTIES"
4663	//   "UNREACHABLE"
4664	Code string `json:"code,omitempty"`
4665
4666	// Data: [Output Only] Metadata about this warning in key: value format.
4667	// For example:
4668	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4669	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
4670
4671	// Message: [Output Only] A human-readable description of the warning
4672	// code.
4673	Message string `json:"message,omitempty"`
4674
4675	// ForceSendFields is a list of field names (e.g. "Code") to
4676	// unconditionally include in API requests. By default, fields with
4677	// empty values are omitted from API requests. However, any non-pointer,
4678	// non-interface field appearing in ForceSendFields will be sent to the
4679	// server regardless of whether the field is empty or not. This may be
4680	// used to include empty fields in Patch requests.
4681	ForceSendFields []string `json:"-"`
4682
4683	// NullFields is a list of field names (e.g. "Code") to include in API
4684	// requests with the JSON null value. By default, fields with empty
4685	// values are omitted from API requests. However, any field with an
4686	// empty value appearing in NullFields will be sent to the server as
4687	// null. It is an error if a field in this list has a non-empty value.
4688	// This may be used to include null fields in Patch requests.
4689	NullFields []string `json:"-"`
4690}
4691
4692func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
4693	type NoMethod BackendServiceAggregatedListWarning
4694	raw := NoMethod(*s)
4695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4696}
4697
4698type BackendServiceAggregatedListWarningData struct {
4699	// Key: [Output Only] A key that provides more detail on the warning
4700	// being returned. For example, for warnings where there are no results
4701	// in a list request for a particular zone, this key might be scope and
4702	// the key value might be the zone name. Other examples might be a key
4703	// indicating a deprecated resource and a suggested replacement, or a
4704	// warning about invalid network settings (for example, if an instance
4705	// attempts to perform IP forwarding but is not enabled for IP
4706	// forwarding).
4707	Key string `json:"key,omitempty"`
4708
4709	// Value: [Output Only] A warning data value corresponding to the key.
4710	Value string `json:"value,omitempty"`
4711
4712	// ForceSendFields is a list of field names (e.g. "Key") to
4713	// unconditionally include in API requests. By default, fields with
4714	// empty values are omitted from API requests. However, any non-pointer,
4715	// non-interface field appearing in ForceSendFields will be sent to the
4716	// server regardless of whether the field is empty or not. This may be
4717	// used to include empty fields in Patch requests.
4718	ForceSendFields []string `json:"-"`
4719
4720	// NullFields is a list of field names (e.g. "Key") to include in API
4721	// requests with the JSON null value. By default, fields with empty
4722	// values are omitted from API requests. However, any field with an
4723	// empty value appearing in NullFields will be sent to the server as
4724	// null. It is an error if a field in this list has a non-empty value.
4725	// This may be used to include null fields in Patch requests.
4726	NullFields []string `json:"-"`
4727}
4728
4729func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
4730	type NoMethod BackendServiceAggregatedListWarningData
4731	raw := NoMethod(*s)
4732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4733}
4734
4735// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
4736// for a backend service.
4737type BackendServiceCdnPolicy struct {
4738	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
4739	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
4740
4741	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4742	// signed URL request will be considered fresh. After this time period,
4743	// the response will be revalidated before being served. Defaults to 1hr
4744	// (3600s). When serving responses to signed URL requests, Cloud CDN
4745	// will internally behave as though all responses from this backend had
4746	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4747	// existing Cache-Control header. The actual headers served in responses
4748	// will not be altered.
4749	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4750
4751	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4752	// request URLs.
4753	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4754
4755	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
4756	// unconditionally include in API requests. By default, fields with
4757	// empty values are omitted from API requests. However, any non-pointer,
4758	// non-interface field appearing in ForceSendFields will be sent to the
4759	// server regardless of whether the field is empty or not. This may be
4760	// used to include empty fields in Patch requests.
4761	ForceSendFields []string `json:"-"`
4762
4763	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
4764	// include in API requests with the JSON null value. By default, fields
4765	// with empty values are omitted from API requests. However, any field
4766	// with an empty value appearing in NullFields will be sent to the
4767	// server as null. It is an error if a field in this list has a
4768	// non-empty value. This may be used to include null fields in Patch
4769	// requests.
4770	NullFields []string `json:"-"`
4771}
4772
4773func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
4774	type NoMethod BackendServiceCdnPolicy
4775	raw := NoMethod(*s)
4776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4777}
4778
4779// BackendServiceFailoverPolicy: Applicable only to Failover for
4780// Internal TCP/UDP Load Balancing. On failover or failback, this field
4781// indicates whether connection draining will be honored. GCP has a
4782// fixed connection draining timeout of 10 minutes. A setting of true
4783// terminates existing TCP connections to the active pool during
4784// failover and failback, immediately draining traffic. A setting of
4785// false allows existing TCP connections to persist, even on VMs no
4786// longer in the active pool, for up to the duration of the connection
4787// draining timeout (10 minutes).
4788type BackendServiceFailoverPolicy struct {
4789	// DisableConnectionDrainOnFailover: This can be set to true only if the
4790	// protocol is TCP.
4791	//
4792	// The default is false.
4793	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
4794
4795	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
4796	// TCP/UDP Load Balancing. If set to true, connections to the load
4797	// balancer are dropped when all primary and all backup backend VMs are
4798	// unhealthy. If set to false, connections are distributed among all
4799	// primary VMs when all primary and all backup backend VMs are
4800	// unhealthy.
4801	//
4802	// The default is false.
4803	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
4804
4805	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
4806	// Balancing. The value of the field must be in the range [0, 1]. If the
4807	// value is 0, the load balancer performs a failover when the number of
4808	// healthy primary VMs equals zero. For all other values, the load
4809	// balancer performs a failover when the total number of healthy primary
4810	// VMs is less than this ratio.
4811	FailoverRatio float64 `json:"failoverRatio,omitempty"`
4812
4813	// ForceSendFields is a list of field names (e.g.
4814	// "DisableConnectionDrainOnFailover") to unconditionally include in API
4815	// requests. By default, fields with empty values are omitted from API
4816	// requests. However, any non-pointer, non-interface field appearing in
4817	// ForceSendFields will be sent to the server regardless of whether the
4818	// field is empty or not. This may be used to include empty fields in
4819	// Patch requests.
4820	ForceSendFields []string `json:"-"`
4821
4822	// NullFields is a list of field names (e.g.
4823	// "DisableConnectionDrainOnFailover") to include in API requests with
4824	// the JSON null value. By default, fields with empty values are omitted
4825	// from API requests. However, any field with an empty value appearing
4826	// in NullFields will be sent to the server as null. It is an error if a
4827	// field in this list has a non-empty value. This may be used to include
4828	// null fields in Patch requests.
4829	NullFields []string `json:"-"`
4830}
4831
4832func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
4833	type NoMethod BackendServiceFailoverPolicy
4834	raw := NoMethod(*s)
4835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4836}
4837
4838func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
4839	type NoMethod BackendServiceFailoverPolicy
4840	var s1 struct {
4841		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
4842		*NoMethod
4843	}
4844	s1.NoMethod = (*NoMethod)(s)
4845	if err := json.Unmarshal(data, &s1); err != nil {
4846		return err
4847	}
4848	s.FailoverRatio = float64(s1.FailoverRatio)
4849	return nil
4850}
4851
4852type BackendServiceGroupHealth struct {
4853	// Annotations: Metadata defined as annotations on the network endpoint
4854	// group.
4855	Annotations map[string]string `json:"annotations,omitempty"`
4856
4857	// HealthStatus: Health state of the backend instances or endpoints in
4858	// requested instance or network endpoint group, determined based on
4859	// configured health checks.
4860	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
4861
4862	// Kind: [Output Only] Type of resource. Always
4863	// compute#backendServiceGroupHealth for the health of backend services.
4864	Kind string `json:"kind,omitempty"`
4865
4866	// ServerResponse contains the HTTP response code and headers from the
4867	// server.
4868	googleapi.ServerResponse `json:"-"`
4869
4870	// ForceSendFields is a list of field names (e.g. "Annotations") to
4871	// unconditionally include in API requests. By default, fields with
4872	// empty values are omitted from API requests. However, any non-pointer,
4873	// non-interface field appearing in ForceSendFields will be sent to the
4874	// server regardless of whether the field is empty or not. This may be
4875	// used to include empty fields in Patch requests.
4876	ForceSendFields []string `json:"-"`
4877
4878	// NullFields is a list of field names (e.g. "Annotations") to include
4879	// in API requests with the JSON null value. By default, fields with
4880	// empty values are omitted from API requests. However, any field with
4881	// an empty value appearing in NullFields will be sent to the server as
4882	// null. It is an error if a field in this list has a non-empty value.
4883	// This may be used to include null fields in Patch requests.
4884	NullFields []string `json:"-"`
4885}
4886
4887func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
4888	type NoMethod BackendServiceGroupHealth
4889	raw := NoMethod(*s)
4890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4891}
4892
4893// BackendServiceIAP: Identity-Aware Proxy
4894type BackendServiceIAP struct {
4895	// Enabled: Whether the serving infrastructure will authenticate and
4896	// authorize all incoming requests. If true, the oauth2ClientId and
4897	// oauth2ClientSecret fields must be non-empty.
4898	Enabled bool `json:"enabled,omitempty"`
4899
4900	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
4901	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
4902
4903	// Oauth2ClientSecret: OAuth2 client secret to use for the
4904	// authentication flow. For security reasons, this value cannot be
4905	// retrieved via the API. Instead, the SHA-256 hash of the value is
4906	// returned in the oauth2ClientSecretSha256 field.
4907	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
4908
4909	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
4910	// field oauth2_client_secret above.
4911	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
4912
4913	// ForceSendFields is a list of field names (e.g. "Enabled") to
4914	// unconditionally include in API requests. By default, fields with
4915	// empty values are omitted from API requests. However, any non-pointer,
4916	// non-interface field appearing in ForceSendFields will be sent to the
4917	// server regardless of whether the field is empty or not. This may be
4918	// used to include empty fields in Patch requests.
4919	ForceSendFields []string `json:"-"`
4920
4921	// NullFields is a list of field names (e.g. "Enabled") to include in
4922	// API requests with the JSON null value. By default, fields with empty
4923	// values are omitted from API requests. However, any field with an
4924	// empty value appearing in NullFields will be sent to the server as
4925	// null. It is an error if a field in this list has a non-empty value.
4926	// This may be used to include null fields in Patch requests.
4927	NullFields []string `json:"-"`
4928}
4929
4930func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
4931	type NoMethod BackendServiceIAP
4932	raw := NoMethod(*s)
4933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4934}
4935
4936// BackendServiceList: Contains a list of BackendService resources.
4937type BackendServiceList struct {
4938	// Id: [Output Only] Unique identifier for the resource; defined by the
4939	// server.
4940	Id string `json:"id,omitempty"`
4941
4942	// Items: A list of BackendService resources.
4943	Items []*BackendService `json:"items,omitempty"`
4944
4945	// Kind: [Output Only] Type of resource. Always
4946	// compute#backendServiceList for lists of backend services.
4947	Kind string `json:"kind,omitempty"`
4948
4949	// NextPageToken: [Output Only] This token allows you to get the next
4950	// page of results for list requests. If the number of results is larger
4951	// than maxResults, use the nextPageToken as a value for the query
4952	// parameter pageToken in the next list request. Subsequent list
4953	// requests will have their own nextPageToken to continue paging through
4954	// the results.
4955	NextPageToken string `json:"nextPageToken,omitempty"`
4956
4957	// SelfLink: [Output Only] Server-defined URL for this resource.
4958	SelfLink string `json:"selfLink,omitempty"`
4959
4960	// Warning: [Output Only] Informational warning message.
4961	Warning *BackendServiceListWarning `json:"warning,omitempty"`
4962
4963	// ServerResponse contains the HTTP response code and headers from the
4964	// server.
4965	googleapi.ServerResponse `json:"-"`
4966
4967	// ForceSendFields is a list of field names (e.g. "Id") to
4968	// unconditionally include in API requests. By default, fields with
4969	// empty values are omitted from API requests. However, any non-pointer,
4970	// non-interface field appearing in ForceSendFields will be sent to the
4971	// server regardless of whether the field is empty or not. This may be
4972	// used to include empty fields in Patch requests.
4973	ForceSendFields []string `json:"-"`
4974
4975	// NullFields is a list of field names (e.g. "Id") to include in API
4976	// requests with the JSON null value. By default, fields with empty
4977	// values are omitted from API requests. However, any field with an
4978	// empty value appearing in NullFields will be sent to the server as
4979	// null. It is an error if a field in this list has a non-empty value.
4980	// This may be used to include null fields in Patch requests.
4981	NullFields []string `json:"-"`
4982}
4983
4984func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
4985	type NoMethod BackendServiceList
4986	raw := NoMethod(*s)
4987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4988}
4989
4990// BackendServiceListWarning: [Output Only] Informational warning
4991// message.
4992type BackendServiceListWarning struct {
4993	// Code: [Output Only] A warning code, if applicable. For example,
4994	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4995	// the response.
4996	//
4997	// Possible values:
4998	//   "CLEANUP_FAILED"
4999	//   "DEPRECATED_RESOURCE_USED"
5000	//   "DEPRECATED_TYPE_USED"
5001	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5002	//   "EXPERIMENTAL_TYPE_USED"
5003	//   "EXTERNAL_API_WARNING"
5004	//   "FIELD_VALUE_OVERRIDEN"
5005	//   "INJECTED_KERNELS_DEPRECATED"
5006	//   "MISSING_TYPE_DEPENDENCY"
5007	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5008	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5009	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5010	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5011	//   "NEXT_HOP_NOT_RUNNING"
5012	//   "NOT_CRITICAL_ERROR"
5013	//   "NO_RESULTS_ON_PAGE"
5014	//   "REQUIRED_TOS_AGREEMENT"
5015	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5016	//   "RESOURCE_NOT_DELETED"
5017	//   "SCHEMA_VALIDATION_IGNORED"
5018	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5019	//   "UNDECLARED_PROPERTIES"
5020	//   "UNREACHABLE"
5021	Code string `json:"code,omitempty"`
5022
5023	// Data: [Output Only] Metadata about this warning in key: value format.
5024	// For example:
5025	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5026	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5027
5028	// Message: [Output Only] A human-readable description of the warning
5029	// code.
5030	Message string `json:"message,omitempty"`
5031
5032	// ForceSendFields is a list of field names (e.g. "Code") to
5033	// unconditionally include in API requests. By default, fields with
5034	// empty values are omitted from API requests. However, any non-pointer,
5035	// non-interface field appearing in ForceSendFields will be sent to the
5036	// server regardless of whether the field is empty or not. This may be
5037	// used to include empty fields in Patch requests.
5038	ForceSendFields []string `json:"-"`
5039
5040	// NullFields is a list of field names (e.g. "Code") to include in API
5041	// requests with the JSON null value. By default, fields with empty
5042	// values are omitted from API requests. However, any field with an
5043	// empty value appearing in NullFields will be sent to the server as
5044	// null. It is an error if a field in this list has a non-empty value.
5045	// This may be used to include null fields in Patch requests.
5046	NullFields []string `json:"-"`
5047}
5048
5049func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5050	type NoMethod BackendServiceListWarning
5051	raw := NoMethod(*s)
5052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5053}
5054
5055type BackendServiceListWarningData struct {
5056	// Key: [Output Only] A key that provides more detail on the warning
5057	// being returned. For example, for warnings where there are no results
5058	// in a list request for a particular zone, this key might be scope and
5059	// the key value might be the zone name. Other examples might be a key
5060	// indicating a deprecated resource and a suggested replacement, or a
5061	// warning about invalid network settings (for example, if an instance
5062	// attempts to perform IP forwarding but is not enabled for IP
5063	// forwarding).
5064	Key string `json:"key,omitempty"`
5065
5066	// Value: [Output Only] A warning data value corresponding to the key.
5067	Value string `json:"value,omitempty"`
5068
5069	// ForceSendFields is a list of field names (e.g. "Key") to
5070	// unconditionally include in API requests. By default, fields with
5071	// empty values are omitted from API requests. However, any non-pointer,
5072	// non-interface field appearing in ForceSendFields will be sent to the
5073	// server regardless of whether the field is empty or not. This may be
5074	// used to include empty fields in Patch requests.
5075	ForceSendFields []string `json:"-"`
5076
5077	// NullFields is a list of field names (e.g. "Key") to include in API
5078	// requests with the JSON null value. By default, fields with empty
5079	// values are omitted from API requests. However, any field with an
5080	// empty value appearing in NullFields will be sent to the server as
5081	// null. It is an error if a field in this list has a non-empty value.
5082	// This may be used to include null fields in Patch requests.
5083	NullFields []string `json:"-"`
5084}
5085
5086func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5087	type NoMethod BackendServiceListWarningData
5088	raw := NoMethod(*s)
5089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5090}
5091
5092// BackendServiceLogConfig: The available logging options for the load
5093// balancer traffic served by this backend service.
5094type BackendServiceLogConfig struct {
5095	// Enable: This field denotes whether to enable logging for the load
5096	// balancer traffic served by this backend service.
5097	Enable bool `json:"enable,omitempty"`
5098
5099	// SampleRate: This field can only be specified if logging is enabled
5100	// for this backend service. The value of the field must be in [0, 1].
5101	// This configures the sampling rate of requests to the load balancer
5102	// where 1.0 means all logged requests are reported and 0.0 means no
5103	// logged requests are reported. The default value is 1.0.
5104	SampleRate float64 `json:"sampleRate,omitempty"`
5105
5106	// ForceSendFields is a list of field names (e.g. "Enable") to
5107	// unconditionally include in API requests. By default, fields with
5108	// empty values are omitted from API requests. However, any non-pointer,
5109	// non-interface field appearing in ForceSendFields will be sent to the
5110	// server regardless of whether the field is empty or not. This may be
5111	// used to include empty fields in Patch requests.
5112	ForceSendFields []string `json:"-"`
5113
5114	// NullFields is a list of field names (e.g. "Enable") to include in API
5115	// requests with the JSON null value. By default, fields with empty
5116	// values are omitted from API requests. However, any field with an
5117	// empty value appearing in NullFields will be sent to the server as
5118	// null. It is an error if a field in this list has a non-empty value.
5119	// This may be used to include null fields in Patch requests.
5120	NullFields []string `json:"-"`
5121}
5122
5123func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
5124	type NoMethod BackendServiceLogConfig
5125	raw := NoMethod(*s)
5126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5127}
5128
5129func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
5130	type NoMethod BackendServiceLogConfig
5131	var s1 struct {
5132		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
5133		*NoMethod
5134	}
5135	s1.NoMethod = (*NoMethod)(s)
5136	if err := json.Unmarshal(data, &s1); err != nil {
5137		return err
5138	}
5139	s.SampleRate = float64(s1.SampleRate)
5140	return nil
5141}
5142
5143type BackendServiceReference struct {
5144	BackendService string `json:"backendService,omitempty"`
5145
5146	// ForceSendFields is a list of field names (e.g. "BackendService") to
5147	// unconditionally include in API requests. By default, fields with
5148	// empty values are omitted from API requests. However, any non-pointer,
5149	// non-interface field appearing in ForceSendFields will be sent to the
5150	// server regardless of whether the field is empty or not. This may be
5151	// used to include empty fields in Patch requests.
5152	ForceSendFields []string `json:"-"`
5153
5154	// NullFields is a list of field names (e.g. "BackendService") to
5155	// include in API requests with the JSON null value. By default, fields
5156	// with empty values are omitted from API requests. However, any field
5157	// with an empty value appearing in NullFields will be sent to the
5158	// server as null. It is an error if a field in this list has a
5159	// non-empty value. This may be used to include null fields in Patch
5160	// requests.
5161	NullFields []string `json:"-"`
5162}
5163
5164func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
5165	type NoMethod BackendServiceReference
5166	raw := NoMethod(*s)
5167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5168}
5169
5170type BackendServicesScopedList struct {
5171	// BackendServices: A list of BackendServices contained in this scope.
5172	BackendServices []*BackendService `json:"backendServices,omitempty"`
5173
5174	// Warning: Informational warning which replaces the list of backend
5175	// services when the list is empty.
5176	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
5177
5178	// ForceSendFields is a list of field names (e.g. "BackendServices") to
5179	// unconditionally include in API requests. By default, fields with
5180	// empty values are omitted from API requests. However, any non-pointer,
5181	// non-interface field appearing in ForceSendFields will be sent to the
5182	// server regardless of whether the field is empty or not. This may be
5183	// used to include empty fields in Patch requests.
5184	ForceSendFields []string `json:"-"`
5185
5186	// NullFields is a list of field names (e.g. "BackendServices") to
5187	// include in API requests with the JSON null value. By default, fields
5188	// with empty values are omitted from API requests. However, any field
5189	// with an empty value appearing in NullFields will be sent to the
5190	// server as null. It is an error if a field in this list has a
5191	// non-empty value. This may be used to include null fields in Patch
5192	// requests.
5193	NullFields []string `json:"-"`
5194}
5195
5196func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
5197	type NoMethod BackendServicesScopedList
5198	raw := NoMethod(*s)
5199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5200}
5201
5202// BackendServicesScopedListWarning: Informational warning which
5203// replaces the list of backend services when the list is empty.
5204type BackendServicesScopedListWarning struct {
5205	// Code: [Output Only] A warning code, if applicable. For example,
5206	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5207	// the response.
5208	//
5209	// Possible values:
5210	//   "CLEANUP_FAILED"
5211	//   "DEPRECATED_RESOURCE_USED"
5212	//   "DEPRECATED_TYPE_USED"
5213	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5214	//   "EXPERIMENTAL_TYPE_USED"
5215	//   "EXTERNAL_API_WARNING"
5216	//   "FIELD_VALUE_OVERRIDEN"
5217	//   "INJECTED_KERNELS_DEPRECATED"
5218	//   "MISSING_TYPE_DEPENDENCY"
5219	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5220	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5221	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5222	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5223	//   "NEXT_HOP_NOT_RUNNING"
5224	//   "NOT_CRITICAL_ERROR"
5225	//   "NO_RESULTS_ON_PAGE"
5226	//   "REQUIRED_TOS_AGREEMENT"
5227	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5228	//   "RESOURCE_NOT_DELETED"
5229	//   "SCHEMA_VALIDATION_IGNORED"
5230	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5231	//   "UNDECLARED_PROPERTIES"
5232	//   "UNREACHABLE"
5233	Code string `json:"code,omitempty"`
5234
5235	// Data: [Output Only] Metadata about this warning in key: value format.
5236	// For example:
5237	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5238	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
5239
5240	// Message: [Output Only] A human-readable description of the warning
5241	// code.
5242	Message string `json:"message,omitempty"`
5243
5244	// ForceSendFields is a list of field names (e.g. "Code") to
5245	// unconditionally include in API requests. By default, fields with
5246	// empty values are omitted from API requests. However, any non-pointer,
5247	// non-interface field appearing in ForceSendFields will be sent to the
5248	// server regardless of whether the field is empty or not. This may be
5249	// used to include empty fields in Patch requests.
5250	ForceSendFields []string `json:"-"`
5251
5252	// NullFields is a list of field names (e.g. "Code") to include in API
5253	// requests with the JSON null value. By default, fields with empty
5254	// values are omitted from API requests. However, any field with an
5255	// empty value appearing in NullFields will be sent to the server as
5256	// null. It is an error if a field in this list has a non-empty value.
5257	// This may be used to include null fields in Patch requests.
5258	NullFields []string `json:"-"`
5259}
5260
5261func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
5262	type NoMethod BackendServicesScopedListWarning
5263	raw := NoMethod(*s)
5264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5265}
5266
5267type BackendServicesScopedListWarningData struct {
5268	// Key: [Output Only] A key that provides more detail on the warning
5269	// being returned. For example, for warnings where there are no results
5270	// in a list request for a particular zone, this key might be scope and
5271	// the key value might be the zone name. Other examples might be a key
5272	// indicating a deprecated resource and a suggested replacement, or a
5273	// warning about invalid network settings (for example, if an instance
5274	// attempts to perform IP forwarding but is not enabled for IP
5275	// forwarding).
5276	Key string `json:"key,omitempty"`
5277
5278	// Value: [Output Only] A warning data value corresponding to the key.
5279	Value string `json:"value,omitempty"`
5280
5281	// ForceSendFields is a list of field names (e.g. "Key") to
5282	// unconditionally include in API requests. By default, fields with
5283	// empty values are omitted from API requests. However, any non-pointer,
5284	// non-interface field appearing in ForceSendFields will be sent to the
5285	// server regardless of whether the field is empty or not. This may be
5286	// used to include empty fields in Patch requests.
5287	ForceSendFields []string `json:"-"`
5288
5289	// NullFields is a list of field names (e.g. "Key") to include in API
5290	// requests with the JSON null value. By default, fields with empty
5291	// values are omitted from API requests. However, any field with an
5292	// empty value appearing in NullFields will be sent to the server as
5293	// null. It is an error if a field in this list has a non-empty value.
5294	// This may be used to include null fields in Patch requests.
5295	NullFields []string `json:"-"`
5296}
5297
5298func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
5299	type NoMethod BackendServicesScopedListWarningData
5300	raw := NoMethod(*s)
5301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5302}
5303
5304// Binding: Associates `members` with a `role`.
5305type Binding struct {
5306	// Condition: The condition that is associated with this binding.
5307	//
5308	// If the condition evaluates to `true`, then this binding applies to
5309	// the current request.
5310	//
5311	// If the condition evaluates to `false`, then this binding does not
5312	// apply to the current request. However, a different role binding might
5313	// grant the same role to one or more of the members in this
5314	// binding.
5315	//
5316	// To learn which resources support conditions in their IAM policies,
5317	// see the [IAM
5318	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
5319	// olicies).
5320	Condition *Expr `json:"condition,omitempty"`
5321
5322	// Members: Specifies the identities requesting access for a Cloud
5323	// Platform resource. `members` can have the following values:
5324	//
5325	// * `allUsers`: A special identifier that represents anyone who is on
5326	// the internet; with or without a Google account.
5327	//
5328	// * `allAuthenticatedUsers`: A special identifier that represents
5329	// anyone who is authenticated with a Google account or a service
5330	// account.
5331	//
5332	// * `user:{emailid}`: An email address that represents a specific
5333	// Google account. For example, `alice@example.com` .
5334	//
5335	//
5336	//
5337	// * `serviceAccount:{emailid}`: An email address that represents a
5338	// service account. For example,
5339	// `my-other-app@appspot.gserviceaccount.com`.
5340	//
5341	// * `group:{emailid}`: An email address that represents a Google group.
5342	// For example, `admins@example.com`.
5343	//
5344	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
5345	// unique identifier) representing a user that has been recently
5346	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
5347	// If the user is recovered, this value reverts to `user:{emailid}` and
5348	// the recovered user retains the role in the binding.
5349	//
5350	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
5351	// (plus unique identifier) representing a service account that has been
5352	// recently deleted. For example,
5353	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
5354	// If the service account is undeleted, this value reverts to
5355	// `serviceAccount:{emailid}` and the undeleted service account retains
5356	// the role in the binding.
5357	//
5358	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
5359	// unique identifier) representing a Google group that has been recently
5360	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
5361	// If the group is recovered, this value reverts to `group:{emailid}`
5362	// and the recovered group retains the role in the binding.
5363	//
5364	//
5365	//
5366	// * `domain:{domain}`: The G Suite domain (primary) that represents all
5367	// the users of that domain. For example, `google.com` or `example.com`.
5368	Members []string `json:"members,omitempty"`
5369
5370	// Role: Role that is assigned to `members`. For example,
5371	// `roles/viewer`, `roles/editor`, or `roles/owner`.
5372	Role string `json:"role,omitempty"`
5373
5374	// ForceSendFields is a list of field names (e.g. "Condition") to
5375	// unconditionally include in API requests. By default, fields with
5376	// empty values are omitted from API requests. However, any non-pointer,
5377	// non-interface field appearing in ForceSendFields will be sent to the
5378	// server regardless of whether the field is empty or not. This may be
5379	// used to include empty fields in Patch requests.
5380	ForceSendFields []string `json:"-"`
5381
5382	// NullFields is a list of field names (e.g. "Condition") to include in
5383	// API requests with the JSON null value. By default, fields with empty
5384	// values are omitted from API requests. However, any field with an
5385	// empty value appearing in NullFields will be sent to the server as
5386	// null. It is an error if a field in this list has a non-empty value.
5387	// This may be used to include null fields in Patch requests.
5388	NullFields []string `json:"-"`
5389}
5390
5391func (s *Binding) MarshalJSON() ([]byte, error) {
5392	type NoMethod Binding
5393	raw := NoMethod(*s)
5394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5395}
5396
5397type CacheInvalidationRule struct {
5398	// Host: If set, this invalidation rule will only apply to requests with
5399	// a Host header matching host.
5400	Host string `json:"host,omitempty"`
5401
5402	Path string `json:"path,omitempty"`
5403
5404	// ForceSendFields is a list of field names (e.g. "Host") to
5405	// unconditionally include in API requests. By default, fields with
5406	// empty values are omitted from API requests. However, any non-pointer,
5407	// non-interface field appearing in ForceSendFields will be sent to the
5408	// server regardless of whether the field is empty or not. This may be
5409	// used to include empty fields in Patch requests.
5410	ForceSendFields []string `json:"-"`
5411
5412	// NullFields is a list of field names (e.g. "Host") to include in API
5413	// requests with the JSON null value. By default, fields with empty
5414	// values are omitted from API requests. However, any field with an
5415	// empty value appearing in NullFields will be sent to the server as
5416	// null. It is an error if a field in this list has a non-empty value.
5417	// This may be used to include null fields in Patch requests.
5418	NullFields []string `json:"-"`
5419}
5420
5421func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
5422	type NoMethod CacheInvalidationRule
5423	raw := NoMethod(*s)
5424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5425}
5426
5427// CacheKeyPolicy: Message containing what to include in the cache key
5428// for a request for Cloud CDN.
5429type CacheKeyPolicy struct {
5430	// IncludeHost: If true, requests to different hosts will be cached
5431	// separately.
5432	IncludeHost bool `json:"includeHost,omitempty"`
5433
5434	// IncludeProtocol: If true, http and https requests will be cached
5435	// separately.
5436	IncludeProtocol bool `json:"includeProtocol,omitempty"`
5437
5438	// IncludeQueryString: If true, include query string parameters in the
5439	// cache key according to query_string_whitelist and
5440	// query_string_blacklist. If neither is set, the entire query string
5441	// will be included. If false, the query string will be excluded from
5442	// the cache key entirely.
5443	IncludeQueryString bool `json:"includeQueryString,omitempty"`
5444
5445	// QueryStringBlacklist: Names of query string parameters to exclude in
5446	// cache keys. All other parameters will be included. Either specify
5447	// query_string_whitelist or query_string_blacklist, not both. '&' and
5448	// '=' will be percent encoded and not treated as delimiters.
5449	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
5450
5451	// QueryStringWhitelist: Names of query string parameters to include in
5452	// cache keys. All other parameters will be excluded. Either specify
5453	// query_string_whitelist or query_string_blacklist, not both. '&' and
5454	// '=' will be percent encoded and not treated as delimiters.
5455	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
5456
5457	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
5458	// unconditionally include in API requests. By default, fields with
5459	// empty values are omitted from API requests. However, any non-pointer,
5460	// non-interface field appearing in ForceSendFields will be sent to the
5461	// server regardless of whether the field is empty or not. This may be
5462	// used to include empty fields in Patch requests.
5463	ForceSendFields []string `json:"-"`
5464
5465	// NullFields is a list of field names (e.g. "IncludeHost") to include
5466	// in API requests with the JSON null value. By default, fields with
5467	// empty values are omitted from API requests. However, any field with
5468	// an empty value appearing in NullFields will be sent to the server as
5469	// null. It is an error if a field in this list has a non-empty value.
5470	// This may be used to include null fields in Patch requests.
5471	NullFields []string `json:"-"`
5472}
5473
5474func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
5475	type NoMethod CacheKeyPolicy
5476	raw := NoMethod(*s)
5477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5478}
5479
5480// CircuitBreakers: Settings controlling the volume of connections to a
5481// backend service.
5482type CircuitBreakers struct {
5483	// MaxConnections: The maximum number of connections to the backend
5484	// service. If not specified, there is no limit.
5485	MaxConnections int64 `json:"maxConnections,omitempty"`
5486
5487	// MaxPendingRequests: The maximum number of pending requests allowed to
5488	// the backend service. If not specified, there is no limit.
5489	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
5490
5491	// MaxRequests: The maximum number of parallel requests that allowed to
5492	// the backend service. If not specified, there is no limit.
5493	MaxRequests int64 `json:"maxRequests,omitempty"`
5494
5495	// MaxRequestsPerConnection: Maximum requests for a single connection to
5496	// the backend service. This parameter is respected by both the HTTP/1.1
5497	// and HTTP/2 implementations. If not specified, there is no limit.
5498	// Setting this parameter to 1 will effectively disable keep alive.
5499	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
5500
5501	// MaxRetries: The maximum number of parallel retries allowed to the
5502	// backend cluster. If not specified, the default is 1.
5503	MaxRetries int64 `json:"maxRetries,omitempty"`
5504
5505	// ForceSendFields is a list of field names (e.g. "MaxConnections") to
5506	// unconditionally include in API requests. By default, fields with
5507	// empty values are omitted from API requests. However, any non-pointer,
5508	// non-interface field appearing in ForceSendFields will be sent to the
5509	// server regardless of whether the field is empty or not. This may be
5510	// used to include empty fields in Patch requests.
5511	ForceSendFields []string `json:"-"`
5512
5513	// NullFields is a list of field names (e.g. "MaxConnections") to
5514	// include in API requests with the JSON null value. By default, fields
5515	// with empty values are omitted from API requests. However, any field
5516	// with an empty value appearing in NullFields will be sent to the
5517	// server as null. It is an error if a field in this list has a
5518	// non-empty value. This may be used to include null fields in Patch
5519	// requests.
5520	NullFields []string `json:"-"`
5521}
5522
5523func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
5524	type NoMethod CircuitBreakers
5525	raw := NoMethod(*s)
5526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5527}
5528
5529// Commitment: Represents a regional Commitment resource.
5530//
5531// Creating a commitment resource means that you are purchasing a
5532// committed use contract with an explicit start and end time. You can
5533// create commitments based on vCPUs and memory usage and receive
5534// discounted rates. For full details, read Signing Up for Committed Use
5535// Discounts. (== resource_for {$api_version}.regionCommitments ==)
5536type Commitment struct {
5537	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
5538	// format.
5539	CreationTimestamp string `json:"creationTimestamp,omitempty"`
5540
5541	// Description: An optional description of this resource. Provide this
5542	// property when you create the resource.
5543	Description string `json:"description,omitempty"`
5544
5545	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
5546	// format.
5547	EndTimestamp string `json:"endTimestamp,omitempty"`
5548
5549	// Id: [Output Only] The unique identifier for the resource. This
5550	// identifier is defined by the server.
5551	Id uint64 `json:"id,omitempty,string"`
5552
5553	// Kind: [Output Only] Type of the resource. Always compute#commitment
5554	// for commitments.
5555	Kind string `json:"kind,omitempty"`
5556
5557	// Name: Name of the resource. Provided by the client when the resource
5558	// is created. The name must be 1-63 characters long, and comply with
5559	// RFC1035. Specifically, the name must be 1-63 characters long and
5560	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
5561	// the first character must be a lowercase letter, and all following
5562	// characters must be a dash, lowercase letter, or digit, except the
5563	// last character, which cannot be a dash.
5564	Name string `json:"name,omitempty"`
5565
5566	// Plan: The plan for this commitment, which determines duration and
5567	// discount rate. The currently supported plans are TWELVE_MONTH (1
5568	// year), and THIRTY_SIX_MONTH (3 years).
5569	//
5570	// Possible values:
5571	//   "INVALID"
5572	//   "THIRTY_SIX_MONTH"
5573	//   "TWELVE_MONTH"
5574	Plan string `json:"plan,omitempty"`
5575
5576	// Region: [Output Only] URL of the region where this commitment may be
5577	// used.
5578	Region string `json:"region,omitempty"`
5579
5580	// Reservations: List of reservations in this commitment.
5581	Reservations []*Reservation `json:"reservations,omitempty"`
5582
5583	// Resources: A list of commitment amounts for particular resources.
5584	// Note that VCPU and MEMORY resource commitments must occur together.
5585	Resources []*ResourceCommitment `json:"resources,omitempty"`
5586
5587	// SelfLink: [Output Only] Server-defined URL for the resource.
5588	SelfLink string `json:"selfLink,omitempty"`
5589
5590	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
5591	// format.
5592	StartTimestamp string `json:"startTimestamp,omitempty"`
5593
5594	// Status: [Output Only] Status of the commitment with regards to
5595	// eventual expiration (each commitment has an end date defined). One of
5596	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
5597	//
5598	// Possible values:
5599	//   "ACTIVE"
5600	//   "CREATING"
5601	//   "EXPIRED"
5602	//   "NOT_YET_ACTIVE"
5603	Status string `json:"status,omitempty"`
5604
5605	// StatusMessage: [Output Only] An optional, human-readable explanation
5606	// of the status.
5607	StatusMessage string `json:"statusMessage,omitempty"`
5608
5609	// ServerResponse contains the HTTP response code and headers from the
5610	// server.
5611	googleapi.ServerResponse `json:"-"`
5612
5613	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
5614	// to unconditionally include in API requests. By default, fields with
5615	// empty values are omitted from API requests. However, any non-pointer,
5616	// non-interface field appearing in ForceSendFields will be sent to the
5617	// server regardless of whether the field is empty or not. This may be
5618	// used to include empty fields in Patch requests.
5619	ForceSendFields []string `json:"-"`
5620
5621	// NullFields is a list of field names (e.g. "CreationTimestamp") to
5622	// include in API requests with the JSON null value. By default, fields
5623	// with empty values are omitted from API requests. However, any field
5624	// with an empty value appearing in NullFields will be sent to the
5625	// server as null. It is an error if a field in this list has a
5626	// non-empty value. This may be used to include null fields in Patch
5627	// requests.
5628	NullFields []string `json:"-"`
5629}
5630
5631func (s *Commitment) MarshalJSON() ([]byte, error) {
5632	type NoMethod Commitment
5633	raw := NoMethod(*s)
5634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5635}
5636
5637type CommitmentAggregatedList struct {
5638	// Id: [Output Only] Unique identifier for the resource; defined by the
5639	// server.
5640	Id string `json:"id,omitempty"`
5641
5642	// Items: A list of CommitmentsScopedList resources.
5643	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
5644
5645	// Kind: [Output Only] Type of resource. Always
5646	// compute#commitmentAggregatedList for aggregated lists of commitments.
5647	Kind string `json:"kind,omitempty"`
5648
5649	// NextPageToken: [Output Only] This token allows you to get the next
5650	// page of results for list requests. If the number of results is larger
5651	// than maxResults, use the nextPageToken as a value for the query
5652	// parameter pageToken in the next list request. Subsequent list
5653	// requests will have their own nextPageToken to continue paging through
5654	// the results.
5655	NextPageToken string `json:"nextPageToken,omitempty"`
5656
5657	// SelfLink: [Output Only] Server-defined URL for this resource.
5658	SelfLink string `json:"selfLink,omitempty"`
5659
5660	// Warning: [Output Only] Informational warning message.
5661	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
5662
5663	// ServerResponse contains the HTTP response code and headers from the
5664	// server.
5665	googleapi.ServerResponse `json:"-"`
5666
5667	// ForceSendFields is a list of field names (e.g. "Id") to
5668	// unconditionally include in API requests. By default, fields with
5669	// empty values are omitted from API requests. However, any non-pointer,
5670	// non-interface field appearing in ForceSendFields will be sent to the
5671	// server regardless of whether the field is empty or not. This may be
5672	// used to include empty fields in Patch requests.
5673	ForceSendFields []string `json:"-"`
5674
5675	// NullFields is a list of field names (e.g. "Id") to include in API
5676	// requests with the JSON null value. By default, fields with empty
5677	// values are omitted from API requests. However, any field with an
5678	// empty value appearing in NullFields will be sent to the server as
5679	// null. It is an error if a field in this list has a non-empty value.
5680	// This may be used to include null fields in Patch requests.
5681	NullFields []string `json:"-"`
5682}
5683
5684func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
5685	type NoMethod CommitmentAggregatedList
5686	raw := NoMethod(*s)
5687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5688}
5689
5690// CommitmentAggregatedListWarning: [Output Only] Informational warning
5691// message.
5692type CommitmentAggregatedListWarning struct {
5693	// Code: [Output Only] A warning code, if applicable. For example,
5694	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5695	// the response.
5696	//
5697	// Possible values:
5698	//   "CLEANUP_FAILED"
5699	//   "DEPRECATED_RESOURCE_USED"
5700	//   "DEPRECATED_TYPE_USED"
5701	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5702	//   "EXPERIMENTAL_TYPE_USED"
5703	//   "EXTERNAL_API_WARNING"
5704	//   "FIELD_VALUE_OVERRIDEN"
5705	//   "INJECTED_KERNELS_DEPRECATED"
5706	//   "MISSING_TYPE_DEPENDENCY"
5707	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5708	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5709	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5710	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5711	//   "NEXT_HOP_NOT_RUNNING"
5712	//   "NOT_CRITICAL_ERROR"
5713	//   "NO_RESULTS_ON_PAGE"
5714	//   "REQUIRED_TOS_AGREEMENT"
5715	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5716	//   "RESOURCE_NOT_DELETED"
5717	//   "SCHEMA_VALIDATION_IGNORED"
5718	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5719	//   "UNDECLARED_PROPERTIES"
5720	//   "UNREACHABLE"
5721	Code string `json:"code,omitempty"`
5722
5723	// Data: [Output Only] Metadata about this warning in key: value format.
5724	// For example:
5725	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5726	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
5727
5728	// Message: [Output Only] A human-readable description of the warning
5729	// code.
5730	Message string `json:"message,omitempty"`
5731
5732	// ForceSendFields is a list of field names (e.g. "Code") to
5733	// unconditionally include in API requests. By default, fields with
5734	// empty values are omitted from API requests. However, any non-pointer,
5735	// non-interface field appearing in ForceSendFields will be sent to the
5736	// server regardless of whether the field is empty or not. This may be
5737	// used to include empty fields in Patch requests.
5738	ForceSendFields []string `json:"-"`
5739
5740	// NullFields is a list of field names (e.g. "Code") to include in API
5741	// requests with the JSON null value. By default, fields with empty
5742	// values are omitted from API requests. However, any field with an
5743	// empty value appearing in NullFields will be sent to the server as
5744	// null. It is an error if a field in this list has a non-empty value.
5745	// This may be used to include null fields in Patch requests.
5746	NullFields []string `json:"-"`
5747}
5748
5749func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
5750	type NoMethod CommitmentAggregatedListWarning
5751	raw := NoMethod(*s)
5752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5753}
5754
5755type CommitmentAggregatedListWarningData struct {
5756	// Key: [Output Only] A key that provides more detail on the warning
5757	// being returned. For example, for warnings where there are no results
5758	// in a list request for a particular zone, this key might be scope and
5759	// the key value might be the zone name. Other examples might be a key
5760	// indicating a deprecated resource and a suggested replacement, or a
5761	// warning about invalid network settings (for example, if an instance
5762	// attempts to perform IP forwarding but is not enabled for IP
5763	// forwarding).
5764	Key string `json:"key,omitempty"`
5765
5766	// Value: [Output Only] A warning data value corresponding to the key.
5767	Value string `json:"value,omitempty"`
5768
5769	// ForceSendFields is a list of field names (e.g. "Key") to
5770	// unconditionally include in API requests. By default, fields with
5771	// empty values are omitted from API requests. However, any non-pointer,
5772	// non-interface field appearing in ForceSendFields will be sent to the
5773	// server regardless of whether the field is empty or not. This may be
5774	// used to include empty fields in Patch requests.
5775	ForceSendFields []string `json:"-"`
5776
5777	// NullFields is a list of field names (e.g. "Key") to include in API
5778	// requests with the JSON null value. By default, fields with empty
5779	// values are omitted from API requests. However, any field with an
5780	// empty value appearing in NullFields will be sent to the server as
5781	// null. It is an error if a field in this list has a non-empty value.
5782	// This may be used to include null fields in Patch requests.
5783	NullFields []string `json:"-"`
5784}
5785
5786func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5787	type NoMethod CommitmentAggregatedListWarningData
5788	raw := NoMethod(*s)
5789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5790}
5791
5792// CommitmentList: Contains a list of Commitment resources.
5793type CommitmentList struct {
5794	// Id: [Output Only] Unique identifier for the resource; defined by the
5795	// server.
5796	Id string `json:"id,omitempty"`
5797
5798	// Items: A list of Commitment resources.
5799	Items []*Commitment `json:"items,omitempty"`
5800
5801	// Kind: [Output Only] Type of resource. Always compute#commitmentList
5802	// for lists of commitments.
5803	Kind string `json:"kind,omitempty"`
5804
5805	// NextPageToken: [Output Only] This token allows you to get the next
5806	// page of results for list requests. If the number of results is larger
5807	// than maxResults, use the nextPageToken as a value for the query
5808	// parameter pageToken in the next list request. Subsequent list
5809	// requests will have their own nextPageToken to continue paging through
5810	// the results.
5811	NextPageToken string `json:"nextPageToken,omitempty"`
5812
5813	// SelfLink: [Output Only] Server-defined URL for this resource.
5814	SelfLink string `json:"selfLink,omitempty"`
5815
5816	// Warning: [Output Only] Informational warning message.
5817	Warning *CommitmentListWarning `json:"warning,omitempty"`
5818
5819	// ServerResponse contains the HTTP response code and headers from the
5820	// server.
5821	googleapi.ServerResponse `json:"-"`
5822
5823	// ForceSendFields is a list of field names (e.g. "Id") to
5824	// unconditionally include in API requests. By default, fields with
5825	// empty values are omitted from API requests. However, any non-pointer,
5826	// non-interface field appearing in ForceSendFields will be sent to the
5827	// server regardless of whether the field is empty or not. This may be
5828	// used to include empty fields in Patch requests.
5829	ForceSendFields []string `json:"-"`
5830
5831	// NullFields is a list of field names (e.g. "Id") to include in API
5832	// requests with the JSON null value. By default, fields with empty
5833	// values are omitted from API requests. However, any field with an
5834	// empty value appearing in NullFields will be sent to the server as
5835	// null. It is an error if a field in this list has a non-empty value.
5836	// This may be used to include null fields in Patch requests.
5837	NullFields []string `json:"-"`
5838}
5839
5840func (s *CommitmentList) MarshalJSON() ([]byte, error) {
5841	type NoMethod CommitmentList
5842	raw := NoMethod(*s)
5843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5844}
5845
5846// CommitmentListWarning: [Output Only] Informational warning message.
5847type CommitmentListWarning struct {
5848	// Code: [Output Only] A warning code, if applicable. For example,
5849	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5850	// the response.
5851	//
5852	// Possible values:
5853	//   "CLEANUP_FAILED"
5854	//   "DEPRECATED_RESOURCE_USED"
5855	//   "DEPRECATED_TYPE_USED"
5856	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5857	//   "EXPERIMENTAL_TYPE_USED"
5858	//   "EXTERNAL_API_WARNING"
5859	//   "FIELD_VALUE_OVERRIDEN"
5860	//   "INJECTED_KERNELS_DEPRECATED"
5861	//   "MISSING_TYPE_DEPENDENCY"
5862	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5863	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5864	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5865	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5866	//   "NEXT_HOP_NOT_RUNNING"
5867	//   "NOT_CRITICAL_ERROR"
5868	//   "NO_RESULTS_ON_PAGE"
5869	//   "REQUIRED_TOS_AGREEMENT"
5870	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5871	//   "RESOURCE_NOT_DELETED"
5872	//   "SCHEMA_VALIDATION_IGNORED"
5873	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5874	//   "UNDECLARED_PROPERTIES"
5875	//   "UNREACHABLE"
5876	Code string `json:"code,omitempty"`
5877
5878	// Data: [Output Only] Metadata about this warning in key: value format.
5879	// For example:
5880	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5881	Data []*CommitmentListWarningData `json:"data,omitempty"`
5882
5883	// Message: [Output Only] A human-readable description of the warning
5884	// code.
5885	Message string `json:"message,omitempty"`
5886
5887	// ForceSendFields is a list of field names (e.g. "Code") to
5888	// unconditionally include in API requests. By default, fields with
5889	// empty values are omitted from API requests. However, any non-pointer,
5890	// non-interface field appearing in ForceSendFields will be sent to the
5891	// server regardless of whether the field is empty or not. This may be
5892	// used to include empty fields in Patch requests.
5893	ForceSendFields []string `json:"-"`
5894
5895	// NullFields is a list of field names (e.g. "Code") to include in API
5896	// requests with the JSON null value. By default, fields with empty
5897	// values are omitted from API requests. However, any field with an
5898	// empty value appearing in NullFields will be sent to the server as
5899	// null. It is an error if a field in this list has a non-empty value.
5900	// This may be used to include null fields in Patch requests.
5901	NullFields []string `json:"-"`
5902}
5903
5904func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
5905	type NoMethod CommitmentListWarning
5906	raw := NoMethod(*s)
5907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5908}
5909
5910type CommitmentListWarningData struct {
5911	// Key: [Output Only] A key that provides more detail on the warning
5912	// being returned. For example, for warnings where there are no results
5913	// in a list request for a particular zone, this key might be scope and
5914	// the key value might be the zone name. Other examples might be a key
5915	// indicating a deprecated resource and a suggested replacement, or a
5916	// warning about invalid network settings (for example, if an instance
5917	// attempts to perform IP forwarding but is not enabled for IP
5918	// forwarding).
5919	Key string `json:"key,omitempty"`
5920
5921	// Value: [Output Only] A warning data value corresponding to the key.
5922	Value string `json:"value,omitempty"`
5923
5924	// ForceSendFields is a list of field names (e.g. "Key") to
5925	// unconditionally include in API requests. By default, fields with
5926	// empty values are omitted from API requests. However, any non-pointer,
5927	// non-interface field appearing in ForceSendFields will be sent to the
5928	// server regardless of whether the field is empty or not. This may be
5929	// used to include empty fields in Patch requests.
5930	ForceSendFields []string `json:"-"`
5931
5932	// NullFields is a list of field names (e.g. "Key") to include in API
5933	// requests with the JSON null value. By default, fields with empty
5934	// values are omitted from API requests. However, any field with an
5935	// empty value appearing in NullFields will be sent to the server as
5936	// null. It is an error if a field in this list has a non-empty value.
5937	// This may be used to include null fields in Patch requests.
5938	NullFields []string `json:"-"`
5939}
5940
5941func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
5942	type NoMethod CommitmentListWarningData
5943	raw := NoMethod(*s)
5944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5945}
5946
5947type CommitmentsScopedList struct {
5948	// Commitments: [Output Only] A list of commitments contained in this
5949	// scope.
5950	Commitments []*Commitment `json:"commitments,omitempty"`
5951
5952	// Warning: [Output Only] Informational warning which replaces the list
5953	// of commitments when the list is empty.
5954	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
5955
5956	// ForceSendFields is a list of field names (e.g. "Commitments") to
5957	// unconditionally include in API requests. By default, fields with
5958	// empty values are omitted from API requests. However, any non-pointer,
5959	// non-interface field appearing in ForceSendFields will be sent to the
5960	// server regardless of whether the field is empty or not. This may be
5961	// used to include empty fields in Patch requests.
5962	ForceSendFields []string `json:"-"`
5963
5964	// NullFields is a list of field names (e.g. "Commitments") to include
5965	// in API requests with the JSON null value. By default, fields with
5966	// empty values are omitted from API requests. However, any field with
5967	// an empty value appearing in NullFields will be sent to the server as
5968	// null. It is an error if a field in this list has a non-empty value.
5969	// This may be used to include null fields in Patch requests.
5970	NullFields []string `json:"-"`
5971}
5972
5973func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
5974	type NoMethod CommitmentsScopedList
5975	raw := NoMethod(*s)
5976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5977}
5978
5979// CommitmentsScopedListWarning: [Output Only] Informational warning
5980// which replaces the list of commitments when the list is empty.
5981type CommitmentsScopedListWarning struct {
5982	// Code: [Output Only] A warning code, if applicable. For example,
5983	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5984	// the response.
5985	//
5986	// Possible values:
5987	//   "CLEANUP_FAILED"
5988	//   "DEPRECATED_RESOURCE_USED"
5989	//   "DEPRECATED_TYPE_USED"
5990	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5991	//   "EXPERIMENTAL_TYPE_USED"
5992	//   "EXTERNAL_API_WARNING"
5993	//   "FIELD_VALUE_OVERRIDEN"
5994	//   "INJECTED_KERNELS_DEPRECATED"
5995	//   "MISSING_TYPE_DEPENDENCY"
5996	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5997	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5998	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5999	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6000	//   "NEXT_HOP_NOT_RUNNING"
6001	//   "NOT_CRITICAL_ERROR"
6002	//   "NO_RESULTS_ON_PAGE"
6003	//   "REQUIRED_TOS_AGREEMENT"
6004	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6005	//   "RESOURCE_NOT_DELETED"
6006	//   "SCHEMA_VALIDATION_IGNORED"
6007	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6008	//   "UNDECLARED_PROPERTIES"
6009	//   "UNREACHABLE"
6010	Code string `json:"code,omitempty"`
6011
6012	// Data: [Output Only] Metadata about this warning in key: value format.
6013	// For example:
6014	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6015	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
6016
6017	// Message: [Output Only] A human-readable description of the warning
6018	// code.
6019	Message string `json:"message,omitempty"`
6020
6021	// ForceSendFields is a list of field names (e.g. "Code") to
6022	// unconditionally include in API requests. By default, fields with
6023	// empty values are omitted from API requests. However, any non-pointer,
6024	// non-interface field appearing in ForceSendFields will be sent to the
6025	// server regardless of whether the field is empty or not. This may be
6026	// used to include empty fields in Patch requests.
6027	ForceSendFields []string `json:"-"`
6028
6029	// NullFields is a list of field names (e.g. "Code") to include in API
6030	// requests with the JSON null value. By default, fields with empty
6031	// values are omitted from API requests. However, any field with an
6032	// empty value appearing in NullFields will be sent to the server as
6033	// null. It is an error if a field in this list has a non-empty value.
6034	// This may be used to include null fields in Patch requests.
6035	NullFields []string `json:"-"`
6036}
6037
6038func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
6039	type NoMethod CommitmentsScopedListWarning
6040	raw := NoMethod(*s)
6041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6042}
6043
6044type CommitmentsScopedListWarningData struct {
6045	// Key: [Output Only] A key that provides more detail on the warning
6046	// being returned. For example, for warnings where there are no results
6047	// in a list request for a particular zone, this key might be scope and
6048	// the key value might be the zone name. Other examples might be a key
6049	// indicating a deprecated resource and a suggested replacement, or a
6050	// warning about invalid network settings (for example, if an instance
6051	// attempts to perform IP forwarding but is not enabled for IP
6052	// forwarding).
6053	Key string `json:"key,omitempty"`
6054
6055	// Value: [Output Only] A warning data value corresponding to the key.
6056	Value string `json:"value,omitempty"`
6057
6058	// ForceSendFields is a list of field names (e.g. "Key") to
6059	// unconditionally include in API requests. By default, fields with
6060	// empty values are omitted from API requests. However, any non-pointer,
6061	// non-interface field appearing in ForceSendFields will be sent to the
6062	// server regardless of whether the field is empty or not. This may be
6063	// used to include empty fields in Patch requests.
6064	ForceSendFields []string `json:"-"`
6065
6066	// NullFields is a list of field names (e.g. "Key") to include in API
6067	// requests with the JSON null value. By default, fields with empty
6068	// values are omitted from API requests. However, any field with an
6069	// empty value appearing in NullFields will be sent to the server as
6070	// null. It is an error if a field in this list has a non-empty value.
6071	// This may be used to include null fields in Patch requests.
6072	NullFields []string `json:"-"`
6073}
6074
6075func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
6076	type NoMethod CommitmentsScopedListWarningData
6077	raw := NoMethod(*s)
6078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6079}
6080
6081// Condition: A condition to be met.
6082type Condition struct {
6083	// Iam: Trusted attributes supplied by the IAM system.
6084	//
6085	// Possible values:
6086	//   "APPROVER"
6087	//   "ATTRIBUTION"
6088	//   "AUTHORITY"
6089	//   "CREDENTIALS_TYPE"
6090	//   "JUSTIFICATION_TYPE"
6091	//   "NO_ATTR"
6092	//   "SECURITY_REALM"
6093	Iam string `json:"iam,omitempty"`
6094
6095	// Op: An operator to apply the subject with.
6096	//
6097	// Possible values:
6098	//   "DISCHARGED"
6099	//   "EQUALS"
6100	//   "IN"
6101	//   "NOT_EQUALS"
6102	//   "NOT_IN"
6103	//   "NO_OP"
6104	Op string `json:"op,omitempty"`
6105
6106	// Svc: Trusted attributes discharged by the service.
6107	Svc string `json:"svc,omitempty"`
6108
6109	// Sys: Trusted attributes supplied by any service that owns resources
6110	// and uses the IAM system for access control.
6111	//
6112	// Possible values:
6113	//   "IP"
6114	//   "NAME"
6115	//   "NO_ATTR"
6116	//   "REGION"
6117	//   "SERVICE"
6118	Sys string `json:"sys,omitempty"`
6119
6120	// Values: The objects of the condition.
6121	Values []string `json:"values,omitempty"`
6122
6123	// ForceSendFields is a list of field names (e.g. "Iam") to
6124	// unconditionally include in API requests. By default, fields with
6125	// empty values are omitted from API requests. However, any non-pointer,
6126	// non-interface field appearing in ForceSendFields will be sent to the
6127	// server regardless of whether the field is empty or not. This may be
6128	// used to include empty fields in Patch requests.
6129	ForceSendFields []string `json:"-"`
6130
6131	// NullFields is a list of field names (e.g. "Iam") to include in API
6132	// requests with the JSON null value. By default, fields with empty
6133	// values are omitted from API requests. However, any field with an
6134	// empty value appearing in NullFields will be sent to the server as
6135	// null. It is an error if a field in this list has a non-empty value.
6136	// This may be used to include null fields in Patch requests.
6137	NullFields []string `json:"-"`
6138}
6139
6140func (s *Condition) MarshalJSON() ([]byte, error) {
6141	type NoMethod Condition
6142	raw := NoMethod(*s)
6143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6144}
6145
6146// ConnectionDraining: Message containing connection draining
6147// configuration.
6148type ConnectionDraining struct {
6149	// DrainingTimeoutSec: The amount of time in seconds to allow existing
6150	// connections to persist while on unhealthy backend VMs. Only
6151	// applicable if the protocol is not UDP. The valid range is [0, 3600].
6152	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
6153
6154	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
6155	// to unconditionally include in API requests. By default, fields with
6156	// empty values are omitted from API requests. However, any non-pointer,
6157	// non-interface field appearing in ForceSendFields will be sent to the
6158	// server regardless of whether the field is empty or not. This may be
6159	// used to include empty fields in Patch requests.
6160	ForceSendFields []string `json:"-"`
6161
6162	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
6163	// include in API requests with the JSON null value. By default, fields
6164	// with empty values are omitted from API requests. However, any field
6165	// with an empty value appearing in NullFields will be sent to the
6166	// server as null. It is an error if a field in this list has a
6167	// non-empty value. This may be used to include null fields in Patch
6168	// requests.
6169	NullFields []string `json:"-"`
6170}
6171
6172func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
6173	type NoMethod ConnectionDraining
6174	raw := NoMethod(*s)
6175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6176}
6177
6178// ConsistentHashLoadBalancerSettings: This message defines settings for
6179// a consistent hash style load balancer.
6180type ConsistentHashLoadBalancerSettings struct {
6181	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
6182	// cookie that will be used as the hash key for the consistent hash load
6183	// balancer. If the cookie is not present, it will be generated. This
6184	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
6185	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
6186
6187	// HttpHeaderName: The hash based on the value of the specified header
6188	// field. This field is applicable if the sessionAffinity is set to
6189	// HEADER_FIELD.
6190	HttpHeaderName string `json:"httpHeaderName,omitempty"`
6191
6192	// MinimumRingSize: The minimum number of virtual nodes to use for the
6193	// hash ring. Defaults to 1024. Larger ring sizes result in more
6194	// granular load distributions. If the number of hosts in the load
6195	// balancing pool is larger than the ring size, each host will be
6196	// assigned a single virtual node.
6197	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
6198
6199	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
6200	// unconditionally include in API requests. By default, fields with
6201	// empty values are omitted from API requests. However, any non-pointer,
6202	// non-interface field appearing in ForceSendFields will be sent to the
6203	// server regardless of whether the field is empty or not. This may be
6204	// used to include empty fields in Patch requests.
6205	ForceSendFields []string `json:"-"`
6206
6207	// NullFields is a list of field names (e.g. "HttpCookie") to include in
6208	// API requests with the JSON null value. By default, fields with empty
6209	// values are omitted from API requests. However, any field with an
6210	// empty value appearing in NullFields will be sent to the server as
6211	// null. It is an error if a field in this list has a non-empty value.
6212	// This may be used to include null fields in Patch requests.
6213	NullFields []string `json:"-"`
6214}
6215
6216func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
6217	type NoMethod ConsistentHashLoadBalancerSettings
6218	raw := NoMethod(*s)
6219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6220}
6221
6222// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
6223// the HTTP Cookie on which the hash function is based for load
6224// balancing policies that use a consistent hash.
6225type ConsistentHashLoadBalancerSettingsHttpCookie struct {
6226	// Name: Name of the cookie.
6227	Name string `json:"name,omitempty"`
6228
6229	// Path: Path to set for the cookie.
6230	Path string `json:"path,omitempty"`
6231
6232	// Ttl: Lifetime of the cookie.
6233	Ttl *Duration `json:"ttl,omitempty"`
6234
6235	// ForceSendFields is a list of field names (e.g. "Name") to
6236	// unconditionally include in API requests. By default, fields with
6237	// empty values are omitted from API requests. However, any non-pointer,
6238	// non-interface field appearing in ForceSendFields will be sent to the
6239	// server regardless of whether the field is empty or not. This may be
6240	// used to include empty fields in Patch requests.
6241	ForceSendFields []string `json:"-"`
6242
6243	// NullFields is a list of field names (e.g. "Name") to include in API
6244	// requests with the JSON null value. By default, fields with empty
6245	// values are omitted from API requests. However, any field with an
6246	// empty value appearing in NullFields will be sent to the server as
6247	// null. It is an error if a field in this list has a non-empty value.
6248	// This may be used to include null fields in Patch requests.
6249	NullFields []string `json:"-"`
6250}
6251
6252func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
6253	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
6254	raw := NoMethod(*s)
6255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6256}
6257
6258// CorsPolicy: The specification for allowing client side cross-origin
6259// requests. Please see W3C Recommendation for Cross Origin Resource
6260// Sharing
6261type CorsPolicy struct {
6262	// AllowCredentials: In response to a preflight request, setting this to
6263	// true indicates that the actual request can include user credentials.
6264	// This translates to the Access-Control-Allow-Credentials
6265	// header.
6266	// Default is false.
6267	AllowCredentials bool `json:"allowCredentials,omitempty"`
6268
6269	// AllowHeaders: Specifies the content for the
6270	// Access-Control-Allow-Headers header.
6271	AllowHeaders []string `json:"allowHeaders,omitempty"`
6272
6273	// AllowMethods: Specifies the content for the
6274	// Access-Control-Allow-Methods header.
6275	AllowMethods []string `json:"allowMethods,omitempty"`
6276
6277	// AllowOriginRegexes: Specifies the regualar expression patterns that
6278	// match allowed origins. For regular expression grammar please see
6279	// en.cppreference.com/w/cpp/regex/ecmascript
6280	// An origin is allowed if it matches either an item in allowOrigins or
6281	// an item in allowOriginRegexes.
6282	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
6283
6284	// AllowOrigins: Specifies the list of origins that will be allowed to
6285	// do CORS requests.
6286	// An origin is allowed if it matches either an item in allowOrigins or
6287	// an item in allowOriginRegexes.
6288	AllowOrigins []string `json:"allowOrigins,omitempty"`
6289
6290	// Disabled: If true, specifies the CORS policy is disabled. The default
6291	// value of false, which indicates that the CORS policy is in effect.
6292	Disabled bool `json:"disabled,omitempty"`
6293
6294	// ExposeHeaders: Specifies the content for the
6295	// Access-Control-Expose-Headers header.
6296	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
6297
6298	// MaxAge: Specifies how long results of a preflight request can be
6299	// cached in seconds. This translates to the Access-Control-Max-Age
6300	// header.
6301	MaxAge int64 `json:"maxAge,omitempty"`
6302
6303	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
6304	// unconditionally include in API requests. By default, fields with
6305	// empty values are omitted from API requests. However, any non-pointer,
6306	// non-interface field appearing in ForceSendFields will be sent to the
6307	// server regardless of whether the field is empty or not. This may be
6308	// used to include empty fields in Patch requests.
6309	ForceSendFields []string `json:"-"`
6310
6311	// NullFields is a list of field names (e.g. "AllowCredentials") to
6312	// include in API requests with the JSON null value. By default, fields
6313	// with empty values are omitted from API requests. However, any field
6314	// with an empty value appearing in NullFields will be sent to the
6315	// server as null. It is an error if a field in this list has a
6316	// non-empty value. This may be used to include null fields in Patch
6317	// requests.
6318	NullFields []string `json:"-"`
6319}
6320
6321func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
6322	type NoMethod CorsPolicy
6323	raw := NoMethod(*s)
6324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6325}
6326
6327// CustomerEncryptionKey: Represents a customer-supplied encryption key
6328type CustomerEncryptionKey struct {
6329	// KmsKeyName: The name of the encryption key that is stored in Google
6330	// Cloud KMS.
6331	KmsKeyName string `json:"kmsKeyName,omitempty"`
6332
6333	// KmsKeyServiceAccount: The service account being used for the
6334	// encryption request for the given KMS key. If absent, the Compute
6335	// Engine default service account is used.
6336	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
6337
6338	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
6339	// in RFC 4648 base64 to either encrypt or decrypt this resource.
6340	RawKey string `json:"rawKey,omitempty"`
6341
6342	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
6343	// customer-supplied encryption key that protects this resource.
6344	Sha256 string `json:"sha256,omitempty"`
6345
6346	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
6347	// unconditionally include in API requests. By default, fields with
6348	// empty values are omitted from API requests. However, any non-pointer,
6349	// non-interface field appearing in ForceSendFields will be sent to the
6350	// server regardless of whether the field is empty or not. This may be
6351	// used to include empty fields in Patch requests.
6352	ForceSendFields []string `json:"-"`
6353
6354	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
6355	// API requests with the JSON null value. By default, fields with empty
6356	// values are omitted from API requests. However, any field with an
6357	// empty value appearing in NullFields will be sent to the server as
6358	// null. It is an error if a field in this list has a non-empty value.
6359	// This may be used to include null fields in Patch requests.
6360	NullFields []string `json:"-"`
6361}
6362
6363func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
6364	type NoMethod CustomerEncryptionKey
6365	raw := NoMethod(*s)
6366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6367}
6368
6369type CustomerEncryptionKeyProtectedDisk struct {
6370	// DiskEncryptionKey: Decrypts data associated with the disk with a
6371	// customer-supplied encryption key.
6372	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
6373
6374	// Source: Specifies a valid partial or full URL to an existing
6375	// Persistent Disk resource. This field is only applicable for
6376	// persistent disks.
6377	Source string `json:"source,omitempty"`
6378
6379	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
6380	// to unconditionally include in API requests. By default, fields with
6381	// empty values are omitted from API requests. However, any non-pointer,
6382	// non-interface field appearing in ForceSendFields will be sent to the
6383	// server regardless of whether the field is empty or not. This may be
6384	// used to include empty fields in Patch requests.
6385	ForceSendFields []string `json:"-"`
6386
6387	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
6388	// include in API requests with the JSON null value. By default, fields
6389	// with empty values are omitted from API requests. However, any field
6390	// with an empty value appearing in NullFields will be sent to the
6391	// server as null. It is an error if a field in this list has a
6392	// non-empty value. This may be used to include null fields in Patch
6393	// requests.
6394	NullFields []string `json:"-"`
6395}
6396
6397func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
6398	type NoMethod CustomerEncryptionKeyProtectedDisk
6399	raw := NoMethod(*s)
6400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6401}
6402
6403// DeprecationStatus: Deprecation status for a public resource.
6404type DeprecationStatus struct {
6405	// Deleted: An optional RFC3339 timestamp on or after which the state of
6406	// this resource is intended to change to DELETED. This is only
6407	// informational and the status will not change unless the client
6408	// explicitly changes it.
6409	Deleted string `json:"deleted,omitempty"`
6410
6411	// Deprecated: An optional RFC3339 timestamp on or after which the state
6412	// of this resource is intended to change to DEPRECATED. This is only
6413	// informational and the status will not change unless the client
6414	// explicitly changes it.
6415	Deprecated string `json:"deprecated,omitempty"`
6416
6417	// Obsolete: An optional RFC3339 timestamp on or after which the state
6418	// of this resource is intended to change to OBSOLETE. This is only
6419	// informational and the status will not change unless the client
6420	// explicitly changes it.
6421	Obsolete string `json:"obsolete,omitempty"`
6422
6423	// Replacement: The URL of the suggested replacement for a deprecated
6424	// resource. The suggested replacement resource must be the same kind of
6425	// resource as the deprecated resource.
6426	Replacement string `json:"replacement,omitempty"`
6427
6428	// State: The deprecation state of this resource. This can be ACTIVE,
6429	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
6430	// end of life date for an image, can use ACTIVE. Operations which
6431	// create a new resource using a DEPRECATED resource will return
6432	// successfully, but with a warning indicating the deprecated resource
6433	// and recommending its replacement. Operations which use OBSOLETE or
6434	// DELETED resources will be rejected and result in an error.
6435	//
6436	// Possible values:
6437	//   "ACTIVE"
6438	//   "DELETED"
6439	//   "DEPRECATED"
6440	//   "OBSOLETE"
6441	State string `json:"state,omitempty"`
6442
6443	// ForceSendFields is a list of field names (e.g. "Deleted") to
6444	// unconditionally include in API requests. By default, fields with
6445	// empty values are omitted from API requests. However, any non-pointer,
6446	// non-interface field appearing in ForceSendFields will be sent to the
6447	// server regardless of whether the field is empty or not. This may be
6448	// used to include empty fields in Patch requests.
6449	ForceSendFields []string `json:"-"`
6450
6451	// NullFields is a list of field names (e.g. "Deleted") to include in
6452	// API requests with the JSON null value. By default, fields with empty
6453	// values are omitted from API requests. However, any field with an
6454	// empty value appearing in NullFields will be sent to the server as
6455	// null. It is an error if a field in this list has a non-empty value.
6456	// This may be used to include null fields in Patch requests.
6457	NullFields []string `json:"-"`
6458}
6459
6460func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
6461	type NoMethod DeprecationStatus
6462	raw := NoMethod(*s)
6463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6464}
6465
6466// Disk: Represents a Persistent Disk resource.
6467//
6468// Google Compute Engine has two Disk resources:
6469//
6470// * [Zonal](/compute/docs/reference/rest/{$api_version}/disks) *
6471// [Regional](/compute/docs/reference/rest/{$api_version}/regionDisks)
6472//
6473// P
6474// ersistent disks are required for running your VM instances. Create
6475// both boot and non-boot (data) persistent disks. For more information,
6476// read Persistent Disks. For more storage options, read Storage
6477// options.
6478//
6479// The disks resource represents a zonal persistent disk. For more
6480// information, read Zonal persistent disks.
6481//
6482// The regionDisks resource represents a regional persistent disk. For
6483// more information, read  Regional resources. (== resource_for
6484// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
6485// ==)
6486type Disk struct {
6487	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6488	// format.
6489	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6490
6491	// Description: An optional description of this resource. Provide this
6492	// property when you create the resource.
6493	Description string `json:"description,omitempty"`
6494
6495	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
6496	// encryption key.
6497	//
6498	// After you encrypt a disk with a customer-supplied key, you must
6499	// provide the same key if you use the disk later (e.g. to create a disk
6500	// snapshot, to create a disk image, to create a machine image, or to
6501	// attach the disk to a virtual machine).
6502	//
6503	// Customer-supplied encryption keys do not protect access to metadata
6504	// of the disk.
6505	//
6506	// If you do not provide an encryption key when creating the disk, then
6507	// the disk will be encrypted using an automatically generated key and
6508	// you do not need to provide a key to use the disk later.
6509	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
6510
6511	// GuestOsFeatures: A list of features to enable on the guest operating
6512	// system. Applicable only for bootable images. Read  Enabling guest
6513	// operating system features to see a list of available options.
6514	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
6515
6516	// Id: [Output Only] The unique identifier for the resource. This
6517	// identifier is defined by the server.
6518	Id uint64 `json:"id,omitempty,string"`
6519
6520	// Kind: [Output Only] Type of the resource. Always compute#disk for
6521	// disks.
6522	Kind string `json:"kind,omitempty"`
6523
6524	// LabelFingerprint: A fingerprint for the labels being applied to this
6525	// disk, which is essentially a hash of the labels set used for
6526	// optimistic locking. The fingerprint is initially generated by Compute
6527	// Engine and changes after every request to modify or update labels.
6528	// You must always provide an up-to-date fingerprint hash in order to
6529	// update or change labels, otherwise the request will fail with error
6530	// 412 conditionNotMet.
6531	//
6532	// To see the latest fingerprint, make a get() request to retrieve a
6533	// disk.
6534	LabelFingerprint string `json:"labelFingerprint,omitempty"`
6535
6536	// Labels: Labels to apply to this disk. These can be later modified by
6537	// the setLabels method.
6538	Labels map[string]string `json:"labels,omitempty"`
6539
6540	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
6541	// text format.
6542	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
6543
6544	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
6545	// text format.
6546	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
6547
6548	// LicenseCodes: Integer license codes indicating which licenses are
6549	// attached to this disk.
6550	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
6551
6552	// Licenses: A list of publicly visible licenses. Reserved for Google's
6553	// use.
6554	Licenses []string `json:"licenses,omitempty"`
6555
6556	// Name: Name of the resource. Provided by the client when the resource
6557	// is created. The name must be 1-63 characters long, and comply with
6558	// RFC1035. Specifically, the name must be 1-63 characters long and
6559	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6560	// the first character must be a lowercase letter, and all following
6561	// characters must be a dash, lowercase letter, or digit, except the
6562	// last character, which cannot be a dash.
6563	Name string `json:"name,omitempty"`
6564
6565	// Options: Internal use only.
6566	Options string `json:"options,omitempty"`
6567
6568	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
6569	// in bytes. If not present in a request, a default value is used. The
6570	// currently supported size is 4096, other sizes may be added in the
6571	// future. If an unsupported value is requested, the error message will
6572	// list the supported values for the caller's project.
6573	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
6574
6575	// Region: [Output Only] URL of the region where the disk resides. Only
6576	// applicable for regional resources. You must specify this field as
6577	// part of the HTTP request URL. It is not settable as a field in the
6578	// request body.
6579	Region string `json:"region,omitempty"`
6580
6581	// ReplicaZones: URLs of the zones where the disk should be replicated
6582	// to. Only applicable for regional resources.
6583	ReplicaZones []string `json:"replicaZones,omitempty"`
6584
6585	// ResourcePolicies: Resource policies applied to this disk for
6586	// automatic snapshot creations.
6587	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
6588
6589	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
6590	// resource.
6591	SelfLink string `json:"selfLink,omitempty"`
6592
6593	// SizeGb: Size of the persistent disk, specified in GB. You can specify
6594	// this field when creating a persistent disk using the sourceImage or
6595	// sourceSnapshot parameter, or specify it alone to create an empty
6596	// persistent disk.
6597	//
6598	// If you specify this field along with sourceImage or sourceSnapshot,
6599	// the value of sizeGb must not be less than the size of the sourceImage
6600	// or the size of the snapshot. Acceptable values are 1 to 65536,
6601	// inclusive.
6602	SizeGb int64 `json:"sizeGb,omitempty,string"`
6603
6604	// SourceDisk: The source disk used to create this disk. You can provide
6605	// this as a partial or full URL to the resource. For example, the
6606	// following are valid values:
6607	// -
6608	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
6609	// - projects/project/zones/zone/disks/disk
6610	// - zones/zone/disks/disk
6611	SourceDisk string `json:"sourceDisk,omitempty"`
6612
6613	// SourceDiskId: [Output Only] The unique ID of the disk used to create
6614	// this disk. This value identifies the exact disk that was used to
6615	// create this persistent disk. For example, if you created the
6616	// persistent disk from a disk that was later deleted and recreated
6617	// under the same name, the source disk ID would identify the exact
6618	// version of the disk that was used.
6619	SourceDiskId string `json:"sourceDiskId,omitempty"`
6620
6621	// SourceImage: The source image used to create this disk. If the source
6622	// image is deleted, this field will not be set.
6623	//
6624	// To create a disk with one of the public operating system images,
6625	// specify the image by its family name. For example, specify
6626	// family/debian-9 to use the latest Debian 9
6627	// image:
6628	// projects/debian-cloud/global/images/family/debian-9
6629	//
6630	//
6631	// Alternati
6632	// vely, use a specific version of a public operating system
6633	// image:
6634	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
6635	//
6636	//
6637	//
6638	// To create a disk with a custom image that you created, specify the
6639	// image name in the following
6640	// format:
6641	// global/images/my-custom-image
6642	//
6643	//
6644	// You can also specify a custom image by its image family, which
6645	// returns the latest version of the image in that family. Replace the
6646	// image name with
6647	// family/family-name:
6648	// global/images/family/my-image-family
6649	SourceImage string `json:"sourceImage,omitempty"`
6650
6651	// SourceImageEncryptionKey: The customer-supplied encryption key of the
6652	// source image. Required if the source image is protected by a
6653	// customer-supplied encryption key.
6654	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
6655
6656	// SourceImageId: [Output Only] The ID value of the image used to create
6657	// this disk. This value identifies the exact image that was used to
6658	// create this persistent disk. For example, if you created the
6659	// persistent disk from an image that was later deleted and recreated
6660	// under the same name, the source image ID would identify the exact
6661	// version of the image that was used.
6662	SourceImageId string `json:"sourceImageId,omitempty"`
6663
6664	// SourceSnapshot: The source snapshot used to create this disk. You can
6665	// provide this as a partial or full URL to the resource. For example,
6666	// the following are valid values:
6667	// -
6668	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
6669	// - projects/project/global/snapshots/snapshot
6670	// - global/snapshots/snapshot
6671	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
6672
6673	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
6674	// the source snapshot. Required if the source snapshot is protected by
6675	// a customer-supplied encryption key.
6676	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
6677
6678	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
6679	// create this disk. This value identifies the exact snapshot that was
6680	// used to create this persistent disk. For example, if you created the
6681	// persistent disk from a snapshot that was later deleted and recreated
6682	// under the same name, the source snapshot ID would identify the exact
6683	// version of the snapshot that was used.
6684	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
6685
6686	// Status: [Output Only] The status of disk creation. CREATING: Disk is
6687	// provisioning. RESTORING: Source data is being copied into the disk.
6688	// FAILED: Disk creation failed. READY: Disk is ready for use. DELETING:
6689	// Disk is deleting.
6690	//
6691	// Possible values:
6692	//   "CREATING"
6693	//   "DELETING"
6694	//   "FAILED"
6695	//   "READY"
6696	//   "RESTORING"
6697	Status string `json:"status,omitempty"`
6698
6699	// Type: URL of the disk type resource describing which disk type to use
6700	// to create the disk. Provide this when creating the disk. For example:
6701	// projects/project/zones/zone/diskTypes/pd-standard  or pd-ssd
6702	Type string `json:"type,omitempty"`
6703
6704	// Users: [Output Only] Links to the users of the disk (attached
6705	// instances) in form: projects/project/zones/zone/instances/instance
6706	Users []string `json:"users,omitempty"`
6707
6708	// Zone: [Output Only] URL of the zone where the disk resides. You must
6709	// specify this field as part of the HTTP request URL. It is not
6710	// settable as a field in the request body.
6711	Zone string `json:"zone,omitempty"`
6712
6713	// ServerResponse contains the HTTP response code and headers from the
6714	// server.
6715	googleapi.ServerResponse `json:"-"`
6716
6717	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
6718	// to unconditionally include in API requests. By default, fields with
6719	// empty values are omitted from API requests. However, any non-pointer,
6720	// non-interface field appearing in ForceSendFields will be sent to the
6721	// server regardless of whether the field is empty or not. This may be
6722	// used to include empty fields in Patch requests.
6723	ForceSendFields []string `json:"-"`
6724
6725	// NullFields is a list of field names (e.g. "CreationTimestamp") to
6726	// include in API requests with the JSON null value. By default, fields
6727	// with empty values are omitted from API requests. However, any field
6728	// with an empty value appearing in NullFields will be sent to the
6729	// server as null. It is an error if a field in this list has a
6730	// non-empty value. This may be used to include null fields in Patch
6731	// requests.
6732	NullFields []string `json:"-"`
6733}
6734
6735func (s *Disk) MarshalJSON() ([]byte, error) {
6736	type NoMethod Disk
6737	raw := NoMethod(*s)
6738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6739}
6740
6741type DiskAggregatedList struct {
6742	// Id: [Output Only] Unique identifier for the resource; defined by the
6743	// server.
6744	Id string `json:"id,omitempty"`
6745
6746	// Items: A list of DisksScopedList resources.
6747	Items map[string]DisksScopedList `json:"items,omitempty"`
6748
6749	// Kind: [Output Only] Type of resource. Always
6750	// compute#diskAggregatedList for aggregated lists of persistent disks.
6751	Kind string `json:"kind,omitempty"`
6752
6753	// NextPageToken: [Output Only] This token allows you to get the next
6754	// page of results for list requests. If the number of results is larger
6755	// than maxResults, use the nextPageToken as a value for the query
6756	// parameter pageToken in the next list request. Subsequent list
6757	// requests will have their own nextPageToken to continue paging through
6758	// the results.
6759	NextPageToken string `json:"nextPageToken,omitempty"`
6760
6761	// SelfLink: [Output Only] Server-defined URL for this resource.
6762	SelfLink string `json:"selfLink,omitempty"`
6763
6764	// Warning: [Output Only] Informational warning message.
6765	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
6766
6767	// ServerResponse contains the HTTP response code and headers from the
6768	// server.
6769	googleapi.ServerResponse `json:"-"`
6770
6771	// ForceSendFields is a list of field names (e.g. "Id") to
6772	// unconditionally include in API requests. By default, fields with
6773	// empty values are omitted from API requests. However, any non-pointer,
6774	// non-interface field appearing in ForceSendFields will be sent to the
6775	// server regardless of whether the field is empty or not. This may be
6776	// used to include empty fields in Patch requests.
6777	ForceSendFields []string `json:"-"`
6778
6779	// NullFields is a list of field names (e.g. "Id") to include in API
6780	// requests with the JSON null value. By default, fields with empty
6781	// values are omitted from API requests. However, any field with an
6782	// empty value appearing in NullFields will be sent to the server as
6783	// null. It is an error if a field in this list has a non-empty value.
6784	// This may be used to include null fields in Patch requests.
6785	NullFields []string `json:"-"`
6786}
6787
6788func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
6789	type NoMethod DiskAggregatedList
6790	raw := NoMethod(*s)
6791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6792}
6793
6794// DiskAggregatedListWarning: [Output Only] Informational warning
6795// message.
6796type DiskAggregatedListWarning struct {
6797	// Code: [Output Only] A warning code, if applicable. For example,
6798	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6799	// the response.
6800	//
6801	// Possible values:
6802	//   "CLEANUP_FAILED"
6803	//   "DEPRECATED_RESOURCE_USED"
6804	//   "DEPRECATED_TYPE_USED"
6805	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6806	//   "EXPERIMENTAL_TYPE_USED"
6807	//   "EXTERNAL_API_WARNING"
6808	//   "FIELD_VALUE_OVERRIDEN"
6809	//   "INJECTED_KERNELS_DEPRECATED"
6810	//   "MISSING_TYPE_DEPENDENCY"
6811	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6812	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6813	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6814	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6815	//   "NEXT_HOP_NOT_RUNNING"
6816	//   "NOT_CRITICAL_ERROR"
6817	//   "NO_RESULTS_ON_PAGE"
6818	//   "REQUIRED_TOS_AGREEMENT"
6819	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6820	//   "RESOURCE_NOT_DELETED"
6821	//   "SCHEMA_VALIDATION_IGNORED"
6822	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6823	//   "UNDECLARED_PROPERTIES"
6824	//   "UNREACHABLE"
6825	Code string `json:"code,omitempty"`
6826
6827	// Data: [Output Only] Metadata about this warning in key: value format.
6828	// For example:
6829	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6830	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
6831
6832	// Message: [Output Only] A human-readable description of the warning
6833	// code.
6834	Message string `json:"message,omitempty"`
6835
6836	// ForceSendFields is a list of field names (e.g. "Code") to
6837	// unconditionally include in API requests. By default, fields with
6838	// empty values are omitted from API requests. However, any non-pointer,
6839	// non-interface field appearing in ForceSendFields will be sent to the
6840	// server regardless of whether the field is empty or not. This may be
6841	// used to include empty fields in Patch requests.
6842	ForceSendFields []string `json:"-"`
6843
6844	// NullFields is a list of field names (e.g. "Code") to include in API
6845	// requests with the JSON null value. By default, fields with empty
6846	// values are omitted from API requests. However, any field with an
6847	// empty value appearing in NullFields will be sent to the server as
6848	// null. It is an error if a field in this list has a non-empty value.
6849	// This may be used to include null fields in Patch requests.
6850	NullFields []string `json:"-"`
6851}
6852
6853func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
6854	type NoMethod DiskAggregatedListWarning
6855	raw := NoMethod(*s)
6856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6857}
6858
6859type DiskAggregatedListWarningData struct {
6860	// Key: [Output Only] A key that provides more detail on the warning
6861	// being returned. For example, for warnings where there are no results
6862	// in a list request for a particular zone, this key might be scope and
6863	// the key value might be the zone name. Other examples might be a key
6864	// indicating a deprecated resource and a suggested replacement, or a
6865	// warning about invalid network settings (for example, if an instance
6866	// attempts to perform IP forwarding but is not enabled for IP
6867	// forwarding).
6868	Key string `json:"key,omitempty"`
6869
6870	// Value: [Output Only] A warning data value corresponding to the key.
6871	Value string `json:"value,omitempty"`
6872
6873	// ForceSendFields is a list of field names (e.g. "Key") to
6874	// unconditionally include in API requests. By default, fields with
6875	// empty values are omitted from API requests. However, any non-pointer,
6876	// non-interface field appearing in ForceSendFields will be sent to the
6877	// server regardless of whether the field is empty or not. This may be
6878	// used to include empty fields in Patch requests.
6879	ForceSendFields []string `json:"-"`
6880
6881	// NullFields is a list of field names (e.g. "Key") to include in API
6882	// requests with the JSON null value. By default, fields with empty
6883	// values are omitted from API requests. However, any field with an
6884	// empty value appearing in NullFields will be sent to the server as
6885	// null. It is an error if a field in this list has a non-empty value.
6886	// This may be used to include null fields in Patch requests.
6887	NullFields []string `json:"-"`
6888}
6889
6890func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6891	type NoMethod DiskAggregatedListWarningData
6892	raw := NoMethod(*s)
6893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6894}
6895
6896// DiskInstantiationConfig: A specification of the desired way to
6897// instantiate a disk in the instance template when its created from a
6898// source instance.
6899type DiskInstantiationConfig struct {
6900	// AutoDelete: Specifies whether the disk will be auto-deleted when the
6901	// instance is deleted (but not when the disk is detached from the
6902	// instance).
6903	AutoDelete bool `json:"autoDelete,omitempty"`
6904
6905	// CustomImage: The custom source image to be used to restore this disk
6906	// when instantiating this instance template.
6907	CustomImage string `json:"customImage,omitempty"`
6908
6909	// DeviceName: Specifies the device name of the disk to which the
6910	// configurations apply to.
6911	DeviceName string `json:"deviceName,omitempty"`
6912
6913	// InstantiateFrom: Specifies whether to include the disk and what image
6914	// to use. Possible values are:
6915	// - source-image: to use the same image that was used to create the
6916	// source instance's corresponding disk. Applicable to the boot disk and
6917	// additional read-write disks.
6918	// - source-image-family: to use the same image family that was used to
6919	// create the source instance's corresponding disk. Applicable to the
6920	// boot disk and additional read-write disks.
6921	// - custom-image: to use a user-provided image url for disk creation.
6922	// Applicable to the boot disk and additional read-write disks.
6923	// - attach-read-only: to attach a read-only disk. Applicable to
6924	// read-only disks.
6925	// - do-not-include: to exclude a disk from the template. Applicable to
6926	// additional read-write disks, local SSDs, and read-only disks.
6927	//
6928	// Possible values:
6929	//   "ATTACH_READ_ONLY"
6930	//   "BLANK"
6931	//   "CUSTOM_IMAGE"
6932	//   "DEFAULT"
6933	//   "DO_NOT_INCLUDE"
6934	//   "SOURCE_IMAGE"
6935	//   "SOURCE_IMAGE_FAMILY"
6936	InstantiateFrom string `json:"instantiateFrom,omitempty"`
6937
6938	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
6939	// unconditionally include in API requests. By default, fields with
6940	// empty values are omitted from API requests. However, any non-pointer,
6941	// non-interface field appearing in ForceSendFields will be sent to the
6942	// server regardless of whether the field is empty or not. This may be
6943	// used to include empty fields in Patch requests.
6944	ForceSendFields []string `json:"-"`
6945
6946	// NullFields is a list of field names (e.g. "AutoDelete") to include in
6947	// API requests with the JSON null value. By default, fields with empty
6948	// values are omitted from API requests. However, any field with an
6949	// empty value appearing in NullFields will be sent to the server as
6950	// null. It is an error if a field in this list has a non-empty value.
6951	// This may be used to include null fields in Patch requests.
6952	NullFields []string `json:"-"`
6953}
6954
6955func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
6956	type NoMethod DiskInstantiationConfig
6957	raw := NoMethod(*s)
6958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6959}
6960
6961// DiskList: A list of Disk resources.
6962type DiskList struct {
6963	// Id: [Output Only] Unique identifier for the resource; defined by the
6964	// server.
6965	Id string `json:"id,omitempty"`
6966
6967	// Items: A list of Disk resources.
6968	Items []*Disk `json:"items,omitempty"`
6969
6970	// Kind: [Output Only] Type of resource. Always compute#diskList for
6971	// lists of disks.
6972	Kind string `json:"kind,omitempty"`
6973
6974	// NextPageToken: [Output Only] This token allows you to get the next
6975	// page of results for list requests. If the number of results is larger
6976	// than maxResults, use the nextPageToken as a value for the query
6977	// parameter pageToken in the next list request. Subsequent list
6978	// requests will have their own nextPageToken to continue paging through
6979	// the results.
6980	NextPageToken string `json:"nextPageToken,omitempty"`
6981
6982	// SelfLink: [Output Only] Server-defined URL for this resource.
6983	SelfLink string `json:"selfLink,omitempty"`
6984
6985	// Warning: [Output Only] Informational warning message.
6986	Warning *DiskListWarning `json:"warning,omitempty"`
6987
6988	// ServerResponse contains the HTTP response code and headers from the
6989	// server.
6990	googleapi.ServerResponse `json:"-"`
6991
6992	// ForceSendFields is a list of field names (e.g. "Id") to
6993	// unconditionally include in API requests. By default, fields with
6994	// empty values are omitted from API requests. However, any non-pointer,
6995	// non-interface field appearing in ForceSendFields will be sent to the
6996	// server regardless of whether the field is empty or not. This may be
6997	// used to include empty fields in Patch requests.
6998	ForceSendFields []string `json:"-"`
6999
7000	// NullFields is a list of field names (e.g. "Id") to include in API
7001	// requests with the JSON null value. By default, fields with empty
7002	// values are omitted from API requests. However, any field with an
7003	// empty value appearing in NullFields will be sent to the server as
7004	// null. It is an error if a field in this list has a non-empty value.
7005	// This may be used to include null fields in Patch requests.
7006	NullFields []string `json:"-"`
7007}
7008
7009func (s *DiskList) MarshalJSON() ([]byte, error) {
7010	type NoMethod DiskList
7011	raw := NoMethod(*s)
7012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7013}
7014
7015// DiskListWarning: [Output Only] Informational warning message.
7016type DiskListWarning struct {
7017	// Code: [Output Only] A warning code, if applicable. For example,
7018	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7019	// the response.
7020	//
7021	// Possible values:
7022	//   "CLEANUP_FAILED"
7023	//   "DEPRECATED_RESOURCE_USED"
7024	//   "DEPRECATED_TYPE_USED"
7025	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7026	//   "EXPERIMENTAL_TYPE_USED"
7027	//   "EXTERNAL_API_WARNING"
7028	//   "FIELD_VALUE_OVERRIDEN"
7029	//   "INJECTED_KERNELS_DEPRECATED"
7030	//   "MISSING_TYPE_DEPENDENCY"
7031	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7032	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7033	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7034	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7035	//   "NEXT_HOP_NOT_RUNNING"
7036	//   "NOT_CRITICAL_ERROR"
7037	//   "NO_RESULTS_ON_PAGE"
7038	//   "REQUIRED_TOS_AGREEMENT"
7039	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7040	//   "RESOURCE_NOT_DELETED"
7041	//   "SCHEMA_VALIDATION_IGNORED"
7042	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7043	//   "UNDECLARED_PROPERTIES"
7044	//   "UNREACHABLE"
7045	Code string `json:"code,omitempty"`
7046
7047	// Data: [Output Only] Metadata about this warning in key: value format.
7048	// For example:
7049	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7050	Data []*DiskListWarningData `json:"data,omitempty"`
7051
7052	// Message: [Output Only] A human-readable description of the warning
7053	// code.
7054	Message string `json:"message,omitempty"`
7055
7056	// ForceSendFields is a list of field names (e.g. "Code") to
7057	// unconditionally include in API requests. By default, fields with
7058	// empty values are omitted from API requests. However, any non-pointer,
7059	// non-interface field appearing in ForceSendFields will be sent to the
7060	// server regardless of whether the field is empty or not. This may be
7061	// used to include empty fields in Patch requests.
7062	ForceSendFields []string `json:"-"`
7063
7064	// NullFields is a list of field names (e.g. "Code") to include in API
7065	// requests with the JSON null value. By default, fields with empty
7066	// values are omitted from API requests. However, any field with an
7067	// empty value appearing in NullFields will be sent to the server as
7068	// null. It is an error if a field in this list has a non-empty value.
7069	// This may be used to include null fields in Patch requests.
7070	NullFields []string `json:"-"`
7071}
7072
7073func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
7074	type NoMethod DiskListWarning
7075	raw := NoMethod(*s)
7076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7077}
7078
7079type DiskListWarningData struct {
7080	// Key: [Output Only] A key that provides more detail on the warning
7081	// being returned. For example, for warnings where there are no results
7082	// in a list request for a particular zone, this key might be scope and
7083	// the key value might be the zone name. Other examples might be a key
7084	// indicating a deprecated resource and a suggested replacement, or a
7085	// warning about invalid network settings (for example, if an instance
7086	// attempts to perform IP forwarding but is not enabled for IP
7087	// forwarding).
7088	Key string `json:"key,omitempty"`
7089
7090	// Value: [Output Only] A warning data value corresponding to the key.
7091	Value string `json:"value,omitempty"`
7092
7093	// ForceSendFields is a list of field names (e.g. "Key") to
7094	// unconditionally include in API requests. By default, fields with
7095	// empty values are omitted from API requests. However, any non-pointer,
7096	// non-interface field appearing in ForceSendFields will be sent to the
7097	// server regardless of whether the field is empty or not. This may be
7098	// used to include empty fields in Patch requests.
7099	ForceSendFields []string `json:"-"`
7100
7101	// NullFields is a list of field names (e.g. "Key") to include in API
7102	// requests with the JSON null value. By default, fields with empty
7103	// values are omitted from API requests. However, any field with an
7104	// empty value appearing in NullFields will be sent to the server as
7105	// null. It is an error if a field in this list has a non-empty value.
7106	// This may be used to include null fields in Patch requests.
7107	NullFields []string `json:"-"`
7108}
7109
7110func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
7111	type NoMethod DiskListWarningData
7112	raw := NoMethod(*s)
7113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7114}
7115
7116type DiskMoveRequest struct {
7117	// DestinationZone: The URL of the destination zone to move the disk.
7118	// This can be a full or partial URL. For example, the following are all
7119	// valid URLs to a zone:
7120	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
7121	//
7122	// - projects/project/zones/zone
7123	// - zones/zone
7124	DestinationZone string `json:"destinationZone,omitempty"`
7125
7126	// TargetDisk: The URL of the target disk to move. This can be a full or
7127	// partial URL. For example, the following are all valid URLs to a disk:
7128	//
7129	// -
7130	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7131	// - projects/project/zones/zone/disks/disk
7132	// - zones/zone/disks/disk
7133	TargetDisk string `json:"targetDisk,omitempty"`
7134
7135	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
7136	// unconditionally include in API requests. By default, fields with
7137	// empty values are omitted from API requests. However, any non-pointer,
7138	// non-interface field appearing in ForceSendFields will be sent to the
7139	// server regardless of whether the field is empty or not. This may be
7140	// used to include empty fields in Patch requests.
7141	ForceSendFields []string `json:"-"`
7142
7143	// NullFields is a list of field names (e.g. "DestinationZone") to
7144	// include in API requests with the JSON null value. By default, fields
7145	// with empty values are omitted from API requests. However, any field
7146	// with an empty value appearing in NullFields will be sent to the
7147	// server as null. It is an error if a field in this list has a
7148	// non-empty value. This may be used to include null fields in Patch
7149	// requests.
7150	NullFields []string `json:"-"`
7151}
7152
7153func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
7154	type NoMethod DiskMoveRequest
7155	raw := NoMethod(*s)
7156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7157}
7158
7159// DiskType: Represents a Disk Type resource.
7160//
7161// Google Compute Engine has two Disk Type resources:
7162//
7163// *
7164// [Regional](/compute/docs/reference/rest/{$api_version}/regionDiskTypes
7165// ) *
7166// [Zonal](/compute/docs/reference/rest/{$api_version}/diskTypes)
7167//
7168// You can choose from a variety of disk types based on your needs. For
7169// more information, read Storage options.
7170//
7171// The diskTypes resource represents disk types for a zonal persistent
7172// disk. For more information, read Zonal persistent disks.
7173//
7174// The regionDiskTypes resource represents disk types for a regional
7175// persistent disk. For more information, read Regional persistent
7176// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
7177// {$api_version}.regionDiskTypes ==)
7178type DiskType struct {
7179	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7180	// format.
7181	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7182
7183	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
7184	// GB.
7185	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
7186
7187	// Deprecated: [Output Only] The deprecation status associated with this
7188	// disk type.
7189	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
7190
7191	// Description: [Output Only] An optional description of this resource.
7192	Description string `json:"description,omitempty"`
7193
7194	// Id: [Output Only] The unique identifier for the resource. This
7195	// identifier is defined by the server.
7196	Id uint64 `json:"id,omitempty,string"`
7197
7198	// Kind: [Output Only] Type of the resource. Always compute#diskType for
7199	// disk types.
7200	Kind string `json:"kind,omitempty"`
7201
7202	// Name: [Output Only] Name of the resource.
7203	Name string `json:"name,omitempty"`
7204
7205	// Region: [Output Only] URL of the region where the disk type resides.
7206	// Only applicable for regional resources. You must specify this field
7207	// as part of the HTTP request URL. It is not settable as a field in the
7208	// request body.
7209	Region string `json:"region,omitempty"`
7210
7211	// SelfLink: [Output Only] Server-defined URL for the resource.
7212	SelfLink string `json:"selfLink,omitempty"`
7213
7214	// ValidDiskSize: [Output Only] An optional textual description of the
7215	// valid disk size, such as "10GB-10TB".
7216	ValidDiskSize string `json:"validDiskSize,omitempty"`
7217
7218	// Zone: [Output Only] URL of the zone where the disk type resides. You
7219	// must specify this field as part of the HTTP request URL. It is not
7220	// settable as a field in the request body.
7221	Zone string `json:"zone,omitempty"`
7222
7223	// ServerResponse contains the HTTP response code and headers from the
7224	// server.
7225	googleapi.ServerResponse `json:"-"`
7226
7227	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7228	// to unconditionally include in API requests. By default, fields with
7229	// empty values are omitted from API requests. However, any non-pointer,
7230	// non-interface field appearing in ForceSendFields will be sent to the
7231	// server regardless of whether the field is empty or not. This may be
7232	// used to include empty fields in Patch requests.
7233	ForceSendFields []string `json:"-"`
7234
7235	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7236	// include in API requests with the JSON null value. By default, fields
7237	// with empty values are omitted from API requests. However, any field
7238	// with an empty value appearing in NullFields will be sent to the
7239	// server as null. It is an error if a field in this list has a
7240	// non-empty value. This may be used to include null fields in Patch
7241	// requests.
7242	NullFields []string `json:"-"`
7243}
7244
7245func (s *DiskType) MarshalJSON() ([]byte, error) {
7246	type NoMethod DiskType
7247	raw := NoMethod(*s)
7248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7249}
7250
7251type DiskTypeAggregatedList struct {
7252	// Id: [Output Only] Unique identifier for the resource; defined by the
7253	// server.
7254	Id string `json:"id,omitempty"`
7255
7256	// Items: A list of DiskTypesScopedList resources.
7257	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
7258
7259	// Kind: [Output Only] Type of resource. Always
7260	// compute#diskTypeAggregatedList.
7261	Kind string `json:"kind,omitempty"`
7262
7263	// NextPageToken: [Output Only] This token allows you to get the next
7264	// page of results for list requests. If the number of results is larger
7265	// than maxResults, use the nextPageToken as a value for the query
7266	// parameter pageToken in the next list request. Subsequent list
7267	// requests will have their own nextPageToken to continue paging through
7268	// the results.
7269	NextPageToken string `json:"nextPageToken,omitempty"`
7270
7271	// SelfLink: [Output Only] Server-defined URL for this resource.
7272	SelfLink string `json:"selfLink,omitempty"`
7273
7274	// Warning: [Output Only] Informational warning message.
7275	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
7276
7277	// ServerResponse contains the HTTP response code and headers from the
7278	// server.
7279	googleapi.ServerResponse `json:"-"`
7280
7281	// ForceSendFields is a list of field names (e.g. "Id") to
7282	// unconditionally include in API requests. By default, fields with
7283	// empty values are omitted from API requests. However, any non-pointer,
7284	// non-interface field appearing in ForceSendFields will be sent to the
7285	// server regardless of whether the field is empty or not. This may be
7286	// used to include empty fields in Patch requests.
7287	ForceSendFields []string `json:"-"`
7288
7289	// NullFields is a list of field names (e.g. "Id") to include in API
7290	// requests with the JSON null value. By default, fields with empty
7291	// values are omitted from API requests. However, any field with an
7292	// empty value appearing in NullFields will be sent to the server as
7293	// null. It is an error if a field in this list has a non-empty value.
7294	// This may be used to include null fields in Patch requests.
7295	NullFields []string `json:"-"`
7296}
7297
7298func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
7299	type NoMethod DiskTypeAggregatedList
7300	raw := NoMethod(*s)
7301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7302}
7303
7304// DiskTypeAggregatedListWarning: [Output Only] Informational warning
7305// message.
7306type DiskTypeAggregatedListWarning struct {
7307	// Code: [Output Only] A warning code, if applicable. For example,
7308	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7309	// the response.
7310	//
7311	// Possible values:
7312	//   "CLEANUP_FAILED"
7313	//   "DEPRECATED_RESOURCE_USED"
7314	//   "DEPRECATED_TYPE_USED"
7315	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7316	//   "EXPERIMENTAL_TYPE_USED"
7317	//   "EXTERNAL_API_WARNING"
7318	//   "FIELD_VALUE_OVERRIDEN"
7319	//   "INJECTED_KERNELS_DEPRECATED"
7320	//   "MISSING_TYPE_DEPENDENCY"
7321	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7322	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7323	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7324	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7325	//   "NEXT_HOP_NOT_RUNNING"
7326	//   "NOT_CRITICAL_ERROR"
7327	//   "NO_RESULTS_ON_PAGE"
7328	//   "REQUIRED_TOS_AGREEMENT"
7329	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7330	//   "RESOURCE_NOT_DELETED"
7331	//   "SCHEMA_VALIDATION_IGNORED"
7332	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7333	//   "UNDECLARED_PROPERTIES"
7334	//   "UNREACHABLE"
7335	Code string `json:"code,omitempty"`
7336
7337	// Data: [Output Only] Metadata about this warning in key: value format.
7338	// For example:
7339	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7340	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
7341
7342	// Message: [Output Only] A human-readable description of the warning
7343	// code.
7344	Message string `json:"message,omitempty"`
7345
7346	// ForceSendFields is a list of field names (e.g. "Code") to
7347	// unconditionally include in API requests. By default, fields with
7348	// empty values are omitted from API requests. However, any non-pointer,
7349	// non-interface field appearing in ForceSendFields will be sent to the
7350	// server regardless of whether the field is empty or not. This may be
7351	// used to include empty fields in Patch requests.
7352	ForceSendFields []string `json:"-"`
7353
7354	// NullFields is a list of field names (e.g. "Code") to include in API
7355	// requests with the JSON null value. By default, fields with empty
7356	// values are omitted from API requests. However, any field with an
7357	// empty value appearing in NullFields will be sent to the server as
7358	// null. It is an error if a field in this list has a non-empty value.
7359	// This may be used to include null fields in Patch requests.
7360	NullFields []string `json:"-"`
7361}
7362
7363func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
7364	type NoMethod DiskTypeAggregatedListWarning
7365	raw := NoMethod(*s)
7366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7367}
7368
7369type DiskTypeAggregatedListWarningData struct {
7370	// Key: [Output Only] A key that provides more detail on the warning
7371	// being returned. For example, for warnings where there are no results
7372	// in a list request for a particular zone, this key might be scope and
7373	// the key value might be the zone name. Other examples might be a key
7374	// indicating a deprecated resource and a suggested replacement, or a
7375	// warning about invalid network settings (for example, if an instance
7376	// attempts to perform IP forwarding but is not enabled for IP
7377	// forwarding).
7378	Key string `json:"key,omitempty"`
7379
7380	// Value: [Output Only] A warning data value corresponding to the key.
7381	Value string `json:"value,omitempty"`
7382
7383	// ForceSendFields is a list of field names (e.g. "Key") to
7384	// unconditionally include in API requests. By default, fields with
7385	// empty values are omitted from API requests. However, any non-pointer,
7386	// non-interface field appearing in ForceSendFields will be sent to the
7387	// server regardless of whether the field is empty or not. This may be
7388	// used to include empty fields in Patch requests.
7389	ForceSendFields []string `json:"-"`
7390
7391	// NullFields is a list of field names (e.g. "Key") to include in API
7392	// requests with the JSON null value. By default, fields with empty
7393	// values are omitted from API requests. However, any field with an
7394	// empty value appearing in NullFields will be sent to the server as
7395	// null. It is an error if a field in this list has a non-empty value.
7396	// This may be used to include null fields in Patch requests.
7397	NullFields []string `json:"-"`
7398}
7399
7400func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7401	type NoMethod DiskTypeAggregatedListWarningData
7402	raw := NoMethod(*s)
7403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7404}
7405
7406// DiskTypeList: Contains a list of disk types.
7407type DiskTypeList struct {
7408	// Id: [Output Only] Unique identifier for the resource; defined by the
7409	// server.
7410	Id string `json:"id,omitempty"`
7411
7412	// Items: A list of DiskType resources.
7413	Items []*DiskType `json:"items,omitempty"`
7414
7415	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
7416	// disk types.
7417	Kind string `json:"kind,omitempty"`
7418
7419	// NextPageToken: [Output Only] This token allows you to get the next
7420	// page of results for list requests. If the number of results is larger
7421	// than maxResults, use the nextPageToken as a value for the query
7422	// parameter pageToken in the next list request. Subsequent list
7423	// requests will have their own nextPageToken to continue paging through
7424	// the results.
7425	NextPageToken string `json:"nextPageToken,omitempty"`
7426
7427	// SelfLink: [Output Only] Server-defined URL for this resource.
7428	SelfLink string `json:"selfLink,omitempty"`
7429
7430	// Warning: [Output Only] Informational warning message.
7431	Warning *DiskTypeListWarning `json:"warning,omitempty"`
7432
7433	// ServerResponse contains the HTTP response code and headers from the
7434	// server.
7435	googleapi.ServerResponse `json:"-"`
7436
7437	// ForceSendFields is a list of field names (e.g. "Id") to
7438	// unconditionally include in API requests. By default, fields with
7439	// empty values are omitted from API requests. However, any non-pointer,
7440	// non-interface field appearing in ForceSendFields will be sent to the
7441	// server regardless of whether the field is empty or not. This may be
7442	// used to include empty fields in Patch requests.
7443	ForceSendFields []string `json:"-"`
7444
7445	// NullFields is a list of field names (e.g. "Id") to include in API
7446	// requests with the JSON null value. By default, fields with empty
7447	// values are omitted from API requests. However, any field with an
7448	// empty value appearing in NullFields will be sent to the server as
7449	// null. It is an error if a field in this list has a non-empty value.
7450	// This may be used to include null fields in Patch requests.
7451	NullFields []string `json:"-"`
7452}
7453
7454func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
7455	type NoMethod DiskTypeList
7456	raw := NoMethod(*s)
7457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7458}
7459
7460// DiskTypeListWarning: [Output Only] Informational warning message.
7461type DiskTypeListWarning struct {
7462	// Code: [Output Only] A warning code, if applicable. For example,
7463	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7464	// the response.
7465	//
7466	// Possible values:
7467	//   "CLEANUP_FAILED"
7468	//   "DEPRECATED_RESOURCE_USED"
7469	//   "DEPRECATED_TYPE_USED"
7470	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7471	//   "EXPERIMENTAL_TYPE_USED"
7472	//   "EXTERNAL_API_WARNING"
7473	//   "FIELD_VALUE_OVERRIDEN"
7474	//   "INJECTED_KERNELS_DEPRECATED"
7475	//   "MISSING_TYPE_DEPENDENCY"
7476	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7477	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7478	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7479	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7480	//   "NEXT_HOP_NOT_RUNNING"
7481	//   "NOT_CRITICAL_ERROR"
7482	//   "NO_RESULTS_ON_PAGE"
7483	//   "REQUIRED_TOS_AGREEMENT"
7484	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7485	//   "RESOURCE_NOT_DELETED"
7486	//   "SCHEMA_VALIDATION_IGNORED"
7487	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7488	//   "UNDECLARED_PROPERTIES"
7489	//   "UNREACHABLE"
7490	Code string `json:"code,omitempty"`
7491
7492	// Data: [Output Only] Metadata about this warning in key: value format.
7493	// For example:
7494	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7495	Data []*DiskTypeListWarningData `json:"data,omitempty"`
7496
7497	// Message: [Output Only] A human-readable description of the warning
7498	// code.
7499	Message string `json:"message,omitempty"`
7500
7501	// ForceSendFields is a list of field names (e.g. "Code") to
7502	// unconditionally include in API requests. By default, fields with
7503	// empty values are omitted from API requests. However, any non-pointer,
7504	// non-interface field appearing in ForceSendFields will be sent to the
7505	// server regardless of whether the field is empty or not. This may be
7506	// used to include empty fields in Patch requests.
7507	ForceSendFields []string `json:"-"`
7508
7509	// NullFields is a list of field names (e.g. "Code") to include in API
7510	// requests with the JSON null value. By default, fields with empty
7511	// values are omitted from API requests. However, any field with an
7512	// empty value appearing in NullFields will be sent to the server as
7513	// null. It is an error if a field in this list has a non-empty value.
7514	// This may be used to include null fields in Patch requests.
7515	NullFields []string `json:"-"`
7516}
7517
7518func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
7519	type NoMethod DiskTypeListWarning
7520	raw := NoMethod(*s)
7521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7522}
7523
7524type DiskTypeListWarningData struct {
7525	// Key: [Output Only] A key that provides more detail on the warning
7526	// being returned. For example, for warnings where there are no results
7527	// in a list request for a particular zone, this key might be scope and
7528	// the key value might be the zone name. Other examples might be a key
7529	// indicating a deprecated resource and a suggested replacement, or a
7530	// warning about invalid network settings (for example, if an instance
7531	// attempts to perform IP forwarding but is not enabled for IP
7532	// forwarding).
7533	Key string `json:"key,omitempty"`
7534
7535	// Value: [Output Only] A warning data value corresponding to the key.
7536	Value string `json:"value,omitempty"`
7537
7538	// ForceSendFields is a list of field names (e.g. "Key") to
7539	// unconditionally include in API requests. By default, fields with
7540	// empty values are omitted from API requests. However, any non-pointer,
7541	// non-interface field appearing in ForceSendFields will be sent to the
7542	// server regardless of whether the field is empty or not. This may be
7543	// used to include empty fields in Patch requests.
7544	ForceSendFields []string `json:"-"`
7545
7546	// NullFields is a list of field names (e.g. "Key") to include in API
7547	// requests with the JSON null value. By default, fields with empty
7548	// values are omitted from API requests. However, any field with an
7549	// empty value appearing in NullFields will be sent to the server as
7550	// null. It is an error if a field in this list has a non-empty value.
7551	// This may be used to include null fields in Patch requests.
7552	NullFields []string `json:"-"`
7553}
7554
7555func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
7556	type NoMethod DiskTypeListWarningData
7557	raw := NoMethod(*s)
7558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7559}
7560
7561type DiskTypesScopedList struct {
7562	// DiskTypes: [Output Only] A list of disk types contained in this
7563	// scope.
7564	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
7565
7566	// Warning: [Output Only] Informational warning which replaces the list
7567	// of disk types when the list is empty.
7568	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
7569
7570	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
7571	// unconditionally include in API requests. By default, fields with
7572	// empty values are omitted from API requests. However, any non-pointer,
7573	// non-interface field appearing in ForceSendFields will be sent to the
7574	// server regardless of whether the field is empty or not. This may be
7575	// used to include empty fields in Patch requests.
7576	ForceSendFields []string `json:"-"`
7577
7578	// NullFields is a list of field names (e.g. "DiskTypes") to include in
7579	// API requests with the JSON null value. By default, fields with empty
7580	// values are omitted from API requests. However, any field with an
7581	// empty value appearing in NullFields will be sent to the server as
7582	// null. It is an error if a field in this list has a non-empty value.
7583	// This may be used to include null fields in Patch requests.
7584	NullFields []string `json:"-"`
7585}
7586
7587func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
7588	type NoMethod DiskTypesScopedList
7589	raw := NoMethod(*s)
7590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7591}
7592
7593// DiskTypesScopedListWarning: [Output Only] Informational warning which
7594// replaces the list of disk types when the list is empty.
7595type DiskTypesScopedListWarning struct {
7596	// Code: [Output Only] A warning code, if applicable. For example,
7597	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7598	// the response.
7599	//
7600	// Possible values:
7601	//   "CLEANUP_FAILED"
7602	//   "DEPRECATED_RESOURCE_USED"
7603	//   "DEPRECATED_TYPE_USED"
7604	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7605	//   "EXPERIMENTAL_TYPE_USED"
7606	//   "EXTERNAL_API_WARNING"
7607	//   "FIELD_VALUE_OVERRIDEN"
7608	//   "INJECTED_KERNELS_DEPRECATED"
7609	//   "MISSING_TYPE_DEPENDENCY"
7610	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7611	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7612	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7613	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7614	//   "NEXT_HOP_NOT_RUNNING"
7615	//   "NOT_CRITICAL_ERROR"
7616	//   "NO_RESULTS_ON_PAGE"
7617	//   "REQUIRED_TOS_AGREEMENT"
7618	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7619	//   "RESOURCE_NOT_DELETED"
7620	//   "SCHEMA_VALIDATION_IGNORED"
7621	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7622	//   "UNDECLARED_PROPERTIES"
7623	//   "UNREACHABLE"
7624	Code string `json:"code,omitempty"`
7625
7626	// Data: [Output Only] Metadata about this warning in key: value format.
7627	// For example:
7628	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7629	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
7630
7631	// Message: [Output Only] A human-readable description of the warning
7632	// code.
7633	Message string `json:"message,omitempty"`
7634
7635	// ForceSendFields is a list of field names (e.g. "Code") to
7636	// unconditionally include in API requests. By default, fields with
7637	// empty values are omitted from API requests. However, any non-pointer,
7638	// non-interface field appearing in ForceSendFields will be sent to the
7639	// server regardless of whether the field is empty or not. This may be
7640	// used to include empty fields in Patch requests.
7641	ForceSendFields []string `json:"-"`
7642
7643	// NullFields is a list of field names (e.g. "Code") to include in API
7644	// requests with the JSON null value. By default, fields with empty
7645	// values are omitted from API requests. However, any field with an
7646	// empty value appearing in NullFields will be sent to the server as
7647	// null. It is an error if a field in this list has a non-empty value.
7648	// This may be used to include null fields in Patch requests.
7649	NullFields []string `json:"-"`
7650}
7651
7652func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
7653	type NoMethod DiskTypesScopedListWarning
7654	raw := NoMethod(*s)
7655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7656}
7657
7658type DiskTypesScopedListWarningData struct {
7659	// Key: [Output Only] A key that provides more detail on the warning
7660	// being returned. For example, for warnings where there are no results
7661	// in a list request for a particular zone, this key might be scope and
7662	// the key value might be the zone name. Other examples might be a key
7663	// indicating a deprecated resource and a suggested replacement, or a
7664	// warning about invalid network settings (for example, if an instance
7665	// attempts to perform IP forwarding but is not enabled for IP
7666	// forwarding).
7667	Key string `json:"key,omitempty"`
7668
7669	// Value: [Output Only] A warning data value corresponding to the key.
7670	Value string `json:"value,omitempty"`
7671
7672	// ForceSendFields is a list of field names (e.g. "Key") to
7673	// unconditionally include in API requests. By default, fields with
7674	// empty values are omitted from API requests. However, any non-pointer,
7675	// non-interface field appearing in ForceSendFields will be sent to the
7676	// server regardless of whether the field is empty or not. This may be
7677	// used to include empty fields in Patch requests.
7678	ForceSendFields []string `json:"-"`
7679
7680	// NullFields is a list of field names (e.g. "Key") to include in API
7681	// requests with the JSON null value. By default, fields with empty
7682	// values are omitted from API requests. However, any field with an
7683	// empty value appearing in NullFields will be sent to the server as
7684	// null. It is an error if a field in this list has a non-empty value.
7685	// This may be used to include null fields in Patch requests.
7686	NullFields []string `json:"-"`
7687}
7688
7689func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
7690	type NoMethod DiskTypesScopedListWarningData
7691	raw := NoMethod(*s)
7692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7693}
7694
7695type DisksAddResourcePoliciesRequest struct {
7696	// ResourcePolicies: Resource policies to be added to this disk.
7697	// Currently you can only specify one policy here.
7698	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7699
7700	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
7701	// unconditionally include in API requests. By default, fields with
7702	// empty values are omitted from API requests. However, any non-pointer,
7703	// non-interface field appearing in ForceSendFields will be sent to the
7704	// server regardless of whether the field is empty or not. This may be
7705	// used to include empty fields in Patch requests.
7706	ForceSendFields []string `json:"-"`
7707
7708	// NullFields is a list of field names (e.g. "ResourcePolicies") to
7709	// include in API requests with the JSON null value. By default, fields
7710	// with empty values are omitted from API requests. However, any field
7711	// with an empty value appearing in NullFields will be sent to the
7712	// server as null. It is an error if a field in this list has a
7713	// non-empty value. This may be used to include null fields in Patch
7714	// requests.
7715	NullFields []string `json:"-"`
7716}
7717
7718func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
7719	type NoMethod DisksAddResourcePoliciesRequest
7720	raw := NoMethod(*s)
7721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7722}
7723
7724type DisksRemoveResourcePoliciesRequest struct {
7725	// ResourcePolicies: Resource policies to be removed from this disk.
7726	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7727
7728	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
7729	// unconditionally include in API requests. By default, fields with
7730	// empty values are omitted from API requests. However, any non-pointer,
7731	// non-interface field appearing in ForceSendFields will be sent to the
7732	// server regardless of whether the field is empty or not. This may be
7733	// used to include empty fields in Patch requests.
7734	ForceSendFields []string `json:"-"`
7735
7736	// NullFields is a list of field names (e.g. "ResourcePolicies") to
7737	// include in API requests with the JSON null value. By default, fields
7738	// with empty values are omitted from API requests. However, any field
7739	// with an empty value appearing in NullFields will be sent to the
7740	// server as null. It is an error if a field in this list has a
7741	// non-empty value. This may be used to include null fields in Patch
7742	// requests.
7743	NullFields []string `json:"-"`
7744}
7745
7746func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
7747	type NoMethod DisksRemoveResourcePoliciesRequest
7748	raw := NoMethod(*s)
7749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7750}
7751
7752type DisksResizeRequest struct {
7753	// SizeGb: The new size of the persistent disk, which is specified in
7754	// GB.
7755	SizeGb int64 `json:"sizeGb,omitempty,string"`
7756
7757	// ForceSendFields is a list of field names (e.g. "SizeGb") to
7758	// unconditionally include in API requests. By default, fields with
7759	// empty values are omitted from API requests. However, any non-pointer,
7760	// non-interface field appearing in ForceSendFields will be sent to the
7761	// server regardless of whether the field is empty or not. This may be
7762	// used to include empty fields in Patch requests.
7763	ForceSendFields []string `json:"-"`
7764
7765	// NullFields is a list of field names (e.g. "SizeGb") to include in API
7766	// requests with the JSON null value. By default, fields with empty
7767	// values are omitted from API requests. However, any field with an
7768	// empty value appearing in NullFields will be sent to the server as
7769	// null. It is an error if a field in this list has a non-empty value.
7770	// This may be used to include null fields in Patch requests.
7771	NullFields []string `json:"-"`
7772}
7773
7774func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
7775	type NoMethod DisksResizeRequest
7776	raw := NoMethod(*s)
7777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7778}
7779
7780type DisksScopedList struct {
7781	// Disks: [Output Only] A list of disks contained in this scope.
7782	Disks []*Disk `json:"disks,omitempty"`
7783
7784	// Warning: [Output Only] Informational warning which replaces the list
7785	// of disks when the list is empty.
7786	Warning *DisksScopedListWarning `json:"warning,omitempty"`
7787
7788	// ForceSendFields is a list of field names (e.g. "Disks") to
7789	// unconditionally include in API requests. By default, fields with
7790	// empty values are omitted from API requests. However, any non-pointer,
7791	// non-interface field appearing in ForceSendFields will be sent to the
7792	// server regardless of whether the field is empty or not. This may be
7793	// used to include empty fields in Patch requests.
7794	ForceSendFields []string `json:"-"`
7795
7796	// NullFields is a list of field names (e.g. "Disks") to include in API
7797	// requests with the JSON null value. By default, fields with empty
7798	// values are omitted from API requests. However, any field with an
7799	// empty value appearing in NullFields will be sent to the server as
7800	// null. It is an error if a field in this list has a non-empty value.
7801	// This may be used to include null fields in Patch requests.
7802	NullFields []string `json:"-"`
7803}
7804
7805func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
7806	type NoMethod DisksScopedList
7807	raw := NoMethod(*s)
7808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7809}
7810
7811// DisksScopedListWarning: [Output Only] Informational warning which
7812// replaces the list of disks when the list is empty.
7813type DisksScopedListWarning struct {
7814	// Code: [Output Only] A warning code, if applicable. For example,
7815	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7816	// the response.
7817	//
7818	// Possible values:
7819	//   "CLEANUP_FAILED"
7820	//   "DEPRECATED_RESOURCE_USED"
7821	//   "DEPRECATED_TYPE_USED"
7822	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7823	//   "EXPERIMENTAL_TYPE_USED"
7824	//   "EXTERNAL_API_WARNING"
7825	//   "FIELD_VALUE_OVERRIDEN"
7826	//   "INJECTED_KERNELS_DEPRECATED"
7827	//   "MISSING_TYPE_DEPENDENCY"
7828	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7829	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7830	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7831	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7832	//   "NEXT_HOP_NOT_RUNNING"
7833	//   "NOT_CRITICAL_ERROR"
7834	//   "NO_RESULTS_ON_PAGE"
7835	//   "REQUIRED_TOS_AGREEMENT"
7836	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7837	//   "RESOURCE_NOT_DELETED"
7838	//   "SCHEMA_VALIDATION_IGNORED"
7839	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7840	//   "UNDECLARED_PROPERTIES"
7841	//   "UNREACHABLE"
7842	Code string `json:"code,omitempty"`
7843
7844	// Data: [Output Only] Metadata about this warning in key: value format.
7845	// For example:
7846	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7847	Data []*DisksScopedListWarningData `json:"data,omitempty"`
7848
7849	// Message: [Output Only] A human-readable description of the warning
7850	// code.
7851	Message string `json:"message,omitempty"`
7852
7853	// ForceSendFields is a list of field names (e.g. "Code") to
7854	// unconditionally include in API requests. By default, fields with
7855	// empty values are omitted from API requests. However, any non-pointer,
7856	// non-interface field appearing in ForceSendFields will be sent to the
7857	// server regardless of whether the field is empty or not. This may be
7858	// used to include empty fields in Patch requests.
7859	ForceSendFields []string `json:"-"`
7860
7861	// NullFields is a list of field names (e.g. "Code") to include in API
7862	// requests with the JSON null value. By default, fields with empty
7863	// values are omitted from API requests. However, any field with an
7864	// empty value appearing in NullFields will be sent to the server as
7865	// null. It is an error if a field in this list has a non-empty value.
7866	// This may be used to include null fields in Patch requests.
7867	NullFields []string `json:"-"`
7868}
7869
7870func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
7871	type NoMethod DisksScopedListWarning
7872	raw := NoMethod(*s)
7873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7874}
7875
7876type DisksScopedListWarningData struct {
7877	// Key: [Output Only] A key that provides more detail on the warning
7878	// being returned. For example, for warnings where there are no results
7879	// in a list request for a particular zone, this key might be scope and
7880	// the key value might be the zone name. Other examples might be a key
7881	// indicating a deprecated resource and a suggested replacement, or a
7882	// warning about invalid network settings (for example, if an instance
7883	// attempts to perform IP forwarding but is not enabled for IP
7884	// forwarding).
7885	Key string `json:"key,omitempty"`
7886
7887	// Value: [Output Only] A warning data value corresponding to the key.
7888	Value string `json:"value,omitempty"`
7889
7890	// ForceSendFields is a list of field names (e.g. "Key") to
7891	// unconditionally include in API requests. By default, fields with
7892	// empty values are omitted from API requests. However, any non-pointer,
7893	// non-interface field appearing in ForceSendFields will be sent to the
7894	// server regardless of whether the field is empty or not. This may be
7895	// used to include empty fields in Patch requests.
7896	ForceSendFields []string `json:"-"`
7897
7898	// NullFields is a list of field names (e.g. "Key") to include in API
7899	// requests with the JSON null value. By default, fields with empty
7900	// values are omitted from API requests. However, any field with an
7901	// empty value appearing in NullFields will be sent to the server as
7902	// null. It is an error if a field in this list has a non-empty value.
7903	// This may be used to include null fields in Patch requests.
7904	NullFields []string `json:"-"`
7905}
7906
7907func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
7908	type NoMethod DisksScopedListWarningData
7909	raw := NoMethod(*s)
7910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7911}
7912
7913// DisplayDevice: A set of Display Device options
7914type DisplayDevice struct {
7915	// EnableDisplay: Defines whether the instance has Display enabled.
7916	EnableDisplay bool `json:"enableDisplay,omitempty"`
7917
7918	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
7919	// unconditionally include in API requests. By default, fields with
7920	// empty values are omitted from API requests. However, any non-pointer,
7921	// non-interface field appearing in ForceSendFields will be sent to the
7922	// server regardless of whether the field is empty or not. This may be
7923	// used to include empty fields in Patch requests.
7924	ForceSendFields []string `json:"-"`
7925
7926	// NullFields is a list of field names (e.g. "EnableDisplay") to include
7927	// in API requests with the JSON null value. By default, fields with
7928	// empty values are omitted from API requests. However, any field with
7929	// an empty value appearing in NullFields will be sent to the server as
7930	// null. It is an error if a field in this list has a non-empty value.
7931	// This may be used to include null fields in Patch requests.
7932	NullFields []string `json:"-"`
7933}
7934
7935func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
7936	type NoMethod DisplayDevice
7937	raw := NoMethod(*s)
7938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7939}
7940
7941type DistributionPolicy struct {
7942	// Zones: Zones where the regional managed instance group will create
7943	// and manage instances.
7944	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
7945
7946	// ForceSendFields is a list of field names (e.g. "Zones") to
7947	// unconditionally include in API requests. By default, fields with
7948	// empty values are omitted from API requests. However, any non-pointer,
7949	// non-interface field appearing in ForceSendFields will be sent to the
7950	// server regardless of whether the field is empty or not. This may be
7951	// used to include empty fields in Patch requests.
7952	ForceSendFields []string `json:"-"`
7953
7954	// NullFields is a list of field names (e.g. "Zones") to include in API
7955	// requests with the JSON null value. By default, fields with empty
7956	// values are omitted from API requests. However, any field with an
7957	// empty value appearing in NullFields will be sent to the server as
7958	// null. It is an error if a field in this list has a non-empty value.
7959	// This may be used to include null fields in Patch requests.
7960	NullFields []string `json:"-"`
7961}
7962
7963func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
7964	type NoMethod DistributionPolicy
7965	raw := NoMethod(*s)
7966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7967}
7968
7969type DistributionPolicyZoneConfiguration struct {
7970	// Zone: The URL of the zone. The zone must exist in the region where
7971	// the managed instance group is located.
7972	Zone string `json:"zone,omitempty"`
7973
7974	// ForceSendFields is a list of field names (e.g. "Zone") to
7975	// unconditionally include in API requests. By default, fields with
7976	// empty values are omitted from API requests. However, any non-pointer,
7977	// non-interface field appearing in ForceSendFields will be sent to the
7978	// server regardless of whether the field is empty or not. This may be
7979	// used to include empty fields in Patch requests.
7980	ForceSendFields []string `json:"-"`
7981
7982	// NullFields is a list of field names (e.g. "Zone") to include in API
7983	// requests with the JSON null value. By default, fields with empty
7984	// values are omitted from API requests. However, any field with an
7985	// empty value appearing in NullFields will be sent to the server as
7986	// null. It is an error if a field in this list has a non-empty value.
7987	// This may be used to include null fields in Patch requests.
7988	NullFields []string `json:"-"`
7989}
7990
7991func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
7992	type NoMethod DistributionPolicyZoneConfiguration
7993	raw := NoMethod(*s)
7994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7995}
7996
7997// Duration: A Duration represents a fixed-length span of time
7998// represented as a count of seconds and fractions of seconds at
7999// nanosecond resolution. It is independent of any calendar and concepts
8000// like "day" or "month". Range is approximately 10,000 years.
8001type Duration struct {
8002	// Nanos: Span of time that's a fraction of a second at nanosecond
8003	// resolution. Durations less than one second are represented with a 0
8004	// `seconds` field and a positive `nanos` field. Must be from 0 to
8005	// 999,999,999 inclusive.
8006	Nanos int64 `json:"nanos,omitempty"`
8007
8008	// Seconds: Span of time at a resolution of a second. Must be from 0 to
8009	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
8010	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
8011	Seconds int64 `json:"seconds,omitempty,string"`
8012
8013	// ForceSendFields is a list of field names (e.g. "Nanos") to
8014	// unconditionally include in API requests. By default, fields with
8015	// empty values are omitted from API requests. However, any non-pointer,
8016	// non-interface field appearing in ForceSendFields will be sent to the
8017	// server regardless of whether the field is empty or not. This may be
8018	// used to include empty fields in Patch requests.
8019	ForceSendFields []string `json:"-"`
8020
8021	// NullFields is a list of field names (e.g. "Nanos") to include in API
8022	// requests with the JSON null value. By default, fields with empty
8023	// values are omitted from API requests. However, any field with an
8024	// empty value appearing in NullFields will be sent to the server as
8025	// null. It is an error if a field in this list has a non-empty value.
8026	// This may be used to include null fields in Patch requests.
8027	NullFields []string `json:"-"`
8028}
8029
8030func (s *Duration) MarshalJSON() ([]byte, error) {
8031	type NoMethod Duration
8032	raw := NoMethod(*s)
8033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8034}
8035
8036type ExchangedPeeringRoute struct {
8037	// DestRange: The destination range of the route.
8038	DestRange string `json:"destRange,omitempty"`
8039
8040	// Imported: True if the peering route has been imported from a peer.
8041	// The actual import happens if the field
8042	// networkPeering.importCustomRoutes is true for this network, and
8043	// networkPeering.exportCustomRoutes is true for the peer network, and
8044	// the import does not result in a route conflict.
8045	Imported bool `json:"imported,omitempty"`
8046
8047	// NextHopRegion: The region of peering route next hop, only applies to
8048	// dynamic routes.
8049	NextHopRegion string `json:"nextHopRegion,omitempty"`
8050
8051	// Priority: The priority of the peering route.
8052	Priority int64 `json:"priority,omitempty"`
8053
8054	// Type: The type of the peering route.
8055	//
8056	// Possible values:
8057	//   "DYNAMIC_PEERING_ROUTE"
8058	//   "STATIC_PEERING_ROUTE"
8059	//   "SUBNET_PEERING_ROUTE"
8060	Type string `json:"type,omitempty"`
8061
8062	// ForceSendFields is a list of field names (e.g. "DestRange") to
8063	// unconditionally include in API requests. By default, fields with
8064	// empty values are omitted from API requests. However, any non-pointer,
8065	// non-interface field appearing in ForceSendFields will be sent to the
8066	// server regardless of whether the field is empty or not. This may be
8067	// used to include empty fields in Patch requests.
8068	ForceSendFields []string `json:"-"`
8069
8070	// NullFields is a list of field names (e.g. "DestRange") to include in
8071	// API requests with the JSON null value. By default, fields with empty
8072	// values are omitted from API requests. However, any field with an
8073	// empty value appearing in NullFields will be sent to the server as
8074	// null. It is an error if a field in this list has a non-empty value.
8075	// This may be used to include null fields in Patch requests.
8076	NullFields []string `json:"-"`
8077}
8078
8079func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
8080	type NoMethod ExchangedPeeringRoute
8081	raw := NoMethod(*s)
8082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8083}
8084
8085type ExchangedPeeringRoutesList struct {
8086	// Id: [Output Only] Unique identifier for the resource; defined by the
8087	// server.
8088	Id string `json:"id,omitempty"`
8089
8090	// Items: A list of ExchangedPeeringRoute resources.
8091	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
8092
8093	// Kind: [Output Only] Type of resource. Always
8094	// compute#exchangedPeeringRoutesList for exchanged peering routes
8095	// lists.
8096	Kind string `json:"kind,omitempty"`
8097
8098	// NextPageToken: [Output Only] This token allows you to get the next
8099	// page of results for list requests. If the number of results is larger
8100	// than maxResults, use the nextPageToken as a value for the query
8101	// parameter pageToken in the next list request. Subsequent list
8102	// requests will have their own nextPageToken to continue paging through
8103	// the results.
8104	NextPageToken string `json:"nextPageToken,omitempty"`
8105
8106	// SelfLink: [Output Only] Server-defined URL for this resource.
8107	SelfLink string `json:"selfLink,omitempty"`
8108
8109	// Warning: [Output Only] Informational warning message.
8110	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
8111
8112	// ServerResponse contains the HTTP response code and headers from the
8113	// server.
8114	googleapi.ServerResponse `json:"-"`
8115
8116	// ForceSendFields is a list of field names (e.g. "Id") to
8117	// unconditionally include in API requests. By default, fields with
8118	// empty values are omitted from API requests. However, any non-pointer,
8119	// non-interface field appearing in ForceSendFields will be sent to the
8120	// server regardless of whether the field is empty or not. This may be
8121	// used to include empty fields in Patch requests.
8122	ForceSendFields []string `json:"-"`
8123
8124	// NullFields is a list of field names (e.g. "Id") to include in API
8125	// requests with the JSON null value. By default, fields with empty
8126	// values are omitted from API requests. However, any field with an
8127	// empty value appearing in NullFields will be sent to the server as
8128	// null. It is an error if a field in this list has a non-empty value.
8129	// This may be used to include null fields in Patch requests.
8130	NullFields []string `json:"-"`
8131}
8132
8133func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
8134	type NoMethod ExchangedPeeringRoutesList
8135	raw := NoMethod(*s)
8136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8137}
8138
8139// ExchangedPeeringRoutesListWarning: [Output Only] Informational
8140// warning message.
8141type ExchangedPeeringRoutesListWarning struct {
8142	// Code: [Output Only] A warning code, if applicable. For example,
8143	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8144	// the response.
8145	//
8146	// Possible values:
8147	//   "CLEANUP_FAILED"
8148	//   "DEPRECATED_RESOURCE_USED"
8149	//   "DEPRECATED_TYPE_USED"
8150	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8151	//   "EXPERIMENTAL_TYPE_USED"
8152	//   "EXTERNAL_API_WARNING"
8153	//   "FIELD_VALUE_OVERRIDEN"
8154	//   "INJECTED_KERNELS_DEPRECATED"
8155	//   "MISSING_TYPE_DEPENDENCY"
8156	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8157	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8158	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8159	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8160	//   "NEXT_HOP_NOT_RUNNING"
8161	//   "NOT_CRITICAL_ERROR"
8162	//   "NO_RESULTS_ON_PAGE"
8163	//   "REQUIRED_TOS_AGREEMENT"
8164	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8165	//   "RESOURCE_NOT_DELETED"
8166	//   "SCHEMA_VALIDATION_IGNORED"
8167	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8168	//   "UNDECLARED_PROPERTIES"
8169	//   "UNREACHABLE"
8170	Code string `json:"code,omitempty"`
8171
8172	// Data: [Output Only] Metadata about this warning in key: value format.
8173	// For example:
8174	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8175	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
8176
8177	// Message: [Output Only] A human-readable description of the warning
8178	// code.
8179	Message string `json:"message,omitempty"`
8180
8181	// ForceSendFields is a list of field names (e.g. "Code") to
8182	// unconditionally include in API requests. By default, fields with
8183	// empty values are omitted from API requests. However, any non-pointer,
8184	// non-interface field appearing in ForceSendFields will be sent to the
8185	// server regardless of whether the field is empty or not. This may be
8186	// used to include empty fields in Patch requests.
8187	ForceSendFields []string `json:"-"`
8188
8189	// NullFields is a list of field names (e.g. "Code") to include in API
8190	// requests with the JSON null value. By default, fields with empty
8191	// values are omitted from API requests. However, any field with an
8192	// empty value appearing in NullFields will be sent to the server as
8193	// null. It is an error if a field in this list has a non-empty value.
8194	// This may be used to include null fields in Patch requests.
8195	NullFields []string `json:"-"`
8196}
8197
8198func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
8199	type NoMethod ExchangedPeeringRoutesListWarning
8200	raw := NoMethod(*s)
8201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8202}
8203
8204type ExchangedPeeringRoutesListWarningData struct {
8205	// Key: [Output Only] A key that provides more detail on the warning
8206	// being returned. For example, for warnings where there are no results
8207	// in a list request for a particular zone, this key might be scope and
8208	// the key value might be the zone name. Other examples might be a key
8209	// indicating a deprecated resource and a suggested replacement, or a
8210	// warning about invalid network settings (for example, if an instance
8211	// attempts to perform IP forwarding but is not enabled for IP
8212	// forwarding).
8213	Key string `json:"key,omitempty"`
8214
8215	// Value: [Output Only] A warning data value corresponding to the key.
8216	Value string `json:"value,omitempty"`
8217
8218	// ForceSendFields is a list of field names (e.g. "Key") to
8219	// unconditionally include in API requests. By default, fields with
8220	// empty values are omitted from API requests. However, any non-pointer,
8221	// non-interface field appearing in ForceSendFields will be sent to the
8222	// server regardless of whether the field is empty or not. This may be
8223	// used to include empty fields in Patch requests.
8224	ForceSendFields []string `json:"-"`
8225
8226	// NullFields is a list of field names (e.g. "Key") to include in API
8227	// requests with the JSON null value. By default, fields with empty
8228	// values are omitted from API requests. However, any field with an
8229	// empty value appearing in NullFields will be sent to the server as
8230	// null. It is an error if a field in this list has a non-empty value.
8231	// This may be used to include null fields in Patch requests.
8232	NullFields []string `json:"-"`
8233}
8234
8235func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
8236	type NoMethod ExchangedPeeringRoutesListWarningData
8237	raw := NoMethod(*s)
8238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8239}
8240
8241// Expr: Represents a textual expression in the Common Expression
8242// Language (CEL) syntax. CEL is a C-like expression language. The
8243// syntax and semantics of CEL are documented at
8244// https://github.com/google/cel-spec.
8245//
8246// Example (Comparison):
8247//
8248// title: "Summary size limit" description: "Determines if a summary is
8249// less than 100 chars" expression: "document.summary.size() <
8250// 100"
8251//
8252// Example (Equality):
8253//
8254// title: "Requestor is owner" description: "Determines if requestor is
8255// the document owner" expression: "document.owner ==
8256// request.auth.claims.email"
8257//
8258// Example (Logic):
8259//
8260// title: "Public documents" description: "Determine whether the
8261// document should be publicly visible" expression: "document.type !=
8262// 'private' && document.type != 'internal'"
8263//
8264// Example (Data Manipulation):
8265//
8266// title: "Notification string" description: "Create a notification
8267// string with a timestamp." expression: "'New message received at ' +
8268// string(document.create_time)"
8269//
8270// The exact variables and functions that may be referenced within an
8271// expression are determined by the service that evaluates it. See the
8272// service documentation for additional information.
8273type Expr struct {
8274	// Description: Optional. Description of the expression. This is a
8275	// longer text which describes the expression, e.g. when hovered over it
8276	// in a UI.
8277	Description string `json:"description,omitempty"`
8278
8279	// Expression: Textual representation of an expression in Common
8280	// Expression Language syntax.
8281	Expression string `json:"expression,omitempty"`
8282
8283	// Location: Optional. String indicating the location of the expression
8284	// for error reporting, e.g. a file name and a position in the file.
8285	Location string `json:"location,omitempty"`
8286
8287	// Title: Optional. Title for the expression, i.e. a short string
8288	// describing its purpose. This can be used e.g. in UIs which allow to
8289	// enter the expression.
8290	Title string `json:"title,omitempty"`
8291
8292	// ForceSendFields is a list of field names (e.g. "Description") to
8293	// unconditionally include in API requests. By default, fields with
8294	// empty values are omitted from API requests. However, any non-pointer,
8295	// non-interface field appearing in ForceSendFields will be sent to the
8296	// server regardless of whether the field is empty or not. This may be
8297	// used to include empty fields in Patch requests.
8298	ForceSendFields []string `json:"-"`
8299
8300	// NullFields is a list of field names (e.g. "Description") to include
8301	// in API requests with the JSON null value. By default, fields with
8302	// empty values are omitted from API requests. However, any field with
8303	// an empty value appearing in NullFields will be sent to the server as
8304	// null. It is an error if a field in this list has a non-empty value.
8305	// This may be used to include null fields in Patch requests.
8306	NullFields []string `json:"-"`
8307}
8308
8309func (s *Expr) MarshalJSON() ([]byte, error) {
8310	type NoMethod Expr
8311	raw := NoMethod(*s)
8312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8313}
8314
8315// ExternalVpnGateway: Represents an external VPN gateway.
8316//
8317// External VPN gateway is the on-premises VPN gateway(s) or another
8318// cloud provider's VPN gateway that connects to your Google Cloud VPN
8319// gateway.
8320//
8321// To create a highly available VPN from Google Cloud Platform to your
8322// VPN gateway or another cloud provider's VPN gateway, you must create
8323// a external VPN gateway resource with information about the other
8324// gateway.
8325//
8326// For more information about using external VPN gateways, see  Creating
8327// an HA VPN gateway and tunnel pair to a peer VPN. (== resource_for
8328// {$api_version}.externalVpnGateways ==)
8329type ExternalVpnGateway struct {
8330	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8331	// format.
8332	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8333
8334	// Description: An optional description of this resource. Provide this
8335	// property when you create the resource.
8336	Description string `json:"description,omitempty"`
8337
8338	// Id: [Output Only] The unique identifier for the resource. This
8339	// identifier is defined by the server.
8340	Id *uint64 `json:"id,omitempty,string"`
8341
8342	// Interfaces: List of interfaces for this external VPN gateway.
8343	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
8344
8345	// Kind: [Output Only] Type of the resource. Always
8346	// compute#externalVpnGateway for externalVpnGateways.
8347	Kind string `json:"kind,omitempty"`
8348
8349	// LabelFingerprint: A fingerprint for the labels being applied to this
8350	// ExternalVpnGateway, which is essentially a hash of the labels set
8351	// used for optimistic locking. The fingerprint is initially generated
8352	// by Compute Engine and changes after every request to modify or update
8353	// labels. You must always provide an up-to-date fingerprint hash in
8354	// order to update or change labels, otherwise the request will fail
8355	// with error 412 conditionNotMet.
8356	//
8357	// To see the latest fingerprint, make a get() request to retrieve an
8358	// ExternalVpnGateway.
8359	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8360
8361	// Labels: Labels for this resource. These can only be added or modified
8362	// by the setLabels method. Each label key/value pair must comply with
8363	// RFC1035. Label values may be empty.
8364	Labels map[string]string `json:"labels,omitempty"`
8365
8366	// Name: Name of the resource. Provided by the client when the resource
8367	// is created. The name must be 1-63 characters long, and comply with
8368	// RFC1035. Specifically, the name must be 1-63 characters long and
8369	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
8370	// the first character must be a lowercase letter, and all following
8371	// characters must be a dash, lowercase letter, or digit, except the
8372	// last character, which cannot be a dash.
8373	Name string `json:"name,omitempty"`
8374
8375	// RedundancyType: Indicates the user-supplied redundancy type of this
8376	// external VPN gateway.
8377	//
8378	// Possible values:
8379	//   "FOUR_IPS_REDUNDANCY"
8380	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
8381	//   "TWO_IPS_REDUNDANCY"
8382	RedundancyType string `json:"redundancyType,omitempty"`
8383
8384	// SelfLink: [Output Only] Server-defined URL for the resource.
8385	SelfLink string `json:"selfLink,omitempty"`
8386
8387	// ServerResponse contains the HTTP response code and headers from the
8388	// server.
8389	googleapi.ServerResponse `json:"-"`
8390
8391	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8392	// to unconditionally include in API requests. By default, fields with
8393	// empty values are omitted from API requests. However, any non-pointer,
8394	// non-interface field appearing in ForceSendFields will be sent to the
8395	// server regardless of whether the field is empty or not. This may be
8396	// used to include empty fields in Patch requests.
8397	ForceSendFields []string `json:"-"`
8398
8399	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8400	// include in API requests with the JSON null value. By default, fields
8401	// with empty values are omitted from API requests. However, any field
8402	// with an empty value appearing in NullFields will be sent to the
8403	// server as null. It is an error if a field in this list has a
8404	// non-empty value. This may be used to include null fields in Patch
8405	// requests.
8406	NullFields []string `json:"-"`
8407}
8408
8409func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
8410	type NoMethod ExternalVpnGateway
8411	raw := NoMethod(*s)
8412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8413}
8414
8415// ExternalVpnGatewayInterface: The interface for the external VPN
8416// gateway.
8417type ExternalVpnGatewayInterface struct {
8418	// Id: The numeric ID of this interface. The allowed input values for
8419	// this id for different redundancy types of external VPN gateway:
8420	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 TWO_IPS_REDUNDANCY - 0, 1
8421	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
8422	Id int64 `json:"id,omitempty"`
8423
8424	// IpAddress: IP address of the interface in the external VPN gateway.
8425	// Only IPv4 is supported. This IP address can be either from your
8426	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
8427	// be an IP address from Google Compute Engine.
8428	IpAddress string `json:"ipAddress,omitempty"`
8429
8430	// ForceSendFields is a list of field names (e.g. "Id") to
8431	// unconditionally include in API requests. By default, fields with
8432	// empty values are omitted from API requests. However, any non-pointer,
8433	// non-interface field appearing in ForceSendFields will be sent to the
8434	// server regardless of whether the field is empty or not. This may be
8435	// used to include empty fields in Patch requests.
8436	ForceSendFields []string `json:"-"`
8437
8438	// NullFields is a list of field names (e.g. "Id") to include in API
8439	// requests with the JSON null value. By default, fields with empty
8440	// values are omitted from API requests. However, any field with an
8441	// empty value appearing in NullFields will be sent to the server as
8442	// null. It is an error if a field in this list has a non-empty value.
8443	// This may be used to include null fields in Patch requests.
8444	NullFields []string `json:"-"`
8445}
8446
8447func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
8448	type NoMethod ExternalVpnGatewayInterface
8449	raw := NoMethod(*s)
8450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8451}
8452
8453// ExternalVpnGatewayList: Response to the list request, and contains a
8454// list of externalVpnGateways.
8455type ExternalVpnGatewayList struct {
8456	Etag string `json:"etag,omitempty"`
8457
8458	// Id: [Output Only] Unique identifier for the resource; defined by the
8459	// server.
8460	Id string `json:"id,omitempty"`
8461
8462	// Items: A list of ExternalVpnGateway resources.
8463	Items []*ExternalVpnGateway `json:"items,omitempty"`
8464
8465	// Kind: [Output Only] Type of resource. Always
8466	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
8467	Kind string `json:"kind,omitempty"`
8468
8469	// NextPageToken: [Output Only] This token allows you to get the next
8470	// page of results for list requests. If the number of results is larger
8471	// than maxResults, use the nextPageToken as a value for the query
8472	// parameter pageToken in the next list request. Subsequent list
8473	// requests will have their own nextPageToken to continue paging through
8474	// the results.
8475	NextPageToken string `json:"nextPageToken,omitempty"`
8476
8477	// SelfLink: [Output Only] Server-defined URL for this resource.
8478	SelfLink string `json:"selfLink,omitempty"`
8479
8480	// Warning: [Output Only] Informational warning message.
8481	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
8482
8483	// ServerResponse contains the HTTP response code and headers from the
8484	// server.
8485	googleapi.ServerResponse `json:"-"`
8486
8487	// ForceSendFields is a list of field names (e.g. "Etag") to
8488	// unconditionally include in API requests. By default, fields with
8489	// empty values are omitted from API requests. However, any non-pointer,
8490	// non-interface field appearing in ForceSendFields will be sent to the
8491	// server regardless of whether the field is empty or not. This may be
8492	// used to include empty fields in Patch requests.
8493	ForceSendFields []string `json:"-"`
8494
8495	// NullFields is a list of field names (e.g. "Etag") to include in API
8496	// requests with the JSON null value. By default, fields with empty
8497	// values are omitted from API requests. However, any field with an
8498	// empty value appearing in NullFields will be sent to the server as
8499	// null. It is an error if a field in this list has a non-empty value.
8500	// This may be used to include null fields in Patch requests.
8501	NullFields []string `json:"-"`
8502}
8503
8504func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
8505	type NoMethod ExternalVpnGatewayList
8506	raw := NoMethod(*s)
8507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8508}
8509
8510// ExternalVpnGatewayListWarning: [Output Only] Informational warning
8511// message.
8512type ExternalVpnGatewayListWarning struct {
8513	// Code: [Output Only] A warning code, if applicable. For example,
8514	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8515	// the response.
8516	//
8517	// Possible values:
8518	//   "CLEANUP_FAILED"
8519	//   "DEPRECATED_RESOURCE_USED"
8520	//   "DEPRECATED_TYPE_USED"
8521	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8522	//   "EXPERIMENTAL_TYPE_USED"
8523	//   "EXTERNAL_API_WARNING"
8524	//   "FIELD_VALUE_OVERRIDEN"
8525	//   "INJECTED_KERNELS_DEPRECATED"
8526	//   "MISSING_TYPE_DEPENDENCY"
8527	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8528	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8529	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8530	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8531	//   "NEXT_HOP_NOT_RUNNING"
8532	//   "NOT_CRITICAL_ERROR"
8533	//   "NO_RESULTS_ON_PAGE"
8534	//   "REQUIRED_TOS_AGREEMENT"
8535	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8536	//   "RESOURCE_NOT_DELETED"
8537	//   "SCHEMA_VALIDATION_IGNORED"
8538	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8539	//   "UNDECLARED_PROPERTIES"
8540	//   "UNREACHABLE"
8541	Code string `json:"code,omitempty"`
8542
8543	// Data: [Output Only] Metadata about this warning in key: value format.
8544	// For example:
8545	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8546	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
8547
8548	// Message: [Output Only] A human-readable description of the warning
8549	// code.
8550	Message string `json:"message,omitempty"`
8551
8552	// ForceSendFields is a list of field names (e.g. "Code") to
8553	// unconditionally include in API requests. By default, fields with
8554	// empty values are omitted from API requests. However, any non-pointer,
8555	// non-interface field appearing in ForceSendFields will be sent to the
8556	// server regardless of whether the field is empty or not. This may be
8557	// used to include empty fields in Patch requests.
8558	ForceSendFields []string `json:"-"`
8559
8560	// NullFields is a list of field names (e.g. "Code") to include in API
8561	// requests with the JSON null value. By default, fields with empty
8562	// values are omitted from API requests. However, any field with an
8563	// empty value appearing in NullFields will be sent to the server as
8564	// null. It is an error if a field in this list has a non-empty value.
8565	// This may be used to include null fields in Patch requests.
8566	NullFields []string `json:"-"`
8567}
8568
8569func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
8570	type NoMethod ExternalVpnGatewayListWarning
8571	raw := NoMethod(*s)
8572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8573}
8574
8575type ExternalVpnGatewayListWarningData struct {
8576	// Key: [Output Only] A key that provides more detail on the warning
8577	// being returned. For example, for warnings where there are no results
8578	// in a list request for a particular zone, this key might be scope and
8579	// the key value might be the zone name. Other examples might be a key
8580	// indicating a deprecated resource and a suggested replacement, or a
8581	// warning about invalid network settings (for example, if an instance
8582	// attempts to perform IP forwarding but is not enabled for IP
8583	// forwarding).
8584	Key string `json:"key,omitempty"`
8585
8586	// Value: [Output Only] A warning data value corresponding to the key.
8587	Value string `json:"value,omitempty"`
8588
8589	// ForceSendFields is a list of field names (e.g. "Key") to
8590	// unconditionally include in API requests. By default, fields with
8591	// empty values are omitted from API requests. However, any non-pointer,
8592	// non-interface field appearing in ForceSendFields will be sent to the
8593	// server regardless of whether the field is empty or not. This may be
8594	// used to include empty fields in Patch requests.
8595	ForceSendFields []string `json:"-"`
8596
8597	// NullFields is a list of field names (e.g. "Key") to include in API
8598	// requests with the JSON null value. By default, fields with empty
8599	// values are omitted from API requests. However, any field with an
8600	// empty value appearing in NullFields will be sent to the server as
8601	// null. It is an error if a field in this list has a non-empty value.
8602	// This may be used to include null fields in Patch requests.
8603	NullFields []string `json:"-"`
8604}
8605
8606func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
8607	type NoMethod ExternalVpnGatewayListWarningData
8608	raw := NoMethod(*s)
8609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8610}
8611
8612type FileContentBuffer struct {
8613	// Content: The raw content in the secure keys file.
8614	Content string `json:"content,omitempty"`
8615
8616	// FileType: The file type of source file.
8617	//
8618	// Possible values:
8619	//   "BIN"
8620	//   "UNDEFINED"
8621	//   "X509"
8622	FileType string `json:"fileType,omitempty"`
8623
8624	// ForceSendFields is a list of field names (e.g. "Content") to
8625	// unconditionally include in API requests. By default, fields with
8626	// empty values are omitted from API requests. However, any non-pointer,
8627	// non-interface field appearing in ForceSendFields will be sent to the
8628	// server regardless of whether the field is empty or not. This may be
8629	// used to include empty fields in Patch requests.
8630	ForceSendFields []string `json:"-"`
8631
8632	// NullFields is a list of field names (e.g. "Content") to include in
8633	// API requests with the JSON null value. By default, fields with empty
8634	// values are omitted from API requests. However, any field with an
8635	// empty value appearing in NullFields will be sent to the server as
8636	// null. It is an error if a field in this list has a non-empty value.
8637	// This may be used to include null fields in Patch requests.
8638	NullFields []string `json:"-"`
8639}
8640
8641func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
8642	type NoMethod FileContentBuffer
8643	raw := NoMethod(*s)
8644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8645}
8646
8647// Firewall: Represents a Firewall Rule resource.
8648//
8649// Firewall rules allow or deny ingress traffic to, and egress traffic
8650// from your instances. For more information, read Firewall rules.
8651type Firewall struct {
8652	// Allowed: The list of ALLOW rules specified by this firewall. Each
8653	// rule specifies a protocol and port-range tuple that describes a
8654	// permitted connection.
8655	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
8656
8657	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8658	// format.
8659	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8660
8661	// Denied: The list of DENY rules specified by this firewall. Each rule
8662	// specifies a protocol and port-range tuple that describes a denied
8663	// connection.
8664	Denied []*FirewallDenied `json:"denied,omitempty"`
8665
8666	// Description: An optional description of this resource. Provide this
8667	// field when you create the resource.
8668	Description string `json:"description,omitempty"`
8669
8670	// DestinationRanges: If destination ranges are specified, the firewall
8671	// rule applies only to traffic that has destination IP address in these
8672	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
8673	// supported.
8674	DestinationRanges []string `json:"destinationRanges,omitempty"`
8675
8676	// Direction: Direction of traffic to which this firewall applies,
8677	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
8678	// traffic, you cannot specify the destinationRanges field, and for
8679	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
8680	// fields.
8681	//
8682	// Possible values:
8683	//   "EGRESS"
8684	//   "INGRESS"
8685	Direction string `json:"direction,omitempty"`
8686
8687	// Disabled: Denotes whether the firewall rule is disabled. When set to
8688	// true, the firewall rule is not enforced and the network behaves as if
8689	// it did not exist. If this is unspecified, the firewall rule will be
8690	// enabled.
8691	Disabled bool `json:"disabled,omitempty"`
8692
8693	// Id: [Output Only] The unique identifier for the resource. This
8694	// identifier is defined by the server.
8695	Id uint64 `json:"id,omitempty,string"`
8696
8697	// Kind: [Output Only] Type of the resource. Always compute#firewall for
8698	// firewall rules.
8699	Kind string `json:"kind,omitempty"`
8700
8701	// LogConfig: This field denotes the logging options for a particular
8702	// firewall rule. If logging is enabled, logs will be exported to Cloud
8703	// Logging.
8704	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
8705
8706	// Name: Name of the resource; provided by the client when the resource
8707	// is created. The name must be 1-63 characters long, and comply with
8708	// RFC1035. Specifically, the name must be 1-63 characters long and
8709	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
8710	// character must be a lowercase letter, and all following characters
8711	// (except for the last character) must be a dash, lowercase letter, or
8712	// digit. The last character must be a lowercase letter or digit.
8713	Name string `json:"name,omitempty"`
8714
8715	// Network: URL of the network resource for this firewall rule. If not
8716	// specified when creating a firewall rule, the default network is
8717	// used:
8718	// global/networks/default
8719	// If you choose to specify this field, you can specify the network as a
8720	// full or partial URL. For example, the following are all valid URLs:
8721	//
8722	// -
8723	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
8724	// - projects/myproject/global/networks/my-network
8725	// - global/networks/default
8726	Network string `json:"network,omitempty"`
8727
8728	// Priority: Priority for this rule. This is an integer between `0` and
8729	// `65535`, both inclusive. The default value is `1000`. Relative
8730	// priorities determine which rule takes effect if multiple rules apply.
8731	// Lower values indicate higher priority. For example, a rule with
8732	// priority `0` has higher precedence than a rule with priority `1`.
8733	// DENY rules take precedence over ALLOW rules if they have equal
8734	// priority. Note that VPC networks have implied rules with a priority
8735	// of `65535`. To avoid conflicts with the implied rules, use a priority
8736	// number less than `65535`.
8737	Priority int64 `json:"priority,omitempty"`
8738
8739	// SelfLink: [Output Only] Server-defined URL for the resource.
8740	SelfLink string `json:"selfLink,omitempty"`
8741
8742	// SourceRanges: If source ranges are specified, the firewall rule
8743	// applies only to traffic that has a source IP address in these ranges.
8744	// These ranges must be expressed in CIDR format. One or both of
8745	// sourceRanges and sourceTags may be set. If both fields are set, the
8746	// rule applies to traffic that has a source IP address within
8747	// sourceRanges OR a source IP from a resource with a matching tag
8748	// listed in the sourceTags field. The connection does not need to match
8749	// both fields for the rule to apply. Only IPv4 is supported.
8750	SourceRanges []string `json:"sourceRanges,omitempty"`
8751
8752	// SourceServiceAccounts: If source service accounts are specified, the
8753	// firewall rules apply only to traffic originating from an instance
8754	// with a service account in this list. Source service accounts cannot
8755	// be used to control traffic to an instance's external IP address
8756	// because service accounts are associated with an instance, not an IP
8757	// address. sourceRanges can be set at the same time as
8758	// sourceServiceAccounts. If both are set, the firewall applies to
8759	// traffic that has a source IP address within the sourceRanges OR a
8760	// source IP that belongs to an instance with service account listed in
8761	// sourceServiceAccount. The connection does not need to match both
8762	// fields for the firewall to apply. sourceServiceAccounts cannot be
8763	// used at the same time as sourceTags or targetTags.
8764	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
8765
8766	// SourceTags: If source tags are specified, the firewall rule applies
8767	// only to traffic with source IPs that match the primary network
8768	// interfaces of VM instances that have the tag and are in the same VPC
8769	// network. Source tags cannot be used to control traffic to an
8770	// instance's external IP address, it only applies to traffic between
8771	// instances in the same virtual network. Because tags are associated
8772	// with instances, not IP addresses. One or both of sourceRanges and
8773	// sourceTags may be set. If both fields are set, the firewall applies
8774	// to traffic that has a source IP address within sourceRanges OR a
8775	// source IP from a resource with a matching tag listed in the
8776	// sourceTags field. The connection does not need to match both fields
8777	// for the firewall to apply.
8778	SourceTags []string `json:"sourceTags,omitempty"`
8779
8780	// TargetServiceAccounts: A list of service accounts indicating sets of
8781	// instances located in the network that may make network connections as
8782	// specified in allowed[]. targetServiceAccounts cannot be used at the
8783	// same time as targetTags or sourceTags. If neither
8784	// targetServiceAccounts nor targetTags are specified, the firewall rule
8785	// applies to all instances on the specified network.
8786	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
8787
8788	// TargetTags: A list of tags that controls which instances the firewall
8789	// rule applies to. If targetTags are specified, then the firewall rule
8790	// applies only to instances in the VPC network that have one of those
8791	// tags. If no targetTags are specified, the firewall rule applies to
8792	// all instances on the specified network.
8793	TargetTags []string `json:"targetTags,omitempty"`
8794
8795	// ServerResponse contains the HTTP response code and headers from the
8796	// server.
8797	googleapi.ServerResponse `json:"-"`
8798
8799	// ForceSendFields is a list of field names (e.g. "Allowed") to
8800	// unconditionally include in API requests. By default, fields with
8801	// empty values are omitted from API requests. However, any non-pointer,
8802	// non-interface field appearing in ForceSendFields will be sent to the
8803	// server regardless of whether the field is empty or not. This may be
8804	// used to include empty fields in Patch requests.
8805	ForceSendFields []string `json:"-"`
8806
8807	// NullFields is a list of field names (e.g. "Allowed") to include in
8808	// API requests with the JSON null value. By default, fields with empty
8809	// values are omitted from API requests. However, any field with an
8810	// empty value appearing in NullFields will be sent to the server as
8811	// null. It is an error if a field in this list has a non-empty value.
8812	// This may be used to include null fields in Patch requests.
8813	NullFields []string `json:"-"`
8814}
8815
8816func (s *Firewall) MarshalJSON() ([]byte, error) {
8817	type NoMethod Firewall
8818	raw := NoMethod(*s)
8819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8820}
8821
8822type FirewallAllowed struct {
8823	// IPProtocol: The IP protocol to which this rule applies. The protocol
8824	// type is required when creating a firewall rule. This value can either
8825	// be one of the following well known protocol strings (tcp, udp, icmp,
8826	// esp, ah, ipip, sctp) or the IP protocol number.
8827	IPProtocol string `json:"IPProtocol,omitempty"`
8828
8829	// Ports: An optional list of ports to which this rule applies. This
8830	// field is only applicable for the UDP or TCP protocol. Each entry must
8831	// be either an integer or a range. If not specified, this rule applies
8832	// to connections through any port.
8833	//
8834	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
8835	Ports []string `json:"ports,omitempty"`
8836
8837	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
8838	// unconditionally include in API requests. By default, fields with
8839	// empty values are omitted from API requests. However, any non-pointer,
8840	// non-interface field appearing in ForceSendFields will be sent to the
8841	// server regardless of whether the field is empty or not. This may be
8842	// used to include empty fields in Patch requests.
8843	ForceSendFields []string `json:"-"`
8844
8845	// NullFields is a list of field names (e.g. "IPProtocol") to include in
8846	// API requests with the JSON null value. By default, fields with empty
8847	// values are omitted from API requests. However, any field with an
8848	// empty value appearing in NullFields will be sent to the server as
8849	// null. It is an error if a field in this list has a non-empty value.
8850	// This may be used to include null fields in Patch requests.
8851	NullFields []string `json:"-"`
8852}
8853
8854func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
8855	type NoMethod FirewallAllowed
8856	raw := NoMethod(*s)
8857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8858}
8859
8860type FirewallDenied struct {
8861	// IPProtocol: The IP protocol to which this rule applies. The protocol
8862	// type is required when creating a firewall rule. This value can either
8863	// be one of the following well known protocol strings (tcp, udp, icmp,
8864	// esp, ah, ipip, sctp) or the IP protocol number.
8865	IPProtocol string `json:"IPProtocol,omitempty"`
8866
8867	// Ports: An optional list of ports to which this rule applies. This
8868	// field is only applicable for the UDP or TCP protocol. Each entry must
8869	// be either an integer or a range. If not specified, this rule applies
8870	// to connections through any port.
8871	//
8872	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
8873	Ports []string `json:"ports,omitempty"`
8874
8875	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
8876	// unconditionally include in API requests. By default, fields with
8877	// empty values are omitted from API requests. However, any non-pointer,
8878	// non-interface field appearing in ForceSendFields will be sent to the
8879	// server regardless of whether the field is empty or not. This may be
8880	// used to include empty fields in Patch requests.
8881	ForceSendFields []string `json:"-"`
8882
8883	// NullFields is a list of field names (e.g. "IPProtocol") to include in
8884	// API requests with the JSON null value. By default, fields with empty
8885	// values are omitted from API requests. However, any field with an
8886	// empty value appearing in NullFields will be sent to the server as
8887	// null. It is an error if a field in this list has a non-empty value.
8888	// This may be used to include null fields in Patch requests.
8889	NullFields []string `json:"-"`
8890}
8891
8892func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
8893	type NoMethod FirewallDenied
8894	raw := NoMethod(*s)
8895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8896}
8897
8898// FirewallList: Contains a list of firewalls.
8899type FirewallList struct {
8900	// Id: [Output Only] Unique identifier for the resource; defined by the
8901	// server.
8902	Id string `json:"id,omitempty"`
8903
8904	// Items: A list of Firewall resources.
8905	Items []*Firewall `json:"items,omitempty"`
8906
8907	// Kind: [Output Only] Type of resource. Always compute#firewallList for
8908	// lists of firewalls.
8909	Kind string `json:"kind,omitempty"`
8910
8911	// NextPageToken: [Output Only] This token allows you to get the next
8912	// page of results for list requests. If the number of results is larger
8913	// than maxResults, use the nextPageToken as a value for the query
8914	// parameter pageToken in the next list request. Subsequent list
8915	// requests will have their own nextPageToken to continue paging through
8916	// the results.
8917	NextPageToken string `json:"nextPageToken,omitempty"`
8918
8919	// SelfLink: [Output Only] Server-defined URL for this resource.
8920	SelfLink string `json:"selfLink,omitempty"`
8921
8922	// Warning: [Output Only] Informational warning message.
8923	Warning *FirewallListWarning `json:"warning,omitempty"`
8924
8925	// ServerResponse contains the HTTP response code and headers from the
8926	// server.
8927	googleapi.ServerResponse `json:"-"`
8928
8929	// ForceSendFields is a list of field names (e.g. "Id") to
8930	// unconditionally include in API requests. By default, fields with
8931	// empty values are omitted from API requests. However, any non-pointer,
8932	// non-interface field appearing in ForceSendFields will be sent to the
8933	// server regardless of whether the field is empty or not. This may be
8934	// used to include empty fields in Patch requests.
8935	ForceSendFields []string `json:"-"`
8936
8937	// NullFields is a list of field names (e.g. "Id") to include in API
8938	// requests with the JSON null value. By default, fields with empty
8939	// values are omitted from API requests. However, any field with an
8940	// empty value appearing in NullFields will be sent to the server as
8941	// null. It is an error if a field in this list has a non-empty value.
8942	// This may be used to include null fields in Patch requests.
8943	NullFields []string `json:"-"`
8944}
8945
8946func (s *FirewallList) MarshalJSON() ([]byte, error) {
8947	type NoMethod FirewallList
8948	raw := NoMethod(*s)
8949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8950}
8951
8952// FirewallListWarning: [Output Only] Informational warning message.
8953type FirewallListWarning struct {
8954	// Code: [Output Only] A warning code, if applicable. For example,
8955	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8956	// the response.
8957	//
8958	// Possible values:
8959	//   "CLEANUP_FAILED"
8960	//   "DEPRECATED_RESOURCE_USED"
8961	//   "DEPRECATED_TYPE_USED"
8962	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8963	//   "EXPERIMENTAL_TYPE_USED"
8964	//   "EXTERNAL_API_WARNING"
8965	//   "FIELD_VALUE_OVERRIDEN"
8966	//   "INJECTED_KERNELS_DEPRECATED"
8967	//   "MISSING_TYPE_DEPENDENCY"
8968	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8969	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8970	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8971	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8972	//   "NEXT_HOP_NOT_RUNNING"
8973	//   "NOT_CRITICAL_ERROR"
8974	//   "NO_RESULTS_ON_PAGE"
8975	//   "REQUIRED_TOS_AGREEMENT"
8976	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8977	//   "RESOURCE_NOT_DELETED"
8978	//   "SCHEMA_VALIDATION_IGNORED"
8979	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8980	//   "UNDECLARED_PROPERTIES"
8981	//   "UNREACHABLE"
8982	Code string `json:"code,omitempty"`
8983
8984	// Data: [Output Only] Metadata about this warning in key: value format.
8985	// For example:
8986	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8987	Data []*FirewallListWarningData `json:"data,omitempty"`
8988
8989	// Message: [Output Only] A human-readable description of the warning
8990	// code.
8991	Message string `json:"message,omitempty"`
8992
8993	// ForceSendFields is a list of field names (e.g. "Code") to
8994	// unconditionally include in API requests. By default, fields with
8995	// empty values are omitted from API requests. However, any non-pointer,
8996	// non-interface field appearing in ForceSendFields will be sent to the
8997	// server regardless of whether the field is empty or not. This may be
8998	// used to include empty fields in Patch requests.
8999	ForceSendFields []string `json:"-"`
9000
9001	// NullFields is a list of field names (e.g. "Code") to include in API
9002	// requests with the JSON null value. By default, fields with empty
9003	// values are omitted from API requests. However, any field with an
9004	// empty value appearing in NullFields will be sent to the server as
9005	// null. It is an error if a field in this list has a non-empty value.
9006	// This may be used to include null fields in Patch requests.
9007	NullFields []string `json:"-"`
9008}
9009
9010func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
9011	type NoMethod FirewallListWarning
9012	raw := NoMethod(*s)
9013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9014}
9015
9016type FirewallListWarningData struct {
9017	// Key: [Output Only] A key that provides more detail on the warning
9018	// being returned. For example, for warnings where there are no results
9019	// in a list request for a particular zone, this key might be scope and
9020	// the key value might be the zone name. Other examples might be a key
9021	// indicating a deprecated resource and a suggested replacement, or a
9022	// warning about invalid network settings (for example, if an instance
9023	// attempts to perform IP forwarding but is not enabled for IP
9024	// forwarding).
9025	Key string `json:"key,omitempty"`
9026
9027	// Value: [Output Only] A warning data value corresponding to the key.
9028	Value string `json:"value,omitempty"`
9029
9030	// ForceSendFields is a list of field names (e.g. "Key") to
9031	// unconditionally include in API requests. By default, fields with
9032	// empty values are omitted from API requests. However, any non-pointer,
9033	// non-interface field appearing in ForceSendFields will be sent to the
9034	// server regardless of whether the field is empty or not. This may be
9035	// used to include empty fields in Patch requests.
9036	ForceSendFields []string `json:"-"`
9037
9038	// NullFields is a list of field names (e.g. "Key") to include in API
9039	// requests with the JSON null value. By default, fields with empty
9040	// values are omitted from API requests. However, any field with an
9041	// empty value appearing in NullFields will be sent to the server as
9042	// null. It is an error if a field in this list has a non-empty value.
9043	// This may be used to include null fields in Patch requests.
9044	NullFields []string `json:"-"`
9045}
9046
9047func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
9048	type NoMethod FirewallListWarningData
9049	raw := NoMethod(*s)
9050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9051}
9052
9053// FirewallLogConfig: The available logging options for a firewall rule.
9054type FirewallLogConfig struct {
9055	// Enable: This field denotes whether to enable logging for a particular
9056	// firewall rule.
9057	Enable bool `json:"enable,omitempty"`
9058
9059	// ForceSendFields is a list of field names (e.g. "Enable") to
9060	// unconditionally include in API requests. By default, fields with
9061	// empty values are omitted from API requests. However, any non-pointer,
9062	// non-interface field appearing in ForceSendFields will be sent to the
9063	// server regardless of whether the field is empty or not. This may be
9064	// used to include empty fields in Patch requests.
9065	ForceSendFields []string `json:"-"`
9066
9067	// NullFields is a list of field names (e.g. "Enable") to include in API
9068	// requests with the JSON null value. By default, fields with empty
9069	// values are omitted from API requests. However, any field with an
9070	// empty value appearing in NullFields will be sent to the server as
9071	// null. It is an error if a field in this list has a non-empty value.
9072	// This may be used to include null fields in Patch requests.
9073	NullFields []string `json:"-"`
9074}
9075
9076func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
9077	type NoMethod FirewallLogConfig
9078	raw := NoMethod(*s)
9079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9080}
9081
9082// FixedOrPercent: Encapsulates numeric value that can be either
9083// absolute or relative.
9084type FixedOrPercent struct {
9085	// Calculated: [Output Only] Absolute value of VM instances calculated
9086	// based on the specific mode.
9087	//
9088	//
9089	// - If the value is fixed, then the calculated value is equal to the
9090	// fixed value.
9091	// - If the value is a percent, then the calculated value is percent/100
9092	// * targetSize. For example, the calculated value of a 80% of a managed
9093	// instance group with 150 instances would be (80/100 * 150) = 120 VM
9094	// instances. If there is a remainder, the number is rounded up.
9095	Calculated int64 `json:"calculated,omitempty"`
9096
9097	// Fixed: Specifies a fixed number of VM instances. This must be a
9098	// positive integer.
9099	Fixed int64 `json:"fixed,omitempty"`
9100
9101	// Percent: Specifies a percentage of instances between 0 to 100%,
9102	// inclusive. For example, specify 80 for 80%.
9103	Percent int64 `json:"percent,omitempty"`
9104
9105	// ForceSendFields is a list of field names (e.g. "Calculated") to
9106	// unconditionally include in API requests. By default, fields with
9107	// empty values are omitted from API requests. However, any non-pointer,
9108	// non-interface field appearing in ForceSendFields will be sent to the
9109	// server regardless of whether the field is empty or not. This may be
9110	// used to include empty fields in Patch requests.
9111	ForceSendFields []string `json:"-"`
9112
9113	// NullFields is a list of field names (e.g. "Calculated") to include in
9114	// API requests with the JSON null value. By default, fields with empty
9115	// values are omitted from API requests. However, any field with an
9116	// empty value appearing in NullFields will be sent to the server as
9117	// null. It is an error if a field in this list has a non-empty value.
9118	// This may be used to include null fields in Patch requests.
9119	NullFields []string `json:"-"`
9120}
9121
9122func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
9123	type NoMethod FixedOrPercent
9124	raw := NoMethod(*s)
9125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9126}
9127
9128// ForwardingRule: Represents a Forwarding Rule resource.
9129//
9130// Forwarding rule resources in GCP can be either regional or global in
9131// scope:
9132//
9133// *
9134// [Global](/compute/docs/reference/rest/{$api_version}/globalForwardingR
9135// ules) *
9136// [Regional](/compute/docs/reference/rest/{$api_version}/forwardingRules
9137// )
9138//
9139// A forwarding rule and its corresponding IP address represent the
9140// frontend configuration of a Google Cloud Platform load balancer.
9141// Forwarding rules can also reference target instances and Cloud VPN
9142// Classic gateways (targetVpnGateway).
9143//
9144// For more information, read Forwarding rule concepts and Using
9145// protocol forwarding.
9146//
9147// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
9148// {$api_version}.globalForwardingRules ==) (== resource_for
9149// {$api_version}.regionForwardingRules ==)
9150type ForwardingRule struct {
9151	// IPAddress: IP address that this forwarding rule serves. When a client
9152	// sends traffic to this IP address, the forwarding rule directs the
9153	// traffic to the target that you specify in the forwarding rule.
9154	//
9155	// If you don't specify a reserved IP address, an ephemeral IP address
9156	// is assigned. Methods for specifying an IP address:
9157	//
9158	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
9159	// 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
9160	//
9161	// The loadBalancingScheme and the forwarding rule's target determine
9162	// the type of IP address that you can use. For detailed information,
9163	// refer to [IP address
9164	// specifications](/load-balancing/docs/forwarding-rule-concepts#ip_addre
9165	// ss_specifications).
9166	IPAddress string `json:"IPAddress,omitempty"`
9167
9168	// IPProtocol: The IP protocol to which this rule applies. For protocol
9169	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
9170	//
9171	// For Internal TCP/UDP Load Balancing, the load balancing scheme is
9172	// INTERNAL, and one of TCP or UDP are valid. For Traffic Director, the
9173	// load balancing scheme is INTERNAL_SELF_MANAGED, and only TCPis valid.
9174	// For Internal HTTP(S) Load Balancing, the load balancing scheme is
9175	// INTERNAL_MANAGED, and only TCP is valid. For HTTP(S), SSL Proxy, and
9176	// TCP Proxy Load Balancing, the load balancing scheme is EXTERNAL and
9177	// only TCP is valid. For Network TCP/UDP Load Balancing, the load
9178	// balancing scheme is EXTERNAL, and one of TCP or UDP is valid.
9179	//
9180	// Possible values:
9181	//   "AH"
9182	//   "ESP"
9183	//   "ICMP"
9184	//   "SCTP"
9185	//   "TCP"
9186	//   "UDP"
9187	IPProtocol string `json:"IPProtocol,omitempty"`
9188
9189	// AllPorts: This field is used along with the backend_service field for
9190	// internal load balancing or with the target field for internal
9191	// TargetInstance. This field cannot be used with port or portRange
9192	// fields.
9193	//
9194	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
9195	// specify this field to allow packets addressed to any ports will be
9196	// forwarded to the backends configured with this forwarding rule.
9197	AllPorts bool `json:"allPorts,omitempty"`
9198
9199	// AllowGlobalAccess: This field is used along with the backend_service
9200	// field for internal load balancing or with the target field for
9201	// internal TargetInstance. If the field is set to TRUE, clients can
9202	// access ILB from all regions. Otherwise only allows access from
9203	// clients in the same region as the internal load balancer.
9204	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
9205
9206	// BackendService: This field is only used for INTERNAL load
9207	// balancing.
9208	//
9209	// For internal load balancing, this field identifies the BackendService
9210	// resource to receive the matched traffic.
9211	BackendService string `json:"backendService,omitempty"`
9212
9213	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9214	// format.
9215	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9216
9217	// Description: An optional description of this resource. Provide this
9218	// property when you create the resource.
9219	Description string `json:"description,omitempty"`
9220
9221	// Fingerprint: Fingerprint of this resource. A hash of the contents
9222	// stored in this object. This field is used in optimistic locking. This
9223	// field will be ignored when inserting a ForwardingRule. Include the
9224	// fingerprint in patch request to ensure that you do not overwrite
9225	// changes that were applied from another concurrent request.
9226	//
9227	// To see the latest fingerprint, make a get() request to retrieve a
9228	// ForwardingRule.
9229	Fingerprint string `json:"fingerprint,omitempty"`
9230
9231	// Id: [Output Only] The unique identifier for the resource. This
9232	// identifier is defined by the server.
9233	Id uint64 `json:"id,omitempty,string"`
9234
9235	// IpVersion: The IP Version that will be used by this forwarding rule.
9236	// Valid options are IPV4 or IPV6. This can only be specified for an
9237	// external global forwarding rule.
9238	//
9239	// Possible values:
9240	//   "IPV4"
9241	//   "IPV6"
9242	//   "UNSPECIFIED_VERSION"
9243	IpVersion string `json:"ipVersion,omitempty"`
9244
9245	// IsMirroringCollector: Indicates whether or not this load balancer can
9246	// be used as a collector for packet mirroring. To prevent mirroring
9247	// loops, instances behind this load balancer will not have their
9248	// traffic mirrored even if a PacketMirroring rule applies to them. This
9249	// can only be set to true for load balancers that have their
9250	// loadBalancingScheme set to INTERNAL.
9251	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
9252
9253	// Kind: [Output Only] Type of the resource. Always
9254	// compute#forwardingRule for Forwarding Rule resources.
9255	Kind string `json:"kind,omitempty"`
9256
9257	// LoadBalancingScheme: Specifies the forwarding rule type.
9258	//
9259	//
9260	// - EXTERNAL is used for:
9261	// - Classic Cloud VPN gateways
9262	// - Protocol forwarding to VMs from an external IP address
9263	// - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and
9264	// Network TCP/UDP
9265	// - INTERNAL is used for:
9266	// - Protocol forwarding to VMs from an internal IP address
9267	// - Internal TCP/UDP load balancers
9268	// - INTERNAL_MANAGED is used for:
9269	// - Internal HTTP(S) load balancers
9270	// - INTERNAL_SELF_MANAGED is used for:
9271	// - Traffic Director
9272	//
9273	// For more information about forwarding rules, refer to Forwarding rule
9274	// concepts.
9275	//
9276	// Possible values:
9277	//   "EXTERNAL"
9278	//   "INTERNAL"
9279	//   "INTERNAL_MANAGED"
9280	//   "INTERNAL_SELF_MANAGED"
9281	//   "INVALID"
9282	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
9283
9284	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
9285	// restrict routing configuration to a limited set of xDS compliant
9286	// clients. In their xDS requests to Loadbalancer, xDS clients present
9287	// node metadata. If a match takes place, the relevant configuration is
9288	// made available to those proxies. Otherwise, all the resources (e.g.
9289	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
9290	// visible to those proxies.
9291	// For each metadataFilter in this list, if its filterMatchCriteria is
9292	// set to MATCH_ANY, at least one of the filterLabels must match the
9293	// corresponding label provided in the metadata. If its
9294	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
9295	// must match with corresponding labels provided in the
9296	// metadata.
9297	// metadataFilters specified here will be applifed before those
9298	// specified in the UrlMap that this ForwardingRule
9299	// references.
9300	// metadataFilters only applies to Loadbalancers that have their
9301	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
9302	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
9303
9304	// Name: Name of the resource; provided by the client when the resource
9305	// is created. The name must be 1-63 characters long, and comply with
9306	// RFC1035. Specifically, the name must be 1-63 characters long and
9307	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9308	// the first character must be a lowercase letter, and all following
9309	// characters must be a dash, lowercase letter, or digit, except the
9310	// last character, which cannot be a dash.
9311	Name string `json:"name,omitempty"`
9312
9313	// Network: This field is not used for external load balancing.
9314	//
9315	// For INTERNAL and INTERNAL_SELF_MANAGED load balancing, this field
9316	// identifies the network that the load balanced IP should belong to for
9317	// this Forwarding Rule. If this field is not specified, the default
9318	// network will be used.
9319	Network string `json:"network,omitempty"`
9320
9321	// NetworkTier: This signifies the networking tier used for configuring
9322	// this load balancer and can only take the following values: PREMIUM,
9323	// STANDARD.
9324	//
9325	// For regional ForwardingRule, the valid values are PREMIUM and
9326	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
9327	//
9328	// If this field is not specified, it is assumed to be PREMIUM. If
9329	// IPAddress is specified, this value must be equal to the networkTier
9330	// of the Address.
9331	//
9332	// Possible values:
9333	//   "PREMIUM"
9334	//   "STANDARD"
9335	NetworkTier string `json:"networkTier,omitempty"`
9336
9337	// PortRange: When the load balancing scheme is EXTERNAL,
9338	// INTERNAL_SELF_MANAGED and INTERNAL_MANAGED, you can specify a
9339	// port_range. Use with a forwarding rule that points to a target proxy
9340	// or a target pool. Do not use with a forwarding rule that points to a
9341	// backend service. This field is used along with the target field for
9342	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
9343	// TargetVpnGateway, TargetPool, TargetInstance.
9344	//
9345	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
9346	// addressed to ports in the specified range will be forwarded to
9347	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
9348	// must have disjoint port ranges.
9349	//
9350	// Some types of forwarding target have constraints on the acceptable
9351	// ports:
9352	// - TargetHttpProxy: 80, 8080
9353	// - TargetHttpsProxy: 443
9354	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
9355	// 995, 1688, 1883, 5222
9356	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
9357	// 995, 1688, 1883, 5222
9358	// - TargetVpnGateway: 500, 4500
9359	PortRange string `json:"portRange,omitempty"`
9360
9361	// Ports: This field is used along with the backend_service field for
9362	// internal load balancing.
9363	//
9364	// When the load balancing scheme is INTERNAL, a list of ports can be
9365	// configured, for example, ['80'], ['8000','9000']. Only packets
9366	// addressed to these ports are forwarded to the backends configured
9367	// with the forwarding rule.
9368	//
9369	// If the forwarding rule's loadBalancingScheme is INTERNAL, you can
9370	// specify ports in one of the following ways:
9371	//
9372	// * A list of up to five ports, which can be non-contiguous * Keyword
9373	// ALL, which causes the forwarding rule to forward traffic on any port
9374	// of the forwarding rule's protocol.
9375	Ports []string `json:"ports,omitempty"`
9376
9377	// Region: [Output Only] URL of the region where the regional forwarding
9378	// rule resides. This field is not applicable to global forwarding
9379	// rules. You must specify this field as part of the HTTP request URL.
9380	// It is not settable as a field in the request body.
9381	Region string `json:"region,omitempty"`
9382
9383	// SelfLink: [Output Only] Server-defined URL for the resource.
9384	SelfLink string `json:"selfLink,omitempty"`
9385
9386	// ServiceLabel: An optional prefix to the service name for this
9387	// Forwarding Rule. If specified, the prefix is the first label of the
9388	// fully qualified service name.
9389	//
9390	// The label must be 1-63 characters long, and comply with RFC1035.
9391	// Specifically, the label must be 1-63 characters long and match the
9392	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
9393	// character must be a lowercase letter, and all following characters
9394	// must be a dash, lowercase letter, or digit, except the last
9395	// character, which cannot be a dash.
9396	//
9397	// This field is only used for internal load balancing.
9398	ServiceLabel string `json:"serviceLabel,omitempty"`
9399
9400	// ServiceName: [Output Only] The internal fully qualified service name
9401	// for this Forwarding Rule.
9402	//
9403	// This field is only used for internal load balancing.
9404	ServiceName string `json:"serviceName,omitempty"`
9405
9406	// Subnetwork: This field is only used for INTERNAL load balancing.
9407	//
9408	// For internal load balancing, this field identifies the subnetwork
9409	// that the load balanced IP should belong to for this Forwarding
9410	// Rule.
9411	//
9412	// If the network specified is in auto subnet mode, this field is
9413	// optional. However, if the network is in custom subnet mode, a
9414	// subnetwork must be specified.
9415	Subnetwork string `json:"subnetwork,omitempty"`
9416
9417	// Target: The URL of the target resource to receive the matched
9418	// traffic. For regional forwarding rules, this target must live in the
9419	// same region as the forwarding rule. For global forwarding rules, this
9420	// target must be a global load balancing resource. The forwarded
9421	// traffic must be of a type appropriate to the target object. For
9422	// INTERNAL_SELF_MANAGED load balancing, only targetHttpProxy is valid,
9423	// not targetHttpsProxy.
9424	Target string `json:"target,omitempty"`
9425
9426	// ServerResponse contains the HTTP response code and headers from the
9427	// server.
9428	googleapi.ServerResponse `json:"-"`
9429
9430	// ForceSendFields is a list of field names (e.g. "IPAddress") to
9431	// unconditionally include in API requests. By default, fields with
9432	// empty values are omitted from API requests. However, any non-pointer,
9433	// non-interface field appearing in ForceSendFields will be sent to the
9434	// server regardless of whether the field is empty or not. This may be
9435	// used to include empty fields in Patch requests.
9436	ForceSendFields []string `json:"-"`
9437
9438	// NullFields is a list of field names (e.g. "IPAddress") to include in
9439	// API requests with the JSON null value. By default, fields with empty
9440	// values are omitted from API requests. However, any field with an
9441	// empty value appearing in NullFields will be sent to the server as
9442	// null. It is an error if a field in this list has a non-empty value.
9443	// This may be used to include null fields in Patch requests.
9444	NullFields []string `json:"-"`
9445}
9446
9447func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
9448	type NoMethod ForwardingRule
9449	raw := NoMethod(*s)
9450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9451}
9452
9453type ForwardingRuleAggregatedList struct {
9454	// Id: [Output Only] Unique identifier for the resource; defined by the
9455	// server.
9456	Id string `json:"id,omitempty"`
9457
9458	// Items: A list of ForwardingRulesScopedList resources.
9459	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
9460
9461	// Kind: [Output Only] Type of resource. Always
9462	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
9463	Kind string `json:"kind,omitempty"`
9464
9465	// NextPageToken: [Output Only] This token allows you to get the next
9466	// page of results for list requests. If the number of results is larger
9467	// than maxResults, use the nextPageToken as a value for the query
9468	// parameter pageToken in the next list request. Subsequent list
9469	// requests will have their own nextPageToken to continue paging through
9470	// the results.
9471	NextPageToken string `json:"nextPageToken,omitempty"`
9472
9473	// SelfLink: [Output Only] Server-defined URL for this resource.
9474	SelfLink string `json:"selfLink,omitempty"`
9475
9476	// Warning: [Output Only] Informational warning message.
9477	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
9478
9479	// ServerResponse contains the HTTP response code and headers from the
9480	// server.
9481	googleapi.ServerResponse `json:"-"`
9482
9483	// ForceSendFields is a list of field names (e.g. "Id") to
9484	// unconditionally include in API requests. By default, fields with
9485	// empty values are omitted from API requests. However, any non-pointer,
9486	// non-interface field appearing in ForceSendFields will be sent to the
9487	// server regardless of whether the field is empty or not. This may be
9488	// used to include empty fields in Patch requests.
9489	ForceSendFields []string `json:"-"`
9490
9491	// NullFields is a list of field names (e.g. "Id") to include in API
9492	// requests with the JSON null value. By default, fields with empty
9493	// values are omitted from API requests. However, any field with an
9494	// empty value appearing in NullFields will be sent to the server as
9495	// null. It is an error if a field in this list has a non-empty value.
9496	// This may be used to include null fields in Patch requests.
9497	NullFields []string `json:"-"`
9498}
9499
9500func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
9501	type NoMethod ForwardingRuleAggregatedList
9502	raw := NoMethod(*s)
9503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9504}
9505
9506// ForwardingRuleAggregatedListWarning: [Output Only] Informational
9507// warning message.
9508type ForwardingRuleAggregatedListWarning struct {
9509	// Code: [Output Only] A warning code, if applicable. For example,
9510	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9511	// the response.
9512	//
9513	// Possible values:
9514	//   "CLEANUP_FAILED"
9515	//   "DEPRECATED_RESOURCE_USED"
9516	//   "DEPRECATED_TYPE_USED"
9517	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9518	//   "EXPERIMENTAL_TYPE_USED"
9519	//   "EXTERNAL_API_WARNING"
9520	//   "FIELD_VALUE_OVERRIDEN"
9521	//   "INJECTED_KERNELS_DEPRECATED"
9522	//   "MISSING_TYPE_DEPENDENCY"
9523	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9524	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9525	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9526	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9527	//   "NEXT_HOP_NOT_RUNNING"
9528	//   "NOT_CRITICAL_ERROR"
9529	//   "NO_RESULTS_ON_PAGE"
9530	//   "REQUIRED_TOS_AGREEMENT"
9531	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9532	//   "RESOURCE_NOT_DELETED"
9533	//   "SCHEMA_VALIDATION_IGNORED"
9534	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9535	//   "UNDECLARED_PROPERTIES"
9536	//   "UNREACHABLE"
9537	Code string `json:"code,omitempty"`
9538
9539	// Data: [Output Only] Metadata about this warning in key: value format.
9540	// For example:
9541	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9542	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
9543
9544	// Message: [Output Only] A human-readable description of the warning
9545	// code.
9546	Message string `json:"message,omitempty"`
9547
9548	// ForceSendFields is a list of field names (e.g. "Code") to
9549	// unconditionally include in API requests. By default, fields with
9550	// empty values are omitted from API requests. However, any non-pointer,
9551	// non-interface field appearing in ForceSendFields will be sent to the
9552	// server regardless of whether the field is empty or not. This may be
9553	// used to include empty fields in Patch requests.
9554	ForceSendFields []string `json:"-"`
9555
9556	// NullFields is a list of field names (e.g. "Code") to include in API
9557	// requests with the JSON null value. By default, fields with empty
9558	// values are omitted from API requests. However, any field with an
9559	// empty value appearing in NullFields will be sent to the server as
9560	// null. It is an error if a field in this list has a non-empty value.
9561	// This may be used to include null fields in Patch requests.
9562	NullFields []string `json:"-"`
9563}
9564
9565func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
9566	type NoMethod ForwardingRuleAggregatedListWarning
9567	raw := NoMethod(*s)
9568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9569}
9570
9571type ForwardingRuleAggregatedListWarningData struct {
9572	// Key: [Output Only] A key that provides more detail on the warning
9573	// being returned. For example, for warnings where there are no results
9574	// in a list request for a particular zone, this key might be scope and
9575	// the key value might be the zone name. Other examples might be a key
9576	// indicating a deprecated resource and a suggested replacement, or a
9577	// warning about invalid network settings (for example, if an instance
9578	// attempts to perform IP forwarding but is not enabled for IP
9579	// forwarding).
9580	Key string `json:"key,omitempty"`
9581
9582	// Value: [Output Only] A warning data value corresponding to the key.
9583	Value string `json:"value,omitempty"`
9584
9585	// ForceSendFields is a list of field names (e.g. "Key") to
9586	// unconditionally include in API requests. By default, fields with
9587	// empty values are omitted from API requests. However, any non-pointer,
9588	// non-interface field appearing in ForceSendFields will be sent to the
9589	// server regardless of whether the field is empty or not. This may be
9590	// used to include empty fields in Patch requests.
9591	ForceSendFields []string `json:"-"`
9592
9593	// NullFields is a list of field names (e.g. "Key") to include in API
9594	// requests with the JSON null value. By default, fields with empty
9595	// values are omitted from API requests. However, any field with an
9596	// empty value appearing in NullFields will be sent to the server as
9597	// null. It is an error if a field in this list has a non-empty value.
9598	// This may be used to include null fields in Patch requests.
9599	NullFields []string `json:"-"`
9600}
9601
9602func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
9603	type NoMethod ForwardingRuleAggregatedListWarningData
9604	raw := NoMethod(*s)
9605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9606}
9607
9608// ForwardingRuleList: Contains a list of ForwardingRule resources.
9609type ForwardingRuleList struct {
9610	// Id: [Output Only] Unique identifier for the resource; defined by the
9611	// server.
9612	Id string `json:"id,omitempty"`
9613
9614	// Items: A list of ForwardingRule resources.
9615	Items []*ForwardingRule `json:"items,omitempty"`
9616
9617	// Kind: Type of resource.
9618	Kind string `json:"kind,omitempty"`
9619
9620	// NextPageToken: [Output Only] This token allows you to get the next
9621	// page of results for list requests. If the number of results is larger
9622	// than maxResults, use the nextPageToken as a value for the query
9623	// parameter pageToken in the next list request. Subsequent list
9624	// requests will have their own nextPageToken to continue paging through
9625	// the results.
9626	NextPageToken string `json:"nextPageToken,omitempty"`
9627
9628	// SelfLink: [Output Only] Server-defined URL for this resource.
9629	SelfLink string `json:"selfLink,omitempty"`
9630
9631	// Warning: [Output Only] Informational warning message.
9632	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
9633
9634	// ServerResponse contains the HTTP response code and headers from the
9635	// server.
9636	googleapi.ServerResponse `json:"-"`
9637
9638	// ForceSendFields is a list of field names (e.g. "Id") to
9639	// unconditionally include in API requests. By default, fields with
9640	// empty values are omitted from API requests. However, any non-pointer,
9641	// non-interface field appearing in ForceSendFields will be sent to the
9642	// server regardless of whether the field is empty or not. This may be
9643	// used to include empty fields in Patch requests.
9644	ForceSendFields []string `json:"-"`
9645
9646	// NullFields is a list of field names (e.g. "Id") to include in API
9647	// requests with the JSON null value. By default, fields with empty
9648	// values are omitted from API requests. However, any field with an
9649	// empty value appearing in NullFields will be sent to the server as
9650	// null. It is an error if a field in this list has a non-empty value.
9651	// This may be used to include null fields in Patch requests.
9652	NullFields []string `json:"-"`
9653}
9654
9655func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
9656	type NoMethod ForwardingRuleList
9657	raw := NoMethod(*s)
9658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9659}
9660
9661// ForwardingRuleListWarning: [Output Only] Informational warning
9662// message.
9663type ForwardingRuleListWarning struct {
9664	// Code: [Output Only] A warning code, if applicable. For example,
9665	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9666	// the response.
9667	//
9668	// Possible values:
9669	//   "CLEANUP_FAILED"
9670	//   "DEPRECATED_RESOURCE_USED"
9671	//   "DEPRECATED_TYPE_USED"
9672	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9673	//   "EXPERIMENTAL_TYPE_USED"
9674	//   "EXTERNAL_API_WARNING"
9675	//   "FIELD_VALUE_OVERRIDEN"
9676	//   "INJECTED_KERNELS_DEPRECATED"
9677	//   "MISSING_TYPE_DEPENDENCY"
9678	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9679	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9680	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9681	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9682	//   "NEXT_HOP_NOT_RUNNING"
9683	//   "NOT_CRITICAL_ERROR"
9684	//   "NO_RESULTS_ON_PAGE"
9685	//   "REQUIRED_TOS_AGREEMENT"
9686	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9687	//   "RESOURCE_NOT_DELETED"
9688	//   "SCHEMA_VALIDATION_IGNORED"
9689	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9690	//   "UNDECLARED_PROPERTIES"
9691	//   "UNREACHABLE"
9692	Code string `json:"code,omitempty"`
9693
9694	// Data: [Output Only] Metadata about this warning in key: value format.
9695	// For example:
9696	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9697	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
9698
9699	// Message: [Output Only] A human-readable description of the warning
9700	// code.
9701	Message string `json:"message,omitempty"`
9702
9703	// ForceSendFields is a list of field names (e.g. "Code") to
9704	// unconditionally include in API requests. By default, fields with
9705	// empty values are omitted from API requests. However, any non-pointer,
9706	// non-interface field appearing in ForceSendFields will be sent to the
9707	// server regardless of whether the field is empty or not. This may be
9708	// used to include empty fields in Patch requests.
9709	ForceSendFields []string `json:"-"`
9710
9711	// NullFields is a list of field names (e.g. "Code") to include in API
9712	// requests with the JSON null value. By default, fields with empty
9713	// values are omitted from API requests. However, any field with an
9714	// empty value appearing in NullFields will be sent to the server as
9715	// null. It is an error if a field in this list has a non-empty value.
9716	// This may be used to include null fields in Patch requests.
9717	NullFields []string `json:"-"`
9718}
9719
9720func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
9721	type NoMethod ForwardingRuleListWarning
9722	raw := NoMethod(*s)
9723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9724}
9725
9726type ForwardingRuleListWarningData struct {
9727	// Key: [Output Only] A key that provides more detail on the warning
9728	// being returned. For example, for warnings where there are no results
9729	// in a list request for a particular zone, this key might be scope and
9730	// the key value might be the zone name. Other examples might be a key
9731	// indicating a deprecated resource and a suggested replacement, or a
9732	// warning about invalid network settings (for example, if an instance
9733	// attempts to perform IP forwarding but is not enabled for IP
9734	// forwarding).
9735	Key string `json:"key,omitempty"`
9736
9737	// Value: [Output Only] A warning data value corresponding to the key.
9738	Value string `json:"value,omitempty"`
9739
9740	// ForceSendFields is a list of field names (e.g. "Key") to
9741	// unconditionally include in API requests. By default, fields with
9742	// empty values are omitted from API requests. However, any non-pointer,
9743	// non-interface field appearing in ForceSendFields will be sent to the
9744	// server regardless of whether the field is empty or not. This may be
9745	// used to include empty fields in Patch requests.
9746	ForceSendFields []string `json:"-"`
9747
9748	// NullFields is a list of field names (e.g. "Key") to include in API
9749	// requests with the JSON null value. By default, fields with empty
9750	// values are omitted from API requests. However, any field with an
9751	// empty value appearing in NullFields will be sent to the server as
9752	// null. It is an error if a field in this list has a non-empty value.
9753	// This may be used to include null fields in Patch requests.
9754	NullFields []string `json:"-"`
9755}
9756
9757func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
9758	type NoMethod ForwardingRuleListWarningData
9759	raw := NoMethod(*s)
9760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9761}
9762
9763type ForwardingRuleReference struct {
9764	ForwardingRule string `json:"forwardingRule,omitempty"`
9765
9766	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
9767	// unconditionally include in API requests. By default, fields with
9768	// empty values are omitted from API requests. However, any non-pointer,
9769	// non-interface field appearing in ForceSendFields will be sent to the
9770	// server regardless of whether the field is empty or not. This may be
9771	// used to include empty fields in Patch requests.
9772	ForceSendFields []string `json:"-"`
9773
9774	// NullFields is a list of field names (e.g. "ForwardingRule") to
9775	// include in API requests with the JSON null value. By default, fields
9776	// with empty values are omitted from API requests. However, any field
9777	// with an empty value appearing in NullFields will be sent to the
9778	// server as null. It is an error if a field in this list has a
9779	// non-empty value. This may be used to include null fields in Patch
9780	// requests.
9781	NullFields []string `json:"-"`
9782}
9783
9784func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
9785	type NoMethod ForwardingRuleReference
9786	raw := NoMethod(*s)
9787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9788}
9789
9790type ForwardingRulesScopedList struct {
9791	// ForwardingRules: A list of forwarding rules contained in this scope.
9792	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
9793
9794	// Warning: Informational warning which replaces the list of forwarding
9795	// rules when the list is empty.
9796	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
9797
9798	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
9799	// unconditionally include in API requests. By default, fields with
9800	// empty values are omitted from API requests. However, any non-pointer,
9801	// non-interface field appearing in ForceSendFields will be sent to the
9802	// server regardless of whether the field is empty or not. This may be
9803	// used to include empty fields in Patch requests.
9804	ForceSendFields []string `json:"-"`
9805
9806	// NullFields is a list of field names (e.g. "ForwardingRules") to
9807	// include in API requests with the JSON null value. By default, fields
9808	// with empty values are omitted from API requests. However, any field
9809	// with an empty value appearing in NullFields will be sent to the
9810	// server as null. It is an error if a field in this list has a
9811	// non-empty value. This may be used to include null fields in Patch
9812	// requests.
9813	NullFields []string `json:"-"`
9814}
9815
9816func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
9817	type NoMethod ForwardingRulesScopedList
9818	raw := NoMethod(*s)
9819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9820}
9821
9822// ForwardingRulesScopedListWarning: Informational warning which
9823// replaces the list of forwarding rules when the list is empty.
9824type ForwardingRulesScopedListWarning struct {
9825	// Code: [Output Only] A warning code, if applicable. For example,
9826	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9827	// the response.
9828	//
9829	// Possible values:
9830	//   "CLEANUP_FAILED"
9831	//   "DEPRECATED_RESOURCE_USED"
9832	//   "DEPRECATED_TYPE_USED"
9833	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9834	//   "EXPERIMENTAL_TYPE_USED"
9835	//   "EXTERNAL_API_WARNING"
9836	//   "FIELD_VALUE_OVERRIDEN"
9837	//   "INJECTED_KERNELS_DEPRECATED"
9838	//   "MISSING_TYPE_DEPENDENCY"
9839	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9840	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9841	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9842	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9843	//   "NEXT_HOP_NOT_RUNNING"
9844	//   "NOT_CRITICAL_ERROR"
9845	//   "NO_RESULTS_ON_PAGE"
9846	//   "REQUIRED_TOS_AGREEMENT"
9847	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9848	//   "RESOURCE_NOT_DELETED"
9849	//   "SCHEMA_VALIDATION_IGNORED"
9850	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9851	//   "UNDECLARED_PROPERTIES"
9852	//   "UNREACHABLE"
9853	Code string `json:"code,omitempty"`
9854
9855	// Data: [Output Only] Metadata about this warning in key: value format.
9856	// For example:
9857	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9858	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
9859
9860	// Message: [Output Only] A human-readable description of the warning
9861	// code.
9862	Message string `json:"message,omitempty"`
9863
9864	// ForceSendFields is a list of field names (e.g. "Code") to
9865	// unconditionally include in API requests. By default, fields with
9866	// empty values are omitted from API requests. However, any non-pointer,
9867	// non-interface field appearing in ForceSendFields will be sent to the
9868	// server regardless of whether the field is empty or not. This may be
9869	// used to include empty fields in Patch requests.
9870	ForceSendFields []string `json:"-"`
9871
9872	// NullFields is a list of field names (e.g. "Code") to include in API
9873	// requests with the JSON null value. By default, fields with empty
9874	// values are omitted from API requests. However, any field with an
9875	// empty value appearing in NullFields will be sent to the server as
9876	// null. It is an error if a field in this list has a non-empty value.
9877	// This may be used to include null fields in Patch requests.
9878	NullFields []string `json:"-"`
9879}
9880
9881func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
9882	type NoMethod ForwardingRulesScopedListWarning
9883	raw := NoMethod(*s)
9884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9885}
9886
9887type ForwardingRulesScopedListWarningData struct {
9888	// Key: [Output Only] A key that provides more detail on the warning
9889	// being returned. For example, for warnings where there are no results
9890	// in a list request for a particular zone, this key might be scope and
9891	// the key value might be the zone name. Other examples might be a key
9892	// indicating a deprecated resource and a suggested replacement, or a
9893	// warning about invalid network settings (for example, if an instance
9894	// attempts to perform IP forwarding but is not enabled for IP
9895	// forwarding).
9896	Key string `json:"key,omitempty"`
9897
9898	// Value: [Output Only] A warning data value corresponding to the key.
9899	Value string `json:"value,omitempty"`
9900
9901	// ForceSendFields is a list of field names (e.g. "Key") to
9902	// unconditionally include in API requests. By default, fields with
9903	// empty values are omitted from API requests. However, any non-pointer,
9904	// non-interface field appearing in ForceSendFields will be sent to the
9905	// server regardless of whether the field is empty or not. This may be
9906	// used to include empty fields in Patch requests.
9907	ForceSendFields []string `json:"-"`
9908
9909	// NullFields is a list of field names (e.g. "Key") to include in API
9910	// requests with the JSON null value. By default, fields with empty
9911	// values are omitted from API requests. However, any field with an
9912	// empty value appearing in NullFields will be sent to the server as
9913	// null. It is an error if a field in this list has a non-empty value.
9914	// This may be used to include null fields in Patch requests.
9915	NullFields []string `json:"-"`
9916}
9917
9918func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
9919	type NoMethod ForwardingRulesScopedListWarningData
9920	raw := NoMethod(*s)
9921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9922}
9923
9924type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
9925	// NetworkEndpoints: The list of network endpoints to be attached.
9926	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
9927
9928	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
9929	// unconditionally include in API requests. By default, fields with
9930	// empty values are omitted from API requests. However, any non-pointer,
9931	// non-interface field appearing in ForceSendFields will be sent to the
9932	// server regardless of whether the field is empty or not. This may be
9933	// used to include empty fields in Patch requests.
9934	ForceSendFields []string `json:"-"`
9935
9936	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
9937	// include in API requests with the JSON null value. By default, fields
9938	// with empty values are omitted from API requests. However, any field
9939	// with an empty value appearing in NullFields will be sent to the
9940	// server as null. It is an error if a field in this list has a
9941	// non-empty value. This may be used to include null fields in Patch
9942	// requests.
9943	NullFields []string `json:"-"`
9944}
9945
9946func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
9947	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
9948	raw := NoMethod(*s)
9949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9950}
9951
9952type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
9953	// NetworkEndpoints: The list of network endpoints to be detached.
9954	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
9955
9956	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
9957	// unconditionally include in API requests. By default, fields with
9958	// empty values are omitted from API requests. However, any non-pointer,
9959	// non-interface field appearing in ForceSendFields will be sent to the
9960	// server regardless of whether the field is empty or not. This may be
9961	// used to include empty fields in Patch requests.
9962	ForceSendFields []string `json:"-"`
9963
9964	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
9965	// include in API requests with the JSON null value. By default, fields
9966	// with empty values are omitted from API requests. However, any field
9967	// with an empty value appearing in NullFields will be sent to the
9968	// server as null. It is an error if a field in this list has a
9969	// non-empty value. This may be used to include null fields in Patch
9970	// requests.
9971	NullFields []string `json:"-"`
9972}
9973
9974func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
9975	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
9976	raw := NoMethod(*s)
9977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9978}
9979
9980type GlobalSetLabelsRequest struct {
9981	// LabelFingerprint: The fingerprint of the previous set of labels for
9982	// this resource, used to detect conflicts. The fingerprint is initially
9983	// generated by Compute Engine and changes after every request to modify
9984	// or update labels. You must always provide an up-to-date fingerprint
9985	// hash when updating or changing labels, otherwise the request will
9986	// fail with error 412 conditionNotMet. Make a get() request to the
9987	// resource to get the latest fingerprint.
9988	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9989
9990	// Labels: A list of labels to apply for this resource. Each label key &
9991	// value must comply with RFC1035. Specifically, the name must be 1-63
9992	// characters long and match the regular expression
9993	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
9994	// a lowercase letter, and all following characters must be a dash,
9995	// lowercase letter, or digit, except the last character, which cannot
9996	// be a dash. For example, "webserver-frontend": "images". A label value
9997	// can also be empty (e.g. "my-label": "").
9998	Labels map[string]string `json:"labels,omitempty"`
9999
10000	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
10001	// unconditionally include in API requests. By default, fields with
10002	// empty values are omitted from API requests. However, any non-pointer,
10003	// non-interface field appearing in ForceSendFields will be sent to the
10004	// server regardless of whether the field is empty or not. This may be
10005	// used to include empty fields in Patch requests.
10006	ForceSendFields []string `json:"-"`
10007
10008	// NullFields is a list of field names (e.g. "LabelFingerprint") to
10009	// include in API requests with the JSON null value. By default, fields
10010	// with empty values are omitted from API requests. However, any field
10011	// with an empty value appearing in NullFields will be sent to the
10012	// server as null. It is an error if a field in this list has a
10013	// non-empty value. This may be used to include null fields in Patch
10014	// requests.
10015	NullFields []string `json:"-"`
10016}
10017
10018func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
10019	type NoMethod GlobalSetLabelsRequest
10020	raw := NoMethod(*s)
10021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10022}
10023
10024type GlobalSetPolicyRequest struct {
10025	// Bindings: Flatten Policy to create a backward compatible wire-format.
10026	// Deprecated. Use 'policy' to specify bindings.
10027	Bindings []*Binding `json:"bindings,omitempty"`
10028
10029	// Etag: Flatten Policy to create a backward compatible wire-format.
10030	// Deprecated. Use 'policy' to specify the etag.
10031	Etag string `json:"etag,omitempty"`
10032
10033	// Policy: REQUIRED: The complete policy to be applied to the
10034	// 'resource'. The size of the policy is limited to a few 10s of KB. An
10035	// empty policy is in general a valid policy but certain services (like
10036	// Projects) might reject them.
10037	Policy *Policy `json:"policy,omitempty"`
10038
10039	// ForceSendFields is a list of field names (e.g. "Bindings") to
10040	// unconditionally include in API requests. By default, fields with
10041	// empty values are omitted from API requests. However, any non-pointer,
10042	// non-interface field appearing in ForceSendFields will be sent to the
10043	// server regardless of whether the field is empty or not. This may be
10044	// used to include empty fields in Patch requests.
10045	ForceSendFields []string `json:"-"`
10046
10047	// NullFields is a list of field names (e.g. "Bindings") to include in
10048	// API requests with the JSON null value. By default, fields with empty
10049	// values are omitted from API requests. However, any field with an
10050	// empty value appearing in NullFields will be sent to the server as
10051	// null. It is an error if a field in this list has a non-empty value.
10052	// This may be used to include null fields in Patch requests.
10053	NullFields []string `json:"-"`
10054}
10055
10056func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
10057	type NoMethod GlobalSetPolicyRequest
10058	raw := NoMethod(*s)
10059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10060}
10061
10062// GuestAttributes: A guest attributes entry.
10063type GuestAttributes struct {
10064	// Kind: [Output Only] Type of the resource. Always
10065	// compute#guestAttributes for guest attributes entry.
10066	Kind string `json:"kind,omitempty"`
10067
10068	// QueryPath: The path to be queried. This can be the default namespace
10069	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
10070	QueryPath string `json:"queryPath,omitempty"`
10071
10072	// QueryValue: [Output Only] The value of the requested queried path.
10073	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
10074
10075	// SelfLink: [Output Only] Server-defined URL for this resource.
10076	SelfLink string `json:"selfLink,omitempty"`
10077
10078	// VariableKey: The key to search for.
10079	VariableKey string `json:"variableKey,omitempty"`
10080
10081	// VariableValue: [Output Only] The value found for the requested key.
10082	VariableValue string `json:"variableValue,omitempty"`
10083
10084	// ServerResponse contains the HTTP response code and headers from the
10085	// server.
10086	googleapi.ServerResponse `json:"-"`
10087
10088	// ForceSendFields is a list of field names (e.g. "Kind") to
10089	// unconditionally include in API requests. By default, fields with
10090	// empty values are omitted from API requests. However, any non-pointer,
10091	// non-interface field appearing in ForceSendFields will be sent to the
10092	// server regardless of whether the field is empty or not. This may be
10093	// used to include empty fields in Patch requests.
10094	ForceSendFields []string `json:"-"`
10095
10096	// NullFields is a list of field names (e.g. "Kind") to include in API
10097	// requests with the JSON null value. By default, fields with empty
10098	// values are omitted from API requests. However, any field with an
10099	// empty value appearing in NullFields will be sent to the server as
10100	// null. It is an error if a field in this list has a non-empty value.
10101	// This may be used to include null fields in Patch requests.
10102	NullFields []string `json:"-"`
10103}
10104
10105func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
10106	type NoMethod GuestAttributes
10107	raw := NoMethod(*s)
10108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10109}
10110
10111// GuestAttributesEntry: A guest attributes namespace/key/value entry.
10112type GuestAttributesEntry struct {
10113	// Key: Key for the guest attribute entry.
10114	Key string `json:"key,omitempty"`
10115
10116	// Namespace: Namespace for the guest attribute entry.
10117	Namespace string `json:"namespace,omitempty"`
10118
10119	// Value: Value for the guest attribute entry.
10120	Value string `json:"value,omitempty"`
10121
10122	// ForceSendFields is a list of field names (e.g. "Key") to
10123	// unconditionally include in API requests. By default, fields with
10124	// empty values are omitted from API requests. However, any non-pointer,
10125	// non-interface field appearing in ForceSendFields will be sent to the
10126	// server regardless of whether the field is empty or not. This may be
10127	// used to include empty fields in Patch requests.
10128	ForceSendFields []string `json:"-"`
10129
10130	// NullFields is a list of field names (e.g. "Key") to include in API
10131	// requests with the JSON null value. By default, fields with empty
10132	// values are omitted from API requests. However, any field with an
10133	// empty value appearing in NullFields will be sent to the server as
10134	// null. It is an error if a field in this list has a non-empty value.
10135	// This may be used to include null fields in Patch requests.
10136	NullFields []string `json:"-"`
10137}
10138
10139func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
10140	type NoMethod GuestAttributesEntry
10141	raw := NoMethod(*s)
10142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10143}
10144
10145// GuestAttributesValue: Array of guest attribute namespace/key/value
10146// tuples.
10147type GuestAttributesValue struct {
10148	Items []*GuestAttributesEntry `json:"items,omitempty"`
10149
10150	// ForceSendFields is a list of field names (e.g. "Items") to
10151	// unconditionally include in API requests. By default, fields with
10152	// empty values are omitted from API requests. However, any non-pointer,
10153	// non-interface field appearing in ForceSendFields will be sent to the
10154	// server regardless of whether the field is empty or not. This may be
10155	// used to include empty fields in Patch requests.
10156	ForceSendFields []string `json:"-"`
10157
10158	// NullFields is a list of field names (e.g. "Items") to include in API
10159	// requests with the JSON null value. By default, fields with empty
10160	// values are omitted from API requests. However, any field with an
10161	// empty value appearing in NullFields will be sent to the server as
10162	// null. It is an error if a field in this list has a non-empty value.
10163	// This may be used to include null fields in Patch requests.
10164	NullFields []string `json:"-"`
10165}
10166
10167func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
10168	type NoMethod GuestAttributesValue
10169	raw := NoMethod(*s)
10170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10171}
10172
10173// GuestOsFeature: Guest OS features.
10174type GuestOsFeature struct {
10175	// Type: The ID of a supported feature. Read  Enabling guest operating
10176	// system features to see a list of available options.
10177	//
10178	// Possible values:
10179	//   "FEATURE_TYPE_UNSPECIFIED"
10180	//   "MULTI_IP_SUBNET"
10181	//   "SECURE_BOOT"
10182	//   "SEV_CAPABLE"
10183	//   "UEFI_COMPATIBLE"
10184	//   "VIRTIO_SCSI_MULTIQUEUE"
10185	//   "WINDOWS"
10186	Type string `json:"type,omitempty"`
10187
10188	// ForceSendFields is a list of field names (e.g. "Type") to
10189	// unconditionally include in API requests. By default, fields with
10190	// empty values are omitted from API requests. However, any non-pointer,
10191	// non-interface field appearing in ForceSendFields will be sent to the
10192	// server regardless of whether the field is empty or not. This may be
10193	// used to include empty fields in Patch requests.
10194	ForceSendFields []string `json:"-"`
10195
10196	// NullFields is a list of field names (e.g. "Type") to include in API
10197	// requests with the JSON null value. By default, fields with empty
10198	// values are omitted from API requests. However, any field with an
10199	// empty value appearing in NullFields will be sent to the server as
10200	// null. It is an error if a field in this list has a non-empty value.
10201	// This may be used to include null fields in Patch requests.
10202	NullFields []string `json:"-"`
10203}
10204
10205func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
10206	type NoMethod GuestOsFeature
10207	raw := NoMethod(*s)
10208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10209}
10210
10211type HTTP2HealthCheck struct {
10212	// Host: The value of the host header in the HTTP/2 health check
10213	// request. If left empty (default value), the IP on behalf of which
10214	// this health check is performed will be used.
10215	Host string `json:"host,omitempty"`
10216
10217	// Port: The TCP port number for the health check request. The default
10218	// value is 443. Valid values are 1 through 65535.
10219	Port int64 `json:"port,omitempty"`
10220
10221	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10222	// both port and port_name are defined, port takes precedence.
10223	PortName string `json:"portName,omitempty"`
10224
10225	// PortSpecification: Specifies how port is selected for health
10226	// checking, can be one of following values:
10227	// USE_FIXED_PORT: The port number in port is used for health
10228	// checking.
10229	// USE_NAMED_PORT: The portName is used for health
10230	// checking.
10231	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10232	// each network endpoint is used for health checking. For other
10233	// backends, the port or named port specified in the Backend Service is
10234	// used for health checking.
10235	//
10236	//
10237	// If not specified, HTTP2 health check follows behavior specified in
10238	// port and portName fields.
10239	//
10240	// Possible values:
10241	//   "USE_FIXED_PORT"
10242	//   "USE_NAMED_PORT"
10243	//   "USE_SERVING_PORT"
10244	PortSpecification string `json:"portSpecification,omitempty"`
10245
10246	// ProxyHeader: Specifies the type of proxy header to append before
10247	// sending data to the backend, either NONE or PROXY_V1. The default is
10248	// NONE.
10249	//
10250	// Possible values:
10251	//   "NONE"
10252	//   "PROXY_V1"
10253	ProxyHeader string `json:"proxyHeader,omitempty"`
10254
10255	// RequestPath: The request path of the HTTP/2 health check request. The
10256	// default value is /.
10257	RequestPath string `json:"requestPath,omitempty"`
10258
10259	// Response: The string to match anywhere in the first 1024 bytes of the
10260	// response body. If left empty (the default value), the status code
10261	// determines health. The response data can only be ASCII.
10262	Response string `json:"response,omitempty"`
10263
10264	// ForceSendFields is a list of field names (e.g. "Host") to
10265	// unconditionally include in API requests. By default, fields with
10266	// empty values are omitted from API requests. However, any non-pointer,
10267	// non-interface field appearing in ForceSendFields will be sent to the
10268	// server regardless of whether the field is empty or not. This may be
10269	// used to include empty fields in Patch requests.
10270	ForceSendFields []string `json:"-"`
10271
10272	// NullFields is a list of field names (e.g. "Host") to include in API
10273	// requests with the JSON null value. By default, fields with empty
10274	// values are omitted from API requests. However, any field with an
10275	// empty value appearing in NullFields will be sent to the server as
10276	// null. It is an error if a field in this list has a non-empty value.
10277	// This may be used to include null fields in Patch requests.
10278	NullFields []string `json:"-"`
10279}
10280
10281func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
10282	type NoMethod HTTP2HealthCheck
10283	raw := NoMethod(*s)
10284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10285}
10286
10287type HTTPHealthCheck struct {
10288	// Host: The value of the host header in the HTTP health check request.
10289	// If left empty (default value), the IP on behalf of which this health
10290	// check is performed will be used.
10291	Host string `json:"host,omitempty"`
10292
10293	// Port: The TCP port number for the health check request. The default
10294	// value is 80. Valid values are 1 through 65535.
10295	Port int64 `json:"port,omitempty"`
10296
10297	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10298	// both port and port_name are defined, port takes precedence.
10299	PortName string `json:"portName,omitempty"`
10300
10301	// PortSpecification: Specifies how port is selected for health
10302	// checking, can be one of following values:
10303	// USE_FIXED_PORT: The port number in port is used for health
10304	// checking.
10305	// USE_NAMED_PORT: The portName is used for health
10306	// checking.
10307	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10308	// each network endpoint is used for health checking. For other
10309	// backends, the port or named port specified in the Backend Service is
10310	// used for health checking.
10311	//
10312	//
10313	// If not specified, HTTP health check follows behavior specified in
10314	// port and portName fields.
10315	//
10316	// Possible values:
10317	//   "USE_FIXED_PORT"
10318	//   "USE_NAMED_PORT"
10319	//   "USE_SERVING_PORT"
10320	PortSpecification string `json:"portSpecification,omitempty"`
10321
10322	// ProxyHeader: Specifies the type of proxy header to append before
10323	// sending data to the backend, either NONE or PROXY_V1. The default is
10324	// NONE.
10325	//
10326	// Possible values:
10327	//   "NONE"
10328	//   "PROXY_V1"
10329	ProxyHeader string `json:"proxyHeader,omitempty"`
10330
10331	// RequestPath: The request path of the HTTP health check request. The
10332	// default value is /.
10333	RequestPath string `json:"requestPath,omitempty"`
10334
10335	// Response: The string to match anywhere in the first 1024 bytes of the
10336	// response body. If left empty (the default value), the status code
10337	// determines health. The response data can only be ASCII.
10338	Response string `json:"response,omitempty"`
10339
10340	// ForceSendFields is a list of field names (e.g. "Host") to
10341	// unconditionally include in API requests. By default, fields with
10342	// empty values are omitted from API requests. However, any non-pointer,
10343	// non-interface field appearing in ForceSendFields will be sent to the
10344	// server regardless of whether the field is empty or not. This may be
10345	// used to include empty fields in Patch requests.
10346	ForceSendFields []string `json:"-"`
10347
10348	// NullFields is a list of field names (e.g. "Host") to include in API
10349	// requests with the JSON null value. By default, fields with empty
10350	// values are omitted from API requests. However, any field with an
10351	// empty value appearing in NullFields will be sent to the server as
10352	// null. It is an error if a field in this list has a non-empty value.
10353	// This may be used to include null fields in Patch requests.
10354	NullFields []string `json:"-"`
10355}
10356
10357func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
10358	type NoMethod HTTPHealthCheck
10359	raw := NoMethod(*s)
10360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10361}
10362
10363type HTTPSHealthCheck struct {
10364	// Host: The value of the host header in the HTTPS health check request.
10365	// If left empty (default value), the IP on behalf of which this health
10366	// check is performed will be used.
10367	Host string `json:"host,omitempty"`
10368
10369	// Port: The TCP port number for the health check request. The default
10370	// value is 443. Valid values are 1 through 65535.
10371	Port int64 `json:"port,omitempty"`
10372
10373	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10374	// both port and port_name are defined, port takes precedence.
10375	PortName string `json:"portName,omitempty"`
10376
10377	// PortSpecification: Specifies how port is selected for health
10378	// checking, can be one of following values:
10379	// USE_FIXED_PORT: The port number in port is used for health
10380	// checking.
10381	// USE_NAMED_PORT: The portName is used for health
10382	// checking.
10383	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10384	// each network endpoint is used for health checking. For other
10385	// backends, the port or named port specified in the Backend Service is
10386	// used for health checking.
10387	//
10388	//
10389	// If not specified, HTTPS health check follows behavior specified in
10390	// port and portName fields.
10391	//
10392	// Possible values:
10393	//   "USE_FIXED_PORT"
10394	//   "USE_NAMED_PORT"
10395	//   "USE_SERVING_PORT"
10396	PortSpecification string `json:"portSpecification,omitempty"`
10397
10398	// ProxyHeader: Specifies the type of proxy header to append before
10399	// sending data to the backend, either NONE or PROXY_V1. The default is
10400	// NONE.
10401	//
10402	// Possible values:
10403	//   "NONE"
10404	//   "PROXY_V1"
10405	ProxyHeader string `json:"proxyHeader,omitempty"`
10406
10407	// RequestPath: The request path of the HTTPS health check request. The
10408	// default value is /.
10409	RequestPath string `json:"requestPath,omitempty"`
10410
10411	// Response: The string to match anywhere in the first 1024 bytes of the
10412	// response body. If left empty (the default value), the status code
10413	// determines health. The response data can only be ASCII.
10414	Response string `json:"response,omitempty"`
10415
10416	// ForceSendFields is a list of field names (e.g. "Host") to
10417	// unconditionally include in API requests. By default, fields with
10418	// empty values are omitted from API requests. However, any non-pointer,
10419	// non-interface field appearing in ForceSendFields will be sent to the
10420	// server regardless of whether the field is empty or not. This may be
10421	// used to include empty fields in Patch requests.
10422	ForceSendFields []string `json:"-"`
10423
10424	// NullFields is a list of field names (e.g. "Host") to include in API
10425	// requests with the JSON null value. By default, fields with empty
10426	// values are omitted from API requests. However, any field with an
10427	// empty value appearing in NullFields will be sent to the server as
10428	// null. It is an error if a field in this list has a non-empty value.
10429	// This may be used to include null fields in Patch requests.
10430	NullFields []string `json:"-"`
10431}
10432
10433func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
10434	type NoMethod HTTPSHealthCheck
10435	raw := NoMethod(*s)
10436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10437}
10438
10439// HealthCheck: Represents a Health Check resource.
10440//
10441// Google Compute Engine has two Health Check resources:
10442//
10443// * [Global](/compute/docs/reference/rest/{$api_version}/healthChecks)
10444// *
10445// [Regional](/compute/docs/reference/rest/{$api_version}/regionHealthChe
10446// cks)
10447//
10448// Internal HTTP(S) load balancers use regional health checks. All other
10449// types of GCP load balancers and managed instance group auto-healing
10450// use global health checks. For more information, read Health Check
10451// Concepts.
10452//
10453// To perform health checks on network load balancers, you must use
10454// either httpHealthChecks or httpsHealthChecks.
10455type HealthCheck struct {
10456	// CheckIntervalSec: How often (in seconds) to send a health check. The
10457	// default value is 5 seconds.
10458	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
10459
10460	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
10461	// format.
10462	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10463
10464	// Description: An optional description of this resource. Provide this
10465	// property when you create the resource.
10466	Description string `json:"description,omitempty"`
10467
10468	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
10469	// after this many consecutive successes. The default value is 2.
10470	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
10471
10472	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
10473
10474	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
10475
10476	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
10477
10478	// Id: [Output Only] The unique identifier for the resource. This
10479	// identifier is defined by the server.
10480	Id uint64 `json:"id,omitempty,string"`
10481
10482	// Kind: Type of the resource.
10483	Kind string `json:"kind,omitempty"`
10484
10485	// LogConfig: Configure logging on this health check.
10486	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
10487
10488	// Name: Name of the resource. Provided by the client when the resource
10489	// is created. The name must be 1-63 characters long, and comply with
10490	// RFC1035. Specifically, the name must be 1-63 characters long and
10491	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10492	// the first character must be a lowercase letter, and all following
10493	// characters must be a dash, lowercase letter, or digit, except the
10494	// last character, which cannot be a dash.
10495	Name string `json:"name,omitempty"`
10496
10497	// Region: [Output Only] Region where the health check resides. Not
10498	// applicable to global health checks.
10499	Region string `json:"region,omitempty"`
10500
10501	// SelfLink: [Output Only] Server-defined URL for the resource.
10502	SelfLink string `json:"selfLink,omitempty"`
10503
10504	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
10505
10506	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
10507
10508	// TimeoutSec: How long (in seconds) to wait before claiming failure.
10509	// The default value is 5 seconds. It is invalid for timeoutSec to have
10510	// greater value than checkIntervalSec.
10511	TimeoutSec int64 `json:"timeoutSec,omitempty"`
10512
10513	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
10514	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
10515	// the protocol-specific health check field must be specified, which
10516	// must match type field.
10517	//
10518	// Possible values:
10519	//   "HTTP"
10520	//   "HTTP2"
10521	//   "HTTPS"
10522	//   "INVALID"
10523	//   "SSL"
10524	//   "TCP"
10525	Type string `json:"type,omitempty"`
10526
10527	// UnhealthyThreshold: A so-far healthy instance will be marked
10528	// unhealthy after this many consecutive failures. The default value is
10529	// 2.
10530	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
10531
10532	// ServerResponse contains the HTTP response code and headers from the
10533	// server.
10534	googleapi.ServerResponse `json:"-"`
10535
10536	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
10537	// unconditionally include in API requests. By default, fields with
10538	// empty values are omitted from API requests. However, any non-pointer,
10539	// non-interface field appearing in ForceSendFields will be sent to the
10540	// server regardless of whether the field is empty or not. This may be
10541	// used to include empty fields in Patch requests.
10542	ForceSendFields []string `json:"-"`
10543
10544	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
10545	// include in API requests with the JSON null value. By default, fields
10546	// with empty values are omitted from API requests. However, any field
10547	// with an empty value appearing in NullFields will be sent to the
10548	// server as null. It is an error if a field in this list has a
10549	// non-empty value. This may be used to include null fields in Patch
10550	// requests.
10551	NullFields []string `json:"-"`
10552}
10553
10554func (s *HealthCheck) MarshalJSON() ([]byte, error) {
10555	type NoMethod HealthCheck
10556	raw := NoMethod(*s)
10557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10558}
10559
10560// HealthCheckList: Contains a list of HealthCheck resources.
10561type HealthCheckList struct {
10562	// Id: [Output Only] Unique identifier for the resource; defined by the
10563	// server.
10564	Id string `json:"id,omitempty"`
10565
10566	// Items: A list of HealthCheck resources.
10567	Items []*HealthCheck `json:"items,omitempty"`
10568
10569	// Kind: Type of resource.
10570	Kind string `json:"kind,omitempty"`
10571
10572	// NextPageToken: [Output Only] This token allows you to get the next
10573	// page of results for list requests. If the number of results is larger
10574	// than maxResults, use the nextPageToken as a value for the query
10575	// parameter pageToken in the next list request. Subsequent list
10576	// requests will have their own nextPageToken to continue paging through
10577	// the results.
10578	NextPageToken string `json:"nextPageToken,omitempty"`
10579
10580	// SelfLink: [Output Only] Server-defined URL for this resource.
10581	SelfLink string `json:"selfLink,omitempty"`
10582
10583	// Warning: [Output Only] Informational warning message.
10584	Warning *HealthCheckListWarning `json:"warning,omitempty"`
10585
10586	// ServerResponse contains the HTTP response code and headers from the
10587	// server.
10588	googleapi.ServerResponse `json:"-"`
10589
10590	// ForceSendFields is a list of field names (e.g. "Id") to
10591	// unconditionally include in API requests. By default, fields with
10592	// empty values are omitted from API requests. However, any non-pointer,
10593	// non-interface field appearing in ForceSendFields will be sent to the
10594	// server regardless of whether the field is empty or not. This may be
10595	// used to include empty fields in Patch requests.
10596	ForceSendFields []string `json:"-"`
10597
10598	// NullFields is a list of field names (e.g. "Id") to include in API
10599	// requests with the JSON null value. By default, fields with empty
10600	// values are omitted from API requests. However, any field with an
10601	// empty value appearing in NullFields will be sent to the server as
10602	// null. It is an error if a field in this list has a non-empty value.
10603	// This may be used to include null fields in Patch requests.
10604	NullFields []string `json:"-"`
10605}
10606
10607func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
10608	type NoMethod HealthCheckList
10609	raw := NoMethod(*s)
10610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10611}
10612
10613// HealthCheckListWarning: [Output Only] Informational warning message.
10614type HealthCheckListWarning struct {
10615	// Code: [Output Only] A warning code, if applicable. For example,
10616	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10617	// the response.
10618	//
10619	// Possible values:
10620	//   "CLEANUP_FAILED"
10621	//   "DEPRECATED_RESOURCE_USED"
10622	//   "DEPRECATED_TYPE_USED"
10623	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10624	//   "EXPERIMENTAL_TYPE_USED"
10625	//   "EXTERNAL_API_WARNING"
10626	//   "FIELD_VALUE_OVERRIDEN"
10627	//   "INJECTED_KERNELS_DEPRECATED"
10628	//   "MISSING_TYPE_DEPENDENCY"
10629	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10630	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10631	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10632	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10633	//   "NEXT_HOP_NOT_RUNNING"
10634	//   "NOT_CRITICAL_ERROR"
10635	//   "NO_RESULTS_ON_PAGE"
10636	//   "REQUIRED_TOS_AGREEMENT"
10637	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10638	//   "RESOURCE_NOT_DELETED"
10639	//   "SCHEMA_VALIDATION_IGNORED"
10640	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10641	//   "UNDECLARED_PROPERTIES"
10642	//   "UNREACHABLE"
10643	Code string `json:"code,omitempty"`
10644
10645	// Data: [Output Only] Metadata about this warning in key: value format.
10646	// For example:
10647	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10648	Data []*HealthCheckListWarningData `json:"data,omitempty"`
10649
10650	// Message: [Output Only] A human-readable description of the warning
10651	// code.
10652	Message string `json:"message,omitempty"`
10653
10654	// ForceSendFields is a list of field names (e.g. "Code") to
10655	// unconditionally include in API requests. By default, fields with
10656	// empty values are omitted from API requests. However, any non-pointer,
10657	// non-interface field appearing in ForceSendFields will be sent to the
10658	// server regardless of whether the field is empty or not. This may be
10659	// used to include empty fields in Patch requests.
10660	ForceSendFields []string `json:"-"`
10661
10662	// NullFields is a list of field names (e.g. "Code") to include in API
10663	// requests with the JSON null value. By default, fields with empty
10664	// values are omitted from API requests. However, any field with an
10665	// empty value appearing in NullFields will be sent to the server as
10666	// null. It is an error if a field in this list has a non-empty value.
10667	// This may be used to include null fields in Patch requests.
10668	NullFields []string `json:"-"`
10669}
10670
10671func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
10672	type NoMethod HealthCheckListWarning
10673	raw := NoMethod(*s)
10674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10675}
10676
10677type HealthCheckListWarningData struct {
10678	// Key: [Output Only] A key that provides more detail on the warning
10679	// being returned. For example, for warnings where there are no results
10680	// in a list request for a particular zone, this key might be scope and
10681	// the key value might be the zone name. Other examples might be a key
10682	// indicating a deprecated resource and a suggested replacement, or a
10683	// warning about invalid network settings (for example, if an instance
10684	// attempts to perform IP forwarding but is not enabled for IP
10685	// forwarding).
10686	Key string `json:"key,omitempty"`
10687
10688	// Value: [Output Only] A warning data value corresponding to the key.
10689	Value string `json:"value,omitempty"`
10690
10691	// ForceSendFields is a list of field names (e.g. "Key") to
10692	// unconditionally include in API requests. By default, fields with
10693	// empty values are omitted from API requests. However, any non-pointer,
10694	// non-interface field appearing in ForceSendFields will be sent to the
10695	// server regardless of whether the field is empty or not. This may be
10696	// used to include empty fields in Patch requests.
10697	ForceSendFields []string `json:"-"`
10698
10699	// NullFields is a list of field names (e.g. "Key") to include in API
10700	// requests with the JSON null value. By default, fields with empty
10701	// values are omitted from API requests. However, any field with an
10702	// empty value appearing in NullFields will be sent to the server as
10703	// null. It is an error if a field in this list has a non-empty value.
10704	// This may be used to include null fields in Patch requests.
10705	NullFields []string `json:"-"`
10706}
10707
10708func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
10709	type NoMethod HealthCheckListWarningData
10710	raw := NoMethod(*s)
10711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10712}
10713
10714// HealthCheckLogConfig: Configuration of logging on a health check. If
10715// logging is enabled, logs will be exported to Stackdriver.
10716type HealthCheckLogConfig struct {
10717	// Enable: Indicates whether or not to export logs. This is false by
10718	// default, which means no health check logging will be done.
10719	Enable bool `json:"enable,omitempty"`
10720
10721	// ForceSendFields is a list of field names (e.g. "Enable") to
10722	// unconditionally include in API requests. By default, fields with
10723	// empty values are omitted from API requests. However, any non-pointer,
10724	// non-interface field appearing in ForceSendFields will be sent to the
10725	// server regardless of whether the field is empty or not. This may be
10726	// used to include empty fields in Patch requests.
10727	ForceSendFields []string `json:"-"`
10728
10729	// NullFields is a list of field names (e.g. "Enable") to include in API
10730	// requests with the JSON null value. By default, fields with empty
10731	// values are omitted from API requests. However, any field with an
10732	// empty value appearing in NullFields will be sent to the server as
10733	// null. It is an error if a field in this list has a non-empty value.
10734	// This may be used to include null fields in Patch requests.
10735	NullFields []string `json:"-"`
10736}
10737
10738func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
10739	type NoMethod HealthCheckLogConfig
10740	raw := NoMethod(*s)
10741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10742}
10743
10744// HealthCheckReference: A full or valid partial URL to a health check.
10745// For example, the following are valid URLs:
10746// -
10747// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
10748// - projects/project-id/global/httpHealthChecks/health-check
10749// - global/httpHealthChecks/health-check
10750type HealthCheckReference struct {
10751	HealthCheck string `json:"healthCheck,omitempty"`
10752
10753	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
10754	// unconditionally include in API requests. By default, fields with
10755	// empty values are omitted from API requests. However, any non-pointer,
10756	// non-interface field appearing in ForceSendFields will be sent to the
10757	// server regardless of whether the field is empty or not. This may be
10758	// used to include empty fields in Patch requests.
10759	ForceSendFields []string `json:"-"`
10760
10761	// NullFields is a list of field names (e.g. "HealthCheck") to include
10762	// in API requests with the JSON null value. By default, fields with
10763	// empty values are omitted from API requests. However, any field with
10764	// an empty value appearing in NullFields will be sent to the server as
10765	// null. It is an error if a field in this list has a non-empty value.
10766	// This may be used to include null fields in Patch requests.
10767	NullFields []string `json:"-"`
10768}
10769
10770func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
10771	type NoMethod HealthCheckReference
10772	raw := NoMethod(*s)
10773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10774}
10775
10776// HealthCheckService: Represents a Health-Check as a Service
10777// resource.
10778//
10779// (== resource_for {$api_version}.regionHealthCheckServices ==)
10780type HealthCheckService struct {
10781	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10782	// format.
10783	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10784
10785	// Description: An optional description of this resource. Provide this
10786	// property when you create the resource.
10787	Description string `json:"description,omitempty"`
10788
10789	// Fingerprint: Fingerprint of this resource. A hash of the contents
10790	// stored in this object. This field is used in optimistic locking. This
10791	// field will be ignored when inserting a HealthCheckService. An
10792	// up-to-date fingerprint must be provided in order to patch/update the
10793	// HealthCheckService; Otherwise, the request will fail with error 412
10794	// conditionNotMet. To see the latest fingerprint, make a get() request
10795	// to retrieve the HealthCheckService.
10796	Fingerprint string `json:"fingerprint,omitempty"`
10797
10798	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
10799	// least one HealthCheck, and not more than 10. HealthCheck resources
10800	// must have portSpecification=USE_SERVING_PORT. For regional
10801	// HealthCheckService, the HealthCheck must be regional and in the same
10802	// region. For global HealthCheckService, HealthCheck must be global.
10803	// Mix of regional and global HealthChecks is not supported. Multiple
10804	// regional HealthChecks must belong to the same region. Regional
10805	// HealthChecks</code? must belong to the same region as zones of NEGs.
10806	HealthChecks []string `json:"healthChecks,omitempty"`
10807
10808	// HealthStatusAggregationPolicy: Optional. Policy for how the results
10809	// from multiple health checks for the same endpoint are aggregated.
10810	// Defaults to NO_AGGREGATION if unspecified.
10811	// - NO_AGGREGATION. An EndpointHealth message is returned for each
10812	// backend in the health check service.
10813	// - AND. If any backend's health check reports UNHEALTHY, then
10814	// UNHEALTHY is the HealthState of the entire health check service. If
10815	// all backend's are healthy, the HealthState of the health check
10816	// service is HEALTHY. .
10817	//
10818	// Possible values:
10819	//   "AND"
10820	//   "NO_AGGREGATION"
10821	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
10822
10823	// Id: [Output Only] The unique identifier for the resource. This
10824	// identifier is defined by the server.
10825	Id uint64 `json:"id,omitempty,string"`
10826
10827	// Kind: [Output only] Type of the resource. Always
10828	// compute#healthCheckServicefor health check services.
10829	Kind string `json:"kind,omitempty"`
10830
10831	// Name: Name of the resource. The name must be 1-63 characters long,
10832	// and comply with RFC1035. Specifically, the name must be 1-63
10833	// characters long and match the regular expression
10834	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
10835	// a lowercase letter, and all following characters must be a dash,
10836	// lowercase letter, or digit, except the last character, which cannot
10837	// be a dash.
10838	Name string `json:"name,omitempty"`
10839
10840	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
10841	// resources. Must not have more than 100. For regional
10842	// HealthCheckService, NEGs must be in zones in the region of the
10843	// HealthCheckService.
10844	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
10845
10846	// NotificationEndpoints: List of URLs to the NotificationEndpoint
10847	// resources. Must not have more than 10. A list of endpoints for
10848	// receiving notifications of change in health status. For regional
10849	// HealthCheckService, NotificationEndpoint must be regional and in the
10850	// same region. For global HealthCheckService, NotificationEndpoint must
10851	// be global.
10852	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
10853
10854	// Region: [Output Only] URL of the region where the health check
10855	// service resides. This field is not applicable to global health check
10856	// services. You must specify this field as part of the HTTP request
10857	// URL. It is not settable as a field in the request body.
10858	Region string `json:"region,omitempty"`
10859
10860	// SelfLink: [Output Only] Server-defined URL for the resource.
10861	SelfLink string `json:"selfLink,omitempty"`
10862
10863	// ServerResponse contains the HTTP response code and headers from the
10864	// server.
10865	googleapi.ServerResponse `json:"-"`
10866
10867	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
10868	// to unconditionally include in API requests. By default, fields with
10869	// empty values are omitted from API requests. However, any non-pointer,
10870	// non-interface field appearing in ForceSendFields will be sent to the
10871	// server regardless of whether the field is empty or not. This may be
10872	// used to include empty fields in Patch requests.
10873	ForceSendFields []string `json:"-"`
10874
10875	// NullFields is a list of field names (e.g. "CreationTimestamp") to
10876	// include in API requests with the JSON null value. By default, fields
10877	// with empty values are omitted from API requests. However, any field
10878	// with an empty value appearing in NullFields will be sent to the
10879	// server as null. It is an error if a field in this list has a
10880	// non-empty value. This may be used to include null fields in Patch
10881	// requests.
10882	NullFields []string `json:"-"`
10883}
10884
10885func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
10886	type NoMethod HealthCheckService
10887	raw := NoMethod(*s)
10888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10889}
10890
10891// HealthCheckServiceReference: A full or valid partial URL to a health
10892// check service. For example, the following are valid URLs:
10893// -
10894// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
10895// -
10896// projects/project-id/regions/us-west1/healthCheckServices/health-check-
10897// service
10898// - regions/us-west1/healthCheckServices/health-check-service
10899type HealthCheckServiceReference struct {
10900	HealthCheckService string `json:"healthCheckService,omitempty"`
10901
10902	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
10903	// to unconditionally include in API requests. By default, fields with
10904	// empty values are omitted from API requests. However, any non-pointer,
10905	// non-interface field appearing in ForceSendFields will be sent to the
10906	// server regardless of whether the field is empty or not. This may be
10907	// used to include empty fields in Patch requests.
10908	ForceSendFields []string `json:"-"`
10909
10910	// NullFields is a list of field names (e.g. "HealthCheckService") to
10911	// include in API requests with the JSON null value. By default, fields
10912	// with empty values are omitted from API requests. However, any field
10913	// with an empty value appearing in NullFields will be sent to the
10914	// server as null. It is an error if a field in this list has a
10915	// non-empty value. This may be used to include null fields in Patch
10916	// requests.
10917	NullFields []string `json:"-"`
10918}
10919
10920func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
10921	type NoMethod HealthCheckServiceReference
10922	raw := NoMethod(*s)
10923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10924}
10925
10926type HealthCheckServicesList struct {
10927	// Id: [Output Only] Unique identifier for the resource; defined by the
10928	// server.
10929	Id string `json:"id,omitempty"`
10930
10931	// Items: A list of HealthCheckService resources.
10932	Items []*HealthCheckService `json:"items,omitempty"`
10933
10934	// Kind: [Output Only] Type of the resource. Always
10935	// compute#healthCheckServicesList for lists of HealthCheckServices.
10936	Kind string `json:"kind,omitempty"`
10937
10938	// NextPageToken: [Output Only] This token allows you to get the next
10939	// page of results for list requests. If the number of results is larger
10940	// than maxResults, use the nextPageToken as a value for the query
10941	// parameter pageToken in the next list request. Subsequent list
10942	// requests will have their own nextPageToken to continue paging through
10943	// the results.
10944	NextPageToken string `json:"nextPageToken,omitempty"`
10945
10946	// SelfLink: [Output Only] Server-defined URL for this resource.
10947	SelfLink string `json:"selfLink,omitempty"`
10948
10949	// Warning: [Output Only] Informational warning message.
10950	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
10951
10952	// ServerResponse contains the HTTP response code and headers from the
10953	// server.
10954	googleapi.ServerResponse `json:"-"`
10955
10956	// ForceSendFields is a list of field names (e.g. "Id") to
10957	// unconditionally include in API requests. By default, fields with
10958	// empty values are omitted from API requests. However, any non-pointer,
10959	// non-interface field appearing in ForceSendFields will be sent to the
10960	// server regardless of whether the field is empty or not. This may be
10961	// used to include empty fields in Patch requests.
10962	ForceSendFields []string `json:"-"`
10963
10964	// NullFields is a list of field names (e.g. "Id") to include in API
10965	// requests with the JSON null value. By default, fields with empty
10966	// values are omitted from API requests. However, any field with an
10967	// empty value appearing in NullFields will be sent to the server as
10968	// null. It is an error if a field in this list has a non-empty value.
10969	// This may be used to include null fields in Patch requests.
10970	NullFields []string `json:"-"`
10971}
10972
10973func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
10974	type NoMethod HealthCheckServicesList
10975	raw := NoMethod(*s)
10976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10977}
10978
10979// HealthCheckServicesListWarning: [Output Only] Informational warning
10980// message.
10981type HealthCheckServicesListWarning struct {
10982	// Code: [Output Only] A warning code, if applicable. For example,
10983	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10984	// the response.
10985	//
10986	// Possible values:
10987	//   "CLEANUP_FAILED"
10988	//   "DEPRECATED_RESOURCE_USED"
10989	//   "DEPRECATED_TYPE_USED"
10990	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10991	//   "EXPERIMENTAL_TYPE_USED"
10992	//   "EXTERNAL_API_WARNING"
10993	//   "FIELD_VALUE_OVERRIDEN"
10994	//   "INJECTED_KERNELS_DEPRECATED"
10995	//   "MISSING_TYPE_DEPENDENCY"
10996	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10997	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10998	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10999	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11000	//   "NEXT_HOP_NOT_RUNNING"
11001	//   "NOT_CRITICAL_ERROR"
11002	//   "NO_RESULTS_ON_PAGE"
11003	//   "REQUIRED_TOS_AGREEMENT"
11004	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11005	//   "RESOURCE_NOT_DELETED"
11006	//   "SCHEMA_VALIDATION_IGNORED"
11007	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11008	//   "UNDECLARED_PROPERTIES"
11009	//   "UNREACHABLE"
11010	Code string `json:"code,omitempty"`
11011
11012	// Data: [Output Only] Metadata about this warning in key: value format.
11013	// For example:
11014	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11015	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
11016
11017	// Message: [Output Only] A human-readable description of the warning
11018	// code.
11019	Message string `json:"message,omitempty"`
11020
11021	// ForceSendFields is a list of field names (e.g. "Code") to
11022	// unconditionally include in API requests. By default, fields with
11023	// empty values are omitted from API requests. However, any non-pointer,
11024	// non-interface field appearing in ForceSendFields will be sent to the
11025	// server regardless of whether the field is empty or not. This may be
11026	// used to include empty fields in Patch requests.
11027	ForceSendFields []string `json:"-"`
11028
11029	// NullFields is a list of field names (e.g. "Code") to include in API
11030	// requests with the JSON null value. By default, fields with empty
11031	// values are omitted from API requests. However, any field with an
11032	// empty value appearing in NullFields will be sent to the server as
11033	// null. It is an error if a field in this list has a non-empty value.
11034	// This may be used to include null fields in Patch requests.
11035	NullFields []string `json:"-"`
11036}
11037
11038func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
11039	type NoMethod HealthCheckServicesListWarning
11040	raw := NoMethod(*s)
11041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11042}
11043
11044type HealthCheckServicesListWarningData struct {
11045	// Key: [Output Only] A key that provides more detail on the warning
11046	// being returned. For example, for warnings where there are no results
11047	// in a list request for a particular zone, this key might be scope and
11048	// the key value might be the zone name. Other examples might be a key
11049	// indicating a deprecated resource and a suggested replacement, or a
11050	// warning about invalid network settings (for example, if an instance
11051	// attempts to perform IP forwarding but is not enabled for IP
11052	// forwarding).
11053	Key string `json:"key,omitempty"`
11054
11055	// Value: [Output Only] A warning data value corresponding to the key.
11056	Value string `json:"value,omitempty"`
11057
11058	// ForceSendFields is a list of field names (e.g. "Key") to
11059	// unconditionally include in API requests. By default, fields with
11060	// empty values are omitted from API requests. However, any non-pointer,
11061	// non-interface field appearing in ForceSendFields will be sent to the
11062	// server regardless of whether the field is empty or not. This may be
11063	// used to include empty fields in Patch requests.
11064	ForceSendFields []string `json:"-"`
11065
11066	// NullFields is a list of field names (e.g. "Key") to include in API
11067	// requests with the JSON null value. By default, fields with empty
11068	// values are omitted from API requests. However, any field with an
11069	// empty value appearing in NullFields will be sent to the server as
11070	// null. It is an error if a field in this list has a non-empty value.
11071	// This may be used to include null fields in Patch requests.
11072	NullFields []string `json:"-"`
11073}
11074
11075func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
11076	type NoMethod HealthCheckServicesListWarningData
11077	raw := NoMethod(*s)
11078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11079}
11080
11081type HealthChecksAggregatedList struct {
11082	// Id: [Output Only] Unique identifier for the resource; defined by the
11083	// server.
11084	Id string `json:"id,omitempty"`
11085
11086	// Items: A list of HealthChecksScopedList resources.
11087	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
11088
11089	// Kind: Type of resource.
11090	Kind string `json:"kind,omitempty"`
11091
11092	// NextPageToken: [Output Only] This token allows you to get the next
11093	// page of results for list requests. If the number of results is larger
11094	// than maxResults, use the nextPageToken as a value for the query
11095	// parameter pageToken in the next list request. Subsequent list
11096	// requests will have their own nextPageToken to continue paging through
11097	// the results.
11098	NextPageToken string `json:"nextPageToken,omitempty"`
11099
11100	// SelfLink: [Output Only] Server-defined URL for this resource.
11101	SelfLink string `json:"selfLink,omitempty"`
11102
11103	// Warning: [Output Only] Informational warning message.
11104	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
11105
11106	// ServerResponse contains the HTTP response code and headers from the
11107	// server.
11108	googleapi.ServerResponse `json:"-"`
11109
11110	// ForceSendFields is a list of field names (e.g. "Id") to
11111	// unconditionally include in API requests. By default, fields with
11112	// empty values are omitted from API requests. However, any non-pointer,
11113	// non-interface field appearing in ForceSendFields will be sent to the
11114	// server regardless of whether the field is empty or not. This may be
11115	// used to include empty fields in Patch requests.
11116	ForceSendFields []string `json:"-"`
11117
11118	// NullFields is a list of field names (e.g. "Id") to include in API
11119	// requests with the JSON null value. By default, fields with empty
11120	// values are omitted from API requests. However, any field with an
11121	// empty value appearing in NullFields will be sent to the server as
11122	// null. It is an error if a field in this list has a non-empty value.
11123	// This may be used to include null fields in Patch requests.
11124	NullFields []string `json:"-"`
11125}
11126
11127func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
11128	type NoMethod HealthChecksAggregatedList
11129	raw := NoMethod(*s)
11130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11131}
11132
11133// HealthChecksAggregatedListWarning: [Output Only] Informational
11134// warning message.
11135type HealthChecksAggregatedListWarning struct {
11136	// Code: [Output Only] A warning code, if applicable. For example,
11137	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11138	// the response.
11139	//
11140	// Possible values:
11141	//   "CLEANUP_FAILED"
11142	//   "DEPRECATED_RESOURCE_USED"
11143	//   "DEPRECATED_TYPE_USED"
11144	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11145	//   "EXPERIMENTAL_TYPE_USED"
11146	//   "EXTERNAL_API_WARNING"
11147	//   "FIELD_VALUE_OVERRIDEN"
11148	//   "INJECTED_KERNELS_DEPRECATED"
11149	//   "MISSING_TYPE_DEPENDENCY"
11150	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11151	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11152	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11153	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11154	//   "NEXT_HOP_NOT_RUNNING"
11155	//   "NOT_CRITICAL_ERROR"
11156	//   "NO_RESULTS_ON_PAGE"
11157	//   "REQUIRED_TOS_AGREEMENT"
11158	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11159	//   "RESOURCE_NOT_DELETED"
11160	//   "SCHEMA_VALIDATION_IGNORED"
11161	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11162	//   "UNDECLARED_PROPERTIES"
11163	//   "UNREACHABLE"
11164	Code string `json:"code,omitempty"`
11165
11166	// Data: [Output Only] Metadata about this warning in key: value format.
11167	// For example:
11168	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11169	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
11170
11171	// Message: [Output Only] A human-readable description of the warning
11172	// code.
11173	Message string `json:"message,omitempty"`
11174
11175	// ForceSendFields is a list of field names (e.g. "Code") to
11176	// unconditionally include in API requests. By default, fields with
11177	// empty values are omitted from API requests. However, any non-pointer,
11178	// non-interface field appearing in ForceSendFields will be sent to the
11179	// server regardless of whether the field is empty or not. This may be
11180	// used to include empty fields in Patch requests.
11181	ForceSendFields []string `json:"-"`
11182
11183	// NullFields is a list of field names (e.g. "Code") to include in API
11184	// requests with the JSON null value. By default, fields with empty
11185	// values are omitted from API requests. However, any field with an
11186	// empty value appearing in NullFields will be sent to the server as
11187	// null. It is an error if a field in this list has a non-empty value.
11188	// This may be used to include null fields in Patch requests.
11189	NullFields []string `json:"-"`
11190}
11191
11192func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
11193	type NoMethod HealthChecksAggregatedListWarning
11194	raw := NoMethod(*s)
11195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11196}
11197
11198type HealthChecksAggregatedListWarningData struct {
11199	// Key: [Output Only] A key that provides more detail on the warning
11200	// being returned. For example, for warnings where there are no results
11201	// in a list request for a particular zone, this key might be scope and
11202	// the key value might be the zone name. Other examples might be a key
11203	// indicating a deprecated resource and a suggested replacement, or a
11204	// warning about invalid network settings (for example, if an instance
11205	// attempts to perform IP forwarding but is not enabled for IP
11206	// forwarding).
11207	Key string `json:"key,omitempty"`
11208
11209	// Value: [Output Only] A warning data value corresponding to the key.
11210	Value string `json:"value,omitempty"`
11211
11212	// ForceSendFields is a list of field names (e.g. "Key") to
11213	// unconditionally include in API requests. By default, fields with
11214	// empty values are omitted from API requests. However, any non-pointer,
11215	// non-interface field appearing in ForceSendFields will be sent to the
11216	// server regardless of whether the field is empty or not. This may be
11217	// used to include empty fields in Patch requests.
11218	ForceSendFields []string `json:"-"`
11219
11220	// NullFields is a list of field names (e.g. "Key") to include in API
11221	// requests with the JSON null value. By default, fields with empty
11222	// values are omitted from API requests. However, any field with an
11223	// empty value appearing in NullFields will be sent to the server as
11224	// null. It is an error if a field in this list has a non-empty value.
11225	// This may be used to include null fields in Patch requests.
11226	NullFields []string `json:"-"`
11227}
11228
11229func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11230	type NoMethod HealthChecksAggregatedListWarningData
11231	raw := NoMethod(*s)
11232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11233}
11234
11235type HealthChecksScopedList struct {
11236	// HealthChecks: A list of HealthChecks contained in this scope.
11237	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
11238
11239	// Warning: Informational warning which replaces the list of backend
11240	// services when the list is empty.
11241	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
11242
11243	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
11244	// unconditionally include in API requests. By default, fields with
11245	// empty values are omitted from API requests. However, any non-pointer,
11246	// non-interface field appearing in ForceSendFields will be sent to the
11247	// server regardless of whether the field is empty or not. This may be
11248	// used to include empty fields in Patch requests.
11249	ForceSendFields []string `json:"-"`
11250
11251	// NullFields is a list of field names (e.g. "HealthChecks") to include
11252	// in API requests with the JSON null value. By default, fields with
11253	// empty values are omitted from API requests. However, any field with
11254	// an empty value appearing in NullFields will be sent to the server as
11255	// null. It is an error if a field in this list has a non-empty value.
11256	// This may be used to include null fields in Patch requests.
11257	NullFields []string `json:"-"`
11258}
11259
11260func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
11261	type NoMethod HealthChecksScopedList
11262	raw := NoMethod(*s)
11263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11264}
11265
11266// HealthChecksScopedListWarning: Informational warning which replaces
11267// the list of backend services when the list is empty.
11268type HealthChecksScopedListWarning struct {
11269	// Code: [Output Only] A warning code, if applicable. For example,
11270	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11271	// the response.
11272	//
11273	// Possible values:
11274	//   "CLEANUP_FAILED"
11275	//   "DEPRECATED_RESOURCE_USED"
11276	//   "DEPRECATED_TYPE_USED"
11277	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11278	//   "EXPERIMENTAL_TYPE_USED"
11279	//   "EXTERNAL_API_WARNING"
11280	//   "FIELD_VALUE_OVERRIDEN"
11281	//   "INJECTED_KERNELS_DEPRECATED"
11282	//   "MISSING_TYPE_DEPENDENCY"
11283	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11284	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11285	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11286	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11287	//   "NEXT_HOP_NOT_RUNNING"
11288	//   "NOT_CRITICAL_ERROR"
11289	//   "NO_RESULTS_ON_PAGE"
11290	//   "REQUIRED_TOS_AGREEMENT"
11291	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11292	//   "RESOURCE_NOT_DELETED"
11293	//   "SCHEMA_VALIDATION_IGNORED"
11294	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11295	//   "UNDECLARED_PROPERTIES"
11296	//   "UNREACHABLE"
11297	Code string `json:"code,omitempty"`
11298
11299	// Data: [Output Only] Metadata about this warning in key: value format.
11300	// For example:
11301	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11302	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
11303
11304	// Message: [Output Only] A human-readable description of the warning
11305	// code.
11306	Message string `json:"message,omitempty"`
11307
11308	// ForceSendFields is a list of field names (e.g. "Code") to
11309	// unconditionally include in API requests. By default, fields with
11310	// empty values are omitted from API requests. However, any non-pointer,
11311	// non-interface field appearing in ForceSendFields will be sent to the
11312	// server regardless of whether the field is empty or not. This may be
11313	// used to include empty fields in Patch requests.
11314	ForceSendFields []string `json:"-"`
11315
11316	// NullFields is a list of field names (e.g. "Code") to include in API
11317	// requests with the JSON null value. By default, fields with empty
11318	// values are omitted from API requests. However, any field with an
11319	// empty value appearing in NullFields will be sent to the server as
11320	// null. It is an error if a field in this list has a non-empty value.
11321	// This may be used to include null fields in Patch requests.
11322	NullFields []string `json:"-"`
11323}
11324
11325func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
11326	type NoMethod HealthChecksScopedListWarning
11327	raw := NoMethod(*s)
11328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11329}
11330
11331type HealthChecksScopedListWarningData struct {
11332	// Key: [Output Only] A key that provides more detail on the warning
11333	// being returned. For example, for warnings where there are no results
11334	// in a list request for a particular zone, this key might be scope and
11335	// the key value might be the zone name. Other examples might be a key
11336	// indicating a deprecated resource and a suggested replacement, or a
11337	// warning about invalid network settings (for example, if an instance
11338	// attempts to perform IP forwarding but is not enabled for IP
11339	// forwarding).
11340	Key string `json:"key,omitempty"`
11341
11342	// Value: [Output Only] A warning data value corresponding to the key.
11343	Value string `json:"value,omitempty"`
11344
11345	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") to include in API
11354	// requests with the JSON null value. By default, fields with empty
11355	// values are omitted from API requests. However, any field with an
11356	// 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 *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
11363	type NoMethod HealthChecksScopedListWarningData
11364	raw := NoMethod(*s)
11365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11366}
11367
11368type HealthStatus struct {
11369	// Annotations: Metadata defined as annotations for network endpoint.
11370	Annotations map[string]string `json:"annotations,omitempty"`
11371
11372	// HealthState: Health state of the instance.
11373	//
11374	// Possible values:
11375	//   "HEALTHY"
11376	//   "UNHEALTHY"
11377	HealthState string `json:"healthState,omitempty"`
11378
11379	// Instance: URL of the instance resource.
11380	Instance string `json:"instance,omitempty"`
11381
11382	// IpAddress: A forwarding rule IP address assigned to this instance.
11383	IpAddress string `json:"ipAddress,omitempty"`
11384
11385	// Port: The named port of the instance group, not necessarily the port
11386	// that is health-checked.
11387	Port int64 `json:"port,omitempty"`
11388
11389	// ForceSendFields is a list of field names (e.g. "Annotations") to
11390	// unconditionally include in API requests. By default, fields with
11391	// empty values are omitted from API requests. However, any non-pointer,
11392	// non-interface field appearing in ForceSendFields will be sent to the
11393	// server regardless of whether the field is empty or not. This may be
11394	// used to include empty fields in Patch requests.
11395	ForceSendFields []string `json:"-"`
11396
11397	// NullFields is a list of field names (e.g. "Annotations") to include
11398	// in API requests with the JSON null value. By default, fields with
11399	// empty values are omitted from API requests. However, any field with
11400	// an empty value appearing in NullFields will be sent to the server as
11401	// null. It is an error if a field in this list has a non-empty value.
11402	// This may be used to include null fields in Patch requests.
11403	NullFields []string `json:"-"`
11404}
11405
11406func (s *HealthStatus) MarshalJSON() ([]byte, error) {
11407	type NoMethod HealthStatus
11408	raw := NoMethod(*s)
11409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11410}
11411
11412type HealthStatusForNetworkEndpoint struct {
11413	// BackendService: URL of the backend service associated with the health
11414	// state of the network endpoint.
11415	BackendService *BackendServiceReference `json:"backendService,omitempty"`
11416
11417	// ForwardingRule: URL of the forwarding rule associated with the health
11418	// state of the network endpoint.
11419	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
11420
11421	// HealthCheck: URL of the health check associated with the health state
11422	// of the network endpoint.
11423	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
11424
11425	// HealthCheckService: URL of the health check service associated with
11426	// the health state of the network endpoint.
11427	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
11428
11429	// HealthState: Health state of the network endpoint determined based on
11430	// the health checks configured.
11431	//
11432	// Possible values:
11433	//   "DRAINING"
11434	//   "HEALTHY"
11435	//   "UNHEALTHY"
11436	//   "UNKNOWN"
11437	HealthState string `json:"healthState,omitempty"`
11438
11439	// ForceSendFields is a list of field names (e.g. "BackendService") to
11440	// unconditionally include in API requests. By default, fields with
11441	// empty values are omitted from API requests. However, any non-pointer,
11442	// non-interface field appearing in ForceSendFields will be sent to the
11443	// server regardless of whether the field is empty or not. This may be
11444	// used to include empty fields in Patch requests.
11445	ForceSendFields []string `json:"-"`
11446
11447	// NullFields is a list of field names (e.g. "BackendService") to
11448	// include in API requests with the JSON null value. By default, fields
11449	// with empty values are omitted from API requests. However, any field
11450	// with an empty value appearing in NullFields will be sent to the
11451	// server as null. It is an error if a field in this list has a
11452	// non-empty value. This may be used to include null fields in Patch
11453	// requests.
11454	NullFields []string `json:"-"`
11455}
11456
11457func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
11458	type NoMethod HealthStatusForNetworkEndpoint
11459	raw := NoMethod(*s)
11460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11461}
11462
11463// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
11464// use the named PathMatcher to select the BackendService.
11465type HostRule struct {
11466	// Description: An optional description of this resource. Provide this
11467	// property when you create the resource.
11468	Description string `json:"description,omitempty"`
11469
11470	// Hosts: The list of host patterns to match. They must be valid
11471	// hostnames with optional port numbers in the format host:port. *
11472	// matches any string of ([a-z0-9-.]*). In that case, * must be the
11473	// first character and must be followed in the pattern by either - or ..
11474	Hosts []string `json:"hosts,omitempty"`
11475
11476	// PathMatcher: The name of the PathMatcher to use to match the path
11477	// portion of the URL if the hostRule matches the URL's host portion.
11478	PathMatcher string `json:"pathMatcher,omitempty"`
11479
11480	// ForceSendFields is a list of field names (e.g. "Description") to
11481	// unconditionally include in API requests. By default, fields with
11482	// empty values are omitted from API requests. However, any non-pointer,
11483	// non-interface field appearing in ForceSendFields will be sent to the
11484	// server regardless of whether the field is empty or not. This may be
11485	// used to include empty fields in Patch requests.
11486	ForceSendFields []string `json:"-"`
11487
11488	// NullFields is a list of field names (e.g. "Description") to include
11489	// in API requests with the JSON null value. By default, fields with
11490	// empty values are omitted from API requests. However, any field with
11491	// an empty value appearing in NullFields will be sent to the server as
11492	// null. It is an error if a field in this list has a non-empty value.
11493	// This may be used to include null fields in Patch requests.
11494	NullFields []string `json:"-"`
11495}
11496
11497func (s *HostRule) MarshalJSON() ([]byte, error) {
11498	type NoMethod HostRule
11499	raw := NoMethod(*s)
11500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11501}
11502
11503// HttpFaultAbort: Specification for how requests are aborted as part of
11504// fault injection.
11505type HttpFaultAbort struct {
11506	// HttpStatus: The HTTP status code used to abort the request.
11507	// The value must be between 200 and 599 inclusive.
11508	HttpStatus int64 `json:"httpStatus,omitempty"`
11509
11510	// Percentage: The percentage of traffic
11511	// (connections/operations/requests) which will be aborted as part of
11512	// fault injection.
11513	// The value must be between 0.0 and 100.0 inclusive.
11514	Percentage float64 `json:"percentage,omitempty"`
11515
11516	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
11517	// unconditionally include in API requests. By default, fields with
11518	// empty values are omitted from API requests. However, any non-pointer,
11519	// non-interface field appearing in ForceSendFields will be sent to the
11520	// server regardless of whether the field is empty or not. This may be
11521	// used to include empty fields in Patch requests.
11522	ForceSendFields []string `json:"-"`
11523
11524	// NullFields is a list of field names (e.g. "HttpStatus") to include in
11525	// API requests with the JSON null value. By default, fields with empty
11526	// values are omitted from API requests. However, any field with an
11527	// empty value appearing in NullFields will be sent to the server as
11528	// null. It is an error if a field in this list has a non-empty value.
11529	// This may be used to include null fields in Patch requests.
11530	NullFields []string `json:"-"`
11531}
11532
11533func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
11534	type NoMethod HttpFaultAbort
11535	raw := NoMethod(*s)
11536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11537}
11538
11539func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
11540	type NoMethod HttpFaultAbort
11541	var s1 struct {
11542		Percentage gensupport.JSONFloat64 `json:"percentage"`
11543		*NoMethod
11544	}
11545	s1.NoMethod = (*NoMethod)(s)
11546	if err := json.Unmarshal(data, &s1); err != nil {
11547		return err
11548	}
11549	s.Percentage = float64(s1.Percentage)
11550	return nil
11551}
11552
11553// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
11554// forwarding the request to the backend service as part of fault
11555// injection.
11556type HttpFaultDelay struct {
11557	// FixedDelay: Specifies the value of the fixed delay interval.
11558	FixedDelay *Duration `json:"fixedDelay,omitempty"`
11559
11560	// Percentage: The percentage of traffic
11561	// (connections/operations/requests) on which delay will be introduced
11562	// as part of fault injection.
11563	// The value must be between 0.0 and 100.0 inclusive.
11564	Percentage float64 `json:"percentage,omitempty"`
11565
11566	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
11567	// unconditionally include in API requests. By default, fields with
11568	// empty values are omitted from API requests. However, any non-pointer,
11569	// non-interface field appearing in ForceSendFields will be sent to the
11570	// server regardless of whether the field is empty or not. This may be
11571	// used to include empty fields in Patch requests.
11572	ForceSendFields []string `json:"-"`
11573
11574	// NullFields is a list of field names (e.g. "FixedDelay") to include in
11575	// API requests with the JSON null value. By default, fields with empty
11576	// values are omitted from API requests. However, any field with an
11577	// empty value appearing in NullFields will be sent to the server as
11578	// null. It is an error if a field in this list has a non-empty value.
11579	// This may be used to include null fields in Patch requests.
11580	NullFields []string `json:"-"`
11581}
11582
11583func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
11584	type NoMethod HttpFaultDelay
11585	raw := NoMethod(*s)
11586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11587}
11588
11589func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
11590	type NoMethod HttpFaultDelay
11591	var s1 struct {
11592		Percentage gensupport.JSONFloat64 `json:"percentage"`
11593		*NoMethod
11594	}
11595	s1.NoMethod = (*NoMethod)(s)
11596	if err := json.Unmarshal(data, &s1); err != nil {
11597		return err
11598	}
11599	s.Percentage = float64(s1.Percentage)
11600	return nil
11601}
11602
11603// HttpFaultInjection: The specification for fault injection introduced
11604// into traffic to test the resiliency of clients to backend service
11605// failure. As part of fault injection, when clients send requests to a
11606// backend service, delays can be introduced by Loadbalancer on a
11607// percentage of requests before sending those request to the backend
11608// service. Similarly requests from clients can be aborted by the
11609// Loadbalancer for a percentage of requests.
11610type HttpFaultInjection struct {
11611	// Abort: The specification for how client requests are aborted as part
11612	// of fault injection.
11613	Abort *HttpFaultAbort `json:"abort,omitempty"`
11614
11615	// Delay: The specification for how client requests are delayed as part
11616	// of fault injection, before being sent to a backend service.
11617	Delay *HttpFaultDelay `json:"delay,omitempty"`
11618
11619	// ForceSendFields is a list of field names (e.g. "Abort") to
11620	// unconditionally include in API requests. By default, fields with
11621	// empty values are omitted from API requests. However, any non-pointer,
11622	// non-interface field appearing in ForceSendFields will be sent to the
11623	// server regardless of whether the field is empty or not. This may be
11624	// used to include empty fields in Patch requests.
11625	ForceSendFields []string `json:"-"`
11626
11627	// NullFields is a list of field names (e.g. "Abort") to include in API
11628	// requests with the JSON null value. By default, fields with empty
11629	// values are omitted from API requests. However, any field with an
11630	// empty value appearing in NullFields will be sent to the server as
11631	// null. It is an error if a field in this list has a non-empty value.
11632	// This may be used to include null fields in Patch requests.
11633	NullFields []string `json:"-"`
11634}
11635
11636func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
11637	type NoMethod HttpFaultInjection
11638	raw := NoMethod(*s)
11639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11640}
11641
11642// HttpHeaderAction: The request and response header transformations
11643// that take effect before the request is passed along to the selected
11644// backendService.
11645type HttpHeaderAction struct {
11646	// RequestHeadersToAdd: Headers to add to a matching request prior to
11647	// forwarding the request to the backendService.
11648	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
11649
11650	// RequestHeadersToRemove: A list of header names for headers that need
11651	// to be removed from the request prior to forwarding the request to the
11652	// backendService.
11653	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
11654
11655	// ResponseHeadersToAdd: Headers to add the response prior to sending
11656	// the response back to the client.
11657	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
11658
11659	// ResponseHeadersToRemove: A list of header names for headers that need
11660	// to be removed from the response prior to sending the response back to
11661	// the client.
11662	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
11663
11664	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
11665	// to unconditionally include in API requests. By default, fields with
11666	// empty values are omitted from API requests. However, any non-pointer,
11667	// non-interface field appearing in ForceSendFields will be sent to the
11668	// server regardless of whether the field is empty or not. This may be
11669	// used to include empty fields in Patch requests.
11670	ForceSendFields []string `json:"-"`
11671
11672	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
11673	// include in API requests with the JSON null value. By default, fields
11674	// with empty values are omitted from API requests. However, any field
11675	// with an empty value appearing in NullFields will be sent to the
11676	// server as null. It is an error if a field in this list has a
11677	// non-empty value. This may be used to include null fields in Patch
11678	// requests.
11679	NullFields []string `json:"-"`
11680}
11681
11682func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
11683	type NoMethod HttpHeaderAction
11684	raw := NoMethod(*s)
11685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11686}
11687
11688// HttpHeaderMatch: matchRule criteria for request header matches.
11689type HttpHeaderMatch struct {
11690	// ExactMatch: The value should exactly match contents of
11691	// exactMatch.
11692	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
11693	// presentMatch or rangeMatch must be set.
11694	ExactMatch string `json:"exactMatch,omitempty"`
11695
11696	// HeaderName: The name of the HTTP header to match.
11697	// For matching against the HTTP request's authority, use a headerMatch
11698	// with the header name ":authority".
11699	// For matching a request's method, use the headerName ":method".
11700	HeaderName string `json:"headerName,omitempty"`
11701
11702	// InvertMatch: If set to false, the headerMatch is considered a match
11703	// if the match criteria above are met. If set to true, the headerMatch
11704	// is considered a match if the match criteria above are NOT met.
11705	// The default setting is false.
11706	InvertMatch bool `json:"invertMatch,omitempty"`
11707
11708	// PrefixMatch: The value of the header must start with the contents of
11709	// prefixMatch.
11710	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
11711	// presentMatch or rangeMatch must be set.
11712	PrefixMatch string `json:"prefixMatch,omitempty"`
11713
11714	// PresentMatch: A header with the contents of headerName must exist.
11715	// The match takes place whether or not the request's header has a
11716	// value.
11717	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
11718	// presentMatch or rangeMatch must be set.
11719	PresentMatch bool `json:"presentMatch,omitempty"`
11720
11721	// RangeMatch: The header value must be an integer and its value must be
11722	// in the range specified in rangeMatch. If the header does not contain
11723	// an integer, number or is empty, the match fails.
11724	// For example for a range [-5, 0]
11725	// - -3 will match.
11726	// - 0 will not match.
11727	// - 0.25 will not match.
11728	// - -3someString will not match.
11729	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
11730	// presentMatch or rangeMatch must be set.
11731	// Note that rangeMatch is not supported for Loadbalancers that have
11732	// their loadBalancingScheme set to EXTERNAL.
11733	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
11734
11735	// RegexMatch: The value of the header must match the regular expression
11736	// specified in regexMatch. For regular expression grammar, please see:
11737	// en.cppreference.com/w/cpp/regex/ecmascript
11738	// For matching against a port specified in the HTTP request, use a
11739	// headerMatch with headerName set to PORT and a regular expression that
11740	// satisfies the RFC2616 Host header's port specifier.
11741	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
11742	// presentMatch or rangeMatch must be set.
11743	// Note that regexMatch only applies to Loadbalancers that have their
11744	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
11745	RegexMatch string `json:"regexMatch,omitempty"`
11746
11747	// SuffixMatch: The value of the header must end with the contents of
11748	// suffixMatch.
11749	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
11750	// presentMatch or rangeMatch must be set.
11751	SuffixMatch string `json:"suffixMatch,omitempty"`
11752
11753	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
11754	// unconditionally include in API requests. By default, fields with
11755	// empty values are omitted from API requests. However, any non-pointer,
11756	// non-interface field appearing in ForceSendFields will be sent to the
11757	// server regardless of whether the field is empty or not. This may be
11758	// used to include empty fields in Patch requests.
11759	ForceSendFields []string `json:"-"`
11760
11761	// NullFields is a list of field names (e.g. "ExactMatch") to include in
11762	// API requests with the JSON null value. By default, fields with empty
11763	// values are omitted from API requests. However, any field with an
11764	// empty value appearing in NullFields will be sent to the server as
11765	// null. It is an error if a field in this list has a non-empty value.
11766	// This may be used to include null fields in Patch requests.
11767	NullFields []string `json:"-"`
11768}
11769
11770func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
11771	type NoMethod HttpHeaderMatch
11772	raw := NoMethod(*s)
11773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11774}
11775
11776// HttpHeaderOption: Specification determining how headers are added to
11777// requests or responses.
11778type HttpHeaderOption struct {
11779	// HeaderName: The name of the header.
11780	HeaderName string `json:"headerName,omitempty"`
11781
11782	// HeaderValue: The value of the header to add.
11783	HeaderValue string `json:"headerValue,omitempty"`
11784
11785	// Replace: If false, headerValue is appended to any values that already
11786	// exist for the header. If true, headerValue is set for the header,
11787	// discarding any values that were set for that header.
11788	// The default value is false.
11789	Replace bool `json:"replace,omitempty"`
11790
11791	// ForceSendFields is a list of field names (e.g. "HeaderName") to
11792	// unconditionally include in API requests. By default, fields with
11793	// empty values are omitted from API requests. However, any non-pointer,
11794	// non-interface field appearing in ForceSendFields will be sent to the
11795	// server regardless of whether the field is empty or not. This may be
11796	// used to include empty fields in Patch requests.
11797	ForceSendFields []string `json:"-"`
11798
11799	// NullFields is a list of field names (e.g. "HeaderName") to include in
11800	// API requests with the JSON null value. By default, fields with empty
11801	// values are omitted from API requests. However, any field with an
11802	// empty value appearing in NullFields will be sent to the server as
11803	// null. It is an error if a field in this list has a non-empty value.
11804	// This may be used to include null fields in Patch requests.
11805	NullFields []string `json:"-"`
11806}
11807
11808func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
11809	type NoMethod HttpHeaderOption
11810	raw := NoMethod(*s)
11811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11812}
11813
11814// HttpHealthCheck: Represents a legacy HTTP Health Check
11815// resource.
11816//
11817// Legacy health checks are required by network load balancers. For more
11818// information, read Health Check Concepts.
11819type HttpHealthCheck struct {
11820	// CheckIntervalSec: How often (in seconds) to send a health check. The
11821	// default value is 5 seconds.
11822	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
11823
11824	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11825	// format.
11826	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11827
11828	// Description: An optional description of this resource. Provide this
11829	// property when you create the resource.
11830	Description string `json:"description,omitempty"`
11831
11832	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
11833	// after this many consecutive successes. The default value is 2.
11834	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
11835
11836	// Host: The value of the host header in the HTTP health check request.
11837	// If left empty (default value), the public IP on behalf of which this
11838	// health check is performed will be used.
11839	Host string `json:"host,omitempty"`
11840
11841	// Id: [Output Only] The unique identifier for the resource. This
11842	// identifier is defined by the server.
11843	Id uint64 `json:"id,omitempty,string"`
11844
11845	// Kind: [Output Only] Type of the resource. Always
11846	// compute#httpHealthCheck for HTTP health checks.
11847	Kind string `json:"kind,omitempty"`
11848
11849	// Name: Name of the resource. Provided by the client when the resource
11850	// is created. The name must be 1-63 characters long, and comply with
11851	// RFC1035. Specifically, the name must be 1-63 characters long and
11852	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11853	// the first character must be a lowercase letter, and all following
11854	// characters must be a dash, lowercase letter, or digit, except the
11855	// last character, which cannot be a dash.
11856	Name string `json:"name,omitempty"`
11857
11858	// Port: The TCP port number for the HTTP health check request. The
11859	// default value is 80.
11860	Port int64 `json:"port,omitempty"`
11861
11862	// RequestPath: The request path of the HTTP health check request. The
11863	// default value is /. This field does not support query parameters.
11864	RequestPath string `json:"requestPath,omitempty"`
11865
11866	// SelfLink: [Output Only] Server-defined URL for the resource.
11867	SelfLink string `json:"selfLink,omitempty"`
11868
11869	// TimeoutSec: How long (in seconds) to wait before claiming failure.
11870	// The default value is 5 seconds. It is invalid for timeoutSec to have
11871	// greater value than checkIntervalSec.
11872	TimeoutSec int64 `json:"timeoutSec,omitempty"`
11873
11874	// UnhealthyThreshold: A so-far healthy instance will be marked
11875	// unhealthy after this many consecutive failures. The default value is
11876	// 2.
11877	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
11878
11879	// ServerResponse contains the HTTP response code and headers from the
11880	// server.
11881	googleapi.ServerResponse `json:"-"`
11882
11883	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
11884	// unconditionally include in API requests. By default, fields with
11885	// empty values are omitted from API requests. However, any non-pointer,
11886	// non-interface field appearing in ForceSendFields will be sent to the
11887	// server regardless of whether the field is empty or not. This may be
11888	// used to include empty fields in Patch requests.
11889	ForceSendFields []string `json:"-"`
11890
11891	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
11892	// include in API requests with the JSON null value. By default, fields
11893	// with empty values are omitted from API requests. However, any field
11894	// with an empty value appearing in NullFields will be sent to the
11895	// server as null. It is an error if a field in this list has a
11896	// non-empty value. This may be used to include null fields in Patch
11897	// requests.
11898	NullFields []string `json:"-"`
11899}
11900
11901func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
11902	type NoMethod HttpHealthCheck
11903	raw := NoMethod(*s)
11904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11905}
11906
11907// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
11908type HttpHealthCheckList struct {
11909	// Id: [Output Only] Unique identifier for the resource; defined by the
11910	// server.
11911	Id string `json:"id,omitempty"`
11912
11913	// Items: A list of HttpHealthCheck resources.
11914	Items []*HttpHealthCheck `json:"items,omitempty"`
11915
11916	// Kind: Type of resource.
11917	Kind string `json:"kind,omitempty"`
11918
11919	// NextPageToken: [Output Only] This token allows you to get the next
11920	// page of results for list requests. If the number of results is larger
11921	// than maxResults, use the nextPageToken as a value for the query
11922	// parameter pageToken in the next list request. Subsequent list
11923	// requests will have their own nextPageToken to continue paging through
11924	// the results.
11925	NextPageToken string `json:"nextPageToken,omitempty"`
11926
11927	// SelfLink: [Output Only] Server-defined URL for this resource.
11928	SelfLink string `json:"selfLink,omitempty"`
11929
11930	// Warning: [Output Only] Informational warning message.
11931	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
11932
11933	// ServerResponse contains the HTTP response code and headers from the
11934	// server.
11935	googleapi.ServerResponse `json:"-"`
11936
11937	// ForceSendFields is a list of field names (e.g. "Id") to
11938	// unconditionally include in API requests. By default, fields with
11939	// empty values are omitted from API requests. However, any non-pointer,
11940	// non-interface field appearing in ForceSendFields will be sent to the
11941	// server regardless of whether the field is empty or not. This may be
11942	// used to include empty fields in Patch requests.
11943	ForceSendFields []string `json:"-"`
11944
11945	// NullFields is a list of field names (e.g. "Id") to include in API
11946	// requests with the JSON null value. By default, fields with empty
11947	// values are omitted from API requests. However, any field with an
11948	// empty value appearing in NullFields will be sent to the server as
11949	// null. It is an error if a field in this list has a non-empty value.
11950	// This may be used to include null fields in Patch requests.
11951	NullFields []string `json:"-"`
11952}
11953
11954func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
11955	type NoMethod HttpHealthCheckList
11956	raw := NoMethod(*s)
11957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11958}
11959
11960// HttpHealthCheckListWarning: [Output Only] Informational warning
11961// message.
11962type HttpHealthCheckListWarning struct {
11963	// Code: [Output Only] A warning code, if applicable. For example,
11964	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11965	// the response.
11966	//
11967	// Possible values:
11968	//   "CLEANUP_FAILED"
11969	//   "DEPRECATED_RESOURCE_USED"
11970	//   "DEPRECATED_TYPE_USED"
11971	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11972	//   "EXPERIMENTAL_TYPE_USED"
11973	//   "EXTERNAL_API_WARNING"
11974	//   "FIELD_VALUE_OVERRIDEN"
11975	//   "INJECTED_KERNELS_DEPRECATED"
11976	//   "MISSING_TYPE_DEPENDENCY"
11977	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11978	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11979	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11980	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11981	//   "NEXT_HOP_NOT_RUNNING"
11982	//   "NOT_CRITICAL_ERROR"
11983	//   "NO_RESULTS_ON_PAGE"
11984	//   "REQUIRED_TOS_AGREEMENT"
11985	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11986	//   "RESOURCE_NOT_DELETED"
11987	//   "SCHEMA_VALIDATION_IGNORED"
11988	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11989	//   "UNDECLARED_PROPERTIES"
11990	//   "UNREACHABLE"
11991	Code string `json:"code,omitempty"`
11992
11993	// Data: [Output Only] Metadata about this warning in key: value format.
11994	// For example:
11995	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11996	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
11997
11998	// Message: [Output Only] A human-readable description of the warning
11999	// code.
12000	Message string `json:"message,omitempty"`
12001
12002	// ForceSendFields is a list of field names (e.g. "Code") to
12003	// unconditionally include in API requests. By default, fields with
12004	// empty values are omitted from API requests. However, any non-pointer,
12005	// non-interface field appearing in ForceSendFields will be sent to the
12006	// server regardless of whether the field is empty or not. This may be
12007	// used to include empty fields in Patch requests.
12008	ForceSendFields []string `json:"-"`
12009
12010	// NullFields is a list of field names (e.g. "Code") to include in API
12011	// requests with the JSON null value. By default, fields with empty
12012	// values are omitted from API requests. However, any field with an
12013	// empty value appearing in NullFields will be sent to the server as
12014	// null. It is an error if a field in this list has a non-empty value.
12015	// This may be used to include null fields in Patch requests.
12016	NullFields []string `json:"-"`
12017}
12018
12019func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
12020	type NoMethod HttpHealthCheckListWarning
12021	raw := NoMethod(*s)
12022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12023}
12024
12025type HttpHealthCheckListWarningData struct {
12026	// Key: [Output Only] A key that provides more detail on the warning
12027	// being returned. For example, for warnings where there are no results
12028	// in a list request for a particular zone, this key might be scope and
12029	// the key value might be the zone name. Other examples might be a key
12030	// indicating a deprecated resource and a suggested replacement, or a
12031	// warning about invalid network settings (for example, if an instance
12032	// attempts to perform IP forwarding but is not enabled for IP
12033	// forwarding).
12034	Key string `json:"key,omitempty"`
12035
12036	// Value: [Output Only] A warning data value corresponding to the key.
12037	Value string `json:"value,omitempty"`
12038
12039	// ForceSendFields is a list of field names (e.g. "Key") to
12040	// unconditionally include in API requests. By default, fields with
12041	// empty values are omitted from API requests. However, any non-pointer,
12042	// non-interface field appearing in ForceSendFields will be sent to the
12043	// server regardless of whether the field is empty or not. This may be
12044	// used to include empty fields in Patch requests.
12045	ForceSendFields []string `json:"-"`
12046
12047	// NullFields is a list of field names (e.g. "Key") to include in API
12048	// requests with the JSON null value. By default, fields with empty
12049	// values are omitted from API requests. However, any field with an
12050	// empty value appearing in NullFields will be sent to the server as
12051	// null. It is an error if a field in this list has a non-empty value.
12052	// This may be used to include null fields in Patch requests.
12053	NullFields []string `json:"-"`
12054}
12055
12056func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
12057	type NoMethod HttpHealthCheckListWarningData
12058	raw := NoMethod(*s)
12059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12060}
12061
12062// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
12063// query parameter.
12064type HttpQueryParameterMatch struct {
12065	// ExactMatch: The queryParameterMatch matches if the value of the
12066	// parameter exactly matches the contents of exactMatch.
12067	// Only one of presentMatch, exactMatch or regexMatch must be set.
12068	ExactMatch string `json:"exactMatch,omitempty"`
12069
12070	// Name: The name of the query parameter to match. The query parameter
12071	// must exist in the request, in the absence of which the request match
12072	// fails.
12073	Name string `json:"name,omitempty"`
12074
12075	// PresentMatch: Specifies that the queryParameterMatch matches if the
12076	// request contains the query parameter, irrespective of whether the
12077	// parameter has a value or not.
12078	// Only one of presentMatch, exactMatch or regexMatch must be set.
12079	PresentMatch bool `json:"presentMatch,omitempty"`
12080
12081	// RegexMatch: The queryParameterMatch matches if the value of the
12082	// parameter matches the regular expression specified by regexMatch. For
12083	// the regular expression grammar, please see
12084	// en.cppreference.com/w/cpp/regex/ecmascript
12085	// Only one of presentMatch, exactMatch or regexMatch must be set.
12086	// Note that regexMatch only applies when the loadBalancingScheme is set
12087	// to INTERNAL_SELF_MANAGED.
12088	RegexMatch string `json:"regexMatch,omitempty"`
12089
12090	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
12091	// unconditionally include in API requests. By default, fields with
12092	// empty values are omitted from API requests. However, any non-pointer,
12093	// non-interface field appearing in ForceSendFields will be sent to the
12094	// server regardless of whether the field is empty or not. This may be
12095	// used to include empty fields in Patch requests.
12096	ForceSendFields []string `json:"-"`
12097
12098	// NullFields is a list of field names (e.g. "ExactMatch") to include in
12099	// API requests with the JSON null value. By default, fields with empty
12100	// values are omitted from API requests. However, any field with an
12101	// empty value appearing in NullFields will be sent to the server as
12102	// null. It is an error if a field in this list has a non-empty value.
12103	// This may be used to include null fields in Patch requests.
12104	NullFields []string `json:"-"`
12105}
12106
12107func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
12108	type NoMethod HttpQueryParameterMatch
12109	raw := NoMethod(*s)
12110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12111}
12112
12113// HttpRedirectAction: Specifies settings for an HTTP redirect.
12114type HttpRedirectAction struct {
12115	// HostRedirect: The host that will be used in the redirect response
12116	// instead of the one that was supplied in the request.
12117	// The value must be between 1 and 255 characters.
12118	HostRedirect string `json:"hostRedirect,omitempty"`
12119
12120	// HttpsRedirect: If set to true, the URL scheme in the redirected
12121	// request is set to https. If set to false, the URL scheme of the
12122	// redirected request will remain the same as that of the request.
12123	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
12124	// this true for TargetHttpsProxy is not permitted.
12125	// The default is set to false.
12126	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
12127
12128	// PathRedirect: The path that will be used in the redirect response
12129	// instead of the one that was supplied in the request.
12130	// pathRedirect cannot be supplied together with prefixRedirect. Supply
12131	// one alone or neither. If neither is supplied, the path of the
12132	// original request will be used for the redirect.
12133	// The value must be between 1 and 1024 characters.
12134	PathRedirect string `json:"pathRedirect,omitempty"`
12135
12136	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
12137	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
12138	// before redirecting the request.
12139	// prefixRedirect cannot be supplied together with pathRedirect. Supply
12140	// one alone or neither. If neither is supplied, the path of the
12141	// original request will be used for the redirect.
12142	// The value must be between 1 and 1024 characters.
12143	PrefixRedirect string `json:"prefixRedirect,omitempty"`
12144
12145	// RedirectResponseCode: The HTTP Status code to use for this
12146	// RedirectAction.
12147	// Supported values are:
12148	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
12149	// corresponds to 301.
12150	// - FOUND, which corresponds to 302.
12151	// - SEE_OTHER which corresponds to 303.
12152	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
12153	// request method will be retained.
12154	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
12155	// request method will be retained.
12156	//
12157	// Possible values:
12158	//   "FOUND"
12159	//   "MOVED_PERMANENTLY_DEFAULT"
12160	//   "PERMANENT_REDIRECT"
12161	//   "SEE_OTHER"
12162	//   "TEMPORARY_REDIRECT"
12163	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
12164
12165	// StripQuery: If set to true, any accompanying query portion of the
12166	// original URL is removed prior to redirecting the request. If set to
12167	// false, the query portion of the original URL is retained.
12168	// The default is set to false.
12169	StripQuery bool `json:"stripQuery,omitempty"`
12170
12171	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
12172	// unconditionally include in API requests. By default, fields with
12173	// empty values are omitted from API requests. However, any non-pointer,
12174	// non-interface field appearing in ForceSendFields will be sent to the
12175	// server regardless of whether the field is empty or not. This may be
12176	// used to include empty fields in Patch requests.
12177	ForceSendFields []string `json:"-"`
12178
12179	// NullFields is a list of field names (e.g. "HostRedirect") to include
12180	// in API requests with the JSON null value. By default, fields with
12181	// empty values are omitted from API requests. However, any field with
12182	// an empty value appearing in NullFields will be sent to the server as
12183	// null. It is an error if a field in this list has a non-empty value.
12184	// This may be used to include null fields in Patch requests.
12185	NullFields []string `json:"-"`
12186}
12187
12188func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
12189	type NoMethod HttpRedirectAction
12190	raw := NoMethod(*s)
12191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12192}
12193
12194// HttpRetryPolicy: The retry policy associates with HttpRouteRule
12195type HttpRetryPolicy struct {
12196	// NumRetries: Specifies the allowed number retries. This number must be
12197	// > 0. If not specified, defaults to 1.
12198	NumRetries int64 `json:"numRetries,omitempty"`
12199
12200	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
12201	// If not specified, will use the timeout set in HttpRouteAction. If
12202	// timeout in HttpRouteAction is not set, will use the largest timeout
12203	// among all backend services associated with the route.
12204	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
12205
12206	// RetryConditions: Specfies one or more conditions when this retry rule
12207	// applies. Valid values are:
12208	// - 5xx: Loadbalancer will attempt a retry if the backend service
12209	// responds with any 5xx response code, or if the backend service does
12210	// not respond at all, example: disconnects, reset, read timeout,
12211	// connection failure, and refused streams.
12212	// - gateway-error: Similar to 5xx, but only applies to response codes
12213	// 502, 503 or 504.
12214	// -
12215	// - connect-failure: Loadbalancer will retry on failures connecting to
12216	// backend services, for example due to connection timeouts.
12217	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
12218	// codes. Currently the only retriable error supported is 409.
12219	// - refused-stream:Loadbalancer will retry if the backend service
12220	// resets the stream with a REFUSED_STREAM error code. This reset type
12221	// indicates that it is safe to retry.
12222	// - cancelledLoadbalancer will retry if the gRPC status code in the
12223	// response header is set to cancelled
12224	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
12225	// in the response header is set to deadline-exceeded
12226	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
12227	// in the response header is set to resource-exhausted
12228	// - unavailable: Loadbalancer will retry if the gRPC status code in the
12229	// response header is set to unavailable
12230	RetryConditions []string `json:"retryConditions,omitempty"`
12231
12232	// ForceSendFields is a list of field names (e.g. "NumRetries") to
12233	// unconditionally include in API requests. By default, fields with
12234	// empty values are omitted from API requests. However, any non-pointer,
12235	// non-interface field appearing in ForceSendFields will be sent to the
12236	// server regardless of whether the field is empty or not. This may be
12237	// used to include empty fields in Patch requests.
12238	ForceSendFields []string `json:"-"`
12239
12240	// NullFields is a list of field names (e.g. "NumRetries") to include in
12241	// API requests with the JSON null value. By default, fields with empty
12242	// values are omitted from API requests. However, any field with an
12243	// empty value appearing in NullFields will be sent to the server as
12244	// null. It is an error if a field in this list has a non-empty value.
12245	// This may be used to include null fields in Patch requests.
12246	NullFields []string `json:"-"`
12247}
12248
12249func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
12250	type NoMethod HttpRetryPolicy
12251	raw := NoMethod(*s)
12252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12253}
12254
12255type HttpRouteAction struct {
12256	// CorsPolicy: The specification for allowing client side cross-origin
12257	// requests. Please see W3C Recommendation for Cross Origin Resource
12258	// Sharing
12259	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
12260
12261	// FaultInjectionPolicy: The specification for fault injection
12262	// introduced into traffic to test the resiliency of clients to backend
12263	// service failure. As part of fault injection, when clients send
12264	// requests to a backend service, delays can be introduced by
12265	// Loadbalancer on a percentage of requests before sending those request
12266	// to the backend service. Similarly requests from clients can be
12267	// aborted by the Loadbalancer for a percentage of requests.
12268	// timeout and retry_policy will be ignored by clients that are
12269	// configured with a fault_injection_policy.
12270	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
12271
12272	// RequestMirrorPolicy: Specifies the policy on how requests intended
12273	// for the route's backends are shadowed to a separate mirrored backend
12274	// service. Loadbalancer does not wait for responses from the shadow
12275	// service. Prior to sending traffic to the shadow service, the host /
12276	// authority header is suffixed with -shadow.
12277	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
12278
12279	// RetryPolicy: Specifies the retry policy associated with this route.
12280	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
12281
12282	// Timeout: Specifies the timeout for the selected route. Timeout is
12283	// computed from the time the request has been fully processed (i.e.
12284	// end-of-stream) up until the response has been completely processed.
12285	// Timeout includes all retries.
12286	// If not specified, will use the largest timeout among all backend
12287	// services associated with the route.
12288	Timeout *Duration `json:"timeout,omitempty"`
12289
12290	// UrlRewrite: The spec to modify the URL of the request, prior to
12291	// forwarding the request to the matched service.
12292	// urlRewrite is the only action supported in UrlMaps for external
12293	// HTTP(S) load balancers.
12294	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
12295
12296	// WeightedBackendServices: A list of weighted backend services to send
12297	// traffic to when a route match occurs. The weights determine the
12298	// fraction of traffic that flows to their corresponding backend
12299	// service. If all traffic needs to go to a single backend service,
12300	// there must be one  weightedBackendService with weight set to a non 0
12301	// number.
12302	// Once a backendService is identified and before forwarding the request
12303	// to the backend service, advanced routing actions like Url rewrites
12304	// and header transformations are applied depending on additional
12305	// settings specified in this HttpRouteAction.
12306	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
12307
12308	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
12309	// unconditionally include in API requests. By default, fields with
12310	// empty values are omitted from API requests. However, any non-pointer,
12311	// non-interface field appearing in ForceSendFields will be sent to the
12312	// server regardless of whether the field is empty or not. This may be
12313	// used to include empty fields in Patch requests.
12314	ForceSendFields []string `json:"-"`
12315
12316	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
12317	// API requests with the JSON null value. By default, fields with empty
12318	// values are omitted from API requests. However, any field with an
12319	// empty value appearing in NullFields will be sent to the server as
12320	// null. It is an error if a field in this list has a non-empty value.
12321	// This may be used to include null fields in Patch requests.
12322	NullFields []string `json:"-"`
12323}
12324
12325func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
12326	type NoMethod HttpRouteAction
12327	raw := NoMethod(*s)
12328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12329}
12330
12331// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
12332// request and the corresponding routing action that load balancing
12333// proxies will perform.
12334type HttpRouteRule struct {
12335	// Description: The short description conveying the intent of this
12336	// routeRule.
12337	// The description can have a maximum length of 1024 characters.
12338	Description string `json:"description,omitempty"`
12339
12340	// HeaderAction: Specifies changes to request and response headers that
12341	// need to take effect for the selected backendService.
12342	// The headerAction specified here are applied before the matching
12343	// pathMatchers[].headerAction and after
12344	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
12345	// ServiceWeightAction[].headerAction
12346	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
12347
12348	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
12349
12350	// Priority: For routeRules within a given pathMatcher, priority
12351	// determines the order in which load balancer will interpret
12352	// routeRules. RouteRules are evaluated in order of priority, from the
12353	// lowest to highest number. The priority of a rule decreases as its
12354	// number increases (1, 2, 3, N+1). The first rule that matches the
12355	// request is applied.
12356	// You cannot configure two or more routeRules with the same priority.
12357	// Priority for each rule must be set to a number between 0 and
12358	// 2147483647 inclusive.
12359	// Priority numbers can have gaps, which enable you to add or remove
12360	// rules in the future without affecting the rest of the rules. For
12361	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
12362	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
12363	// and 13 to 15 in the future without any impact on existing rules.
12364	Priority int64 `json:"priority,omitempty"`
12365
12366	// RouteAction: In response to a matching matchRule, the load balancer
12367	// performs advanced routing actions like URL rewrites, header
12368	// transformations, etc. prior to forwarding the request to the selected
12369	// backend. If  routeAction specifies any  weightedBackendServices,
12370	// service must not be set. Conversely if service is set, routeAction
12371	// cannot contain any  weightedBackendServices.
12372	// Only one of urlRedirect, service or
12373	// routeAction.weightedBackendService must be set.
12374	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
12375
12376	// Service: The full or partial URL of the backend service resource to
12377	// which traffic is directed if this rule is matched. If routeAction is
12378	// additionally specified, advanced routing actions like URL Rewrites,
12379	// etc. take effect prior to sending the request to the backend.
12380	// However, if service is specified, routeAction cannot contain any
12381	// weightedBackendService s. Conversely, if routeAction specifies any
12382	// weightedBackendServices, service must not be specified.
12383	// Only one of urlRedirect, service or
12384	// routeAction.weightedBackendService must be set.
12385	Service string `json:"service,omitempty"`
12386
12387	// UrlRedirect: When this rule is matched, the request is redirected to
12388	// a URL specified by urlRedirect.
12389	// If urlRedirect is specified, service or routeAction must not be set.
12390	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
12391
12392	// ForceSendFields is a list of field names (e.g. "Description") to
12393	// unconditionally include in API requests. By default, fields with
12394	// empty values are omitted from API requests. However, any non-pointer,
12395	// non-interface field appearing in ForceSendFields will be sent to the
12396	// server regardless of whether the field is empty or not. This may be
12397	// used to include empty fields in Patch requests.
12398	ForceSendFields []string `json:"-"`
12399
12400	// NullFields is a list of field names (e.g. "Description") to include
12401	// in API requests with the JSON null value. By default, fields with
12402	// empty values are omitted from API requests. However, any field with
12403	// an empty value appearing in NullFields will be sent to the server as
12404	// null. It is an error if a field in this list has a non-empty value.
12405	// This may be used to include null fields in Patch requests.
12406	NullFields []string `json:"-"`
12407}
12408
12409func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
12410	type NoMethod HttpRouteRule
12411	raw := NoMethod(*s)
12412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12413}
12414
12415// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
12416// for matching requests to an HttpRouteRule. All specified criteria
12417// must be satisfied for a match to occur.
12418type HttpRouteRuleMatch struct {
12419	// FullPathMatch: For satisfying the matchRule condition, the path of
12420	// the request must exactly match the value specified in fullPathMatch
12421	// after removing any query parameters and anchor that may be part of
12422	// the original URL.
12423	// fullPathMatch must be between 1 and 1024 characters.
12424	// Only one of prefixMatch, fullPathMatch or regexMatch must be
12425	// specified.
12426	FullPathMatch string `json:"fullPathMatch,omitempty"`
12427
12428	// HeaderMatches: Specifies a list of header match criteria, all of
12429	// which must match corresponding headers in the request.
12430	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
12431
12432	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
12433	// case sensitive.
12434	// The default value is false.
12435	// ignoreCase must not be used with regexMatch.
12436	IgnoreCase bool `json:"ignoreCase,omitempty"`
12437
12438	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
12439	// restrict routing configuration to a limited set of xDS compliant
12440	// clients. In their xDS requests to Loadbalancer, xDS clients present
12441	// node metadata. If a match takes place, the relevant routing
12442	// configuration is made available to those proxies.
12443	// For each metadataFilter in this list, if its filterMatchCriteria is
12444	// set to MATCH_ANY, at least one of the filterLabels must match the
12445	// corresponding label provided in the metadata. If its
12446	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
12447	// must match with corresponding labels provided in the
12448	// metadata.
12449	// metadataFilters specified here will be applied after those specified
12450	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
12451	// belongs to.
12452	// metadataFilters only applies to Loadbalancers that have their
12453	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
12454	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
12455
12456	// PrefixMatch: For satisfying the matchRule condition, the request's
12457	// path must begin with the specified prefixMatch. prefixMatch must
12458	// begin with a /.
12459	// The value must be between 1 and 1024 characters.
12460	// Only one of prefixMatch, fullPathMatch or regexMatch must be
12461	// specified.
12462	PrefixMatch string `json:"prefixMatch,omitempty"`
12463
12464	// QueryParameterMatches: Specifies a list of query parameter match
12465	// criteria, all of which must match corresponding query parameters in
12466	// the request.
12467	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
12468
12469	// RegexMatch: For satisfying the matchRule condition, the path of the
12470	// request must satisfy the regular expression specified in regexMatch
12471	// after removing any query parameters and anchor supplied with the
12472	// original URL. For regular expression grammar please see
12473	// en.cppreference.com/w/cpp/regex/ecmascript
12474	// Only one of prefixMatch, fullPathMatch or regexMatch must be
12475	// specified.
12476	// Note that regexMatch only applies to Loadbalancers that have their
12477	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
12478	RegexMatch string `json:"regexMatch,omitempty"`
12479
12480	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
12481	// unconditionally include in API requests. By default, fields with
12482	// empty values are omitted from API requests. However, any non-pointer,
12483	// non-interface field appearing in ForceSendFields will be sent to the
12484	// server regardless of whether the field is empty or not. This may be
12485	// used to include empty fields in Patch requests.
12486	ForceSendFields []string `json:"-"`
12487
12488	// NullFields is a list of field names (e.g. "FullPathMatch") to include
12489	// in API requests with the JSON null value. By default, fields with
12490	// empty values are omitted from API requests. However, any field with
12491	// an empty value appearing in NullFields will be sent to the server as
12492	// null. It is an error if a field in this list has a non-empty value.
12493	// This may be used to include null fields in Patch requests.
12494	NullFields []string `json:"-"`
12495}
12496
12497func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
12498	type NoMethod HttpRouteRuleMatch
12499	raw := NoMethod(*s)
12500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12501}
12502
12503// HttpsHealthCheck: Represents a legacy HTTPS Health Check
12504// resource.
12505//
12506// Legacy health checks are required by network load balancers. For more
12507// information, read Health Check Concepts.
12508type HttpsHealthCheck struct {
12509	// CheckIntervalSec: How often (in seconds) to send a health check. The
12510	// default value is 5 seconds.
12511	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12512
12513	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12514	// format.
12515	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12516
12517	// Description: An optional description of this resource. Provide this
12518	// property when you create the resource.
12519	Description string `json:"description,omitempty"`
12520
12521	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12522	// after this many consecutive successes. The default value is 2.
12523	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12524
12525	// Host: The value of the host header in the HTTPS health check request.
12526	// If left empty (default value), the public IP on behalf of which this
12527	// health check is performed will be used.
12528	Host string `json:"host,omitempty"`
12529
12530	// Id: [Output Only] The unique identifier for the resource. This
12531	// identifier is defined by the server.
12532	Id uint64 `json:"id,omitempty,string"`
12533
12534	// Kind: Type of the resource.
12535	Kind string `json:"kind,omitempty"`
12536
12537	// Name: Name of the resource. Provided by the client when the resource
12538	// is created. The name must be 1-63 characters long, and comply with
12539	// RFC1035. Specifically, the name must be 1-63 characters long and
12540	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
12541	// the first character must be a lowercase letter, and all following
12542	// characters must be a dash, lowercase letter, or digit, except the
12543	// last character, which cannot be a dash.
12544	Name string `json:"name,omitempty"`
12545
12546	// Port: The TCP port number for the HTTPS health check request. The
12547	// default value is 443.
12548	Port int64 `json:"port,omitempty"`
12549
12550	// RequestPath: The request path of the HTTPS health check request. The
12551	// default value is "/".
12552	RequestPath string `json:"requestPath,omitempty"`
12553
12554	// SelfLink: [Output Only] Server-defined URL for the resource.
12555	SelfLink string `json:"selfLink,omitempty"`
12556
12557	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12558	// The default value is 5 seconds. It is invalid for timeoutSec to have
12559	// a greater value than checkIntervalSec.
12560	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12561
12562	// UnhealthyThreshold: A so-far healthy instance will be marked
12563	// unhealthy after this many consecutive failures. The default value is
12564	// 2.
12565	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12566
12567	// ServerResponse contains the HTTP response code and headers from the
12568	// server.
12569	googleapi.ServerResponse `json:"-"`
12570
12571	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12572	// unconditionally include in API requests. By default, fields with
12573	// empty values are omitted from API requests. However, any non-pointer,
12574	// non-interface field appearing in ForceSendFields will be sent to the
12575	// server regardless of whether the field is empty or not. This may be
12576	// used to include empty fields in Patch requests.
12577	ForceSendFields []string `json:"-"`
12578
12579	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12580	// include in API requests with the JSON null value. By default, fields
12581	// with empty values are omitted from API requests. However, any field
12582	// with an empty value appearing in NullFields will be sent to the
12583	// server as null. It is an error if a field in this list has a
12584	// non-empty value. This may be used to include null fields in Patch
12585	// requests.
12586	NullFields []string `json:"-"`
12587}
12588
12589func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
12590	type NoMethod HttpsHealthCheck
12591	raw := NoMethod(*s)
12592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12593}
12594
12595// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
12596type HttpsHealthCheckList struct {
12597	// Id: [Output Only] Unique identifier for the resource; defined by the
12598	// server.
12599	Id string `json:"id,omitempty"`
12600
12601	// Items: A list of HttpsHealthCheck resources.
12602	Items []*HttpsHealthCheck `json:"items,omitempty"`
12603
12604	// Kind: Type of resource.
12605	Kind string `json:"kind,omitempty"`
12606
12607	// NextPageToken: [Output Only] This token allows you to get the next
12608	// page of results for list requests. If the number of results is larger
12609	// than maxResults, use the nextPageToken as a value for the query
12610	// parameter pageToken in the next list request. Subsequent list
12611	// requests will have their own nextPageToken to continue paging through
12612	// the results.
12613	NextPageToken string `json:"nextPageToken,omitempty"`
12614
12615	// SelfLink: [Output Only] Server-defined URL for this resource.
12616	SelfLink string `json:"selfLink,omitempty"`
12617
12618	// Warning: [Output Only] Informational warning message.
12619	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
12620
12621	// ServerResponse contains the HTTP response code and headers from the
12622	// server.
12623	googleapi.ServerResponse `json:"-"`
12624
12625	// ForceSendFields is a list of field names (e.g. "Id") to
12626	// unconditionally include in API requests. By default, fields with
12627	// empty values are omitted from API requests. However, any non-pointer,
12628	// non-interface field appearing in ForceSendFields will be sent to the
12629	// server regardless of whether the field is empty or not. This may be
12630	// used to include empty fields in Patch requests.
12631	ForceSendFields []string `json:"-"`
12632
12633	// NullFields is a list of field names (e.g. "Id") to include in API
12634	// requests with the JSON null value. By default, fields with empty
12635	// values are omitted from API requests. However, any field with an
12636	// empty value appearing in NullFields will be sent to the server as
12637	// null. It is an error if a field in this list has a non-empty value.
12638	// This may be used to include null fields in Patch requests.
12639	NullFields []string `json:"-"`
12640}
12641
12642func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
12643	type NoMethod HttpsHealthCheckList
12644	raw := NoMethod(*s)
12645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12646}
12647
12648// HttpsHealthCheckListWarning: [Output Only] Informational warning
12649// message.
12650type HttpsHealthCheckListWarning struct {
12651	// Code: [Output Only] A warning code, if applicable. For example,
12652	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12653	// the response.
12654	//
12655	// Possible values:
12656	//   "CLEANUP_FAILED"
12657	//   "DEPRECATED_RESOURCE_USED"
12658	//   "DEPRECATED_TYPE_USED"
12659	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12660	//   "EXPERIMENTAL_TYPE_USED"
12661	//   "EXTERNAL_API_WARNING"
12662	//   "FIELD_VALUE_OVERRIDEN"
12663	//   "INJECTED_KERNELS_DEPRECATED"
12664	//   "MISSING_TYPE_DEPENDENCY"
12665	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12666	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12667	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12668	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12669	//   "NEXT_HOP_NOT_RUNNING"
12670	//   "NOT_CRITICAL_ERROR"
12671	//   "NO_RESULTS_ON_PAGE"
12672	//   "REQUIRED_TOS_AGREEMENT"
12673	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12674	//   "RESOURCE_NOT_DELETED"
12675	//   "SCHEMA_VALIDATION_IGNORED"
12676	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12677	//   "UNDECLARED_PROPERTIES"
12678	//   "UNREACHABLE"
12679	Code string `json:"code,omitempty"`
12680
12681	// Data: [Output Only] Metadata about this warning in key: value format.
12682	// For example:
12683	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12684	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
12685
12686	// Message: [Output Only] A human-readable description of the warning
12687	// code.
12688	Message string `json:"message,omitempty"`
12689
12690	// ForceSendFields is a list of field names (e.g. "Code") to
12691	// unconditionally include in API requests. By default, fields with
12692	// empty values are omitted from API requests. However, any non-pointer,
12693	// non-interface field appearing in ForceSendFields will be sent to the
12694	// server regardless of whether the field is empty or not. This may be
12695	// used to include empty fields in Patch requests.
12696	ForceSendFields []string `json:"-"`
12697
12698	// NullFields is a list of field names (e.g. "Code") to include in API
12699	// requests with the JSON null value. By default, fields with empty
12700	// values are omitted from API requests. However, any field with an
12701	// empty value appearing in NullFields will be sent to the server as
12702	// null. It is an error if a field in this list has a non-empty value.
12703	// This may be used to include null fields in Patch requests.
12704	NullFields []string `json:"-"`
12705}
12706
12707func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
12708	type NoMethod HttpsHealthCheckListWarning
12709	raw := NoMethod(*s)
12710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12711}
12712
12713type HttpsHealthCheckListWarningData struct {
12714	// Key: [Output Only] A key that provides more detail on the warning
12715	// being returned. For example, for warnings where there are no results
12716	// in a list request for a particular zone, this key might be scope and
12717	// the key value might be the zone name. Other examples might be a key
12718	// indicating a deprecated resource and a suggested replacement, or a
12719	// warning about invalid network settings (for example, if an instance
12720	// attempts to perform IP forwarding but is not enabled for IP
12721	// forwarding).
12722	Key string `json:"key,omitempty"`
12723
12724	// Value: [Output Only] A warning data value corresponding to the key.
12725	Value string `json:"value,omitempty"`
12726
12727	// ForceSendFields is a list of field names (e.g. "Key") to
12728	// unconditionally include in API requests. By default, fields with
12729	// empty values are omitted from API requests. However, any non-pointer,
12730	// non-interface field appearing in ForceSendFields will be sent to the
12731	// server regardless of whether the field is empty or not. This may be
12732	// used to include empty fields in Patch requests.
12733	ForceSendFields []string `json:"-"`
12734
12735	// NullFields is a list of field names (e.g. "Key") to include in API
12736	// requests with the JSON null value. By default, fields with empty
12737	// values are omitted from API requests. However, any field with an
12738	// empty value appearing in NullFields will be sent to the server as
12739	// null. It is an error if a field in this list has a non-empty value.
12740	// This may be used to include null fields in Patch requests.
12741	NullFields []string `json:"-"`
12742}
12743
12744func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
12745	type NoMethod HttpsHealthCheckListWarningData
12746	raw := NoMethod(*s)
12747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12748}
12749
12750// Image: Represents an Image resource.
12751//
12752// You can use images to create boot disks for your VM instances. For
12753// more information, read Images. (== resource_for {$api_version}.images
12754// ==)
12755type Image struct {
12756	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
12757	// Cloud Storage (in bytes).
12758	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
12759
12760	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12761	// format.
12762	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12763
12764	// Deprecated: The deprecation status associated with this image.
12765	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
12766
12767	// Description: An optional description of this resource. Provide this
12768	// property when you create the resource.
12769	Description string `json:"description,omitempty"`
12770
12771	// DiskSizeGb: Size of the image when restored onto a persistent disk
12772	// (in GB).
12773	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
12774
12775	// Family: The name of the image family to which this image belongs. You
12776	// can create disks by specifying an image family instead of a specific
12777	// image name. The image family always returns its latest image that is
12778	// not deprecated. The name of the image family must comply with
12779	// RFC1035.
12780	Family string `json:"family,omitempty"`
12781
12782	// GuestOsFeatures: A list of features to enable on the guest operating
12783	// system. Applicable only for bootable images. Read  Enabling guest
12784	// operating system features to see a list of available options.
12785	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
12786
12787	// Id: [Output Only] The unique identifier for the resource. This
12788	// identifier is defined by the server.
12789	Id uint64 `json:"id,omitempty,string"`
12790
12791	// ImageEncryptionKey: Encrypts the image using a customer-supplied
12792	// encryption key.
12793	//
12794	// After you encrypt an image with a customer-supplied key, you must
12795	// provide the same key if you use the image later (e.g. to create a
12796	// disk from the image).
12797	//
12798	// Customer-supplied encryption keys do not protect access to metadata
12799	// of the disk.
12800	//
12801	// If you do not provide an encryption key when creating the image, then
12802	// the disk will be encrypted using an automatically generated key and
12803	// you do not need to provide a key to use the image later.
12804	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
12805
12806	// Kind: [Output Only] Type of the resource. Always compute#image for
12807	// images.
12808	Kind string `json:"kind,omitempty"`
12809
12810	// LabelFingerprint: A fingerprint for the labels being applied to this
12811	// image, which is essentially a hash of the labels used for optimistic
12812	// locking. The fingerprint is initially generated by Compute Engine and
12813	// changes after every request to modify or update labels. You must
12814	// always provide an up-to-date fingerprint hash in order to update or
12815	// change labels, otherwise the request will fail with error 412
12816	// conditionNotMet.
12817	//
12818	// To see the latest fingerprint, make a get() request to retrieve an
12819	// image.
12820	LabelFingerprint string `json:"labelFingerprint,omitempty"`
12821
12822	// Labels: Labels to apply to this image. These can be later modified by
12823	// the setLabels method.
12824	Labels map[string]string `json:"labels,omitempty"`
12825
12826	// LicenseCodes: Integer license codes indicating which licenses are
12827	// attached to this image.
12828	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
12829
12830	// Licenses: Any applicable license URI.
12831	Licenses []string `json:"licenses,omitempty"`
12832
12833	// Name: Name of the resource; provided by the client when the resource
12834	// is created. The name must be 1-63 characters long, and comply with
12835	// RFC1035. Specifically, the name must be 1-63 characters long and
12836	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
12837	// the first character must be a lowercase letter, and all following
12838	// characters must be a dash, lowercase letter, or digit, except the
12839	// last character, which cannot be a dash.
12840	Name string `json:"name,omitempty"`
12841
12842	// RawDisk: The parameters of the raw disk image.
12843	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
12844
12845	// SelfLink: [Output Only] Server-defined URL for the resource.
12846	SelfLink string `json:"selfLink,omitempty"`
12847
12848	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
12849	// instance.
12850	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
12851
12852	// SourceDisk: URL of the source disk used to create this image. This
12853	// can be a full or valid partial URL. You must provide either this
12854	// property or the rawDisk.source property but not both to create an
12855	// image. For example, the following are valid values:
12856	// -
12857	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
12858	// - projects/project/zones/zone/disks/disk
12859	// - zones/zone/disks/disk
12860	SourceDisk string `json:"sourceDisk,omitempty"`
12861
12862	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
12863	// source disk. Required if the source disk is protected by a
12864	// customer-supplied encryption key.
12865	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
12866
12867	// SourceDiskId: [Output Only] The ID value of the disk used to create
12868	// this image. This value may be used to determine whether the image was
12869	// taken from the current or a previous instance of a given disk name.
12870	SourceDiskId string `json:"sourceDiskId,omitempty"`
12871
12872	// SourceImage: URL of the source image used to create this image.
12873	//
12874	// In order to create an image, you must provide the full or partial URL
12875	// of one of the following:
12876	// - The selfLink URL
12877	// - This property
12878	// - The rawDisk.source URL
12879	// - The sourceDisk URL
12880	SourceImage string `json:"sourceImage,omitempty"`
12881
12882	// SourceImageEncryptionKey: The customer-supplied encryption key of the
12883	// source image. Required if the source image is protected by a
12884	// customer-supplied encryption key.
12885	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
12886
12887	// SourceImageId: [Output Only] The ID value of the image used to create
12888	// this image. This value may be used to determine whether the image was
12889	// taken from the current or a previous instance of a given image name.
12890	SourceImageId string `json:"sourceImageId,omitempty"`
12891
12892	// SourceSnapshot: URL of the source snapshot used to create this
12893	// image.
12894	//
12895	// In order to create an image, you must provide the full or partial URL
12896	// of one of the following:
12897	// - The selfLink URL
12898	// - This property
12899	// - The sourceImage URL
12900	// - The rawDisk.source URL
12901	// - The sourceDisk URL
12902	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
12903
12904	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
12905	// the source snapshot. Required if the source snapshot is protected by
12906	// a customer-supplied encryption key.
12907	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
12908
12909	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
12910	// create this image. This value may be used to determine whether the
12911	// snapshot was taken from the current or a previous instance of a given
12912	// snapshot name.
12913	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
12914
12915	// SourceType: The type of the image used to create this disk. The
12916	// default and only value is RAW
12917	//
12918	// Possible values:
12919	//   "RAW" (default)
12920	SourceType string `json:"sourceType,omitempty"`
12921
12922	// Status: [Output Only] The status of the image. An image can be used
12923	// to create other resources, such as instances, only after the image
12924	// has been successfully created and the status is set to READY.
12925	// Possible values are FAILED, PENDING, or READY.
12926	//
12927	// Possible values:
12928	//   "DELETING"
12929	//   "FAILED"
12930	//   "PENDING"
12931	//   "READY"
12932	Status string `json:"status,omitempty"`
12933
12934	// StorageLocations: Cloud Storage bucket storage location of the image
12935	// (regional or multi-regional).
12936	StorageLocations []string `json:"storageLocations,omitempty"`
12937
12938	// ServerResponse contains the HTTP response code and headers from the
12939	// server.
12940	googleapi.ServerResponse `json:"-"`
12941
12942	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
12943	// unconditionally include in API requests. By default, fields with
12944	// empty values are omitted from API requests. However, any non-pointer,
12945	// non-interface field appearing in ForceSendFields will be sent to the
12946	// server regardless of whether the field is empty or not. This may be
12947	// used to include empty fields in Patch requests.
12948	ForceSendFields []string `json:"-"`
12949
12950	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
12951	// include in API requests with the JSON null value. By default, fields
12952	// with empty values are omitted from API requests. However, any field
12953	// with an empty value appearing in NullFields will be sent to the
12954	// server as null. It is an error if a field in this list has a
12955	// non-empty value. This may be used to include null fields in Patch
12956	// requests.
12957	NullFields []string `json:"-"`
12958}
12959
12960func (s *Image) MarshalJSON() ([]byte, error) {
12961	type NoMethod Image
12962	raw := NoMethod(*s)
12963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12964}
12965
12966// ImageRawDisk: The parameters of the raw disk image.
12967type ImageRawDisk struct {
12968	// ContainerType: The format used to encode and transmit the block
12969	// device, which should be TAR. This is just a container and
12970	// transmission format and not a runtime format. Provided by the client
12971	// when the disk image is created.
12972	//
12973	// Possible values:
12974	//   "TAR"
12975	ContainerType string `json:"containerType,omitempty"`
12976
12977	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
12978	// checksum of the disk image before unpackaging provided by the client
12979	// when the disk image is created.
12980	Sha1Checksum string `json:"sha1Checksum,omitempty"`
12981
12982	// Source: The full Google Cloud Storage URL where the disk image is
12983	// stored. You must provide either this property or the sourceDisk
12984	// property but not both.
12985	Source string `json:"source,omitempty"`
12986
12987	// ForceSendFields is a list of field names (e.g. "ContainerType") to
12988	// unconditionally include in API requests. By default, fields with
12989	// empty values are omitted from API requests. However, any non-pointer,
12990	// non-interface field appearing in ForceSendFields will be sent to the
12991	// server regardless of whether the field is empty or not. This may be
12992	// used to include empty fields in Patch requests.
12993	ForceSendFields []string `json:"-"`
12994
12995	// NullFields is a list of field names (e.g. "ContainerType") to include
12996	// in API requests with the JSON null value. By default, fields with
12997	// empty values are omitted from API requests. However, any field with
12998	// an empty value appearing in NullFields will be sent to the server as
12999	// null. It is an error if a field in this list has a non-empty value.
13000	// This may be used to include null fields in Patch requests.
13001	NullFields []string `json:"-"`
13002}
13003
13004func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
13005	type NoMethod ImageRawDisk
13006	raw := NoMethod(*s)
13007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13008}
13009
13010// ImageList: Contains a list of images.
13011type ImageList struct {
13012	// Id: [Output Only] Unique identifier for the resource; defined by the
13013	// server.
13014	Id string `json:"id,omitempty"`
13015
13016	// Items: A list of Image resources.
13017	Items []*Image `json:"items,omitempty"`
13018
13019	// Kind: Type of resource.
13020	Kind string `json:"kind,omitempty"`
13021
13022	// NextPageToken: [Output Only] This token allows you to get the next
13023	// page of results for list requests. If the number of results is larger
13024	// than maxResults, use the nextPageToken as a value for the query
13025	// parameter pageToken in the next list request. Subsequent list
13026	// requests will have their own nextPageToken to continue paging through
13027	// the results.
13028	NextPageToken string `json:"nextPageToken,omitempty"`
13029
13030	// SelfLink: [Output Only] Server-defined URL for this resource.
13031	SelfLink string `json:"selfLink,omitempty"`
13032
13033	// Warning: [Output Only] Informational warning message.
13034	Warning *ImageListWarning `json:"warning,omitempty"`
13035
13036	// ServerResponse contains the HTTP response code and headers from the
13037	// server.
13038	googleapi.ServerResponse `json:"-"`
13039
13040	// ForceSendFields is a list of field names (e.g. "Id") to
13041	// unconditionally include in API requests. By default, fields with
13042	// empty values are omitted from API requests. However, any non-pointer,
13043	// non-interface field appearing in ForceSendFields will be sent to the
13044	// server regardless of whether the field is empty or not. This may be
13045	// used to include empty fields in Patch requests.
13046	ForceSendFields []string `json:"-"`
13047
13048	// NullFields is a list of field names (e.g. "Id") to include in API
13049	// requests with the JSON null value. By default, fields with empty
13050	// values are omitted from API requests. However, any field with an
13051	// empty value appearing in NullFields will be sent to the server as
13052	// null. It is an error if a field in this list has a non-empty value.
13053	// This may be used to include null fields in Patch requests.
13054	NullFields []string `json:"-"`
13055}
13056
13057func (s *ImageList) MarshalJSON() ([]byte, error) {
13058	type NoMethod ImageList
13059	raw := NoMethod(*s)
13060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13061}
13062
13063// ImageListWarning: [Output Only] Informational warning message.
13064type ImageListWarning struct {
13065	// Code: [Output Only] A warning code, if applicable. For example,
13066	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13067	// the response.
13068	//
13069	// Possible values:
13070	//   "CLEANUP_FAILED"
13071	//   "DEPRECATED_RESOURCE_USED"
13072	//   "DEPRECATED_TYPE_USED"
13073	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13074	//   "EXPERIMENTAL_TYPE_USED"
13075	//   "EXTERNAL_API_WARNING"
13076	//   "FIELD_VALUE_OVERRIDEN"
13077	//   "INJECTED_KERNELS_DEPRECATED"
13078	//   "MISSING_TYPE_DEPENDENCY"
13079	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13080	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13081	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13082	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13083	//   "NEXT_HOP_NOT_RUNNING"
13084	//   "NOT_CRITICAL_ERROR"
13085	//   "NO_RESULTS_ON_PAGE"
13086	//   "REQUIRED_TOS_AGREEMENT"
13087	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13088	//   "RESOURCE_NOT_DELETED"
13089	//   "SCHEMA_VALIDATION_IGNORED"
13090	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13091	//   "UNDECLARED_PROPERTIES"
13092	//   "UNREACHABLE"
13093	Code string `json:"code,omitempty"`
13094
13095	// Data: [Output Only] Metadata about this warning in key: value format.
13096	// For example:
13097	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13098	Data []*ImageListWarningData `json:"data,omitempty"`
13099
13100	// Message: [Output Only] A human-readable description of the warning
13101	// code.
13102	Message string `json:"message,omitempty"`
13103
13104	// ForceSendFields is a list of field names (e.g. "Code") to
13105	// unconditionally include in API requests. By default, fields with
13106	// empty values are omitted from API requests. However, any non-pointer,
13107	// non-interface field appearing in ForceSendFields will be sent to the
13108	// server regardless of whether the field is empty or not. This may be
13109	// used to include empty fields in Patch requests.
13110	ForceSendFields []string `json:"-"`
13111
13112	// NullFields is a list of field names (e.g. "Code") to include in API
13113	// requests with the JSON null value. By default, fields with empty
13114	// values are omitted from API requests. However, any field with an
13115	// empty value appearing in NullFields will be sent to the server as
13116	// null. It is an error if a field in this list has a non-empty value.
13117	// This may be used to include null fields in Patch requests.
13118	NullFields []string `json:"-"`
13119}
13120
13121func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
13122	type NoMethod ImageListWarning
13123	raw := NoMethod(*s)
13124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13125}
13126
13127type ImageListWarningData struct {
13128	// Key: [Output Only] A key that provides more detail on the warning
13129	// being returned. For example, for warnings where there are no results
13130	// in a list request for a particular zone, this key might be scope and
13131	// the key value might be the zone name. Other examples might be a key
13132	// indicating a deprecated resource and a suggested replacement, or a
13133	// warning about invalid network settings (for example, if an instance
13134	// attempts to perform IP forwarding but is not enabled for IP
13135	// forwarding).
13136	Key string `json:"key,omitempty"`
13137
13138	// Value: [Output Only] A warning data value corresponding to the key.
13139	Value string `json:"value,omitempty"`
13140
13141	// ForceSendFields is a list of field names (e.g. "Key") to
13142	// unconditionally include in API requests. By default, fields with
13143	// empty values are omitted from API requests. However, any non-pointer,
13144	// non-interface field appearing in ForceSendFields will be sent to the
13145	// server regardless of whether the field is empty or not. This may be
13146	// used to include empty fields in Patch requests.
13147	ForceSendFields []string `json:"-"`
13148
13149	// NullFields is a list of field names (e.g. "Key") to include in API
13150	// requests with the JSON null value. By default, fields with empty
13151	// values are omitted from API requests. However, any field with an
13152	// empty value appearing in NullFields will be sent to the server as
13153	// null. It is an error if a field in this list has a non-empty value.
13154	// This may be used to include null fields in Patch requests.
13155	NullFields []string `json:"-"`
13156}
13157
13158func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
13159	type NoMethod ImageListWarningData
13160	raw := NoMethod(*s)
13161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13162}
13163
13164// InitialStateConfig: Initial State for shielded instance, these are
13165// public keys which are safe to store in public
13166type InitialStateConfig struct {
13167	// Dbs: The Key Database (db).
13168	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
13169
13170	// Dbxs: The forbidden key database (dbx).
13171	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
13172
13173	// Keks: The Key Exchange Key (KEK).
13174	Keks []*FileContentBuffer `json:"keks,omitempty"`
13175
13176	// Pk: The Platform Key (PK).
13177	Pk *FileContentBuffer `json:"pk,omitempty"`
13178
13179	// ForceSendFields is a list of field names (e.g. "Dbs") to
13180	// unconditionally include in API requests. By default, fields with
13181	// empty values are omitted from API requests. However, any non-pointer,
13182	// non-interface field appearing in ForceSendFields will be sent to the
13183	// server regardless of whether the field is empty or not. This may be
13184	// used to include empty fields in Patch requests.
13185	ForceSendFields []string `json:"-"`
13186
13187	// NullFields is a list of field names (e.g. "Dbs") to include in API
13188	// requests with the JSON null value. By default, fields with empty
13189	// values are omitted from API requests. However, any field with an
13190	// empty value appearing in NullFields will be sent to the server as
13191	// null. It is an error if a field in this list has a non-empty value.
13192	// This may be used to include null fields in Patch requests.
13193	NullFields []string `json:"-"`
13194}
13195
13196func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
13197	type NoMethod InitialStateConfig
13198	raw := NoMethod(*s)
13199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13200}
13201
13202// Instance: Represents an Instance resource.
13203//
13204// An instance is a virtual machine that is hosted on Google Cloud
13205// Platform. For more information, read Virtual Machine Instances. (==
13206// resource_for {$api_version}.instances ==)
13207type Instance struct {
13208	// CanIpForward: Allows this instance to send and receive packets with
13209	// non-matching destination or source IPs. This is required if you plan
13210	// to use this instance to forward routes. For more information, see
13211	// Enabling IP Forwarding.
13212	CanIpForward bool `json:"canIpForward,omitempty"`
13213
13214	// CpuPlatform: [Output Only] The CPU platform used by this instance.
13215	CpuPlatform string `json:"cpuPlatform,omitempty"`
13216
13217	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13218	// format.
13219	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13220
13221	// DeletionProtection: Whether the resource should be protected against
13222	// deletion.
13223	DeletionProtection bool `json:"deletionProtection,omitempty"`
13224
13225	// Description: An optional description of this resource. Provide this
13226	// property when you create the resource.
13227	Description string `json:"description,omitempty"`
13228
13229	// Disks: Array of disks associated with this instance. Persistent disks
13230	// must be created before you can assign them.
13231	Disks []*AttachedDisk `json:"disks,omitempty"`
13232
13233	// DisplayDevice: Enables display device for the instance.
13234	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
13235
13236	// Fingerprint: Specifies a fingerprint for this resource, which is
13237	// essentially a hash of the instance's contents and used for optimistic
13238	// locking. The fingerprint is initially generated by Compute Engine and
13239	// changes after every request to modify or update the instance. You
13240	// must always provide an up-to-date fingerprint hash in order to update
13241	// the instance.
13242	//
13243	// To see the latest fingerprint, make get() request to the instance.
13244	Fingerprint string `json:"fingerprint,omitempty"`
13245
13246	// GuestAccelerators: A list of the type and count of accelerator cards
13247	// attached to the instance.
13248	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
13249
13250	// Hostname: Specifies the hostname of the instance. The specified
13251	// hostname must be RFC1035 compliant. If hostname is not specified, the
13252	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
13253	// using the global DNS, and
13254	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
13255	Hostname string `json:"hostname,omitempty"`
13256
13257	// Id: [Output Only] The unique identifier for the resource. This
13258	// identifier is defined by the server.
13259	Id uint64 `json:"id,omitempty,string"`
13260
13261	// Kind: [Output Only] Type of the resource. Always compute#instance for
13262	// instances.
13263	Kind string `json:"kind,omitempty"`
13264
13265	// LabelFingerprint: A fingerprint for this request, which is
13266	// essentially a hash of the label's contents and used for optimistic
13267	// locking. The fingerprint is initially generated by Compute Engine and
13268	// changes after every request to modify or update labels. You must
13269	// always provide an up-to-date fingerprint hash in order to update or
13270	// change labels.
13271	//
13272	// To see the latest fingerprint, make get() request to the instance.
13273	LabelFingerprint string `json:"labelFingerprint,omitempty"`
13274
13275	// Labels: Labels to apply to this instance. These can be later modified
13276	// by the setLabels method.
13277	Labels map[string]string `json:"labels,omitempty"`
13278
13279	// MachineType: Full or partial URL of the machine type resource to use
13280	// for this instance, in the format:
13281	// zones/zone/machineTypes/machine-type. This is provided by the client
13282	// when the instance is created. For example, the following is a valid
13283	// partial url to a predefined machine
13284	// type:
13285	// zones/us-central1-f/machineTypes/n1-standard-1
13286	//
13287	//
13288	// To create a custom machine type, provide a URL to a machine type in
13289	// the following format, where CPUS is 1 or an even number up to 32 (2,
13290	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
13291	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
13292	// 5 GB of memory is 5120
13293	// MB):
13294	// zones/zone/machineTypes/custom-CPUS-MEMORY
13295	//
13296	//
13297	// For example: zones/us-central1-f/machineTypes/custom-4-5120
13298	//
13299	// For a full list of restrictions, read the Specifications for custom
13300	// machine types.
13301	MachineType string `json:"machineType,omitempty"`
13302
13303	// Metadata: The metadata key/value pairs assigned to this instance.
13304	// This includes custom metadata and predefined keys.
13305	Metadata *Metadata `json:"metadata,omitempty"`
13306
13307	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
13308	// Applicable values are the friendly names of CPU platforms, such as
13309	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
13310	// Bridge".
13311	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
13312
13313	// Name: The name of the resource, provided by the client when initially
13314	// creating the resource. The resource name must be 1-63 characters
13315	// long, and comply with RFC1035. Specifically, the name must be 1-63
13316	// characters long and match the regular expression
13317	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
13318	// a lowercase letter, and all following characters must be a dash,
13319	// lowercase letter, or digit, except the last character, which cannot
13320	// be a dash.
13321	Name string `json:"name,omitempty"`
13322
13323	// NetworkInterfaces: An array of network configurations for this
13324	// instance. These specify how interfaces are configured to interact
13325	// with other network services, such as connecting to the internet.
13326	// Multiple interfaces are supported per instance.
13327	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
13328
13329	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
13330	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
13331	//
13332	// Possible values:
13333	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
13334	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
13335	//   "INHERIT_FROM_SUBNETWORK"
13336	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
13337
13338	// ReservationAffinity: Specifies the reservations that this instance
13339	// can consume from.
13340	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
13341
13342	// ResourcePolicies: Resource policies applied to this instance.
13343	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
13344
13345	// Scheduling: Sets the scheduling options for this instance.
13346	Scheduling *Scheduling `json:"scheduling,omitempty"`
13347
13348	// SelfLink: [Output Only] Server-defined URL for this resource.
13349	SelfLink string `json:"selfLink,omitempty"`
13350
13351	// ServiceAccounts: A list of service accounts, with their specified
13352	// scopes, authorized for this instance. Only one service account per VM
13353	// instance is supported.
13354	//
13355	// Service accounts generate access tokens that can be accessed through
13356	// the metadata server and used to authenticate applications on the
13357	// instance. See Service Accounts for more information.
13358	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
13359
13360	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
13361
13362	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
13363
13364	// StartRestricted: [Output Only] Whether a VM has been restricted for
13365	// start because Compute Engine has detected suspicious activity.
13366	StartRestricted bool `json:"startRestricted,omitempty"`
13367
13368	// Status: [Output Only] The status of the instance. One of the
13369	// following values: PROVISIONING, STAGING, RUNNING, STOPPING,
13370	// SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED.
13371	//
13372	// Possible values:
13373	//   "DEPROVISIONING"
13374	//   "PROVISIONING"
13375	//   "REPAIRING"
13376	//   "RUNNING"
13377	//   "STAGING"
13378	//   "STOPPED"
13379	//   "STOPPING"
13380	//   "SUSPENDED"
13381	//   "SUSPENDING"
13382	//   "TERMINATED"
13383	Status string `json:"status,omitempty"`
13384
13385	// StatusMessage: [Output Only] An optional, human-readable explanation
13386	// of the status.
13387	StatusMessage string `json:"statusMessage,omitempty"`
13388
13389	// Tags: Tags to apply to this instance. Tags are used to identify valid
13390	// sources or targets for network firewalls and are specified by the
13391	// client during instance creation. The tags can be later modified by
13392	// the setTags method. Each tag within the list must comply with
13393	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
13394	Tags *Tags `json:"tags,omitempty"`
13395
13396	// Zone: [Output Only] URL of the zone where the instance resides. You
13397	// must specify this field as part of the HTTP request URL. It is not
13398	// settable as a field in the request body.
13399	Zone string `json:"zone,omitempty"`
13400
13401	// ServerResponse contains the HTTP response code and headers from the
13402	// server.
13403	googleapi.ServerResponse `json:"-"`
13404
13405	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
13406	// unconditionally include in API requests. By default, fields with
13407	// empty values are omitted from API requests. However, any non-pointer,
13408	// non-interface field appearing in ForceSendFields will be sent to the
13409	// server regardless of whether the field is empty or not. This may be
13410	// used to include empty fields in Patch requests.
13411	ForceSendFields []string `json:"-"`
13412
13413	// NullFields is a list of field names (e.g. "CanIpForward") to include
13414	// in API requests with the JSON null value. By default, fields with
13415	// empty values are omitted from API requests. However, any field with
13416	// an empty value appearing in NullFields will be sent to the server as
13417	// null. It is an error if a field in this list has a non-empty value.
13418	// This may be used to include null fields in Patch requests.
13419	NullFields []string `json:"-"`
13420}
13421
13422func (s *Instance) MarshalJSON() ([]byte, error) {
13423	type NoMethod Instance
13424	raw := NoMethod(*s)
13425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13426}
13427
13428type InstanceAggregatedList struct {
13429	// Id: [Output Only] Unique identifier for the resource; defined by the
13430	// server.
13431	Id string `json:"id,omitempty"`
13432
13433	// Items: An object that contains a list of instances scoped by zone.
13434	Items map[string]InstancesScopedList `json:"items,omitempty"`
13435
13436	// Kind: [Output Only] Type of resource. Always
13437	// compute#instanceAggregatedList for aggregated lists of Instance
13438	// resources.
13439	Kind string `json:"kind,omitempty"`
13440
13441	// NextPageToken: [Output Only] This token allows you to get the next
13442	// page of results for list requests. If the number of results is larger
13443	// than maxResults, use the nextPageToken as a value for the query
13444	// parameter pageToken in the next list request. Subsequent list
13445	// requests will have their own nextPageToken to continue paging through
13446	// the results.
13447	NextPageToken string `json:"nextPageToken,omitempty"`
13448
13449	// SelfLink: [Output Only] Server-defined URL for this resource.
13450	SelfLink string `json:"selfLink,omitempty"`
13451
13452	// Warning: [Output Only] Informational warning message.
13453	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
13454
13455	// ServerResponse contains the HTTP response code and headers from the
13456	// server.
13457	googleapi.ServerResponse `json:"-"`
13458
13459	// ForceSendFields is a list of field names (e.g. "Id") to
13460	// unconditionally include in API requests. By default, fields with
13461	// empty values are omitted from API requests. However, any non-pointer,
13462	// non-interface field appearing in ForceSendFields will be sent to the
13463	// server regardless of whether the field is empty or not. This may be
13464	// used to include empty fields in Patch requests.
13465	ForceSendFields []string `json:"-"`
13466
13467	// NullFields is a list of field names (e.g. "Id") to include in API
13468	// requests with the JSON null value. By default, fields with empty
13469	// values are omitted from API requests. However, any field with an
13470	// empty value appearing in NullFields will be sent to the server as
13471	// null. It is an error if a field in this list has a non-empty value.
13472	// This may be used to include null fields in Patch requests.
13473	NullFields []string `json:"-"`
13474}
13475
13476func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
13477	type NoMethod InstanceAggregatedList
13478	raw := NoMethod(*s)
13479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13480}
13481
13482// InstanceAggregatedListWarning: [Output Only] Informational warning
13483// message.
13484type InstanceAggregatedListWarning struct {
13485	// Code: [Output Only] A warning code, if applicable. For example,
13486	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13487	// the response.
13488	//
13489	// Possible values:
13490	//   "CLEANUP_FAILED"
13491	//   "DEPRECATED_RESOURCE_USED"
13492	//   "DEPRECATED_TYPE_USED"
13493	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13494	//   "EXPERIMENTAL_TYPE_USED"
13495	//   "EXTERNAL_API_WARNING"
13496	//   "FIELD_VALUE_OVERRIDEN"
13497	//   "INJECTED_KERNELS_DEPRECATED"
13498	//   "MISSING_TYPE_DEPENDENCY"
13499	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13500	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13501	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13502	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13503	//   "NEXT_HOP_NOT_RUNNING"
13504	//   "NOT_CRITICAL_ERROR"
13505	//   "NO_RESULTS_ON_PAGE"
13506	//   "REQUIRED_TOS_AGREEMENT"
13507	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13508	//   "RESOURCE_NOT_DELETED"
13509	//   "SCHEMA_VALIDATION_IGNORED"
13510	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13511	//   "UNDECLARED_PROPERTIES"
13512	//   "UNREACHABLE"
13513	Code string `json:"code,omitempty"`
13514
13515	// Data: [Output Only] Metadata about this warning in key: value format.
13516	// For example:
13517	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13518	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
13519
13520	// Message: [Output Only] A human-readable description of the warning
13521	// code.
13522	Message string `json:"message,omitempty"`
13523
13524	// ForceSendFields is a list of field names (e.g. "Code") to
13525	// unconditionally include in API requests. By default, fields with
13526	// empty values are omitted from API requests. However, any non-pointer,
13527	// non-interface field appearing in ForceSendFields will be sent to the
13528	// server regardless of whether the field is empty or not. This may be
13529	// used to include empty fields in Patch requests.
13530	ForceSendFields []string `json:"-"`
13531
13532	// NullFields is a list of field names (e.g. "Code") to include in API
13533	// requests with the JSON null value. By default, fields with empty
13534	// values are omitted from API requests. However, any field with an
13535	// empty value appearing in NullFields will be sent to the server as
13536	// null. It is an error if a field in this list has a non-empty value.
13537	// This may be used to include null fields in Patch requests.
13538	NullFields []string `json:"-"`
13539}
13540
13541func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
13542	type NoMethod InstanceAggregatedListWarning
13543	raw := NoMethod(*s)
13544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13545}
13546
13547type InstanceAggregatedListWarningData struct {
13548	// Key: [Output Only] A key that provides more detail on the warning
13549	// being returned. For example, for warnings where there are no results
13550	// in a list request for a particular zone, this key might be scope and
13551	// the key value might be the zone name. Other examples might be a key
13552	// indicating a deprecated resource and a suggested replacement, or a
13553	// warning about invalid network settings (for example, if an instance
13554	// attempts to perform IP forwarding but is not enabled for IP
13555	// forwarding).
13556	Key string `json:"key,omitempty"`
13557
13558	// Value: [Output Only] A warning data value corresponding to the key.
13559	Value string `json:"value,omitempty"`
13560
13561	// ForceSendFields is a list of field names (e.g. "Key") to
13562	// unconditionally include in API requests. By default, fields with
13563	// empty values are omitted from API requests. However, any non-pointer,
13564	// non-interface field appearing in ForceSendFields will be sent to the
13565	// server regardless of whether the field is empty or not. This may be
13566	// used to include empty fields in Patch requests.
13567	ForceSendFields []string `json:"-"`
13568
13569	// NullFields is a list of field names (e.g. "Key") to include in API
13570	// requests with the JSON null value. By default, fields with empty
13571	// values are omitted from API requests. However, any field with an
13572	// empty value appearing in NullFields will be sent to the server as
13573	// null. It is an error if a field in this list has a non-empty value.
13574	// This may be used to include null fields in Patch requests.
13575	NullFields []string `json:"-"`
13576}
13577
13578func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13579	type NoMethod InstanceAggregatedListWarningData
13580	raw := NoMethod(*s)
13581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13582}
13583
13584// InstanceGroup: Represents an Instance Group resource.
13585//
13586// Instance Groups can be used to configure a target for load
13587// balancing.
13588//
13589// Instance groups can either be managed or unmanaged.
13590//
13591// To create  managed instance groups, use the instanceGroupManager or
13592// regionInstanceGroupManager resource instead.
13593//
13594// Use zonal unmanaged instance groups if you need to apply load
13595// balancing to groups of heterogeneous instances or if you need to
13596// manage the instances yourself. You cannot create regional unmanaged
13597// instance groups.
13598//
13599// For more information, read Instance groups.
13600//
13601// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
13602// {$api_version}.regionInstanceGroups ==)
13603type InstanceGroup struct {
13604	// CreationTimestamp: [Output Only] The creation timestamp for this
13605	// instance group in RFC3339 text format.
13606	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13607
13608	// Description: An optional description of this resource. Provide this
13609	// property when you create the resource.
13610	Description string `json:"description,omitempty"`
13611
13612	// Fingerprint: [Output Only] The fingerprint of the named ports. The
13613	// system uses this fingerprint to detect conflicts when multiple users
13614	// change the named ports concurrently.
13615	Fingerprint string `json:"fingerprint,omitempty"`
13616
13617	// Id: [Output Only] A unique identifier for this instance group,
13618	// generated by the server.
13619	Id uint64 `json:"id,omitempty,string"`
13620
13621	// Kind: [Output Only] The resource type, which is always
13622	// compute#instanceGroup for instance groups.
13623	Kind string `json:"kind,omitempty"`
13624
13625	// Name: The name of the instance group. The name must be 1-63
13626	// characters long, and comply with RFC1035.
13627	Name string `json:"name,omitempty"`
13628
13629	// NamedPorts: Assigns a name to a port number. For example: {name:
13630	// "http", port: 80}
13631	//
13632	// This allows the system to reference ports by the assigned name
13633	// instead of a port number. Named ports can also contain multiple
13634	// ports. For example: [{name: "http", port: 80},{name: "http", port:
13635	// 8080}]
13636	//
13637	// Named ports apply to all instances in this instance group.
13638	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
13639
13640	// Network: [Output Only] The URL of the network to which all instances
13641	// in the instance group belong. If your instance has multiple network
13642	// interfaces, then the network and subnetwork fields only refer to the
13643	// network and subnet used by your primary interface (nic0).
13644	Network string `json:"network,omitempty"`
13645
13646	// Region: [Output Only] The URL of the region where the instance group
13647	// is located (for regional resources).
13648	Region string `json:"region,omitempty"`
13649
13650	// SelfLink: [Output Only] The URL for this instance group. The server
13651	// generates this URL.
13652	SelfLink string `json:"selfLink,omitempty"`
13653
13654	// Size: [Output Only] The total number of instances in the instance
13655	// group.
13656	Size int64 `json:"size,omitempty"`
13657
13658	// Subnetwork: [Output Only] The URL of the subnetwork to which all
13659	// instances in the instance group belong. If your instance has multiple
13660	// network interfaces, then the network and subnetwork fields only refer
13661	// to the network and subnet used by your primary interface (nic0).
13662	Subnetwork string `json:"subnetwork,omitempty"`
13663
13664	// Zone: [Output Only] The URL of the zone where the instance group is
13665	// located (for zonal resources).
13666	Zone string `json:"zone,omitempty"`
13667
13668	// ServerResponse contains the HTTP response code and headers from the
13669	// server.
13670	googleapi.ServerResponse `json:"-"`
13671
13672	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
13673	// to unconditionally include in API requests. By default, fields with
13674	// empty values are omitted from API requests. However, any non-pointer,
13675	// non-interface field appearing in ForceSendFields will be sent to the
13676	// server regardless of whether the field is empty or not. This may be
13677	// used to include empty fields in Patch requests.
13678	ForceSendFields []string `json:"-"`
13679
13680	// NullFields is a list of field names (e.g. "CreationTimestamp") to
13681	// include in API requests with the JSON null value. By default, fields
13682	// with empty values are omitted from API requests. However, any field
13683	// with an empty value appearing in NullFields will be sent to the
13684	// server as null. It is an error if a field in this list has a
13685	// non-empty value. This may be used to include null fields in Patch
13686	// requests.
13687	NullFields []string `json:"-"`
13688}
13689
13690func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
13691	type NoMethod InstanceGroup
13692	raw := NoMethod(*s)
13693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13694}
13695
13696type InstanceGroupAggregatedList struct {
13697	// Id: [Output Only] Unique identifier for the resource; defined by the
13698	// server.
13699	Id string `json:"id,omitempty"`
13700
13701	// Items: A list of InstanceGroupsScopedList resources.
13702	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
13703
13704	// Kind: [Output Only] The resource type, which is always
13705	// compute#instanceGroupAggregatedList for aggregated lists of instance
13706	// groups.
13707	Kind string `json:"kind,omitempty"`
13708
13709	// NextPageToken: [Output Only] This token allows you to get the next
13710	// page of results for list requests. If the number of results is larger
13711	// than maxResults, use the nextPageToken as a value for the query
13712	// parameter pageToken in the next list request. Subsequent list
13713	// requests will have their own nextPageToken to continue paging through
13714	// the results.
13715	NextPageToken string `json:"nextPageToken,omitempty"`
13716
13717	// SelfLink: [Output Only] Server-defined URL for this resource.
13718	SelfLink string `json:"selfLink,omitempty"`
13719
13720	// Warning: [Output Only] Informational warning message.
13721	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
13722
13723	// ServerResponse contains the HTTP response code and headers from the
13724	// server.
13725	googleapi.ServerResponse `json:"-"`
13726
13727	// ForceSendFields is a list of field names (e.g. "Id") to
13728	// unconditionally include in API requests. By default, fields with
13729	// empty values are omitted from API requests. However, any non-pointer,
13730	// non-interface field appearing in ForceSendFields will be sent to the
13731	// server regardless of whether the field is empty or not. This may be
13732	// used to include empty fields in Patch requests.
13733	ForceSendFields []string `json:"-"`
13734
13735	// NullFields is a list of field names (e.g. "Id") to include in API
13736	// requests with the JSON null value. By default, fields with empty
13737	// values are omitted from API requests. However, any field with an
13738	// empty value appearing in NullFields will be sent to the server as
13739	// null. It is an error if a field in this list has a non-empty value.
13740	// This may be used to include null fields in Patch requests.
13741	NullFields []string `json:"-"`
13742}
13743
13744func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
13745	type NoMethod InstanceGroupAggregatedList
13746	raw := NoMethod(*s)
13747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13748}
13749
13750// InstanceGroupAggregatedListWarning: [Output Only] Informational
13751// warning message.
13752type InstanceGroupAggregatedListWarning struct {
13753	// Code: [Output Only] A warning code, if applicable. For example,
13754	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13755	// the response.
13756	//
13757	// Possible values:
13758	//   "CLEANUP_FAILED"
13759	//   "DEPRECATED_RESOURCE_USED"
13760	//   "DEPRECATED_TYPE_USED"
13761	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13762	//   "EXPERIMENTAL_TYPE_USED"
13763	//   "EXTERNAL_API_WARNING"
13764	//   "FIELD_VALUE_OVERRIDEN"
13765	//   "INJECTED_KERNELS_DEPRECATED"
13766	//   "MISSING_TYPE_DEPENDENCY"
13767	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13768	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13769	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13770	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13771	//   "NEXT_HOP_NOT_RUNNING"
13772	//   "NOT_CRITICAL_ERROR"
13773	//   "NO_RESULTS_ON_PAGE"
13774	//   "REQUIRED_TOS_AGREEMENT"
13775	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13776	//   "RESOURCE_NOT_DELETED"
13777	//   "SCHEMA_VALIDATION_IGNORED"
13778	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13779	//   "UNDECLARED_PROPERTIES"
13780	//   "UNREACHABLE"
13781	Code string `json:"code,omitempty"`
13782
13783	// Data: [Output Only] Metadata about this warning in key: value format.
13784	// For example:
13785	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13786	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
13787
13788	// Message: [Output Only] A human-readable description of the warning
13789	// code.
13790	Message string `json:"message,omitempty"`
13791
13792	// ForceSendFields is a list of field names (e.g. "Code") to
13793	// unconditionally include in API requests. By default, fields with
13794	// empty values are omitted from API requests. However, any non-pointer,
13795	// non-interface field appearing in ForceSendFields will be sent to the
13796	// server regardless of whether the field is empty or not. This may be
13797	// used to include empty fields in Patch requests.
13798	ForceSendFields []string `json:"-"`
13799
13800	// NullFields is a list of field names (e.g. "Code") to include in API
13801	// requests with the JSON null value. By default, fields with empty
13802	// values are omitted from API requests. However, any field with an
13803	// empty value appearing in NullFields will be sent to the server as
13804	// null. It is an error if a field in this list has a non-empty value.
13805	// This may be used to include null fields in Patch requests.
13806	NullFields []string `json:"-"`
13807}
13808
13809func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
13810	type NoMethod InstanceGroupAggregatedListWarning
13811	raw := NoMethod(*s)
13812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13813}
13814
13815type InstanceGroupAggregatedListWarningData struct {
13816	// Key: [Output Only] A key that provides more detail on the warning
13817	// being returned. For example, for warnings where there are no results
13818	// in a list request for a particular zone, this key might be scope and
13819	// the key value might be the zone name. Other examples might be a key
13820	// indicating a deprecated resource and a suggested replacement, or a
13821	// warning about invalid network settings (for example, if an instance
13822	// attempts to perform IP forwarding but is not enabled for IP
13823	// forwarding).
13824	Key string `json:"key,omitempty"`
13825
13826	// Value: [Output Only] A warning data value corresponding to the key.
13827	Value string `json:"value,omitempty"`
13828
13829	// ForceSendFields is a list of field names (e.g. "Key") to
13830	// unconditionally include in API requests. By default, fields with
13831	// empty values are omitted from API requests. However, any non-pointer,
13832	// non-interface field appearing in ForceSendFields will be sent to the
13833	// server regardless of whether the field is empty or not. This may be
13834	// used to include empty fields in Patch requests.
13835	ForceSendFields []string `json:"-"`
13836
13837	// NullFields is a list of field names (e.g. "Key") to include in API
13838	// requests with the JSON null value. By default, fields with empty
13839	// values are omitted from API requests. However, any field with an
13840	// empty value appearing in NullFields will be sent to the server as
13841	// null. It is an error if a field in this list has a non-empty value.
13842	// This may be used to include null fields in Patch requests.
13843	NullFields []string `json:"-"`
13844}
13845
13846func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13847	type NoMethod InstanceGroupAggregatedListWarningData
13848	raw := NoMethod(*s)
13849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13850}
13851
13852// InstanceGroupList: A list of InstanceGroup resources.
13853type InstanceGroupList struct {
13854	// Id: [Output Only] Unique identifier for the resource; defined by the
13855	// server.
13856	Id string `json:"id,omitempty"`
13857
13858	// Items: A list of InstanceGroup resources.
13859	Items []*InstanceGroup `json:"items,omitempty"`
13860
13861	// Kind: [Output Only] The resource type, which is always
13862	// compute#instanceGroupList for instance group lists.
13863	Kind string `json:"kind,omitempty"`
13864
13865	// NextPageToken: [Output Only] This token allows you to get the next
13866	// page of results for list requests. If the number of results is larger
13867	// than maxResults, use the nextPageToken as a value for the query
13868	// parameter pageToken in the next list request. Subsequent list
13869	// requests will have their own nextPageToken to continue paging through
13870	// the results.
13871	NextPageToken string `json:"nextPageToken,omitempty"`
13872
13873	// SelfLink: [Output Only] Server-defined URL for this resource.
13874	SelfLink string `json:"selfLink,omitempty"`
13875
13876	// Warning: [Output Only] Informational warning message.
13877	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
13878
13879	// ServerResponse contains the HTTP response code and headers from the
13880	// server.
13881	googleapi.ServerResponse `json:"-"`
13882
13883	// ForceSendFields is a list of field names (e.g. "Id") to
13884	// unconditionally include in API requests. By default, fields with
13885	// empty values are omitted from API requests. However, any non-pointer,
13886	// non-interface field appearing in ForceSendFields will be sent to the
13887	// server regardless of whether the field is empty or not. This may be
13888	// used to include empty fields in Patch requests.
13889	ForceSendFields []string `json:"-"`
13890
13891	// NullFields is a list of field names (e.g. "Id") to include in API
13892	// requests with the JSON null value. By default, fields with empty
13893	// values are omitted from API requests. However, any field with an
13894	// empty value appearing in NullFields will be sent to the server as
13895	// null. It is an error if a field in this list has a non-empty value.
13896	// This may be used to include null fields in Patch requests.
13897	NullFields []string `json:"-"`
13898}
13899
13900func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
13901	type NoMethod InstanceGroupList
13902	raw := NoMethod(*s)
13903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13904}
13905
13906// InstanceGroupListWarning: [Output Only] Informational warning
13907// message.
13908type InstanceGroupListWarning struct {
13909	// Code: [Output Only] A warning code, if applicable. For example,
13910	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13911	// the response.
13912	//
13913	// Possible values:
13914	//   "CLEANUP_FAILED"
13915	//   "DEPRECATED_RESOURCE_USED"
13916	//   "DEPRECATED_TYPE_USED"
13917	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13918	//   "EXPERIMENTAL_TYPE_USED"
13919	//   "EXTERNAL_API_WARNING"
13920	//   "FIELD_VALUE_OVERRIDEN"
13921	//   "INJECTED_KERNELS_DEPRECATED"
13922	//   "MISSING_TYPE_DEPENDENCY"
13923	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13924	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13925	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13926	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13927	//   "NEXT_HOP_NOT_RUNNING"
13928	//   "NOT_CRITICAL_ERROR"
13929	//   "NO_RESULTS_ON_PAGE"
13930	//   "REQUIRED_TOS_AGREEMENT"
13931	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13932	//   "RESOURCE_NOT_DELETED"
13933	//   "SCHEMA_VALIDATION_IGNORED"
13934	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13935	//   "UNDECLARED_PROPERTIES"
13936	//   "UNREACHABLE"
13937	Code string `json:"code,omitempty"`
13938
13939	// Data: [Output Only] Metadata about this warning in key: value format.
13940	// For example:
13941	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13942	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
13943
13944	// Message: [Output Only] A human-readable description of the warning
13945	// code.
13946	Message string `json:"message,omitempty"`
13947
13948	// ForceSendFields is a list of field names (e.g. "Code") to
13949	// unconditionally include in API requests. By default, fields with
13950	// empty values are omitted from API requests. However, any non-pointer,
13951	// non-interface field appearing in ForceSendFields will be sent to the
13952	// server regardless of whether the field is empty or not. This may be
13953	// used to include empty fields in Patch requests.
13954	ForceSendFields []string `json:"-"`
13955
13956	// NullFields is a list of field names (e.g. "Code") to include in API
13957	// requests with the JSON null value. By default, fields with empty
13958	// values are omitted from API requests. However, any field with an
13959	// empty value appearing in NullFields will be sent to the server as
13960	// null. It is an error if a field in this list has a non-empty value.
13961	// This may be used to include null fields in Patch requests.
13962	NullFields []string `json:"-"`
13963}
13964
13965func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
13966	type NoMethod InstanceGroupListWarning
13967	raw := NoMethod(*s)
13968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13969}
13970
13971type InstanceGroupListWarningData struct {
13972	// Key: [Output Only] A key that provides more detail on the warning
13973	// being returned. For example, for warnings where there are no results
13974	// in a list request for a particular zone, this key might be scope and
13975	// the key value might be the zone name. Other examples might be a key
13976	// indicating a deprecated resource and a suggested replacement, or a
13977	// warning about invalid network settings (for example, if an instance
13978	// attempts to perform IP forwarding but is not enabled for IP
13979	// forwarding).
13980	Key string `json:"key,omitempty"`
13981
13982	// Value: [Output Only] A warning data value corresponding to the key.
13983	Value string `json:"value,omitempty"`
13984
13985	// ForceSendFields is a list of field names (e.g. "Key") to
13986	// unconditionally include in API requests. By default, fields with
13987	// empty values are omitted from API requests. However, any non-pointer,
13988	// non-interface field appearing in ForceSendFields will be sent to the
13989	// server regardless of whether the field is empty or not. This may be
13990	// used to include empty fields in Patch requests.
13991	ForceSendFields []string `json:"-"`
13992
13993	// NullFields is a list of field names (e.g. "Key") to include in API
13994	// requests with the JSON null value. By default, fields with empty
13995	// values are omitted from API requests. However, any field with an
13996	// empty value appearing in NullFields will be sent to the server as
13997	// null. It is an error if a field in this list has a non-empty value.
13998	// This may be used to include null fields in Patch requests.
13999	NullFields []string `json:"-"`
14000}
14001
14002func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
14003	type NoMethod InstanceGroupListWarningData
14004	raw := NoMethod(*s)
14005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14006}
14007
14008// InstanceGroupManager: Represents a Managed Instance Group
14009// resource.
14010//
14011// An instance group is a collection of VM instances that you can manage
14012// as a single entity. For more information, read Instance groups.
14013//
14014// For zonal Managed Instance Group, use the instanceGroupManagers
14015// resource.
14016//
14017// For regional Managed Instance Group, use the
14018// regionInstanceGroupManagers resource. (== resource_for
14019// {$api_version}.instanceGroupManagers ==) (== resource_for
14020// {$api_version}.regionInstanceGroupManagers ==)
14021type InstanceGroupManager struct {
14022	// AutoHealingPolicies: The autohealing policy for this managed instance
14023	// group. You can specify only one value.
14024	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
14025
14026	// BaseInstanceName: The base instance name to use for instances in this
14027	// group. The value must be 1-58 characters long. Instances are named by
14028	// appending a hyphen and a random four-character string to the base
14029	// instance name. The base instance name must comply with RFC1035.
14030	BaseInstanceName string `json:"baseInstanceName,omitempty"`
14031
14032	// CreationTimestamp: [Output Only] The creation timestamp for this
14033	// managed instance group in RFC3339 text format.
14034	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14035
14036	// CurrentActions: [Output Only] The list of instance actions and the
14037	// number of instances in this managed instance group that are scheduled
14038	// for each of those actions.
14039	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
14040
14041	// Description: An optional description of this resource. Provide this
14042	// property when you create the resource.
14043	Description string `json:"description,omitempty"`
14044
14045	// DistributionPolicy: Policy specifying intended distribution of
14046	// instances in regional managed instance group.
14047	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
14048
14049	// Fingerprint: Fingerprint of this resource. This field may be used in
14050	// optimistic locking. It will be ignored when inserting an
14051	// InstanceGroupManager. An up-to-date fingerprint must be provided in
14052	// order to update the InstanceGroupManager, otherwise the request will
14053	// fail with error 412 conditionNotMet.
14054	//
14055	// To see the latest fingerprint, make a get() request to retrieve an
14056	// InstanceGroupManager.
14057	Fingerprint string `json:"fingerprint,omitempty"`
14058
14059	// Id: [Output Only] A unique identifier for this resource type. The
14060	// server generates this identifier.
14061	Id uint64 `json:"id,omitempty,string"`
14062
14063	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
14064	InstanceGroup string `json:"instanceGroup,omitempty"`
14065
14066	// InstanceTemplate: The URL of the instance template that is specified
14067	// for this managed instance group. The group uses this template to
14068	// create all new instances in the managed instance group.
14069	InstanceTemplate string `json:"instanceTemplate,omitempty"`
14070
14071	// Kind: [Output Only] The resource type, which is always
14072	// compute#instanceGroupManager for managed instance groups.
14073	Kind string `json:"kind,omitempty"`
14074
14075	// Name: The name of the managed instance group. The name must be 1-63
14076	// characters long, and comply with RFC1035.
14077	Name string `json:"name,omitempty"`
14078
14079	// NamedPorts: Named ports configured for the Instance Groups
14080	// complementary to this Instance Group Manager.
14081	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
14082
14083	// Region: [Output Only] The URL of the region where the managed
14084	// instance group resides (for regional resources).
14085	Region string `json:"region,omitempty"`
14086
14087	// SelfLink: [Output Only] The URL for this managed instance group. The
14088	// server defines this URL.
14089	SelfLink string `json:"selfLink,omitempty"`
14090
14091	// Status: [Output Only] The status of this managed instance group.
14092	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
14093
14094	// TargetPools: The URLs for all TargetPool resources to which instances
14095	// in the instanceGroup field are added. The target pools automatically
14096	// apply to all of the instances in the managed instance group.
14097	TargetPools []string `json:"targetPools,omitempty"`
14098
14099	// TargetSize: The target number of running instances for this managed
14100	// instance group. You can reduce this number by using the
14101	// instanceGroupManager deleteInstances or abandonInstances methods.
14102	// Resizing the group also changes this number.
14103	TargetSize int64 `json:"targetSize,omitempty"`
14104
14105	// UpdatePolicy: The update policy for this managed instance group.
14106	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
14107
14108	// Versions: Specifies the instance templates used by this managed
14109	// instance group to create instances.
14110	//
14111	// Each version is defined by an instanceTemplate and a name. Every
14112	// version can appear at most once per instance group. This field
14113	// overrides the top-level instanceTemplate field. Read more about the
14114	// relationships between these fields. Exactly one version must leave
14115	// the targetSize field unset. That version will be applied to all
14116	// remaining instances. For more information, read about canary updates.
14117	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
14118
14119	// Zone: [Output Only] The URL of the zone where the managed instance
14120	// group is located (for zonal resources).
14121	Zone string `json:"zone,omitempty"`
14122
14123	// ServerResponse contains the HTTP response code and headers from the
14124	// server.
14125	googleapi.ServerResponse `json:"-"`
14126
14127	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
14128	// to unconditionally include in API requests. By default, fields with
14129	// empty values are omitted from API requests. However, any non-pointer,
14130	// non-interface field appearing in ForceSendFields will be sent to the
14131	// server regardless of whether the field is empty or not. This may be
14132	// used to include empty fields in Patch requests.
14133	ForceSendFields []string `json:"-"`
14134
14135	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
14136	// include in API requests with the JSON null value. By default, fields
14137	// with empty values are omitted from API requests. However, any field
14138	// with an empty value appearing in NullFields will be sent to the
14139	// server as null. It is an error if a field in this list has a
14140	// non-empty value. This may be used to include null fields in Patch
14141	// requests.
14142	NullFields []string `json:"-"`
14143}
14144
14145func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
14146	type NoMethod InstanceGroupManager
14147	raw := NoMethod(*s)
14148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14149}
14150
14151type InstanceGroupManagerActionsSummary struct {
14152	// Abandoning: [Output Only] The total number of instances in the
14153	// managed instance group that are scheduled to be abandoned. Abandoning
14154	// an instance removes it from the managed instance group without
14155	// deleting it.
14156	Abandoning int64 `json:"abandoning,omitempty"`
14157
14158	// Creating: [Output Only] The number of instances in the managed
14159	// instance group that are scheduled to be created or are currently
14160	// being created. If the group fails to create any of these instances,
14161	// it tries again until it creates the instance successfully.
14162	//
14163	// If you have disabled creation retries, this field will not be
14164	// populated; instead, the creatingWithoutRetries field will be
14165	// populated.
14166	Creating int64 `json:"creating,omitempty"`
14167
14168	// CreatingWithoutRetries: [Output Only] The number of instances that
14169	// the managed instance group will attempt to create. The group attempts
14170	// to create each instance only once. If the group fails to create any
14171	// of these instances, it decreases the group's targetSize value
14172	// accordingly.
14173	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
14174
14175	// Deleting: [Output Only] The number of instances in the managed
14176	// instance group that are scheduled to be deleted or are currently
14177	// being deleted.
14178	Deleting int64 `json:"deleting,omitempty"`
14179
14180	// None: [Output Only] The number of instances in the managed instance
14181	// group that are running and have no scheduled actions.
14182	None int64 `json:"none,omitempty"`
14183
14184	// Recreating: [Output Only] The number of instances in the managed
14185	// instance group that are scheduled to be recreated or are currently
14186	// being being recreated. Recreating an instance deletes the existing
14187	// root persistent disk and creates a new disk from the image that is
14188	// defined in the instance template.
14189	Recreating int64 `json:"recreating,omitempty"`
14190
14191	// Refreshing: [Output Only] The number of instances in the managed
14192	// instance group that are being reconfigured with properties that do
14193	// not require a restart or a recreate action. For example, setting or
14194	// removing target pools for the instance.
14195	Refreshing int64 `json:"refreshing,omitempty"`
14196
14197	// Restarting: [Output Only] The number of instances in the managed
14198	// instance group that are scheduled to be restarted or are currently
14199	// being restarted.
14200	Restarting int64 `json:"restarting,omitempty"`
14201
14202	// Verifying: [Output Only] The number of instances in the managed
14203	// instance group that are being verified. See the
14204	// managedInstances[].currentAction property in the listManagedInstances
14205	// method documentation.
14206	Verifying int64 `json:"verifying,omitempty"`
14207
14208	// ForceSendFields is a list of field names (e.g. "Abandoning") to
14209	// unconditionally include in API requests. By default, fields with
14210	// empty values are omitted from API requests. However, any non-pointer,
14211	// non-interface field appearing in ForceSendFields will be sent to the
14212	// server regardless of whether the field is empty or not. This may be
14213	// used to include empty fields in Patch requests.
14214	ForceSendFields []string `json:"-"`
14215
14216	// NullFields is a list of field names (e.g. "Abandoning") to include in
14217	// API requests with the JSON null value. By default, fields with empty
14218	// values are omitted from API requests. However, any field with an
14219	// empty value appearing in NullFields will be sent to the server as
14220	// null. It is an error if a field in this list has a non-empty value.
14221	// This may be used to include null fields in Patch requests.
14222	NullFields []string `json:"-"`
14223}
14224
14225func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
14226	type NoMethod InstanceGroupManagerActionsSummary
14227	raw := NoMethod(*s)
14228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14229}
14230
14231type InstanceGroupManagerAggregatedList struct {
14232	// Id: [Output Only] Unique identifier for the resource; defined by the
14233	// server.
14234	Id string `json:"id,omitempty"`
14235
14236	// Items: A list of InstanceGroupManagersScopedList resources.
14237	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
14238
14239	// Kind: [Output Only] The resource type, which is always
14240	// compute#instanceGroupManagerAggregatedList for an aggregated list of
14241	// managed instance groups.
14242	Kind string `json:"kind,omitempty"`
14243
14244	// NextPageToken: [Output Only] This token allows you to get the next
14245	// page of results for list requests. If the number of results is larger
14246	// than maxResults, use the nextPageToken as a value for the query
14247	// parameter pageToken in the next list request. Subsequent list
14248	// requests will have their own nextPageToken to continue paging through
14249	// the results.
14250	NextPageToken string `json:"nextPageToken,omitempty"`
14251
14252	// SelfLink: [Output Only] Server-defined URL for this resource.
14253	SelfLink string `json:"selfLink,omitempty"`
14254
14255	// Warning: [Output Only] Informational warning message.
14256	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
14257
14258	// ServerResponse contains the HTTP response code and headers from the
14259	// server.
14260	googleapi.ServerResponse `json:"-"`
14261
14262	// ForceSendFields is a list of field names (e.g. "Id") to
14263	// unconditionally include in API requests. By default, fields with
14264	// empty values are omitted from API requests. However, any non-pointer,
14265	// non-interface field appearing in ForceSendFields will be sent to the
14266	// server regardless of whether the field is empty or not. This may be
14267	// used to include empty fields in Patch requests.
14268	ForceSendFields []string `json:"-"`
14269
14270	// NullFields is a list of field names (e.g. "Id") to include in API
14271	// requests with the JSON null value. By default, fields with empty
14272	// values are omitted from API requests. However, any field with an
14273	// empty value appearing in NullFields will be sent to the server as
14274	// null. It is an error if a field in this list has a non-empty value.
14275	// This may be used to include null fields in Patch requests.
14276	NullFields []string `json:"-"`
14277}
14278
14279func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
14280	type NoMethod InstanceGroupManagerAggregatedList
14281	raw := NoMethod(*s)
14282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14283}
14284
14285// InstanceGroupManagerAggregatedListWarning: [Output Only]
14286// Informational warning message.
14287type InstanceGroupManagerAggregatedListWarning struct {
14288	// Code: [Output Only] A warning code, if applicable. For example,
14289	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14290	// the response.
14291	//
14292	// Possible values:
14293	//   "CLEANUP_FAILED"
14294	//   "DEPRECATED_RESOURCE_USED"
14295	//   "DEPRECATED_TYPE_USED"
14296	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14297	//   "EXPERIMENTAL_TYPE_USED"
14298	//   "EXTERNAL_API_WARNING"
14299	//   "FIELD_VALUE_OVERRIDEN"
14300	//   "INJECTED_KERNELS_DEPRECATED"
14301	//   "MISSING_TYPE_DEPENDENCY"
14302	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14303	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14304	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14305	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14306	//   "NEXT_HOP_NOT_RUNNING"
14307	//   "NOT_CRITICAL_ERROR"
14308	//   "NO_RESULTS_ON_PAGE"
14309	//   "REQUIRED_TOS_AGREEMENT"
14310	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14311	//   "RESOURCE_NOT_DELETED"
14312	//   "SCHEMA_VALIDATION_IGNORED"
14313	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14314	//   "UNDECLARED_PROPERTIES"
14315	//   "UNREACHABLE"
14316	Code string `json:"code,omitempty"`
14317
14318	// Data: [Output Only] Metadata about this warning in key: value format.
14319	// For example:
14320	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14321	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
14322
14323	// Message: [Output Only] A human-readable description of the warning
14324	// code.
14325	Message string `json:"message,omitempty"`
14326
14327	// ForceSendFields is a list of field names (e.g. "Code") to
14328	// unconditionally include in API requests. By default, fields with
14329	// empty values are omitted from API requests. However, any non-pointer,
14330	// non-interface field appearing in ForceSendFields will be sent to the
14331	// server regardless of whether the field is empty or not. This may be
14332	// used to include empty fields in Patch requests.
14333	ForceSendFields []string `json:"-"`
14334
14335	// NullFields is a list of field names (e.g. "Code") to include in API
14336	// requests with the JSON null value. By default, fields with empty
14337	// values are omitted from API requests. However, any field with an
14338	// empty value appearing in NullFields will be sent to the server as
14339	// null. It is an error if a field in this list has a non-empty value.
14340	// This may be used to include null fields in Patch requests.
14341	NullFields []string `json:"-"`
14342}
14343
14344func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
14345	type NoMethod InstanceGroupManagerAggregatedListWarning
14346	raw := NoMethod(*s)
14347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14348}
14349
14350type InstanceGroupManagerAggregatedListWarningData struct {
14351	// Key: [Output Only] A key that provides more detail on the warning
14352	// being returned. For example, for warnings where there are no results
14353	// in a list request for a particular zone, this key might be scope and
14354	// the key value might be the zone name. Other examples might be a key
14355	// indicating a deprecated resource and a suggested replacement, or a
14356	// warning about invalid network settings (for example, if an instance
14357	// attempts to perform IP forwarding but is not enabled for IP
14358	// forwarding).
14359	Key string `json:"key,omitempty"`
14360
14361	// Value: [Output Only] A warning data value corresponding to the key.
14362	Value string `json:"value,omitempty"`
14363
14364	// ForceSendFields is a list of field names (e.g. "Key") to
14365	// unconditionally include in API requests. By default, fields with
14366	// empty values are omitted from API requests. However, any non-pointer,
14367	// non-interface field appearing in ForceSendFields will be sent to the
14368	// server regardless of whether the field is empty or not. This may be
14369	// used to include empty fields in Patch requests.
14370	ForceSendFields []string `json:"-"`
14371
14372	// NullFields is a list of field names (e.g. "Key") to include in API
14373	// requests with the JSON null value. By default, fields with empty
14374	// values are omitted from API requests. However, any field with an
14375	// empty value appearing in NullFields will be sent to the server as
14376	// null. It is an error if a field in this list has a non-empty value.
14377	// This may be used to include null fields in Patch requests.
14378	NullFields []string `json:"-"`
14379}
14380
14381func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14382	type NoMethod InstanceGroupManagerAggregatedListWarningData
14383	raw := NoMethod(*s)
14384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14385}
14386
14387type InstanceGroupManagerAutoHealingPolicy struct {
14388	// HealthCheck: The URL for the health check that signals autohealing.
14389	HealthCheck string `json:"healthCheck,omitempty"`
14390
14391	// InitialDelaySec: The number of seconds that the managed instance
14392	// group waits before it applies autohealing policies to new instances
14393	// or recently recreated instances. This initial delay allows instances
14394	// to initialize and run their startup scripts before the instance group
14395	// determines that they are UNHEALTHY. This prevents the managed
14396	// instance group from recreating its instances prematurely. This value
14397	// must be from range [0, 3600].
14398	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
14399
14400	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
14401	// unconditionally include in API requests. By default, fields with
14402	// empty values are omitted from API requests. However, any non-pointer,
14403	// non-interface field appearing in ForceSendFields will be sent to the
14404	// server regardless of whether the field is empty or not. This may be
14405	// used to include empty fields in Patch requests.
14406	ForceSendFields []string `json:"-"`
14407
14408	// NullFields is a list of field names (e.g. "HealthCheck") to include
14409	// in API requests with the JSON null value. By default, fields with
14410	// empty values are omitted from API requests. However, any field with
14411	// an empty value appearing in NullFields will be sent to the server as
14412	// null. It is an error if a field in this list has a non-empty value.
14413	// This may be used to include null fields in Patch requests.
14414	NullFields []string `json:"-"`
14415}
14416
14417func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
14418	type NoMethod InstanceGroupManagerAutoHealingPolicy
14419	raw := NoMethod(*s)
14420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14421}
14422
14423// InstanceGroupManagerList: [Output Only] A list of managed instance
14424// groups.
14425type InstanceGroupManagerList struct {
14426	// Id: [Output Only] Unique identifier for the resource; defined by the
14427	// server.
14428	Id string `json:"id,omitempty"`
14429
14430	// Items: A list of InstanceGroupManager resources.
14431	Items []*InstanceGroupManager `json:"items,omitempty"`
14432
14433	// Kind: [Output Only] The resource type, which is always
14434	// compute#instanceGroupManagerList for a list of managed instance
14435	// groups.
14436	Kind string `json:"kind,omitempty"`
14437
14438	// NextPageToken: [Output Only] This token allows you to get the next
14439	// page of results for list requests. If the number of results is larger
14440	// than maxResults, use the nextPageToken as a value for the query
14441	// parameter pageToken in the next list request. Subsequent list
14442	// requests will have their own nextPageToken to continue paging through
14443	// the results.
14444	NextPageToken string `json:"nextPageToken,omitempty"`
14445
14446	// SelfLink: [Output Only] Server-defined URL for this resource.
14447	SelfLink string `json:"selfLink,omitempty"`
14448
14449	// Warning: [Output Only] Informational warning message.
14450	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
14451
14452	// ServerResponse contains the HTTP response code and headers from the
14453	// server.
14454	googleapi.ServerResponse `json:"-"`
14455
14456	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") 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 *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
14474	type NoMethod InstanceGroupManagerList
14475	raw := NoMethod(*s)
14476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14477}
14478
14479// InstanceGroupManagerListWarning: [Output Only] Informational warning
14480// message.
14481type InstanceGroupManagerListWarning struct {
14482	// Code: [Output Only] A warning code, if applicable. For example,
14483	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14484	// the response.
14485	//
14486	// Possible values:
14487	//   "CLEANUP_FAILED"
14488	//   "DEPRECATED_RESOURCE_USED"
14489	//   "DEPRECATED_TYPE_USED"
14490	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14491	//   "EXPERIMENTAL_TYPE_USED"
14492	//   "EXTERNAL_API_WARNING"
14493	//   "FIELD_VALUE_OVERRIDEN"
14494	//   "INJECTED_KERNELS_DEPRECATED"
14495	//   "MISSING_TYPE_DEPENDENCY"
14496	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14497	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14498	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14499	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14500	//   "NEXT_HOP_NOT_RUNNING"
14501	//   "NOT_CRITICAL_ERROR"
14502	//   "NO_RESULTS_ON_PAGE"
14503	//   "REQUIRED_TOS_AGREEMENT"
14504	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14505	//   "RESOURCE_NOT_DELETED"
14506	//   "SCHEMA_VALIDATION_IGNORED"
14507	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14508	//   "UNDECLARED_PROPERTIES"
14509	//   "UNREACHABLE"
14510	Code string `json:"code,omitempty"`
14511
14512	// Data: [Output Only] Metadata about this warning in key: value format.
14513	// For example:
14514	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14515	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
14516
14517	// Message: [Output Only] A human-readable description of the warning
14518	// code.
14519	Message string `json:"message,omitempty"`
14520
14521	// ForceSendFields is a list of field names (e.g. "Code") to
14522	// unconditionally include in API requests. By default, fields with
14523	// empty values are omitted from API requests. However, any non-pointer,
14524	// non-interface field appearing in ForceSendFields will be sent to the
14525	// server regardless of whether the field is empty or not. This may be
14526	// used to include empty fields in Patch requests.
14527	ForceSendFields []string `json:"-"`
14528
14529	// NullFields is a list of field names (e.g. "Code") to include in API
14530	// requests with the JSON null value. By default, fields with empty
14531	// values are omitted from API requests. However, any field with an
14532	// empty value appearing in NullFields will be sent to the server as
14533	// null. It is an error if a field in this list has a non-empty value.
14534	// This may be used to include null fields in Patch requests.
14535	NullFields []string `json:"-"`
14536}
14537
14538func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
14539	type NoMethod InstanceGroupManagerListWarning
14540	raw := NoMethod(*s)
14541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14542}
14543
14544type InstanceGroupManagerListWarningData struct {
14545	// Key: [Output Only] A key that provides more detail on the warning
14546	// being returned. For example, for warnings where there are no results
14547	// in a list request for a particular zone, this key might be scope and
14548	// the key value might be the zone name. Other examples might be a key
14549	// indicating a deprecated resource and a suggested replacement, or a
14550	// warning about invalid network settings (for example, if an instance
14551	// attempts to perform IP forwarding but is not enabled for IP
14552	// forwarding).
14553	Key string `json:"key,omitempty"`
14554
14555	// Value: [Output Only] A warning data value corresponding to the key.
14556	Value string `json:"value,omitempty"`
14557
14558	// ForceSendFields is a list of field names (e.g. "Key") to
14559	// unconditionally include in API requests. By default, fields with
14560	// empty values are omitted from API requests. However, any non-pointer,
14561	// non-interface field appearing in ForceSendFields will be sent to the
14562	// server regardless of whether the field is empty or not. This may be
14563	// used to include empty fields in Patch requests.
14564	ForceSendFields []string `json:"-"`
14565
14566	// NullFields is a list of field names (e.g. "Key") to include in API
14567	// requests with the JSON null value. By default, fields with empty
14568	// values are omitted from API requests. However, any field with an
14569	// empty value appearing in NullFields will be sent to the server as
14570	// null. It is an error if a field in this list has a non-empty value.
14571	// This may be used to include null fields in Patch requests.
14572	NullFields []string `json:"-"`
14573}
14574
14575func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
14576	type NoMethod InstanceGroupManagerListWarningData
14577	raw := NoMethod(*s)
14578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14579}
14580
14581type InstanceGroupManagerStatus struct {
14582	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
14583	// instance group manager.
14584	Autoscaler string `json:"autoscaler,omitempty"`
14585
14586	// IsStable: [Output Only] A bit indicating whether the managed instance
14587	// group is in a stable state. A stable state means that: none of the
14588	// instances in the managed instance group is currently undergoing any
14589	// type of change (for example, creation, restart, or deletion); no
14590	// future changes are scheduled for instances in the managed instance
14591	// group; and the managed instance group itself is not being modified.
14592	IsStable bool `json:"isStable,omitempty"`
14593
14594	// VersionTarget: [Output Only] A status of consistency of Instances'
14595	// versions with their target version specified by version field on
14596	// Instance Group Manager.
14597	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
14598
14599	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
14600	// unconditionally include in API requests. By default, fields with
14601	// empty values are omitted from API requests. However, any non-pointer,
14602	// non-interface field appearing in ForceSendFields will be sent to the
14603	// server regardless of whether the field is empty or not. This may be
14604	// used to include empty fields in Patch requests.
14605	ForceSendFields []string `json:"-"`
14606
14607	// NullFields is a list of field names (e.g. "Autoscaler") to include in
14608	// API requests with the JSON null value. By default, fields with empty
14609	// values are omitted from API requests. However, any field with an
14610	// empty value appearing in NullFields will be sent to the server as
14611	// null. It is an error if a field in this list has a non-empty value.
14612	// This may be used to include null fields in Patch requests.
14613	NullFields []string `json:"-"`
14614}
14615
14616func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
14617	type NoMethod InstanceGroupManagerStatus
14618	raw := NoMethod(*s)
14619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14620}
14621
14622type InstanceGroupManagerStatusVersionTarget struct {
14623	// IsReached: [Output Only] A bit indicating whether version target has
14624	// been reached in this managed instance group, i.e. all instances are
14625	// in their target version. Instances' target version are specified by
14626	// version field on Instance Group Manager.
14627	IsReached bool `json:"isReached,omitempty"`
14628
14629	// ForceSendFields is a list of field names (e.g. "IsReached") to
14630	// unconditionally include in API requests. By default, fields with
14631	// empty values are omitted from API requests. However, any non-pointer,
14632	// non-interface field appearing in ForceSendFields will be sent to the
14633	// server regardless of whether the field is empty or not. This may be
14634	// used to include empty fields in Patch requests.
14635	ForceSendFields []string `json:"-"`
14636
14637	// NullFields is a list of field names (e.g. "IsReached") to include in
14638	// API requests with the JSON null value. By default, fields with empty
14639	// values are omitted from API requests. However, any field with an
14640	// empty value appearing in NullFields will be sent to the server as
14641	// null. It is an error if a field in this list has a non-empty value.
14642	// This may be used to include null fields in Patch requests.
14643	NullFields []string `json:"-"`
14644}
14645
14646func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
14647	type NoMethod InstanceGroupManagerStatusVersionTarget
14648	raw := NoMethod(*s)
14649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14650}
14651
14652type InstanceGroupManagerUpdatePolicy struct {
14653	// InstanceRedistributionType: The  instance redistribution policy for
14654	// regional managed instance groups. Valid values are:
14655	// - PROACTIVE (default): The group attempts to maintain an even
14656	// distribution of VM instances across zones in the region.
14657	// - NONE: For non-autoscaled groups, proactive redistribution is
14658	// disabled.
14659	//
14660	// Possible values:
14661	//   "NONE"
14662	//   "PROACTIVE"
14663	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
14664
14665	// MaxSurge: The maximum number of instances that can be created above
14666	// the specified targetSize during the update process. By default, a
14667	// fixed value of 1 is used. This value can be either a fixed number or
14668	// a percentage if the instance group has 10 or more instances. If you
14669	// set a percentage, the number of instances will be rounded up if
14670	// necessary.
14671	//
14672	// At least one of either maxSurge or maxUnavailable must be greater
14673	// than 0. Learn more about maxSurge.
14674	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
14675
14676	// MaxUnavailable: The maximum number of instances that can be
14677	// unavailable during the update process. An instance is considered
14678	// available if all of the following conditions are satisfied:
14679	//
14680	//
14681	// - The instance's status is RUNNING.
14682	// - If there is a health check on the instance group, the instance's
14683	// liveness health check result must be HEALTHY at least once. If there
14684	// is no health check on the group, then the instance only needs to have
14685	// a status of RUNNING to be considered available.  By default, a fixed
14686	// value of 1 is used. This value can be either a fixed number or a
14687	// percentage if the instance group has 10 or more instances. If you set
14688	// a percentage, the number of instances will be rounded up if
14689	// necessary.
14690	//
14691	// At least one of either maxSurge or maxUnavailable must be greater
14692	// than 0. Learn more about maxUnavailable.
14693	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
14694
14695	// MinimalAction: Minimal action to be taken on an instance. You can
14696	// specify either RESTART to restart existing instances or REPLACE to
14697	// delete and create new instances from the target template. If you
14698	// specify a RESTART, the Updater will attempt to perform that action
14699	// only. However, if the Updater determines that the minimal action you
14700	// specify is not enough to perform the update, it might perform a more
14701	// disruptive action.
14702	//
14703	// Possible values:
14704	//   "NONE"
14705	//   "REFRESH"
14706	//   "REPLACE"
14707	//   "RESTART"
14708	MinimalAction string `json:"minimalAction,omitempty"`
14709
14710	// ReplacementMethod: What action should be used to replace instances.
14711	// See minimal_action.REPLACE
14712	//
14713	// Possible values:
14714	//   "RECREATE"
14715	//   "SUBSTITUTE"
14716	ReplacementMethod string `json:"replacementMethod,omitempty"`
14717
14718	// Type: The type of update process. You can specify either PROACTIVE so
14719	// that the instance group manager proactively executes actions in order
14720	// to bring instances to their target versions or OPPORTUNISTIC so that
14721	// no action is proactively executed but the update will be performed as
14722	// part of other actions (for example, resizes or recreateInstances
14723	// calls).
14724	//
14725	// Possible values:
14726	//   "OPPORTUNISTIC"
14727	//   "PROACTIVE"
14728	Type string `json:"type,omitempty"`
14729
14730	// ForceSendFields is a list of field names (e.g.
14731	// "InstanceRedistributionType") to unconditionally include in API
14732	// requests. By default, fields with empty values are omitted from API
14733	// requests. However, any non-pointer, non-interface field appearing in
14734	// ForceSendFields will be sent to the server regardless of whether the
14735	// field is empty or not. This may be used to include empty fields in
14736	// Patch requests.
14737	ForceSendFields []string `json:"-"`
14738
14739	// NullFields is a list of field names (e.g.
14740	// "InstanceRedistributionType") to include in API requests with the
14741	// JSON null value. By default, fields with empty values are omitted
14742	// from API requests. However, any field with an empty value appearing
14743	// in NullFields will be sent to the server as null. It is an error if a
14744	// field in this list has a non-empty value. This may be used to include
14745	// null fields in Patch requests.
14746	NullFields []string `json:"-"`
14747}
14748
14749func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
14750	type NoMethod InstanceGroupManagerUpdatePolicy
14751	raw := NoMethod(*s)
14752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14753}
14754
14755type InstanceGroupManagerVersion struct {
14756	// InstanceTemplate: The URL of the instance template that is specified
14757	// for this managed instance group. The group uses this template to
14758	// create new instances in the managed instance group until the
14759	// `targetSize` for this version is reached.
14760	InstanceTemplate string `json:"instanceTemplate,omitempty"`
14761
14762	// Name: Name of the version. Unique among all versions in the scope of
14763	// this managed instance group.
14764	Name string `json:"name,omitempty"`
14765
14766	// TargetSize: Specifies the intended number of instances to be created
14767	// from the instanceTemplate. The final number of instances created from
14768	// the template will be equal to:
14769	// - If expressed as a fixed number, the minimum of either
14770	// targetSize.fixed or instanceGroupManager.targetSize is used.
14771	// - if expressed as a percent, the targetSize would be
14772	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
14773	// is a remainder, the number is rounded up.  If unset, this version
14774	// will update any remaining instances not updated by another version.
14775	// Read Starting a canary update for more information.
14776	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
14777
14778	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
14779	// unconditionally include in API requests. By default, fields with
14780	// empty values are omitted from API requests. However, any non-pointer,
14781	// non-interface field appearing in ForceSendFields will be sent to the
14782	// server regardless of whether the field is empty or not. This may be
14783	// used to include empty fields in Patch requests.
14784	ForceSendFields []string `json:"-"`
14785
14786	// NullFields is a list of field names (e.g. "InstanceTemplate") to
14787	// include in API requests with the JSON null value. By default, fields
14788	// with empty values are omitted from API requests. However, any field
14789	// with an empty value appearing in NullFields will be sent to the
14790	// server as null. It is an error if a field in this list has a
14791	// non-empty value. This may be used to include null fields in Patch
14792	// requests.
14793	NullFields []string `json:"-"`
14794}
14795
14796func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
14797	type NoMethod InstanceGroupManagerVersion
14798	raw := NoMethod(*s)
14799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14800}
14801
14802type InstanceGroupManagersAbandonInstancesRequest struct {
14803	// Instances: The URLs of one or more instances to abandon. This can be
14804	// a full URL or a partial URL, such as
14805	// zones/[ZONE]/instances/[INSTANCE_NAME].
14806	Instances []string `json:"instances,omitempty"`
14807
14808	// ForceSendFields is a list of field names (e.g. "Instances") to
14809	// unconditionally include in API requests. By default, fields with
14810	// empty values are omitted from API requests. However, any non-pointer,
14811	// non-interface field appearing in ForceSendFields will be sent to the
14812	// server regardless of whether the field is empty or not. This may be
14813	// used to include empty fields in Patch requests.
14814	ForceSendFields []string `json:"-"`
14815
14816	// NullFields is a list of field names (e.g. "Instances") to include in
14817	// API requests with the JSON null value. By default, fields with empty
14818	// values are omitted from API requests. However, any field with an
14819	// empty value appearing in NullFields will be sent to the server as
14820	// null. It is an error if a field in this list has a non-empty value.
14821	// This may be used to include null fields in Patch requests.
14822	NullFields []string `json:"-"`
14823}
14824
14825func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
14826	type NoMethod InstanceGroupManagersAbandonInstancesRequest
14827	raw := NoMethod(*s)
14828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14829}
14830
14831// InstanceGroupManagersApplyUpdatesRequest:
14832// InstanceGroupManagers.applyUpdatesToInstances
14833type InstanceGroupManagersApplyUpdatesRequest struct {
14834	// Instances: The list of URLs of one or more instances for which you
14835	// want to apply updates. Each URL can be a full URL or a partial URL,
14836	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
14837	Instances []string `json:"instances,omitempty"`
14838
14839	// MinimalAction: The minimal action that you want to perform on each
14840	// instance during the update:
14841	// - REPLACE: At minimum, delete the instance and create it again.
14842	// - RESTART: Stop the instance and start it again.
14843	// - REFRESH: Do not stop the instance.
14844	// - NONE: Do not disrupt the instance at all.  By default, the minimum
14845	// action is NONE. If your update requires a more disruptive action than
14846	// you set with this flag, the necessary action is performed to execute
14847	// the update.
14848	//
14849	// Possible values:
14850	//   "NONE"
14851	//   "REFRESH"
14852	//   "REPLACE"
14853	//   "RESTART"
14854	MinimalAction string `json:"minimalAction,omitempty"`
14855
14856	// MostDisruptiveAllowedAction: The most disruptive action that you want
14857	// to perform on each instance during the update:
14858	// - REPLACE: Delete the instance and create it again.
14859	// - RESTART: Stop the instance and start it again.
14860	// - REFRESH: Do not stop the instance.
14861	// - NONE: Do not disrupt the instance at all.  By default, the most
14862	// disruptive allowed action is REPLACE. If your update requires a more
14863	// disruptive action than you set with this flag, the update request
14864	// will fail.
14865	//
14866	// Possible values:
14867	//   "NONE"
14868	//   "REFRESH"
14869	//   "REPLACE"
14870	//   "RESTART"
14871	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
14872
14873	// ForceSendFields is a list of field names (e.g. "Instances") to
14874	// unconditionally include in API requests. By default, fields with
14875	// empty values are omitted from API requests. However, any non-pointer,
14876	// non-interface field appearing in ForceSendFields will be sent to the
14877	// server regardless of whether the field is empty or not. This may be
14878	// used to include empty fields in Patch requests.
14879	ForceSendFields []string `json:"-"`
14880
14881	// NullFields is a list of field names (e.g. "Instances") to include in
14882	// API requests with the JSON null value. By default, fields with empty
14883	// values are omitted from API requests. However, any field with an
14884	// empty value appearing in NullFields will be sent to the server as
14885	// null. It is an error if a field in this list has a non-empty value.
14886	// This may be used to include null fields in Patch requests.
14887	NullFields []string `json:"-"`
14888}
14889
14890func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
14891	type NoMethod InstanceGroupManagersApplyUpdatesRequest
14892	raw := NoMethod(*s)
14893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14894}
14895
14896// InstanceGroupManagersCreateInstancesRequest:
14897// InstanceGroupManagers.createInstances
14898type InstanceGroupManagersCreateInstancesRequest struct {
14899	// Instances: [Required] List of specifications of per-instance configs.
14900	Instances []*PerInstanceConfig `json:"instances,omitempty"`
14901
14902	// ForceSendFields is a list of field names (e.g. "Instances") to
14903	// unconditionally include in API requests. By default, fields with
14904	// empty values are omitted from API requests. However, any non-pointer,
14905	// non-interface field appearing in ForceSendFields will be sent to the
14906	// server regardless of whether the field is empty or not. This may be
14907	// used to include empty fields in Patch requests.
14908	ForceSendFields []string `json:"-"`
14909
14910	// NullFields is a list of field names (e.g. "Instances") to include in
14911	// API requests with the JSON null value. By default, fields with empty
14912	// values are omitted from API requests. However, any field with an
14913	// empty value appearing in NullFields will be sent to the server as
14914	// null. It is an error if a field in this list has a non-empty value.
14915	// This may be used to include null fields in Patch requests.
14916	NullFields []string `json:"-"`
14917}
14918
14919func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
14920	type NoMethod InstanceGroupManagersCreateInstancesRequest
14921	raw := NoMethod(*s)
14922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14923}
14924
14925type InstanceGroupManagersDeleteInstancesRequest struct {
14926	// Instances: The URLs of one or more instances to delete. This can be a
14927	// full URL or a partial URL, such as
14928	// zones/[ZONE]/instances/[INSTANCE_NAME].
14929	Instances []string `json:"instances,omitempty"`
14930
14931	// ForceSendFields is a list of field names (e.g. "Instances") to
14932	// unconditionally include in API requests. By default, fields with
14933	// empty values are omitted from API requests. However, any non-pointer,
14934	// non-interface field appearing in ForceSendFields will be sent to the
14935	// server regardless of whether the field is empty or not. This may be
14936	// used to include empty fields in Patch requests.
14937	ForceSendFields []string `json:"-"`
14938
14939	// NullFields is a list of field names (e.g. "Instances") to include in
14940	// API requests with the JSON null value. By default, fields with empty
14941	// values are omitted from API requests. However, any field with an
14942	// empty value appearing in NullFields will be sent to the server as
14943	// null. It is an error if a field in this list has a non-empty value.
14944	// This may be used to include null fields in Patch requests.
14945	NullFields []string `json:"-"`
14946}
14947
14948func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
14949	type NoMethod InstanceGroupManagersDeleteInstancesRequest
14950	raw := NoMethod(*s)
14951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14952}
14953
14954type InstanceGroupManagersListErrorsResponse struct {
14955	// Items: [Output Only] The list of errors of the managed instance
14956	// group.
14957	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
14958
14959	// NextPageToken: [Output Only] This token allows you to get the next
14960	// page of results for list requests. If the number of results is larger
14961	// than maxResults, use the nextPageToken as a value for the query
14962	// parameter pageToken in the next list request. Subsequent list
14963	// requests will have their own nextPageToken to continue paging through
14964	// the results.
14965	NextPageToken string `json:"nextPageToken,omitempty"`
14966
14967	// ServerResponse contains the HTTP response code and headers from the
14968	// server.
14969	googleapi.ServerResponse `json:"-"`
14970
14971	// ForceSendFields is a list of field names (e.g. "Items") to
14972	// unconditionally include in API requests. By default, fields with
14973	// empty values are omitted from API requests. However, any non-pointer,
14974	// non-interface field appearing in ForceSendFields will be sent to the
14975	// server regardless of whether the field is empty or not. This may be
14976	// used to include empty fields in Patch requests.
14977	ForceSendFields []string `json:"-"`
14978
14979	// NullFields is a list of field names (e.g. "Items") to include in API
14980	// requests with the JSON null value. By default, fields with empty
14981	// values are omitted from API requests. However, any field with an
14982	// empty value appearing in NullFields will be sent to the server as
14983	// null. It is an error if a field in this list has a non-empty value.
14984	// This may be used to include null fields in Patch requests.
14985	NullFields []string `json:"-"`
14986}
14987
14988func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
14989	type NoMethod InstanceGroupManagersListErrorsResponse
14990	raw := NoMethod(*s)
14991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14992}
14993
14994type InstanceGroupManagersListManagedInstancesResponse struct {
14995	// ManagedInstances: [Output Only] The list of instances in the managed
14996	// instance group.
14997	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
14998
14999	// NextPageToken: [Output Only] This token allows you to get the next
15000	// page of results for list requests. If the number of results is larger
15001	// than maxResults, use the nextPageToken as a value for the query
15002	// parameter pageToken in the next list request. Subsequent list
15003	// requests will have their own nextPageToken to continue paging through
15004	// the results.
15005	NextPageToken string `json:"nextPageToken,omitempty"`
15006
15007	// ServerResponse contains the HTTP response code and headers from the
15008	// server.
15009	googleapi.ServerResponse `json:"-"`
15010
15011	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
15012	// unconditionally include in API requests. By default, fields with
15013	// empty values are omitted from API requests. However, any non-pointer,
15014	// non-interface field appearing in ForceSendFields will be sent to the
15015	// server regardless of whether the field is empty or not. This may be
15016	// used to include empty fields in Patch requests.
15017	ForceSendFields []string `json:"-"`
15018
15019	// NullFields is a list of field names (e.g. "ManagedInstances") to
15020	// include in API requests with the JSON null value. By default, fields
15021	// with empty values are omitted from API requests. However, any field
15022	// with an empty value appearing in NullFields will be sent to the
15023	// server as null. It is an error if a field in this list has a
15024	// non-empty value. This may be used to include null fields in Patch
15025	// requests.
15026	NullFields []string `json:"-"`
15027}
15028
15029func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
15030	type NoMethod InstanceGroupManagersListManagedInstancesResponse
15031	raw := NoMethod(*s)
15032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15033}
15034
15035type InstanceGroupManagersRecreateInstancesRequest struct {
15036	// Instances: The URLs of one or more instances to recreate. This can be
15037	// a full URL or a partial URL, such as
15038	// zones/[ZONE]/instances/[INSTANCE_NAME].
15039	Instances []string `json:"instances,omitempty"`
15040
15041	// ForceSendFields is a list of field names (e.g. "Instances") to
15042	// unconditionally include in API requests. By default, fields with
15043	// empty values are omitted from API requests. However, any non-pointer,
15044	// non-interface field appearing in ForceSendFields will be sent to the
15045	// server regardless of whether the field is empty or not. This may be
15046	// used to include empty fields in Patch requests.
15047	ForceSendFields []string `json:"-"`
15048
15049	// NullFields is a list of field names (e.g. "Instances") to include in
15050	// API requests with the JSON null value. By default, fields with empty
15051	// values are omitted from API requests. However, any field with an
15052	// empty value appearing in NullFields will be sent to the server as
15053	// null. It is an error if a field in this list has a non-empty value.
15054	// This may be used to include null fields in Patch requests.
15055	NullFields []string `json:"-"`
15056}
15057
15058func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
15059	type NoMethod InstanceGroupManagersRecreateInstancesRequest
15060	raw := NoMethod(*s)
15061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15062}
15063
15064type InstanceGroupManagersScopedList struct {
15065	// InstanceGroupManagers: [Output Only] The list of managed instance
15066	// groups that are contained in the specified project and zone.
15067	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
15068
15069	// Warning: [Output Only] The warning that replaces the list of managed
15070	// instance groups when the list is empty.
15071	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
15072
15073	// ForceSendFields is a list of field names (e.g.
15074	// "InstanceGroupManagers") to unconditionally include in API requests.
15075	// By default, fields with empty values are omitted from API requests.
15076	// However, any non-pointer, non-interface field appearing in
15077	// ForceSendFields will be sent to the server regardless of whether the
15078	// field is empty or not. This may be used to include empty fields in
15079	// Patch requests.
15080	ForceSendFields []string `json:"-"`
15081
15082	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
15083	// include in API requests with the JSON null value. By default, fields
15084	// with empty values are omitted from API requests. However, any field
15085	// with an empty value appearing in NullFields will be sent to the
15086	// server as null. It is an error if a field in this list has a
15087	// non-empty value. This may be used to include null fields in Patch
15088	// requests.
15089	NullFields []string `json:"-"`
15090}
15091
15092func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
15093	type NoMethod InstanceGroupManagersScopedList
15094	raw := NoMethod(*s)
15095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15096}
15097
15098// InstanceGroupManagersScopedListWarning: [Output Only] The warning
15099// that replaces the list of managed instance groups when the list is
15100// empty.
15101type InstanceGroupManagersScopedListWarning struct {
15102	// Code: [Output Only] A warning code, if applicable. For example,
15103	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15104	// the response.
15105	//
15106	// Possible values:
15107	//   "CLEANUP_FAILED"
15108	//   "DEPRECATED_RESOURCE_USED"
15109	//   "DEPRECATED_TYPE_USED"
15110	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15111	//   "EXPERIMENTAL_TYPE_USED"
15112	//   "EXTERNAL_API_WARNING"
15113	//   "FIELD_VALUE_OVERRIDEN"
15114	//   "INJECTED_KERNELS_DEPRECATED"
15115	//   "MISSING_TYPE_DEPENDENCY"
15116	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15117	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15118	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15119	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15120	//   "NEXT_HOP_NOT_RUNNING"
15121	//   "NOT_CRITICAL_ERROR"
15122	//   "NO_RESULTS_ON_PAGE"
15123	//   "REQUIRED_TOS_AGREEMENT"
15124	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15125	//   "RESOURCE_NOT_DELETED"
15126	//   "SCHEMA_VALIDATION_IGNORED"
15127	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15128	//   "UNDECLARED_PROPERTIES"
15129	//   "UNREACHABLE"
15130	Code string `json:"code,omitempty"`
15131
15132	// Data: [Output Only] Metadata about this warning in key: value format.
15133	// For example:
15134	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15135	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
15136
15137	// Message: [Output Only] A human-readable description of the warning
15138	// code.
15139	Message string `json:"message,omitempty"`
15140
15141	// ForceSendFields is a list of field names (e.g. "Code") to
15142	// unconditionally include in API requests. By default, fields with
15143	// empty values are omitted from API requests. However, any non-pointer,
15144	// non-interface field appearing in ForceSendFields will be sent to the
15145	// server regardless of whether the field is empty or not. This may be
15146	// used to include empty fields in Patch requests.
15147	ForceSendFields []string `json:"-"`
15148
15149	// NullFields is a list of field names (e.g. "Code") to include in API
15150	// requests with the JSON null value. By default, fields with empty
15151	// values are omitted from API requests. However, any field with an
15152	// empty value appearing in NullFields will be sent to the server as
15153	// null. It is an error if a field in this list has a non-empty value.
15154	// This may be used to include null fields in Patch requests.
15155	NullFields []string `json:"-"`
15156}
15157
15158func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
15159	type NoMethod InstanceGroupManagersScopedListWarning
15160	raw := NoMethod(*s)
15161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15162}
15163
15164type InstanceGroupManagersScopedListWarningData struct {
15165	// Key: [Output Only] A key that provides more detail on the warning
15166	// being returned. For example, for warnings where there are no results
15167	// in a list request for a particular zone, this key might be scope and
15168	// the key value might be the zone name. Other examples might be a key
15169	// indicating a deprecated resource and a suggested replacement, or a
15170	// warning about invalid network settings (for example, if an instance
15171	// attempts to perform IP forwarding but is not enabled for IP
15172	// forwarding).
15173	Key string `json:"key,omitempty"`
15174
15175	// Value: [Output Only] A warning data value corresponding to the key.
15176	Value string `json:"value,omitempty"`
15177
15178	// ForceSendFields is a list of field names (e.g. "Key") to
15179	// unconditionally include in API requests. By default, fields with
15180	// empty values are omitted from API requests. However, any non-pointer,
15181	// non-interface field appearing in ForceSendFields will be sent to the
15182	// server regardless of whether the field is empty or not. This may be
15183	// used to include empty fields in Patch requests.
15184	ForceSendFields []string `json:"-"`
15185
15186	// NullFields is a list of field names (e.g. "Key") to include in API
15187	// requests with the JSON null value. By default, fields with empty
15188	// values are omitted from API requests. However, any field with an
15189	// empty value appearing in NullFields will be sent to the server as
15190	// null. It is an error if a field in this list has a non-empty value.
15191	// This may be used to include null fields in Patch requests.
15192	NullFields []string `json:"-"`
15193}
15194
15195func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
15196	type NoMethod InstanceGroupManagersScopedListWarningData
15197	raw := NoMethod(*s)
15198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15199}
15200
15201type InstanceGroupManagersSetInstanceTemplateRequest struct {
15202	// InstanceTemplate: The URL of the instance template that is specified
15203	// for this managed instance group. The group uses this template to
15204	// create all new instances in the managed instance group.
15205	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15206
15207	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
15208	// unconditionally include in API requests. By default, fields with
15209	// empty values are omitted from API requests. However, any non-pointer,
15210	// non-interface field appearing in ForceSendFields will be sent to the
15211	// server regardless of whether the field is empty or not. This may be
15212	// used to include empty fields in Patch requests.
15213	ForceSendFields []string `json:"-"`
15214
15215	// NullFields is a list of field names (e.g. "InstanceTemplate") to
15216	// include in API requests with the JSON null value. By default, fields
15217	// with empty values are omitted from API requests. However, any field
15218	// with an empty value appearing in NullFields will be sent to the
15219	// server as null. It is an error if a field in this list has a
15220	// non-empty value. This may be used to include null fields in Patch
15221	// requests.
15222	NullFields []string `json:"-"`
15223}
15224
15225func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
15226	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
15227	raw := NoMethod(*s)
15228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15229}
15230
15231type InstanceGroupManagersSetTargetPoolsRequest struct {
15232	// Fingerprint: The fingerprint of the target pools information. Use
15233	// this optional property to prevent conflicts when multiple users
15234	// change the target pools settings concurrently. Obtain the fingerprint
15235	// with the instanceGroupManagers.get method. Then, include the
15236	// fingerprint in your request to ensure that you do not overwrite
15237	// changes that were applied from another concurrent request.
15238	Fingerprint string `json:"fingerprint,omitempty"`
15239
15240	// TargetPools: The list of target pool URLs that instances in this
15241	// managed instance group belong to. The managed instance group applies
15242	// these target pools to all of the instances in the group. Existing
15243	// instances and new instances in the group all receive these target
15244	// pool settings.
15245	TargetPools []string `json:"targetPools,omitempty"`
15246
15247	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
15248	// unconditionally include in API requests. By default, fields with
15249	// empty values are omitted from API requests. However, any non-pointer,
15250	// non-interface field appearing in ForceSendFields will be sent to the
15251	// server regardless of whether the field is empty or not. This may be
15252	// used to include empty fields in Patch requests.
15253	ForceSendFields []string `json:"-"`
15254
15255	// NullFields is a list of field names (e.g. "Fingerprint") to include
15256	// in API requests with the JSON null value. By default, fields with
15257	// empty values are omitted from API requests. However, any field with
15258	// an empty value appearing in NullFields will be sent to the server as
15259	// null. It is an error if a field in this list has a non-empty value.
15260	// This may be used to include null fields in Patch requests.
15261	NullFields []string `json:"-"`
15262}
15263
15264func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
15265	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
15266	raw := NoMethod(*s)
15267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15268}
15269
15270type InstanceGroupsAddInstancesRequest struct {
15271	// Instances: The list of instances to add to the instance group.
15272	Instances []*InstanceReference `json:"instances,omitempty"`
15273
15274	// ForceSendFields is a list of field names (e.g. "Instances") to
15275	// unconditionally include in API requests. By default, fields with
15276	// empty values are omitted from API requests. However, any non-pointer,
15277	// non-interface field appearing in ForceSendFields will be sent to the
15278	// server regardless of whether the field is empty or not. This may be
15279	// used to include empty fields in Patch requests.
15280	ForceSendFields []string `json:"-"`
15281
15282	// NullFields is a list of field names (e.g. "Instances") to include in
15283	// API requests with the JSON null value. By default, fields with empty
15284	// values are omitted from API requests. However, any field with an
15285	// empty value appearing in NullFields will be sent to the server as
15286	// null. It is an error if a field in this list has a non-empty value.
15287	// This may be used to include null fields in Patch requests.
15288	NullFields []string `json:"-"`
15289}
15290
15291func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
15292	type NoMethod InstanceGroupsAddInstancesRequest
15293	raw := NoMethod(*s)
15294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15295}
15296
15297type InstanceGroupsListInstances struct {
15298	// Id: [Output Only] Unique identifier for the resource; defined by the
15299	// server.
15300	Id string `json:"id,omitempty"`
15301
15302	// Items: A list of InstanceWithNamedPorts resources.
15303	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
15304
15305	// Kind: [Output Only] The resource type, which is always
15306	// compute#instanceGroupsListInstances for the list of instances in the
15307	// specified instance group.
15308	Kind string `json:"kind,omitempty"`
15309
15310	// NextPageToken: [Output Only] This token allows you to get the next
15311	// page of results for list requests. If the number of results is larger
15312	// than maxResults, use the nextPageToken as a value for the query
15313	// parameter pageToken in the next list request. Subsequent list
15314	// requests will have their own nextPageToken to continue paging through
15315	// the results.
15316	NextPageToken string `json:"nextPageToken,omitempty"`
15317
15318	// SelfLink: [Output Only] Server-defined URL for this resource.
15319	SelfLink string `json:"selfLink,omitempty"`
15320
15321	// Warning: [Output Only] Informational warning message.
15322	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
15323
15324	// ServerResponse contains the HTTP response code and headers from the
15325	// server.
15326	googleapi.ServerResponse `json:"-"`
15327
15328	// ForceSendFields is a list of field names (e.g. "Id") to
15329	// unconditionally include in API requests. By default, fields with
15330	// empty values are omitted from API requests. However, any non-pointer,
15331	// non-interface field appearing in ForceSendFields will be sent to the
15332	// server regardless of whether the field is empty or not. This may be
15333	// used to include empty fields in Patch requests.
15334	ForceSendFields []string `json:"-"`
15335
15336	// NullFields is a list of field names (e.g. "Id") to include in API
15337	// requests with the JSON null value. By default, fields with empty
15338	// values are omitted from API requests. However, any field with an
15339	// empty value appearing in NullFields will be sent to the server as
15340	// null. It is an error if a field in this list has a non-empty value.
15341	// This may be used to include null fields in Patch requests.
15342	NullFields []string `json:"-"`
15343}
15344
15345func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
15346	type NoMethod InstanceGroupsListInstances
15347	raw := NoMethod(*s)
15348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15349}
15350
15351// InstanceGroupsListInstancesWarning: [Output Only] Informational
15352// warning message.
15353type InstanceGroupsListInstancesWarning struct {
15354	// Code: [Output Only] A warning code, if applicable. For example,
15355	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15356	// the response.
15357	//
15358	// Possible values:
15359	//   "CLEANUP_FAILED"
15360	//   "DEPRECATED_RESOURCE_USED"
15361	//   "DEPRECATED_TYPE_USED"
15362	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15363	//   "EXPERIMENTAL_TYPE_USED"
15364	//   "EXTERNAL_API_WARNING"
15365	//   "FIELD_VALUE_OVERRIDEN"
15366	//   "INJECTED_KERNELS_DEPRECATED"
15367	//   "MISSING_TYPE_DEPENDENCY"
15368	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15369	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15370	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15371	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15372	//   "NEXT_HOP_NOT_RUNNING"
15373	//   "NOT_CRITICAL_ERROR"
15374	//   "NO_RESULTS_ON_PAGE"
15375	//   "REQUIRED_TOS_AGREEMENT"
15376	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15377	//   "RESOURCE_NOT_DELETED"
15378	//   "SCHEMA_VALIDATION_IGNORED"
15379	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15380	//   "UNDECLARED_PROPERTIES"
15381	//   "UNREACHABLE"
15382	Code string `json:"code,omitempty"`
15383
15384	// Data: [Output Only] Metadata about this warning in key: value format.
15385	// For example:
15386	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15387	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
15388
15389	// Message: [Output Only] A human-readable description of the warning
15390	// code.
15391	Message string `json:"message,omitempty"`
15392
15393	// ForceSendFields is a list of field names (e.g. "Code") to
15394	// unconditionally include in API requests. By default, fields with
15395	// empty values are omitted from API requests. However, any non-pointer,
15396	// non-interface field appearing in ForceSendFields will be sent to the
15397	// server regardless of whether the field is empty or not. This may be
15398	// used to include empty fields in Patch requests.
15399	ForceSendFields []string `json:"-"`
15400
15401	// NullFields is a list of field names (e.g. "Code") to include in API
15402	// requests with the JSON null value. By default, fields with empty
15403	// values are omitted from API requests. However, any field with an
15404	// empty value appearing in NullFields will be sent to the server as
15405	// null. It is an error if a field in this list has a non-empty value.
15406	// This may be used to include null fields in Patch requests.
15407	NullFields []string `json:"-"`
15408}
15409
15410func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
15411	type NoMethod InstanceGroupsListInstancesWarning
15412	raw := NoMethod(*s)
15413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15414}
15415
15416type InstanceGroupsListInstancesWarningData struct {
15417	// Key: [Output Only] A key that provides more detail on the warning
15418	// being returned. For example, for warnings where there are no results
15419	// in a list request for a particular zone, this key might be scope and
15420	// the key value might be the zone name. Other examples might be a key
15421	// indicating a deprecated resource and a suggested replacement, or a
15422	// warning about invalid network settings (for example, if an instance
15423	// attempts to perform IP forwarding but is not enabled for IP
15424	// forwarding).
15425	Key string `json:"key,omitempty"`
15426
15427	// Value: [Output Only] A warning data value corresponding to the key.
15428	Value string `json:"value,omitempty"`
15429
15430	// ForceSendFields is a list of field names (e.g. "Key") to
15431	// unconditionally include in API requests. By default, fields with
15432	// empty values are omitted from API requests. However, any non-pointer,
15433	// non-interface field appearing in ForceSendFields will be sent to the
15434	// server regardless of whether the field is empty or not. This may be
15435	// used to include empty fields in Patch requests.
15436	ForceSendFields []string `json:"-"`
15437
15438	// NullFields is a list of field names (e.g. "Key") to include in API
15439	// requests with the JSON null value. By default, fields with empty
15440	// values are omitted from API requests. However, any field with an
15441	// empty value appearing in NullFields will be sent to the server as
15442	// null. It is an error if a field in this list has a non-empty value.
15443	// This may be used to include null fields in Patch requests.
15444	NullFields []string `json:"-"`
15445}
15446
15447func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
15448	type NoMethod InstanceGroupsListInstancesWarningData
15449	raw := NoMethod(*s)
15450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15451}
15452
15453type InstanceGroupsListInstancesRequest struct {
15454	// InstanceState: A filter for the state of the instances in the
15455	// instance group. Valid options are ALL or RUNNING. If you do not
15456	// specify this parameter the list includes all instances regardless of
15457	// their state.
15458	//
15459	// Possible values:
15460	//   "ALL"
15461	//   "RUNNING"
15462	InstanceState string `json:"instanceState,omitempty"`
15463
15464	// ForceSendFields is a list of field names (e.g. "InstanceState") to
15465	// unconditionally include in API requests. By default, fields with
15466	// empty values are omitted from API requests. However, any non-pointer,
15467	// non-interface field appearing in ForceSendFields will be sent to the
15468	// server regardless of whether the field is empty or not. This may be
15469	// used to include empty fields in Patch requests.
15470	ForceSendFields []string `json:"-"`
15471
15472	// NullFields is a list of field names (e.g. "InstanceState") to include
15473	// in API requests with the JSON null value. By default, fields with
15474	// empty values are omitted from API requests. However, any field with
15475	// an empty value appearing in NullFields will be sent to the server as
15476	// null. It is an error if a field in this list has a non-empty value.
15477	// This may be used to include null fields in Patch requests.
15478	NullFields []string `json:"-"`
15479}
15480
15481func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
15482	type NoMethod InstanceGroupsListInstancesRequest
15483	raw := NoMethod(*s)
15484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15485}
15486
15487type InstanceGroupsRemoveInstancesRequest struct {
15488	// Instances: The list of instances to remove from the instance group.
15489	Instances []*InstanceReference `json:"instances,omitempty"`
15490
15491	// ForceSendFields is a list of field names (e.g. "Instances") to
15492	// unconditionally include in API requests. By default, fields with
15493	// empty values are omitted from API requests. However, any non-pointer,
15494	// non-interface field appearing in ForceSendFields will be sent to the
15495	// server regardless of whether the field is empty or not. This may be
15496	// used to include empty fields in Patch requests.
15497	ForceSendFields []string `json:"-"`
15498
15499	// NullFields is a list of field names (e.g. "Instances") to include in
15500	// API requests with the JSON null value. By default, fields with empty
15501	// values are omitted from API requests. However, any field with an
15502	// empty value appearing in NullFields will be sent to the server as
15503	// null. It is an error if a field in this list has a non-empty value.
15504	// This may be used to include null fields in Patch requests.
15505	NullFields []string `json:"-"`
15506}
15507
15508func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
15509	type NoMethod InstanceGroupsRemoveInstancesRequest
15510	raw := NoMethod(*s)
15511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15512}
15513
15514type InstanceGroupsScopedList struct {
15515	// InstanceGroups: [Output Only] The list of instance groups that are
15516	// contained in this scope.
15517	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
15518
15519	// Warning: [Output Only] An informational warning that replaces the
15520	// list of instance groups when the list is empty.
15521	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
15522
15523	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
15524	// unconditionally include in API requests. By default, fields with
15525	// empty values are omitted from API requests. However, any non-pointer,
15526	// non-interface field appearing in ForceSendFields will be sent to the
15527	// server regardless of whether the field is empty or not. This may be
15528	// used to include empty fields in Patch requests.
15529	ForceSendFields []string `json:"-"`
15530
15531	// NullFields is a list of field names (e.g. "InstanceGroups") to
15532	// include in API requests with the JSON null value. By default, fields
15533	// with empty values are omitted from API requests. However, any field
15534	// with an empty value appearing in NullFields will be sent to the
15535	// server as null. It is an error if a field in this list has a
15536	// non-empty value. This may be used to include null fields in Patch
15537	// requests.
15538	NullFields []string `json:"-"`
15539}
15540
15541func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
15542	type NoMethod InstanceGroupsScopedList
15543	raw := NoMethod(*s)
15544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15545}
15546
15547// InstanceGroupsScopedListWarning: [Output Only] An informational
15548// warning that replaces the list of instance groups when the list is
15549// empty.
15550type InstanceGroupsScopedListWarning struct {
15551	// Code: [Output Only] A warning code, if applicable. For example,
15552	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15553	// the response.
15554	//
15555	// Possible values:
15556	//   "CLEANUP_FAILED"
15557	//   "DEPRECATED_RESOURCE_USED"
15558	//   "DEPRECATED_TYPE_USED"
15559	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15560	//   "EXPERIMENTAL_TYPE_USED"
15561	//   "EXTERNAL_API_WARNING"
15562	//   "FIELD_VALUE_OVERRIDEN"
15563	//   "INJECTED_KERNELS_DEPRECATED"
15564	//   "MISSING_TYPE_DEPENDENCY"
15565	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15566	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15567	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15568	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15569	//   "NEXT_HOP_NOT_RUNNING"
15570	//   "NOT_CRITICAL_ERROR"
15571	//   "NO_RESULTS_ON_PAGE"
15572	//   "REQUIRED_TOS_AGREEMENT"
15573	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15574	//   "RESOURCE_NOT_DELETED"
15575	//   "SCHEMA_VALIDATION_IGNORED"
15576	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15577	//   "UNDECLARED_PROPERTIES"
15578	//   "UNREACHABLE"
15579	Code string `json:"code,omitempty"`
15580
15581	// Data: [Output Only] Metadata about this warning in key: value format.
15582	// For example:
15583	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15584	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
15585
15586	// Message: [Output Only] A human-readable description of the warning
15587	// code.
15588	Message string `json:"message,omitempty"`
15589
15590	// ForceSendFields is a list of field names (e.g. "Code") to
15591	// unconditionally include in API requests. By default, fields with
15592	// empty values are omitted from API requests. However, any non-pointer,
15593	// non-interface field appearing in ForceSendFields will be sent to the
15594	// server regardless of whether the field is empty or not. This may be
15595	// used to include empty fields in Patch requests.
15596	ForceSendFields []string `json:"-"`
15597
15598	// NullFields is a list of field names (e.g. "Code") to include in API
15599	// requests with the JSON null value. By default, fields with empty
15600	// values are omitted from API requests. However, any field with an
15601	// empty value appearing in NullFields will be sent to the server as
15602	// null. It is an error if a field in this list has a non-empty value.
15603	// This may be used to include null fields in Patch requests.
15604	NullFields []string `json:"-"`
15605}
15606
15607func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
15608	type NoMethod InstanceGroupsScopedListWarning
15609	raw := NoMethod(*s)
15610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15611}
15612
15613type InstanceGroupsScopedListWarningData struct {
15614	// Key: [Output Only] A key that provides more detail on the warning
15615	// being returned. For example, for warnings where there are no results
15616	// in a list request for a particular zone, this key might be scope and
15617	// the key value might be the zone name. Other examples might be a key
15618	// indicating a deprecated resource and a suggested replacement, or a
15619	// warning about invalid network settings (for example, if an instance
15620	// attempts to perform IP forwarding but is not enabled for IP
15621	// forwarding).
15622	Key string `json:"key,omitempty"`
15623
15624	// Value: [Output Only] A warning data value corresponding to the key.
15625	Value string `json:"value,omitempty"`
15626
15627	// ForceSendFields is a list of field names (e.g. "Key") to
15628	// unconditionally include in API requests. By default, fields with
15629	// empty values are omitted from API requests. However, any non-pointer,
15630	// non-interface field appearing in ForceSendFields will be sent to the
15631	// server regardless of whether the field is empty or not. This may be
15632	// used to include empty fields in Patch requests.
15633	ForceSendFields []string `json:"-"`
15634
15635	// NullFields is a list of field names (e.g. "Key") to include in API
15636	// requests with the JSON null value. By default, fields with empty
15637	// values are omitted from API requests. However, any field with an
15638	// empty value appearing in NullFields will be sent to the server as
15639	// null. It is an error if a field in this list has a non-empty value.
15640	// This may be used to include null fields in Patch requests.
15641	NullFields []string `json:"-"`
15642}
15643
15644func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
15645	type NoMethod InstanceGroupsScopedListWarningData
15646	raw := NoMethod(*s)
15647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15648}
15649
15650type InstanceGroupsSetNamedPortsRequest struct {
15651	// Fingerprint: The fingerprint of the named ports information for this
15652	// instance group. Use this optional property to prevent conflicts when
15653	// multiple users change the named ports settings concurrently. Obtain
15654	// the fingerprint with the instanceGroups.get method. Then, include the
15655	// fingerprint in your request to ensure that you do not overwrite
15656	// changes that were applied from another concurrent request. A request
15657	// with an incorrect fingerprint will fail with error 412
15658	// conditionNotMet.
15659	Fingerprint string `json:"fingerprint,omitempty"`
15660
15661	// NamedPorts: The list of named ports to set for this instance group.
15662	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
15663
15664	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
15665	// unconditionally include in API requests. By default, fields with
15666	// empty values are omitted from API requests. However, any non-pointer,
15667	// non-interface field appearing in ForceSendFields will be sent to the
15668	// server regardless of whether the field is empty or not. This may be
15669	// used to include empty fields in Patch requests.
15670	ForceSendFields []string `json:"-"`
15671
15672	// NullFields is a list of field names (e.g. "Fingerprint") to include
15673	// in API requests with the JSON null value. By default, fields with
15674	// empty values are omitted from API requests. However, any field with
15675	// an empty value appearing in NullFields will be sent to the server as
15676	// null. It is an error if a field in this list has a non-empty value.
15677	// This may be used to include null fields in Patch requests.
15678	NullFields []string `json:"-"`
15679}
15680
15681func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
15682	type NoMethod InstanceGroupsSetNamedPortsRequest
15683	raw := NoMethod(*s)
15684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15685}
15686
15687// InstanceList: Contains a list of instances.
15688type InstanceList struct {
15689	// Id: [Output Only] Unique identifier for the resource; defined by the
15690	// server.
15691	Id string `json:"id,omitempty"`
15692
15693	// Items: A list of Instance resources.
15694	Items []*Instance `json:"items,omitempty"`
15695
15696	// Kind: [Output Only] Type of resource. Always compute#instanceList for
15697	// lists of Instance resources.
15698	Kind string `json:"kind,omitempty"`
15699
15700	// NextPageToken: [Output Only] This token allows you to get the next
15701	// page of results for list requests. If the number of results is larger
15702	// than maxResults, use the nextPageToken as a value for the query
15703	// parameter pageToken in the next list request. Subsequent list
15704	// requests will have their own nextPageToken to continue paging through
15705	// the results.
15706	NextPageToken string `json:"nextPageToken,omitempty"`
15707
15708	// SelfLink: [Output Only] Server-defined URL for this resource.
15709	SelfLink string `json:"selfLink,omitempty"`
15710
15711	// Warning: [Output Only] Informational warning message.
15712	Warning *InstanceListWarning `json:"warning,omitempty"`
15713
15714	// ServerResponse contains the HTTP response code and headers from the
15715	// server.
15716	googleapi.ServerResponse `json:"-"`
15717
15718	// ForceSendFields is a list of field names (e.g. "Id") to
15719	// unconditionally include in API requests. By default, fields with
15720	// empty values are omitted from API requests. However, any non-pointer,
15721	// non-interface field appearing in ForceSendFields will be sent to the
15722	// server regardless of whether the field is empty or not. This may be
15723	// used to include empty fields in Patch requests.
15724	ForceSendFields []string `json:"-"`
15725
15726	// NullFields is a list of field names (e.g. "Id") to include in API
15727	// requests with the JSON null value. By default, fields with empty
15728	// values are omitted from API requests. However, any field with an
15729	// empty value appearing in NullFields will be sent to the server as
15730	// null. It is an error if a field in this list has a non-empty value.
15731	// This may be used to include null fields in Patch requests.
15732	NullFields []string `json:"-"`
15733}
15734
15735func (s *InstanceList) MarshalJSON() ([]byte, error) {
15736	type NoMethod InstanceList
15737	raw := NoMethod(*s)
15738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15739}
15740
15741// InstanceListWarning: [Output Only] Informational warning message.
15742type InstanceListWarning struct {
15743	// Code: [Output Only] A warning code, if applicable. For example,
15744	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15745	// the response.
15746	//
15747	// Possible values:
15748	//   "CLEANUP_FAILED"
15749	//   "DEPRECATED_RESOURCE_USED"
15750	//   "DEPRECATED_TYPE_USED"
15751	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15752	//   "EXPERIMENTAL_TYPE_USED"
15753	//   "EXTERNAL_API_WARNING"
15754	//   "FIELD_VALUE_OVERRIDEN"
15755	//   "INJECTED_KERNELS_DEPRECATED"
15756	//   "MISSING_TYPE_DEPENDENCY"
15757	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15758	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15759	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15760	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15761	//   "NEXT_HOP_NOT_RUNNING"
15762	//   "NOT_CRITICAL_ERROR"
15763	//   "NO_RESULTS_ON_PAGE"
15764	//   "REQUIRED_TOS_AGREEMENT"
15765	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15766	//   "RESOURCE_NOT_DELETED"
15767	//   "SCHEMA_VALIDATION_IGNORED"
15768	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15769	//   "UNDECLARED_PROPERTIES"
15770	//   "UNREACHABLE"
15771	Code string `json:"code,omitempty"`
15772
15773	// Data: [Output Only] Metadata about this warning in key: value format.
15774	// For example:
15775	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15776	Data []*InstanceListWarningData `json:"data,omitempty"`
15777
15778	// Message: [Output Only] A human-readable description of the warning
15779	// code.
15780	Message string `json:"message,omitempty"`
15781
15782	// ForceSendFields is a list of field names (e.g. "Code") to
15783	// unconditionally include in API requests. By default, fields with
15784	// empty values are omitted from API requests. However, any non-pointer,
15785	// non-interface field appearing in ForceSendFields will be sent to the
15786	// server regardless of whether the field is empty or not. This may be
15787	// used to include empty fields in Patch requests.
15788	ForceSendFields []string `json:"-"`
15789
15790	// NullFields is a list of field names (e.g. "Code") to include in API
15791	// requests with the JSON null value. By default, fields with empty
15792	// values are omitted from API requests. However, any field with an
15793	// empty value appearing in NullFields will be sent to the server as
15794	// null. It is an error if a field in this list has a non-empty value.
15795	// This may be used to include null fields in Patch requests.
15796	NullFields []string `json:"-"`
15797}
15798
15799func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
15800	type NoMethod InstanceListWarning
15801	raw := NoMethod(*s)
15802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15803}
15804
15805type InstanceListWarningData struct {
15806	// Key: [Output Only] A key that provides more detail on the warning
15807	// being returned. For example, for warnings where there are no results
15808	// in a list request for a particular zone, this key might be scope and
15809	// the key value might be the zone name. Other examples might be a key
15810	// indicating a deprecated resource and a suggested replacement, or a
15811	// warning about invalid network settings (for example, if an instance
15812	// attempts to perform IP forwarding but is not enabled for IP
15813	// forwarding).
15814	Key string `json:"key,omitempty"`
15815
15816	// Value: [Output Only] A warning data value corresponding to the key.
15817	Value string `json:"value,omitempty"`
15818
15819	// ForceSendFields is a list of field names (e.g. "Key") to
15820	// unconditionally include in API requests. By default, fields with
15821	// empty values are omitted from API requests. However, any non-pointer,
15822	// non-interface field appearing in ForceSendFields will be sent to the
15823	// server regardless of whether the field is empty or not. This may be
15824	// used to include empty fields in Patch requests.
15825	ForceSendFields []string `json:"-"`
15826
15827	// NullFields is a list of field names (e.g. "Key") to include in API
15828	// requests with the JSON null value. By default, fields with empty
15829	// values are omitted from API requests. However, any field with an
15830	// empty value appearing in NullFields will be sent to the server as
15831	// null. It is an error if a field in this list has a non-empty value.
15832	// This may be used to include null fields in Patch requests.
15833	NullFields []string `json:"-"`
15834}
15835
15836func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
15837	type NoMethod InstanceListWarningData
15838	raw := NoMethod(*s)
15839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15840}
15841
15842// InstanceListReferrers: Contains a list of instance referrers.
15843type InstanceListReferrers struct {
15844	// Id: [Output Only] Unique identifier for the resource; defined by the
15845	// server.
15846	Id string `json:"id,omitempty"`
15847
15848	// Items: A list of Reference resources.
15849	Items []*Reference `json:"items,omitempty"`
15850
15851	// Kind: [Output Only] Type of resource. Always
15852	// compute#instanceListReferrers for lists of Instance referrers.
15853	Kind string `json:"kind,omitempty"`
15854
15855	// NextPageToken: [Output Only] This token allows you to get the next
15856	// page of results for list requests. If the number of results is larger
15857	// than maxResults, use the nextPageToken as a value for the query
15858	// parameter pageToken in the next list request. Subsequent list
15859	// requests will have their own nextPageToken to continue paging through
15860	// the results.
15861	NextPageToken string `json:"nextPageToken,omitempty"`
15862
15863	// SelfLink: [Output Only] Server-defined URL for this resource.
15864	SelfLink string `json:"selfLink,omitempty"`
15865
15866	// Warning: [Output Only] Informational warning message.
15867	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
15868
15869	// ServerResponse contains the HTTP response code and headers from the
15870	// server.
15871	googleapi.ServerResponse `json:"-"`
15872
15873	// ForceSendFields is a list of field names (e.g. "Id") to
15874	// unconditionally include in API requests. By default, fields with
15875	// empty values are omitted from API requests. However, any non-pointer,
15876	// non-interface field appearing in ForceSendFields will be sent to the
15877	// server regardless of whether the field is empty or not. This may be
15878	// used to include empty fields in Patch requests.
15879	ForceSendFields []string `json:"-"`
15880
15881	// NullFields is a list of field names (e.g. "Id") to include in API
15882	// requests with the JSON null value. By default, fields with empty
15883	// values are omitted from API requests. However, any field with an
15884	// empty value appearing in NullFields will be sent to the server as
15885	// null. It is an error if a field in this list has a non-empty value.
15886	// This may be used to include null fields in Patch requests.
15887	NullFields []string `json:"-"`
15888}
15889
15890func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
15891	type NoMethod InstanceListReferrers
15892	raw := NoMethod(*s)
15893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15894}
15895
15896// InstanceListReferrersWarning: [Output Only] Informational warning
15897// message.
15898type InstanceListReferrersWarning struct {
15899	// Code: [Output Only] A warning code, if applicable. For example,
15900	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15901	// the response.
15902	//
15903	// Possible values:
15904	//   "CLEANUP_FAILED"
15905	//   "DEPRECATED_RESOURCE_USED"
15906	//   "DEPRECATED_TYPE_USED"
15907	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15908	//   "EXPERIMENTAL_TYPE_USED"
15909	//   "EXTERNAL_API_WARNING"
15910	//   "FIELD_VALUE_OVERRIDEN"
15911	//   "INJECTED_KERNELS_DEPRECATED"
15912	//   "MISSING_TYPE_DEPENDENCY"
15913	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15914	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15915	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15916	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15917	//   "NEXT_HOP_NOT_RUNNING"
15918	//   "NOT_CRITICAL_ERROR"
15919	//   "NO_RESULTS_ON_PAGE"
15920	//   "REQUIRED_TOS_AGREEMENT"
15921	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15922	//   "RESOURCE_NOT_DELETED"
15923	//   "SCHEMA_VALIDATION_IGNORED"
15924	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15925	//   "UNDECLARED_PROPERTIES"
15926	//   "UNREACHABLE"
15927	Code string `json:"code,omitempty"`
15928
15929	// Data: [Output Only] Metadata about this warning in key: value format.
15930	// For example:
15931	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15932	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
15933
15934	// Message: [Output Only] A human-readable description of the warning
15935	// code.
15936	Message string `json:"message,omitempty"`
15937
15938	// ForceSendFields is a list of field names (e.g. "Code") to
15939	// unconditionally include in API requests. By default, fields with
15940	// empty values are omitted from API requests. However, any non-pointer,
15941	// non-interface field appearing in ForceSendFields will be sent to the
15942	// server regardless of whether the field is empty or not. This may be
15943	// used to include empty fields in Patch requests.
15944	ForceSendFields []string `json:"-"`
15945
15946	// NullFields is a list of field names (e.g. "Code") to include in API
15947	// requests with the JSON null value. By default, fields with empty
15948	// values are omitted from API requests. However, any field with an
15949	// empty value appearing in NullFields will be sent to the server as
15950	// null. It is an error if a field in this list has a non-empty value.
15951	// This may be used to include null fields in Patch requests.
15952	NullFields []string `json:"-"`
15953}
15954
15955func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
15956	type NoMethod InstanceListReferrersWarning
15957	raw := NoMethod(*s)
15958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15959}
15960
15961type InstanceListReferrersWarningData struct {
15962	// Key: [Output Only] A key that provides more detail on the warning
15963	// being returned. For example, for warnings where there are no results
15964	// in a list request for a particular zone, this key might be scope and
15965	// the key value might be the zone name. Other examples might be a key
15966	// indicating a deprecated resource and a suggested replacement, or a
15967	// warning about invalid network settings (for example, if an instance
15968	// attempts to perform IP forwarding but is not enabled for IP
15969	// forwarding).
15970	Key string `json:"key,omitempty"`
15971
15972	// Value: [Output Only] A warning data value corresponding to the key.
15973	Value string `json:"value,omitempty"`
15974
15975	// ForceSendFields is a list of field names (e.g. "Key") to
15976	// unconditionally include in API requests. By default, fields with
15977	// empty values are omitted from API requests. However, any non-pointer,
15978	// non-interface field appearing in ForceSendFields will be sent to the
15979	// server regardless of whether the field is empty or not. This may be
15980	// used to include empty fields in Patch requests.
15981	ForceSendFields []string `json:"-"`
15982
15983	// NullFields is a list of field names (e.g. "Key") to include in API
15984	// requests with the JSON null value. By default, fields with empty
15985	// values are omitted from API requests. However, any field with an
15986	// empty value appearing in NullFields will be sent to the server as
15987	// null. It is an error if a field in this list has a non-empty value.
15988	// This may be used to include null fields in Patch requests.
15989	NullFields []string `json:"-"`
15990}
15991
15992func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
15993	type NoMethod InstanceListReferrersWarningData
15994	raw := NoMethod(*s)
15995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15996}
15997
15998type InstanceManagedByIgmError struct {
15999	// Error: [Output Only] Contents of the error.
16000	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
16001
16002	// InstanceActionDetails: [Output Only] Details of the instance action
16003	// that triggered this error. May be null, if the error was not caused
16004	// by an action on an instance. This field is optional.
16005	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
16006
16007	// Timestamp: [Output Only] The time that this error occurred. This
16008	// value is in RFC3339 text format.
16009	Timestamp string `json:"timestamp,omitempty"`
16010
16011	// ForceSendFields is a list of field names (e.g. "Error") to
16012	// unconditionally include in API requests. By default, fields with
16013	// empty values are omitted from API requests. However, any non-pointer,
16014	// non-interface field appearing in ForceSendFields will be sent to the
16015	// server regardless of whether the field is empty or not. This may be
16016	// used to include empty fields in Patch requests.
16017	ForceSendFields []string `json:"-"`
16018
16019	// NullFields is a list of field names (e.g. "Error") to include in API
16020	// requests with the JSON null value. By default, fields with empty
16021	// values are omitted from API requests. However, any field with an
16022	// empty value appearing in NullFields will be sent to the server as
16023	// null. It is an error if a field in this list has a non-empty value.
16024	// This may be used to include null fields in Patch requests.
16025	NullFields []string `json:"-"`
16026}
16027
16028func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
16029	type NoMethod InstanceManagedByIgmError
16030	raw := NoMethod(*s)
16031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16032}
16033
16034type InstanceManagedByIgmErrorInstanceActionDetails struct {
16035	// Action: [Output Only] Action that managed instance group was
16036	// executing on the instance when the error occurred. Possible values:
16037	//
16038	// Possible values:
16039	//   "ABANDONING"
16040	//   "CREATING"
16041	//   "CREATING_WITHOUT_RETRIES"
16042	//   "DELETING"
16043	//   "NONE"
16044	//   "RECREATING"
16045	//   "REFRESHING"
16046	//   "RESTARTING"
16047	//   "VERIFYING"
16048	Action string `json:"action,omitempty"`
16049
16050	// Instance: [Output Only] The URL of the instance. The URL can be set
16051	// even if the instance has not yet been created.
16052	Instance string `json:"instance,omitempty"`
16053
16054	// Version: [Output Only] Version this instance was created from, or was
16055	// being created from, but the creation failed. Corresponds to one of
16056	// the versions that were set on the Instance Group Manager resource at
16057	// the time this instance was being created.
16058	Version *ManagedInstanceVersion `json:"version,omitempty"`
16059
16060	// ForceSendFields is a list of field names (e.g. "Action") to
16061	// unconditionally include in API requests. By default, fields with
16062	// empty values are omitted from API requests. However, any non-pointer,
16063	// non-interface field appearing in ForceSendFields will be sent to the
16064	// server regardless of whether the field is empty or not. This may be
16065	// used to include empty fields in Patch requests.
16066	ForceSendFields []string `json:"-"`
16067
16068	// NullFields is a list of field names (e.g. "Action") to include in API
16069	// requests with the JSON null value. By default, fields with empty
16070	// values are omitted from API requests. However, any field with an
16071	// empty value appearing in NullFields will be sent to the server as
16072	// null. It is an error if a field in this list has a non-empty value.
16073	// This may be used to include null fields in Patch requests.
16074	NullFields []string `json:"-"`
16075}
16076
16077func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
16078	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
16079	raw := NoMethod(*s)
16080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16081}
16082
16083type InstanceManagedByIgmErrorManagedInstanceError struct {
16084	// Code: [Output Only] Error code.
16085	Code string `json:"code,omitempty"`
16086
16087	// Message: [Output Only] Error message.
16088	Message string `json:"message,omitempty"`
16089
16090	// ForceSendFields is a list of field names (e.g. "Code") to
16091	// unconditionally include in API requests. By default, fields with
16092	// empty values are omitted from API requests. However, any non-pointer,
16093	// non-interface field appearing in ForceSendFields will be sent to the
16094	// server regardless of whether the field is empty or not. This may be
16095	// used to include empty fields in Patch requests.
16096	ForceSendFields []string `json:"-"`
16097
16098	// NullFields is a list of field names (e.g. "Code") to include in API
16099	// requests with the JSON null value. By default, fields with empty
16100	// values are omitted from API requests. However, any field with an
16101	// empty value appearing in NullFields will be sent to the server as
16102	// null. It is an error if a field in this list has a non-empty value.
16103	// This may be used to include null fields in Patch requests.
16104	NullFields []string `json:"-"`
16105}
16106
16107func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
16108	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
16109	raw := NoMethod(*s)
16110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16111}
16112
16113type InstanceMoveRequest struct {
16114	// DestinationZone: The URL of the destination zone to move the
16115	// instance. This can be a full or partial URL. For example, the
16116	// following are all valid URLs to a zone:
16117	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
16118	//
16119	// - projects/project/zones/zone
16120	// - zones/zone
16121	DestinationZone string `json:"destinationZone,omitempty"`
16122
16123	// TargetInstance: The URL of the target instance to move. This can be a
16124	// full or partial URL. For example, the following are all valid URLs to
16125	// an instance:
16126	// -
16127	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
16128	// - projects/project/zones/zone/instances/instance
16129	// - zones/zone/instances/instance
16130	TargetInstance string `json:"targetInstance,omitempty"`
16131
16132	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
16133	// unconditionally include in API requests. By default, fields with
16134	// empty values are omitted from API requests. However, any non-pointer,
16135	// non-interface field appearing in ForceSendFields will be sent to the
16136	// server regardless of whether the field is empty or not. This may be
16137	// used to include empty fields in Patch requests.
16138	ForceSendFields []string `json:"-"`
16139
16140	// NullFields is a list of field names (e.g. "DestinationZone") to
16141	// include in API requests with the JSON null value. By default, fields
16142	// with empty values are omitted from API requests. However, any field
16143	// with an empty value appearing in NullFields will be sent to the
16144	// server as null. It is an error if a field in this list has a
16145	// non-empty value. This may be used to include null fields in Patch
16146	// requests.
16147	NullFields []string `json:"-"`
16148}
16149
16150func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
16151	type NoMethod InstanceMoveRequest
16152	raw := NoMethod(*s)
16153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16154}
16155
16156type InstanceProperties struct {
16157	// CanIpForward: Enables instances created based on these properties to
16158	// send packets with source IP addresses other than their own and
16159	// receive packets with destination IP addresses other than their own.
16160	// If these instances will be used as an IP gateway or it will be set as
16161	// the next-hop in a Route resource, specify true. If unsure, leave this
16162	// set to false. See the Enable IP forwarding documentation for more
16163	// information.
16164	CanIpForward bool `json:"canIpForward,omitempty"`
16165
16166	// Description: An optional text description for the instances that are
16167	// created from these properties.
16168	Description string `json:"description,omitempty"`
16169
16170	// Disks: An array of disks that are associated with the instances that
16171	// are created from these properties.
16172	Disks []*AttachedDisk `json:"disks,omitempty"`
16173
16174	// GuestAccelerators: A list of guest accelerator cards' type and count
16175	// to use for instances created from these properties.
16176	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
16177
16178	// Labels: Labels to apply to instances that are created from these
16179	// properties.
16180	Labels map[string]string `json:"labels,omitempty"`
16181
16182	// MachineType: The machine type to use for instances that are created
16183	// from these properties.
16184	MachineType string `json:"machineType,omitempty"`
16185
16186	// Metadata: The metadata key/value pairs to assign to instances that
16187	// are created from these properties. These pairs can consist of custom
16188	// metadata or predefined keys. See Project and instance metadata for
16189	// more information.
16190	Metadata *Metadata `json:"metadata,omitempty"`
16191
16192	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The
16193	// instance may be scheduled on the specified or newer cpu/platform.
16194	// Applicable values are the friendly names of CPU platforms, such as
16195	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
16196	// Bridge". For more information, read Specifying a Minimum CPU
16197	// Platform.
16198	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
16199
16200	// NetworkInterfaces: An array of network access configurations for this
16201	// interface.
16202	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
16203
16204	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs.
16205	// If not specified, use  INHERIT_FROM_SUBNETWORK as default.
16206	//
16207	// Possible values:
16208	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
16209	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
16210	//   "INHERIT_FROM_SUBNETWORK"
16211	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
16212
16213	// ReservationAffinity: Specifies the reservations that instances can
16214	// consume from.
16215	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
16216
16217	// ResourcePolicies: Resource policies (names, not ULRs) applied to
16218	// instances created from these properties.
16219	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
16220
16221	// Scheduling: Specifies the scheduling options for the instances that
16222	// are created from these properties.
16223	Scheduling *Scheduling `json:"scheduling,omitempty"`
16224
16225	// ServiceAccounts: A list of service accounts with specified scopes.
16226	// Access tokens for these service accounts are available to the
16227	// instances that are created from these properties. Use metadata
16228	// queries to obtain the access tokens for these instances.
16229	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
16230
16231	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
16232
16233	// Tags: A list of tags to apply to the instances that are created from
16234	// these properties. The tags identify valid sources or targets for
16235	// network firewalls. The setTags method can modify this list of tags.
16236	// Each tag within the list must comply with RFC1035.
16237	Tags *Tags `json:"tags,omitempty"`
16238
16239	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
16240	// unconditionally include in API requests. By default, fields with
16241	// empty values are omitted from API requests. However, any non-pointer,
16242	// non-interface field appearing in ForceSendFields will be sent to the
16243	// server regardless of whether the field is empty or not. This may be
16244	// used to include empty fields in Patch requests.
16245	ForceSendFields []string `json:"-"`
16246
16247	// NullFields is a list of field names (e.g. "CanIpForward") to include
16248	// in API requests with the JSON null value. By default, fields with
16249	// empty values are omitted from API requests. However, any field with
16250	// an empty value appearing in NullFields will be sent to the server as
16251	// null. It is an error if a field in this list has a non-empty value.
16252	// This may be used to include null fields in Patch requests.
16253	NullFields []string `json:"-"`
16254}
16255
16256func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
16257	type NoMethod InstanceProperties
16258	raw := NoMethod(*s)
16259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16260}
16261
16262type InstanceReference struct {
16263	// Instance: The URL for a specific instance.
16264	Instance string `json:"instance,omitempty"`
16265
16266	// ForceSendFields is a list of field names (e.g. "Instance") to
16267	// unconditionally include in API requests. By default, fields with
16268	// empty values are omitted from API requests. However, any non-pointer,
16269	// non-interface field appearing in ForceSendFields will be sent to the
16270	// server regardless of whether the field is empty or not. This may be
16271	// used to include empty fields in Patch requests.
16272	ForceSendFields []string `json:"-"`
16273
16274	// NullFields is a list of field names (e.g. "Instance") to include in
16275	// API requests with the JSON null value. By default, fields with empty
16276	// values are omitted from API requests. However, any field with an
16277	// empty value appearing in NullFields will be sent to the server as
16278	// null. It is an error if a field in this list has a non-empty value.
16279	// This may be used to include null fields in Patch requests.
16280	NullFields []string `json:"-"`
16281}
16282
16283func (s *InstanceReference) MarshalJSON() ([]byte, error) {
16284	type NoMethod InstanceReference
16285	raw := NoMethod(*s)
16286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16287}
16288
16289// InstanceTemplate: Represents an Instance Template resource.
16290//
16291// You can use instance templates to create VM instances and managed
16292// instance groups. For more information, read Instance Templates. (==
16293// resource_for {$api_version}.instanceTemplates ==)
16294type InstanceTemplate struct {
16295	// CreationTimestamp: [Output Only] The creation timestamp for this
16296	// instance template in RFC3339 text format.
16297	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16298
16299	// Description: An optional description of this resource. Provide this
16300	// property when you create the resource.
16301	Description string `json:"description,omitempty"`
16302
16303	// Id: [Output Only] A unique identifier for this instance template. The
16304	// server defines this identifier.
16305	Id uint64 `json:"id,omitempty,string"`
16306
16307	// Kind: [Output Only] The resource type, which is always
16308	// compute#instanceTemplate for instance templates.
16309	Kind string `json:"kind,omitempty"`
16310
16311	// Name: Name of the resource; provided by the client when the resource
16312	// is created. The name must be 1-63 characters long, and comply with
16313	// RFC1035. Specifically, the name must be 1-63 characters long and
16314	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
16315	// the first character must be a lowercase letter, and all following
16316	// characters must be a dash, lowercase letter, or digit, except the
16317	// last character, which cannot be a dash.
16318	Name string `json:"name,omitempty"`
16319
16320	// Properties: The instance properties for this instance template.
16321	Properties *InstanceProperties `json:"properties,omitempty"`
16322
16323	// SelfLink: [Output Only] The URL for this instance template. The
16324	// server defines this URL.
16325	SelfLink string `json:"selfLink,omitempty"`
16326
16327	// SourceInstance: The source instance used to create the template. You
16328	// can provide this as a partial or full URL to the resource. For
16329	// example, the following are valid values:
16330	// -
16331	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
16332	// - projects/project/zones/zone/instances/instance
16333	SourceInstance string `json:"sourceInstance,omitempty"`
16334
16335	// SourceInstanceParams: The source instance params to use to create
16336	// this instance template.
16337	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
16338
16339	// ServerResponse contains the HTTP response code and headers from the
16340	// server.
16341	googleapi.ServerResponse `json:"-"`
16342
16343	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
16344	// to unconditionally include in API requests. By default, fields with
16345	// empty values are omitted from API requests. However, any non-pointer,
16346	// non-interface field appearing in ForceSendFields will be sent to the
16347	// server regardless of whether the field is empty or not. This may be
16348	// used to include empty fields in Patch requests.
16349	ForceSendFields []string `json:"-"`
16350
16351	// NullFields is a list of field names (e.g. "CreationTimestamp") to
16352	// include in API requests with the JSON null value. By default, fields
16353	// with empty values are omitted from API requests. However, any field
16354	// with an empty value appearing in NullFields will be sent to the
16355	// server as null. It is an error if a field in this list has a
16356	// non-empty value. This may be used to include null fields in Patch
16357	// requests.
16358	NullFields []string `json:"-"`
16359}
16360
16361func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
16362	type NoMethod InstanceTemplate
16363	raw := NoMethod(*s)
16364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16365}
16366
16367// InstanceTemplateList: A list of instance templates.
16368type InstanceTemplateList struct {
16369	// Id: [Output Only] Unique identifier for the resource; defined by the
16370	// server.
16371	Id string `json:"id,omitempty"`
16372
16373	// Items: A list of InstanceTemplate resources.
16374	Items []*InstanceTemplate `json:"items,omitempty"`
16375
16376	// Kind: [Output Only] The resource type, which is always
16377	// compute#instanceTemplatesListResponse for instance template lists.
16378	Kind string `json:"kind,omitempty"`
16379
16380	// NextPageToken: [Output Only] This token allows you to get the next
16381	// page of results for list requests. If the number of results is larger
16382	// than maxResults, use the nextPageToken as a value for the query
16383	// parameter pageToken in the next list request. Subsequent list
16384	// requests will have their own nextPageToken to continue paging through
16385	// the results.
16386	NextPageToken string `json:"nextPageToken,omitempty"`
16387
16388	// SelfLink: [Output Only] Server-defined URL for this resource.
16389	SelfLink string `json:"selfLink,omitempty"`
16390
16391	// Warning: [Output Only] Informational warning message.
16392	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
16393
16394	// ServerResponse contains the HTTP response code and headers from the
16395	// server.
16396	googleapi.ServerResponse `json:"-"`
16397
16398	// ForceSendFields is a list of field names (e.g. "Id") to
16399	// unconditionally include in API requests. By default, fields with
16400	// empty values are omitted from API requests. However, any non-pointer,
16401	// non-interface field appearing in ForceSendFields will be sent to the
16402	// server regardless of whether the field is empty or not. This may be
16403	// used to include empty fields in Patch requests.
16404	ForceSendFields []string `json:"-"`
16405
16406	// NullFields is a list of field names (e.g. "Id") to include in API
16407	// requests with the JSON null value. By default, fields with empty
16408	// values are omitted from API requests. However, any field with an
16409	// empty value appearing in NullFields will be sent to the server as
16410	// null. It is an error if a field in this list has a non-empty value.
16411	// This may be used to include null fields in Patch requests.
16412	NullFields []string `json:"-"`
16413}
16414
16415func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
16416	type NoMethod InstanceTemplateList
16417	raw := NoMethod(*s)
16418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16419}
16420
16421// InstanceTemplateListWarning: [Output Only] Informational warning
16422// message.
16423type InstanceTemplateListWarning struct {
16424	// Code: [Output Only] A warning code, if applicable. For example,
16425	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16426	// the response.
16427	//
16428	// Possible values:
16429	//   "CLEANUP_FAILED"
16430	//   "DEPRECATED_RESOURCE_USED"
16431	//   "DEPRECATED_TYPE_USED"
16432	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16433	//   "EXPERIMENTAL_TYPE_USED"
16434	//   "EXTERNAL_API_WARNING"
16435	//   "FIELD_VALUE_OVERRIDEN"
16436	//   "INJECTED_KERNELS_DEPRECATED"
16437	//   "MISSING_TYPE_DEPENDENCY"
16438	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16439	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16440	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16441	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16442	//   "NEXT_HOP_NOT_RUNNING"
16443	//   "NOT_CRITICAL_ERROR"
16444	//   "NO_RESULTS_ON_PAGE"
16445	//   "REQUIRED_TOS_AGREEMENT"
16446	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16447	//   "RESOURCE_NOT_DELETED"
16448	//   "SCHEMA_VALIDATION_IGNORED"
16449	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16450	//   "UNDECLARED_PROPERTIES"
16451	//   "UNREACHABLE"
16452	Code string `json:"code,omitempty"`
16453
16454	// Data: [Output Only] Metadata about this warning in key: value format.
16455	// For example:
16456	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16457	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
16458
16459	// Message: [Output Only] A human-readable description of the warning
16460	// code.
16461	Message string `json:"message,omitempty"`
16462
16463	// ForceSendFields is a list of field names (e.g. "Code") to
16464	// unconditionally include in API requests. By default, fields with
16465	// empty values are omitted from API requests. However, any non-pointer,
16466	// non-interface field appearing in ForceSendFields will be sent to the
16467	// server regardless of whether the field is empty or not. This may be
16468	// used to include empty fields in Patch requests.
16469	ForceSendFields []string `json:"-"`
16470
16471	// NullFields is a list of field names (e.g. "Code") to include in API
16472	// requests with the JSON null value. By default, fields with empty
16473	// values are omitted from API requests. However, any field with an
16474	// empty value appearing in NullFields will be sent to the server as
16475	// null. It is an error if a field in this list has a non-empty value.
16476	// This may be used to include null fields in Patch requests.
16477	NullFields []string `json:"-"`
16478}
16479
16480func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
16481	type NoMethod InstanceTemplateListWarning
16482	raw := NoMethod(*s)
16483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16484}
16485
16486type InstanceTemplateListWarningData struct {
16487	// Key: [Output Only] A key that provides more detail on the warning
16488	// being returned. For example, for warnings where there are no results
16489	// in a list request for a particular zone, this key might be scope and
16490	// the key value might be the zone name. Other examples might be a key
16491	// indicating a deprecated resource and a suggested replacement, or a
16492	// warning about invalid network settings (for example, if an instance
16493	// attempts to perform IP forwarding but is not enabled for IP
16494	// forwarding).
16495	Key string `json:"key,omitempty"`
16496
16497	// Value: [Output Only] A warning data value corresponding to the key.
16498	Value string `json:"value,omitempty"`
16499
16500	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
16518	type NoMethod InstanceTemplateListWarningData
16519	raw := NoMethod(*s)
16520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16521}
16522
16523type InstanceWithNamedPorts struct {
16524	// Instance: [Output Only] The URL of the instance.
16525	Instance string `json:"instance,omitempty"`
16526
16527	// NamedPorts: [Output Only] The named ports that belong to this
16528	// instance group.
16529	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16530
16531	// Status: [Output Only] The status of the instance.
16532	//
16533	// Possible values:
16534	//   "DEPROVISIONING"
16535	//   "PROVISIONING"
16536	//   "REPAIRING"
16537	//   "RUNNING"
16538	//   "STAGING"
16539	//   "STOPPED"
16540	//   "STOPPING"
16541	//   "SUSPENDED"
16542	//   "SUSPENDING"
16543	//   "TERMINATED"
16544	Status string `json:"status,omitempty"`
16545
16546	// ForceSendFields is a list of field names (e.g. "Instance") to
16547	// unconditionally include in API requests. By default, fields with
16548	// empty values are omitted from API requests. However, any non-pointer,
16549	// non-interface field appearing in ForceSendFields will be sent to the
16550	// server regardless of whether the field is empty or not. This may be
16551	// used to include empty fields in Patch requests.
16552	ForceSendFields []string `json:"-"`
16553
16554	// NullFields is a list of field names (e.g. "Instance") to include in
16555	// API requests with the JSON null value. By default, fields with empty
16556	// values are omitted from API requests. However, any field with an
16557	// empty value appearing in NullFields will be sent to the server as
16558	// null. It is an error if a field in this list has a non-empty value.
16559	// This may be used to include null fields in Patch requests.
16560	NullFields []string `json:"-"`
16561}
16562
16563func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
16564	type NoMethod InstanceWithNamedPorts
16565	raw := NoMethod(*s)
16566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16567}
16568
16569type InstancesAddResourcePoliciesRequest struct {
16570	// ResourcePolicies: Resource policies to be added to this instance.
16571	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
16572
16573	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
16574	// unconditionally include in API requests. By default, fields with
16575	// empty values are omitted from API requests. However, any non-pointer,
16576	// non-interface field appearing in ForceSendFields will be sent to the
16577	// server regardless of whether the field is empty or not. This may be
16578	// used to include empty fields in Patch requests.
16579	ForceSendFields []string `json:"-"`
16580
16581	// NullFields is a list of field names (e.g. "ResourcePolicies") to
16582	// include in API requests with the JSON null value. By default, fields
16583	// with empty values are omitted from API requests. However, any field
16584	// with an empty value appearing in NullFields will be sent to the
16585	// server as null. It is an error if a field in this list has a
16586	// non-empty value. This may be used to include null fields in Patch
16587	// requests.
16588	NullFields []string `json:"-"`
16589}
16590
16591func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
16592	type NoMethod InstancesAddResourcePoliciesRequest
16593	raw := NoMethod(*s)
16594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16595}
16596
16597type InstancesRemoveResourcePoliciesRequest struct {
16598	// ResourcePolicies: Resource policies to be removed from this instance.
16599	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
16600
16601	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
16602	// unconditionally include in API requests. By default, fields with
16603	// empty values are omitted from API requests. However, any non-pointer,
16604	// non-interface field appearing in ForceSendFields will be sent to the
16605	// server regardless of whether the field is empty or not. This may be
16606	// used to include empty fields in Patch requests.
16607	ForceSendFields []string `json:"-"`
16608
16609	// NullFields is a list of field names (e.g. "ResourcePolicies") to
16610	// include in API requests with the JSON null value. By default, fields
16611	// with empty values are omitted from API requests. However, any field
16612	// with an empty value appearing in NullFields will be sent to the
16613	// server as null. It is an error if a field in this list has a
16614	// non-empty value. This may be used to include null fields in Patch
16615	// requests.
16616	NullFields []string `json:"-"`
16617}
16618
16619func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
16620	type NoMethod InstancesRemoveResourcePoliciesRequest
16621	raw := NoMethod(*s)
16622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16623}
16624
16625type InstancesScopedList struct {
16626	// Instances: [Output Only] A list of instances contained in this scope.
16627	Instances []*Instance `json:"instances,omitempty"`
16628
16629	// Warning: [Output Only] Informational warning which replaces the list
16630	// of instances when the list is empty.
16631	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
16632
16633	// ForceSendFields is a list of field names (e.g. "Instances") to
16634	// unconditionally include in API requests. By default, fields with
16635	// empty values are omitted from API requests. However, any non-pointer,
16636	// non-interface field appearing in ForceSendFields will be sent to the
16637	// server regardless of whether the field is empty or not. This may be
16638	// used to include empty fields in Patch requests.
16639	ForceSendFields []string `json:"-"`
16640
16641	// NullFields is a list of field names (e.g. "Instances") to include in
16642	// API requests with the JSON null value. By default, fields with empty
16643	// values are omitted from API requests. However, any field with an
16644	// empty value appearing in NullFields will be sent to the server as
16645	// null. It is an error if a field in this list has a non-empty value.
16646	// This may be used to include null fields in Patch requests.
16647	NullFields []string `json:"-"`
16648}
16649
16650func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
16651	type NoMethod InstancesScopedList
16652	raw := NoMethod(*s)
16653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16654}
16655
16656// InstancesScopedListWarning: [Output Only] Informational warning which
16657// replaces the list of instances when the list is empty.
16658type InstancesScopedListWarning struct {
16659	// Code: [Output Only] A warning code, if applicable. For example,
16660	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16661	// the response.
16662	//
16663	// Possible values:
16664	//   "CLEANUP_FAILED"
16665	//   "DEPRECATED_RESOURCE_USED"
16666	//   "DEPRECATED_TYPE_USED"
16667	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16668	//   "EXPERIMENTAL_TYPE_USED"
16669	//   "EXTERNAL_API_WARNING"
16670	//   "FIELD_VALUE_OVERRIDEN"
16671	//   "INJECTED_KERNELS_DEPRECATED"
16672	//   "MISSING_TYPE_DEPENDENCY"
16673	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16674	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16675	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16676	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16677	//   "NEXT_HOP_NOT_RUNNING"
16678	//   "NOT_CRITICAL_ERROR"
16679	//   "NO_RESULTS_ON_PAGE"
16680	//   "REQUIRED_TOS_AGREEMENT"
16681	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16682	//   "RESOURCE_NOT_DELETED"
16683	//   "SCHEMA_VALIDATION_IGNORED"
16684	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16685	//   "UNDECLARED_PROPERTIES"
16686	//   "UNREACHABLE"
16687	Code string `json:"code,omitempty"`
16688
16689	// Data: [Output Only] Metadata about this warning in key: value format.
16690	// For example:
16691	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16692	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
16693
16694	// Message: [Output Only] A human-readable description of the warning
16695	// code.
16696	Message string `json:"message,omitempty"`
16697
16698	// ForceSendFields is a list of field names (e.g. "Code") to
16699	// unconditionally include in API requests. By default, fields with
16700	// empty values are omitted from API requests. However, any non-pointer,
16701	// non-interface field appearing in ForceSendFields will be sent to the
16702	// server regardless of whether the field is empty or not. This may be
16703	// used to include empty fields in Patch requests.
16704	ForceSendFields []string `json:"-"`
16705
16706	// NullFields is a list of field names (e.g. "Code") to include in API
16707	// requests with the JSON null value. By default, fields with empty
16708	// values are omitted from API requests. However, any field with an
16709	// empty value appearing in NullFields will be sent to the server as
16710	// null. It is an error if a field in this list has a non-empty value.
16711	// This may be used to include null fields in Patch requests.
16712	NullFields []string `json:"-"`
16713}
16714
16715func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
16716	type NoMethod InstancesScopedListWarning
16717	raw := NoMethod(*s)
16718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16719}
16720
16721type InstancesScopedListWarningData struct {
16722	// Key: [Output Only] A key that provides more detail on the warning
16723	// being returned. For example, for warnings where there are no results
16724	// in a list request for a particular zone, this key might be scope and
16725	// the key value might be the zone name. Other examples might be a key
16726	// indicating a deprecated resource and a suggested replacement, or a
16727	// warning about invalid network settings (for example, if an instance
16728	// attempts to perform IP forwarding but is not enabled for IP
16729	// forwarding).
16730	Key string `json:"key,omitempty"`
16731
16732	// Value: [Output Only] A warning data value corresponding to the key.
16733	Value string `json:"value,omitempty"`
16734
16735	// ForceSendFields is a list of field names (e.g. "Key") to
16736	// unconditionally include in API requests. By default, fields with
16737	// empty values are omitted from API requests. However, any non-pointer,
16738	// non-interface field appearing in ForceSendFields will be sent to the
16739	// server regardless of whether the field is empty or not. This may be
16740	// used to include empty fields in Patch requests.
16741	ForceSendFields []string `json:"-"`
16742
16743	// NullFields is a list of field names (e.g. "Key") to include in API
16744	// requests with the JSON null value. By default, fields with empty
16745	// values are omitted from API requests. However, any field with an
16746	// empty value appearing in NullFields will be sent to the server as
16747	// null. It is an error if a field in this list has a non-empty value.
16748	// This may be used to include null fields in Patch requests.
16749	NullFields []string `json:"-"`
16750}
16751
16752func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
16753	type NoMethod InstancesScopedListWarningData
16754	raw := NoMethod(*s)
16755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16756}
16757
16758type InstancesSetLabelsRequest struct {
16759	// LabelFingerprint: Fingerprint of the previous set of labels for this
16760	// resource, used to prevent conflicts. Provide the latest fingerprint
16761	// value when making a request to add or change labels.
16762	LabelFingerprint string `json:"labelFingerprint,omitempty"`
16763
16764	Labels map[string]string `json:"labels,omitempty"`
16765
16766	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
16767	// unconditionally include in API requests. By default, fields with
16768	// empty values are omitted from API requests. However, any non-pointer,
16769	// non-interface field appearing in ForceSendFields will be sent to the
16770	// server regardless of whether the field is empty or not. This may be
16771	// used to include empty fields in Patch requests.
16772	ForceSendFields []string `json:"-"`
16773
16774	// NullFields is a list of field names (e.g. "LabelFingerprint") to
16775	// include in API requests with the JSON null value. By default, fields
16776	// with empty values are omitted from API requests. However, any field
16777	// with an empty value appearing in NullFields will be sent to the
16778	// server as null. It is an error if a field in this list has a
16779	// non-empty value. This may be used to include null fields in Patch
16780	// requests.
16781	NullFields []string `json:"-"`
16782}
16783
16784func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
16785	type NoMethod InstancesSetLabelsRequest
16786	raw := NoMethod(*s)
16787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16788}
16789
16790type InstancesSetMachineResourcesRequest struct {
16791	// GuestAccelerators: A list of the type and count of accelerator cards
16792	// attached to the instance.
16793	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
16794
16795	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
16796	// to unconditionally include in API requests. By default, fields with
16797	// empty values are omitted from API requests. However, any non-pointer,
16798	// non-interface field appearing in ForceSendFields will be sent to the
16799	// server regardless of whether the field is empty or not. This may be
16800	// used to include empty fields in Patch requests.
16801	ForceSendFields []string `json:"-"`
16802
16803	// NullFields is a list of field names (e.g. "GuestAccelerators") to
16804	// include in API requests with the JSON null value. By default, fields
16805	// with empty values are omitted from API requests. However, any field
16806	// with an empty value appearing in NullFields will be sent to the
16807	// server as null. It is an error if a field in this list has a
16808	// non-empty value. This may be used to include null fields in Patch
16809	// requests.
16810	NullFields []string `json:"-"`
16811}
16812
16813func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
16814	type NoMethod InstancesSetMachineResourcesRequest
16815	raw := NoMethod(*s)
16816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16817}
16818
16819type InstancesSetMachineTypeRequest struct {
16820	// MachineType: Full or partial URL of the machine type resource. See
16821	// Machine Types for a full list of machine types. For example:
16822	// zones/us-central1-f/machineTypes/n1-standard-1
16823	MachineType string `json:"machineType,omitempty"`
16824
16825	// ForceSendFields is a list of field names (e.g. "MachineType") 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. "MachineType") to include
16834	// in API requests with the JSON null value. By default, fields with
16835	// empty values are omitted from API requests. However, any field with
16836	// an 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 *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
16843	type NoMethod InstancesSetMachineTypeRequest
16844	raw := NoMethod(*s)
16845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16846}
16847
16848type InstancesSetMinCpuPlatformRequest struct {
16849	// MinCpuPlatform: Minimum cpu/platform this instance should be started
16850	// at.
16851	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
16852
16853	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
16854	// unconditionally include in API requests. By default, fields with
16855	// empty values are omitted from API requests. However, any non-pointer,
16856	// non-interface field appearing in ForceSendFields will be sent to the
16857	// server regardless of whether the field is empty or not. This may be
16858	// used to include empty fields in Patch requests.
16859	ForceSendFields []string `json:"-"`
16860
16861	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
16862	// include in API requests with the JSON null value. By default, fields
16863	// with empty values are omitted from API requests. However, any field
16864	// with an empty value appearing in NullFields will be sent to the
16865	// server as null. It is an error if a field in this list has a
16866	// non-empty value. This may be used to include null fields in Patch
16867	// requests.
16868	NullFields []string `json:"-"`
16869}
16870
16871func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
16872	type NoMethod InstancesSetMinCpuPlatformRequest
16873	raw := NoMethod(*s)
16874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16875}
16876
16877type InstancesSetServiceAccountRequest struct {
16878	// Email: Email address of the service account.
16879	Email string `json:"email,omitempty"`
16880
16881	// Scopes: The list of scopes to be made available for this service
16882	// account.
16883	Scopes []string `json:"scopes,omitempty"`
16884
16885	// ForceSendFields is a list of field names (e.g. "Email") to
16886	// unconditionally include in API requests. By default, fields with
16887	// empty values are omitted from API requests. However, any non-pointer,
16888	// non-interface field appearing in ForceSendFields will be sent to the
16889	// server regardless of whether the field is empty or not. This may be
16890	// used to include empty fields in Patch requests.
16891	ForceSendFields []string `json:"-"`
16892
16893	// NullFields is a list of field names (e.g. "Email") to include in API
16894	// requests with the JSON null value. By default, fields with empty
16895	// values are omitted from API requests. However, any field with an
16896	// empty value appearing in NullFields will be sent to the server as
16897	// null. It is an error if a field in this list has a non-empty value.
16898	// This may be used to include null fields in Patch requests.
16899	NullFields []string `json:"-"`
16900}
16901
16902func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
16903	type NoMethod InstancesSetServiceAccountRequest
16904	raw := NoMethod(*s)
16905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16906}
16907
16908type InstancesStartWithEncryptionKeyRequest struct {
16909	// Disks: Array of disks associated with this instance that are
16910	// protected with a customer-supplied encryption key.
16911	//
16912	// In order to start the instance, the disk url and its corresponding
16913	// key must be provided.
16914	//
16915	// If the disk is not protected with a customer-supplied encryption key
16916	// it should not be specified.
16917	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
16918
16919	// ForceSendFields is a list of field names (e.g. "Disks") to
16920	// unconditionally include in API requests. By default, fields with
16921	// empty values are omitted from API requests. However, any non-pointer,
16922	// non-interface field appearing in ForceSendFields will be sent to the
16923	// server regardless of whether the field is empty or not. This may be
16924	// used to include empty fields in Patch requests.
16925	ForceSendFields []string `json:"-"`
16926
16927	// NullFields is a list of field names (e.g. "Disks") to include in API
16928	// requests with the JSON null value. By default, fields with empty
16929	// values are omitted from API requests. However, any field with an
16930	// empty value appearing in NullFields will be sent to the server as
16931	// null. It is an error if a field in this list has a non-empty value.
16932	// This may be used to include null fields in Patch requests.
16933	NullFields []string `json:"-"`
16934}
16935
16936func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
16937	type NoMethod InstancesStartWithEncryptionKeyRequest
16938	raw := NoMethod(*s)
16939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16940}
16941
16942// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
16943// must stay within the specified integer range.
16944type Int64RangeMatch struct {
16945	// RangeEnd: The end of the range (exclusive) in signed long integer
16946	// format.
16947	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
16948
16949	// RangeStart: The start of the range (inclusive) in signed long integer
16950	// format.
16951	RangeStart int64 `json:"rangeStart,omitempty,string"`
16952
16953	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
16954	// unconditionally include in API requests. By default, fields with
16955	// empty values are omitted from API requests. However, any non-pointer,
16956	// non-interface field appearing in ForceSendFields will be sent to the
16957	// server regardless of whether the field is empty or not. This may be
16958	// used to include empty fields in Patch requests.
16959	ForceSendFields []string `json:"-"`
16960
16961	// NullFields is a list of field names (e.g. "RangeEnd") to include in
16962	// API requests with the JSON null value. By default, fields with empty
16963	// values are omitted from API requests. However, any field with an
16964	// empty value appearing in NullFields will be sent to the server as
16965	// null. It is an error if a field in this list has a non-empty value.
16966	// This may be used to include null fields in Patch requests.
16967	NullFields []string `json:"-"`
16968}
16969
16970func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
16971	type NoMethod Int64RangeMatch
16972	raw := NoMethod(*s)
16973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16974}
16975
16976// Interconnect: Represents an Interconnect resource.
16977//
16978// An Interconnect resource is a dedicated connection between the GCP
16979// network and your on-premises network. For more information, read the
16980// Dedicated Interconnect Overview. (== resource_for
16981// {$api_version}.interconnects ==)
16982type Interconnect struct {
16983	// AdminEnabled: Administrative status of the interconnect. When this is
16984	// set to true, the Interconnect is functional and can carry traffic.
16985	// When set to false, no packets can be carried over the interconnect
16986	// and no BGP routes are exchanged over it. By default, the status is
16987	// set to true.
16988	AdminEnabled bool `json:"adminEnabled,omitempty"`
16989
16990	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
16991	// describe the individual circuits in this LAG.
16992	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
16993
16994	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
16995	// format.
16996	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16997
16998	// CustomerName: Customer name, to put in the Letter of Authorization as
16999	// the party authorized to request a crossconnect.
17000	CustomerName string `json:"customerName,omitempty"`
17001
17002	// Description: An optional description of this resource. Provide this
17003	// property when you create the resource.
17004	Description string `json:"description,omitempty"`
17005
17006	// ExpectedOutages: [Output Only] A list of outages expected for this
17007	// Interconnect.
17008	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
17009
17010	// GoogleIpAddress: [Output Only] IP address configured on the Google
17011	// side of the Interconnect link. This can be used only for ping tests.
17012	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
17013
17014	// GoogleReferenceId: [Output Only] Google reference ID to be used when
17015	// raising support tickets with Google or otherwise to debug backend
17016	// connectivity issues.
17017	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
17018
17019	// Id: [Output Only] The unique identifier for the resource. This
17020	// identifier is defined by the server.
17021	Id uint64 `json:"id,omitempty,string"`
17022
17023	// InterconnectAttachments: [Output Only] A list of the URLs of all
17024	// InterconnectAttachments configured to use this Interconnect.
17025	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
17026
17027	// InterconnectType: Type of interconnect, which can take one of the
17028	// following values:
17029	// - PARTNER: A partner-managed interconnection shared between customers
17030	// though a partner.
17031	// - DEDICATED: A dedicated physical interconnection with the customer.
17032	// Note that a value IT_PRIVATE has been deprecated in favor of
17033	// DEDICATED.
17034	//
17035	// Possible values:
17036	//   "DEDICATED"
17037	//   "IT_PRIVATE"
17038	//   "PARTNER"
17039	InterconnectType string `json:"interconnectType,omitempty"`
17040
17041	// Kind: [Output Only] Type of the resource. Always compute#interconnect
17042	// for interconnects.
17043	Kind string `json:"kind,omitempty"`
17044
17045	// LinkType: Type of link requested, which can take one of the following
17046	// values:
17047	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
17048	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
17049	// that this field indicates the speed of each of the links in the
17050	// bundle, not the speed of the entire bundle.
17051	//
17052	// Possible values:
17053	//   "LINK_TYPE_ETHERNET_100G_LR"
17054	//   "LINK_TYPE_ETHERNET_10G_LR"
17055	LinkType string `json:"linkType,omitempty"`
17056
17057	// Location: URL of the InterconnectLocation object that represents
17058	// where this connection is to be provisioned.
17059	Location string `json:"location,omitempty"`
17060
17061	// Name: Name of the resource. Provided by the client when the resource
17062	// is created. The name must be 1-63 characters long, and comply with
17063	// RFC1035. Specifically, the name must be 1-63 characters long and
17064	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
17065	// the first character must be a lowercase letter, and all following
17066	// characters must be a dash, lowercase letter, or digit, except the
17067	// last character, which cannot be a dash.
17068	Name string `json:"name,omitempty"`
17069
17070	// NocContactEmail: Email address to contact the customer NOC for
17071	// operations and maintenance notifications regarding this Interconnect.
17072	// If specified, this will be used for notifications in addition to all
17073	// other forms described, such as Stackdriver logs alerting and Cloud
17074	// Notifications.
17075	NocContactEmail string `json:"nocContactEmail,omitempty"`
17076
17077	// OperationalStatus: [Output Only] The current status of this
17078	// Interconnect's functionality, which can take one of the following
17079	// values:
17080	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
17081	// use. Attachments may be provisioned on this Interconnect.
17082	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
17083	// attachments may be provisioned on this Interconnect.
17084	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
17085	// maintenance. No attachments may be provisioned or updated on this
17086	// Interconnect.
17087	//
17088	// Possible values:
17089	//   "OS_ACTIVE"
17090	//   "OS_UNPROVISIONED"
17091	OperationalStatus string `json:"operationalStatus,omitempty"`
17092
17093	// PeerIpAddress: [Output Only] IP address configured on the customer
17094	// side of the Interconnect link. The customer should configure this IP
17095	// address during turnup when prompted by Google NOC. This can be used
17096	// only for ping tests.
17097	PeerIpAddress string `json:"peerIpAddress,omitempty"`
17098
17099	// ProvisionedLinkCount: [Output Only] Number of links actually
17100	// provisioned in this interconnect.
17101	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
17102
17103	// RequestedLinkCount: Target number of physical links in the link
17104	// bundle, as requested by the customer.
17105	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
17106
17107	// SelfLink: [Output Only] Server-defined URL for the resource.
17108	SelfLink string `json:"selfLink,omitempty"`
17109
17110	// State: [Output Only] The current state of Interconnect functionality,
17111	// which can take one of the following values:
17112	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
17113	// Attachments may be provisioned on this Interconnect.
17114	// - UNPROVISIONED: The Interconnect has not completed turnup. No
17115	// attachments may be provisioned on this Interconnect.
17116	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
17117	// maintenance. No attachments may be provisioned or updated on this
17118	// Interconnect.
17119	//
17120	// Possible values:
17121	//   "ACTIVE"
17122	//   "UNPROVISIONED"
17123	State string `json:"state,omitempty"`
17124
17125	// ServerResponse contains the HTTP response code and headers from the
17126	// server.
17127	googleapi.ServerResponse `json:"-"`
17128
17129	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
17130	// unconditionally include in API requests. By default, fields with
17131	// empty values are omitted from API requests. However, any non-pointer,
17132	// non-interface field appearing in ForceSendFields will be sent to the
17133	// server regardless of whether the field is empty or not. This may be
17134	// used to include empty fields in Patch requests.
17135	ForceSendFields []string `json:"-"`
17136
17137	// NullFields is a list of field names (e.g. "AdminEnabled") to include
17138	// in API requests with the JSON null value. By default, fields with
17139	// empty values are omitted from API requests. However, any field with
17140	// an empty value appearing in NullFields will be sent to the server as
17141	// null. It is an error if a field in this list has a non-empty value.
17142	// This may be used to include null fields in Patch requests.
17143	NullFields []string `json:"-"`
17144}
17145
17146func (s *Interconnect) MarshalJSON() ([]byte, error) {
17147	type NoMethod Interconnect
17148	raw := NoMethod(*s)
17149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17150}
17151
17152// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
17153// resource.
17154//
17155// You can use Interconnect attachments (VLANS) to connect your Virtual
17156// Private Cloud networks to your on-premises networks through an
17157// Interconnect. For more information, read  Creating VLAN Attachments.
17158// (== resource_for {$api_version}.interconnectAttachments ==)
17159type InterconnectAttachment struct {
17160	// AdminEnabled: Determines whether this Attachment will carry packets.
17161	// Not present for PARTNER_PROVIDER.
17162	AdminEnabled bool `json:"adminEnabled,omitempty"`
17163
17164	// Bandwidth: Provisioned bandwidth capacity for the interconnect
17165	// attachment. For attachments of type DEDICATED, the user can set the
17166	// bandwidth. For attachments of type PARTNER, the Google Partner that
17167	// is operating the interconnect must set the bandwidth. Output only for
17168	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
17169	// take one of the following values:
17170	// - BPS_50M: 50 Mbit/s
17171	// - BPS_100M: 100 Mbit/s
17172	// - BPS_200M: 200 Mbit/s
17173	// - BPS_300M: 300 Mbit/s
17174	// - BPS_400M: 400 Mbit/s
17175	// - BPS_500M: 500 Mbit/s
17176	// - BPS_1G: 1 Gbit/s
17177	// - BPS_2G: 2 Gbit/s
17178	// - BPS_5G: 5 Gbit/s
17179	// - BPS_10G: 10 Gbit/s
17180	// - BPS_20G: 20 Gbit/s
17181	// - BPS_50G: 50 Gbit/s
17182	//
17183	// Possible values:
17184	//   "BPS_100M"
17185	//   "BPS_10G"
17186	//   "BPS_1G"
17187	//   "BPS_200M"
17188	//   "BPS_20G"
17189	//   "BPS_2G"
17190	//   "BPS_300M"
17191	//   "BPS_400M"
17192	//   "BPS_500M"
17193	//   "BPS_50G"
17194	//   "BPS_50M"
17195	//   "BPS_5G"
17196	Bandwidth string `json:"bandwidth,omitempty"`
17197
17198	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
17199	// restrict the allocation of cloudRouterIpAddress and
17200	// customerRouterIpAddress for this attachment. All prefixes must be
17201	// within link-local address space (169.254.0.0/16) and must be /29 or
17202	// shorter (/28, /27, etc). Google will attempt to select an unused /29
17203	// from the supplied candidate prefix(es). The request will fail if all
17204	// possible /29s are in use on Google's edge. If not supplied, Google
17205	// will randomly select an unused /29 from all of link-local space.
17206	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
17207
17208	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
17209	// be configured on Cloud Router Interface for this interconnect
17210	// attachment.
17211	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
17212
17213	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
17214	// format.
17215	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17216
17217	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
17218	// to be configured on the customer router subinterface for this
17219	// interconnect attachment.
17220	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
17221
17222	// Description: An optional description of this resource.
17223	Description string `json:"description,omitempty"`
17224
17225	// EdgeAvailabilityDomain: Desired availability domain for the
17226	// attachment. Only available for type PARTNER, at creation time, and
17227	// can take one of the following values:
17228	// - AVAILABILITY_DOMAIN_ANY
17229	// - AVAILABILITY_DOMAIN_1
17230	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
17231	// configure a pair of attachments, one per availability domain. The
17232	// selected availability domain will be provided to the Partner via the
17233	// pairing key, so that the provisioned circuit will lie in the
17234	// specified domain. If not specified, the value will default to
17235	// AVAILABILITY_DOMAIN_ANY.
17236	//
17237	// Possible values:
17238	//   "AVAILABILITY_DOMAIN_1"
17239	//   "AVAILABILITY_DOMAIN_2"
17240	//   "AVAILABILITY_DOMAIN_ANY"
17241	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
17242
17243	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
17244	// raising support tickets with Google or otherwise to debug backend
17245	// connectivity issues. [Deprecated] This field is not used.
17246	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
17247
17248	// Id: [Output Only] The unique identifier for the resource. This
17249	// identifier is defined by the server.
17250	Id uint64 `json:"id,omitempty,string"`
17251
17252	// Interconnect: URL of the underlying Interconnect object that this
17253	// attachment's traffic will traverse through.
17254	Interconnect string `json:"interconnect,omitempty"`
17255
17256	// Kind: [Output Only] Type of the resource. Always
17257	// compute#interconnectAttachment for interconnect attachments.
17258	Kind string `json:"kind,omitempty"`
17259
17260	// Name: Name of the resource. Provided by the client when the resource
17261	// is created. The name must be 1-63 characters long, and comply with
17262	// RFC1035. Specifically, the name must be 1-63 characters long and
17263	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
17264	// the first character must be a lowercase letter, and all following
17265	// characters must be a dash, lowercase letter, or digit, except the
17266	// last character, which cannot be a dash.
17267	Name string `json:"name,omitempty"`
17268
17269	// OperationalStatus: [Output Only] The current status of whether or not
17270	// this interconnect attachment is functional, which can take one of the
17271	// following values:
17272	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
17273	//
17274	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
17275	// turnup is not complete.
17276	//
17277	// Possible values:
17278	//   "OS_ACTIVE"
17279	//   "OS_UNPROVISIONED"
17280	OperationalStatus string `json:"operationalStatus,omitempty"`
17281
17282	// PairingKey: [Output only for type PARTNER. Input only for
17283	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
17284	// of an PARTNER attachment used to initiate provisioning with a
17285	// selected partner. Of the form "XXXXX/region/domain"
17286	PairingKey string `json:"pairingKey,omitempty"`
17287
17288	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
17289	// Partner if they configured BGP on behalf of the customer. Output only
17290	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
17291	// DEDICATED.
17292	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
17293
17294	// PartnerMetadata: Informational metadata about Partner attachments
17295	// from Partners to display to customers. Output only for for PARTNER
17296	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
17297	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
17298
17299	// PrivateInterconnectInfo: [Output Only] Information specific to an
17300	// InterconnectAttachment. This property is populated if the
17301	// interconnect that this is attached to is of type DEDICATED.
17302	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
17303
17304	// Region: [Output Only] URL of the region where the regional
17305	// interconnect attachment resides. You must specify this field as part
17306	// of the HTTP request URL. It is not settable as a field in the request
17307	// body.
17308	Region string `json:"region,omitempty"`
17309
17310	// Router: URL of the Cloud Router to be used for dynamic routing. This
17311	// router must be in the same region as this InterconnectAttachment. The
17312	// InterconnectAttachment will automatically connect the Interconnect to
17313	// the network & region within which the Cloud Router is configured.
17314	Router string `json:"router,omitempty"`
17315
17316	// SelfLink: [Output Only] Server-defined URL for the resource.
17317	SelfLink string `json:"selfLink,omitempty"`
17318
17319	// State: [Output Only] The current state of this attachment's
17320	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
17321	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
17322	// attachments, while enum values PENDING_PARTNER,
17323	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
17324	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
17325	// take one of the following values:
17326	// - ACTIVE: The attachment has been turned up and is ready to use.
17327	// - UNPROVISIONED: The attachment is not ready to use yet, because
17328	// turnup is not complete.
17329	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
17330	// yet been configured on the Partner side.
17331	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
17332	// provisioning after a PARTNER_PROVIDER attachment was created that
17333	// references it.
17334	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
17335	// waiting for a customer to activate it.
17336	// - DEFUNCT: The attachment was deleted externally and is no longer
17337	// functional. This could be because the associated Interconnect was
17338	// removed, or because the other side of a Partner attachment was
17339	// deleted.
17340	//
17341	// Possible values:
17342	//   "ACTIVE"
17343	//   "DEFUNCT"
17344	//   "PARTNER_REQUEST_RECEIVED"
17345	//   "PENDING_CUSTOMER"
17346	//   "PENDING_PARTNER"
17347	//   "STATE_UNSPECIFIED"
17348	//   "UNPROVISIONED"
17349	State string `json:"state,omitempty"`
17350
17351	// Type: The type of interconnect attachment this is, which can take one
17352	// of the following values:
17353	// - DEDICATED: an attachment to a Dedicated Interconnect.
17354	// - PARTNER: an attachment to a Partner Interconnect, created by the
17355	// customer.
17356	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
17357	// by the partner.
17358	//
17359	// Possible values:
17360	//   "DEDICATED"
17361	//   "PARTNER"
17362	//   "PARTNER_PROVIDER"
17363	Type string `json:"type,omitempty"`
17364
17365	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
17366	// range 2-4094. Only specified at creation time.
17367	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
17368
17369	// ServerResponse contains the HTTP response code and headers from the
17370	// server.
17371	googleapi.ServerResponse `json:"-"`
17372
17373	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
17374	// unconditionally include in API requests. By default, fields with
17375	// empty values are omitted from API requests. However, any non-pointer,
17376	// non-interface field appearing in ForceSendFields will be sent to the
17377	// server regardless of whether the field is empty or not. This may be
17378	// used to include empty fields in Patch requests.
17379	ForceSendFields []string `json:"-"`
17380
17381	// NullFields is a list of field names (e.g. "AdminEnabled") to include
17382	// in API requests with the JSON null value. By default, fields with
17383	// empty values are omitted from API requests. However, any field with
17384	// an empty value appearing in NullFields will be sent to the server as
17385	// null. It is an error if a field in this list has a non-empty value.
17386	// This may be used to include null fields in Patch requests.
17387	NullFields []string `json:"-"`
17388}
17389
17390func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
17391	type NoMethod InterconnectAttachment
17392	raw := NoMethod(*s)
17393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17394}
17395
17396type InterconnectAttachmentAggregatedList struct {
17397	// Id: [Output Only] Unique identifier for the resource; defined by the
17398	// server.
17399	Id string `json:"id,omitempty"`
17400
17401	// Items: A list of InterconnectAttachmentsScopedList resources.
17402	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
17403
17404	// Kind: [Output Only] Type of resource. Always
17405	// compute#interconnectAttachmentAggregatedList for aggregated lists of
17406	// interconnect attachments.
17407	Kind string `json:"kind,omitempty"`
17408
17409	// NextPageToken: [Output Only] This token allows you to get the next
17410	// page of results for list requests. If the number of results is larger
17411	// than maxResults, use the nextPageToken as a value for the query
17412	// parameter pageToken in the next list request. Subsequent list
17413	// requests will have their own nextPageToken to continue paging through
17414	// the results.
17415	NextPageToken string `json:"nextPageToken,omitempty"`
17416
17417	// SelfLink: [Output Only] Server-defined URL for this resource.
17418	SelfLink string `json:"selfLink,omitempty"`
17419
17420	// Warning: [Output Only] Informational warning message.
17421	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
17422
17423	// ServerResponse contains the HTTP response code and headers from the
17424	// server.
17425	googleapi.ServerResponse `json:"-"`
17426
17427	// ForceSendFields is a list of field names (e.g. "Id") to
17428	// unconditionally include in API requests. By default, fields with
17429	// empty values are omitted from API requests. However, any non-pointer,
17430	// non-interface field appearing in ForceSendFields will be sent to the
17431	// server regardless of whether the field is empty or not. This may be
17432	// used to include empty fields in Patch requests.
17433	ForceSendFields []string `json:"-"`
17434
17435	// NullFields is a list of field names (e.g. "Id") to include in API
17436	// requests with the JSON null value. By default, fields with empty
17437	// values are omitted from API requests. However, any field with an
17438	// empty value appearing in NullFields will be sent to the server as
17439	// null. It is an error if a field in this list has a non-empty value.
17440	// This may be used to include null fields in Patch requests.
17441	NullFields []string `json:"-"`
17442}
17443
17444func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
17445	type NoMethod InterconnectAttachmentAggregatedList
17446	raw := NoMethod(*s)
17447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17448}
17449
17450// InterconnectAttachmentAggregatedListWarning: [Output Only]
17451// Informational warning message.
17452type InterconnectAttachmentAggregatedListWarning struct {
17453	// Code: [Output Only] A warning code, if applicable. For example,
17454	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17455	// the response.
17456	//
17457	// Possible values:
17458	//   "CLEANUP_FAILED"
17459	//   "DEPRECATED_RESOURCE_USED"
17460	//   "DEPRECATED_TYPE_USED"
17461	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17462	//   "EXPERIMENTAL_TYPE_USED"
17463	//   "EXTERNAL_API_WARNING"
17464	//   "FIELD_VALUE_OVERRIDEN"
17465	//   "INJECTED_KERNELS_DEPRECATED"
17466	//   "MISSING_TYPE_DEPENDENCY"
17467	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17468	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17469	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17470	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17471	//   "NEXT_HOP_NOT_RUNNING"
17472	//   "NOT_CRITICAL_ERROR"
17473	//   "NO_RESULTS_ON_PAGE"
17474	//   "REQUIRED_TOS_AGREEMENT"
17475	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17476	//   "RESOURCE_NOT_DELETED"
17477	//   "SCHEMA_VALIDATION_IGNORED"
17478	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17479	//   "UNDECLARED_PROPERTIES"
17480	//   "UNREACHABLE"
17481	Code string `json:"code,omitempty"`
17482
17483	// Data: [Output Only] Metadata about this warning in key: value format.
17484	// For example:
17485	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17486	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
17487
17488	// Message: [Output Only] A human-readable description of the warning
17489	// code.
17490	Message string `json:"message,omitempty"`
17491
17492	// ForceSendFields is a list of field names (e.g. "Code") to
17493	// unconditionally include in API requests. By default, fields with
17494	// empty values are omitted from API requests. However, any non-pointer,
17495	// non-interface field appearing in ForceSendFields will be sent to the
17496	// server regardless of whether the field is empty or not. This may be
17497	// used to include empty fields in Patch requests.
17498	ForceSendFields []string `json:"-"`
17499
17500	// NullFields is a list of field names (e.g. "Code") to include in API
17501	// requests with the JSON null value. By default, fields with empty
17502	// values are omitted from API requests. However, any field with an
17503	// empty value appearing in NullFields will be sent to the server as
17504	// null. It is an error if a field in this list has a non-empty value.
17505	// This may be used to include null fields in Patch requests.
17506	NullFields []string `json:"-"`
17507}
17508
17509func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
17510	type NoMethod InterconnectAttachmentAggregatedListWarning
17511	raw := NoMethod(*s)
17512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17513}
17514
17515type InterconnectAttachmentAggregatedListWarningData struct {
17516	// Key: [Output Only] A key that provides more detail on the warning
17517	// being returned. For example, for warnings where there are no results
17518	// in a list request for a particular zone, this key might be scope and
17519	// the key value might be the zone name. Other examples might be a key
17520	// indicating a deprecated resource and a suggested replacement, or a
17521	// warning about invalid network settings (for example, if an instance
17522	// attempts to perform IP forwarding but is not enabled for IP
17523	// forwarding).
17524	Key string `json:"key,omitempty"`
17525
17526	// Value: [Output Only] A warning data value corresponding to the key.
17527	Value string `json:"value,omitempty"`
17528
17529	// ForceSendFields is a list of field names (e.g. "Key") to
17530	// unconditionally include in API requests. By default, fields with
17531	// empty values are omitted from API requests. However, any non-pointer,
17532	// non-interface field appearing in ForceSendFields will be sent to the
17533	// server regardless of whether the field is empty or not. This may be
17534	// used to include empty fields in Patch requests.
17535	ForceSendFields []string `json:"-"`
17536
17537	// NullFields is a list of field names (e.g. "Key") to include in API
17538	// requests with the JSON null value. By default, fields with empty
17539	// values are omitted from API requests. However, any field with an
17540	// empty value appearing in NullFields will be sent to the server as
17541	// null. It is an error if a field in this list has a non-empty value.
17542	// This may be used to include null fields in Patch requests.
17543	NullFields []string `json:"-"`
17544}
17545
17546func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
17547	type NoMethod InterconnectAttachmentAggregatedListWarningData
17548	raw := NoMethod(*s)
17549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17550}
17551
17552// InterconnectAttachmentList: Response to the list request, and
17553// contains a list of interconnect attachments.
17554type InterconnectAttachmentList struct {
17555	// Id: [Output Only] Unique identifier for the resource; defined by the
17556	// server.
17557	Id string `json:"id,omitempty"`
17558
17559	// Items: A list of InterconnectAttachment resources.
17560	Items []*InterconnectAttachment `json:"items,omitempty"`
17561
17562	// Kind: [Output Only] Type of resource. Always
17563	// compute#interconnectAttachmentList for lists of interconnect
17564	// attachments.
17565	Kind string `json:"kind,omitempty"`
17566
17567	// NextPageToken: [Output Only] This token allows you to get the next
17568	// page of results for list requests. If the number of results is larger
17569	// than maxResults, use the nextPageToken as a value for the query
17570	// parameter pageToken in the next list request. Subsequent list
17571	// requests will have their own nextPageToken to continue paging through
17572	// the results.
17573	NextPageToken string `json:"nextPageToken,omitempty"`
17574
17575	// SelfLink: [Output Only] Server-defined URL for this resource.
17576	SelfLink string `json:"selfLink,omitempty"`
17577
17578	// Warning: [Output Only] Informational warning message.
17579	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
17580
17581	// ServerResponse contains the HTTP response code and headers from the
17582	// server.
17583	googleapi.ServerResponse `json:"-"`
17584
17585	// ForceSendFields is a list of field names (e.g. "Id") to
17586	// unconditionally include in API requests. By default, fields with
17587	// empty values are omitted from API requests. However, any non-pointer,
17588	// non-interface field appearing in ForceSendFields will be sent to the
17589	// server regardless of whether the field is empty or not. This may be
17590	// used to include empty fields in Patch requests.
17591	ForceSendFields []string `json:"-"`
17592
17593	// NullFields is a list of field names (e.g. "Id") to include in API
17594	// requests with the JSON null value. By default, fields with empty
17595	// values are omitted from API requests. However, any field with an
17596	// empty value appearing in NullFields will be sent to the server as
17597	// null. It is an error if a field in this list has a non-empty value.
17598	// This may be used to include null fields in Patch requests.
17599	NullFields []string `json:"-"`
17600}
17601
17602func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
17603	type NoMethod InterconnectAttachmentList
17604	raw := NoMethod(*s)
17605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17606}
17607
17608// InterconnectAttachmentListWarning: [Output Only] Informational
17609// warning message.
17610type InterconnectAttachmentListWarning struct {
17611	// Code: [Output Only] A warning code, if applicable. For example,
17612	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17613	// the response.
17614	//
17615	// Possible values:
17616	//   "CLEANUP_FAILED"
17617	//   "DEPRECATED_RESOURCE_USED"
17618	//   "DEPRECATED_TYPE_USED"
17619	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17620	//   "EXPERIMENTAL_TYPE_USED"
17621	//   "EXTERNAL_API_WARNING"
17622	//   "FIELD_VALUE_OVERRIDEN"
17623	//   "INJECTED_KERNELS_DEPRECATED"
17624	//   "MISSING_TYPE_DEPENDENCY"
17625	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17626	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17627	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17628	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17629	//   "NEXT_HOP_NOT_RUNNING"
17630	//   "NOT_CRITICAL_ERROR"
17631	//   "NO_RESULTS_ON_PAGE"
17632	//   "REQUIRED_TOS_AGREEMENT"
17633	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17634	//   "RESOURCE_NOT_DELETED"
17635	//   "SCHEMA_VALIDATION_IGNORED"
17636	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17637	//   "UNDECLARED_PROPERTIES"
17638	//   "UNREACHABLE"
17639	Code string `json:"code,omitempty"`
17640
17641	// Data: [Output Only] Metadata about this warning in key: value format.
17642	// For example:
17643	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17644	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
17645
17646	// Message: [Output Only] A human-readable description of the warning
17647	// code.
17648	Message string `json:"message,omitempty"`
17649
17650	// ForceSendFields is a list of field names (e.g. "Code") to
17651	// unconditionally include in API requests. By default, fields with
17652	// empty values are omitted from API requests. However, any non-pointer,
17653	// non-interface field appearing in ForceSendFields will be sent to the
17654	// server regardless of whether the field is empty or not. This may be
17655	// used to include empty fields in Patch requests.
17656	ForceSendFields []string `json:"-"`
17657
17658	// NullFields is a list of field names (e.g. "Code") to include in API
17659	// requests with the JSON null value. By default, fields with empty
17660	// values are omitted from API requests. However, any field with an
17661	// empty value appearing in NullFields will be sent to the server as
17662	// null. It is an error if a field in this list has a non-empty value.
17663	// This may be used to include null fields in Patch requests.
17664	NullFields []string `json:"-"`
17665}
17666
17667func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
17668	type NoMethod InterconnectAttachmentListWarning
17669	raw := NoMethod(*s)
17670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17671}
17672
17673type InterconnectAttachmentListWarningData struct {
17674	// Key: [Output Only] A key that provides more detail on the warning
17675	// being returned. For example, for warnings where there are no results
17676	// in a list request for a particular zone, this key might be scope and
17677	// the key value might be the zone name. Other examples might be a key
17678	// indicating a deprecated resource and a suggested replacement, or a
17679	// warning about invalid network settings (for example, if an instance
17680	// attempts to perform IP forwarding but is not enabled for IP
17681	// forwarding).
17682	Key string `json:"key,omitempty"`
17683
17684	// Value: [Output Only] A warning data value corresponding to the key.
17685	Value string `json:"value,omitempty"`
17686
17687	// ForceSendFields is a list of field names (e.g. "Key") to
17688	// unconditionally include in API requests. By default, fields with
17689	// empty values are omitted from API requests. However, any non-pointer,
17690	// non-interface field appearing in ForceSendFields will be sent to the
17691	// server regardless of whether the field is empty or not. This may be
17692	// used to include empty fields in Patch requests.
17693	ForceSendFields []string `json:"-"`
17694
17695	// NullFields is a list of field names (e.g. "Key") to include in API
17696	// requests with the JSON null value. By default, fields with empty
17697	// values are omitted from API requests. However, any field with an
17698	// empty value appearing in NullFields will be sent to the server as
17699	// null. It is an error if a field in this list has a non-empty value.
17700	// This may be used to include null fields in Patch requests.
17701	NullFields []string `json:"-"`
17702}
17703
17704func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
17705	type NoMethod InterconnectAttachmentListWarningData
17706	raw := NoMethod(*s)
17707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17708}
17709
17710// InterconnectAttachmentPartnerMetadata: Informational metadata about
17711// Partner attachments from Partners to display to customers. These
17712// fields are propagated from PARTNER_PROVIDER attachments to their
17713// corresponding PARTNER attachments.
17714type InterconnectAttachmentPartnerMetadata struct {
17715	// InterconnectName: Plain text name of the Interconnect this attachment
17716	// is connected to, as displayed in the Partner's portal. For instance
17717	// "Chicago 1". This value may be validated to match approved Partner
17718	// values.
17719	InterconnectName string `json:"interconnectName,omitempty"`
17720
17721	// PartnerName: Plain text name of the Partner providing this
17722	// attachment. This value may be validated to match approved Partner
17723	// values.
17724	PartnerName string `json:"partnerName,omitempty"`
17725
17726	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
17727	// may customise this to be a deep link to the specific resource on the
17728	// Partner portal. This value may be validated to match approved Partner
17729	// values.
17730	PortalUrl string `json:"portalUrl,omitempty"`
17731
17732	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
17733	// unconditionally include in API requests. By default, fields with
17734	// empty values are omitted from API requests. However, any non-pointer,
17735	// non-interface field appearing in ForceSendFields will be sent to the
17736	// server regardless of whether the field is empty or not. This may be
17737	// used to include empty fields in Patch requests.
17738	ForceSendFields []string `json:"-"`
17739
17740	// NullFields is a list of field names (e.g. "InterconnectName") to
17741	// include in API requests with the JSON null value. By default, fields
17742	// with empty values are omitted from API requests. However, any field
17743	// with an empty value appearing in NullFields will be sent to the
17744	// server as null. It is an error if a field in this list has a
17745	// non-empty value. This may be used to include null fields in Patch
17746	// requests.
17747	NullFields []string `json:"-"`
17748}
17749
17750func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
17751	type NoMethod InterconnectAttachmentPartnerMetadata
17752	raw := NoMethod(*s)
17753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17754}
17755
17756// InterconnectAttachmentPrivateInfo: Information for an interconnect
17757// attachment when this belongs to an interconnect of type DEDICATED.
17758type InterconnectAttachmentPrivateInfo struct {
17759	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
17760	// traffic between Google and the customer, going to and from this
17761	// network and region.
17762	Tag8021q int64 `json:"tag8021q,omitempty"`
17763
17764	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
17765	// unconditionally include in API requests. By default, fields with
17766	// empty values are omitted from API requests. However, any non-pointer,
17767	// non-interface field appearing in ForceSendFields will be sent to the
17768	// server regardless of whether the field is empty or not. This may be
17769	// used to include empty fields in Patch requests.
17770	ForceSendFields []string `json:"-"`
17771
17772	// NullFields is a list of field names (e.g. "Tag8021q") to include in
17773	// API requests with the JSON null value. By default, fields with empty
17774	// values are omitted from API requests. However, any field with an
17775	// empty value appearing in NullFields will be sent to the server as
17776	// null. It is an error if a field in this list has a non-empty value.
17777	// This may be used to include null fields in Patch requests.
17778	NullFields []string `json:"-"`
17779}
17780
17781func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
17782	type NoMethod InterconnectAttachmentPrivateInfo
17783	raw := NoMethod(*s)
17784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17785}
17786
17787type InterconnectAttachmentsScopedList struct {
17788	// InterconnectAttachments: A list of interconnect attachments contained
17789	// in this scope.
17790	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
17791
17792	// Warning: Informational warning which replaces the list of addresses
17793	// when the list is empty.
17794	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
17795
17796	// ForceSendFields is a list of field names (e.g.
17797	// "InterconnectAttachments") to unconditionally include in API
17798	// requests. By default, fields with empty values are omitted from API
17799	// requests. However, any non-pointer, non-interface field appearing in
17800	// ForceSendFields will be sent to the server regardless of whether the
17801	// field is empty or not. This may be used to include empty fields in
17802	// Patch requests.
17803	ForceSendFields []string `json:"-"`
17804
17805	// NullFields is a list of field names (e.g. "InterconnectAttachments")
17806	// to include in API requests with the JSON null value. By default,
17807	// fields with empty values are omitted from API requests. However, any
17808	// field with an empty value appearing in NullFields will be sent to the
17809	// server as null. It is an error if a field in this list has a
17810	// non-empty value. This may be used to include null fields in Patch
17811	// requests.
17812	NullFields []string `json:"-"`
17813}
17814
17815func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
17816	type NoMethod InterconnectAttachmentsScopedList
17817	raw := NoMethod(*s)
17818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17819}
17820
17821// InterconnectAttachmentsScopedListWarning: Informational warning which
17822// replaces the list of addresses when the list is empty.
17823type InterconnectAttachmentsScopedListWarning struct {
17824	// Code: [Output Only] A warning code, if applicable. For example,
17825	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17826	// the response.
17827	//
17828	// Possible values:
17829	//   "CLEANUP_FAILED"
17830	//   "DEPRECATED_RESOURCE_USED"
17831	//   "DEPRECATED_TYPE_USED"
17832	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17833	//   "EXPERIMENTAL_TYPE_USED"
17834	//   "EXTERNAL_API_WARNING"
17835	//   "FIELD_VALUE_OVERRIDEN"
17836	//   "INJECTED_KERNELS_DEPRECATED"
17837	//   "MISSING_TYPE_DEPENDENCY"
17838	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17839	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17840	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17841	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17842	//   "NEXT_HOP_NOT_RUNNING"
17843	//   "NOT_CRITICAL_ERROR"
17844	//   "NO_RESULTS_ON_PAGE"
17845	//   "REQUIRED_TOS_AGREEMENT"
17846	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17847	//   "RESOURCE_NOT_DELETED"
17848	//   "SCHEMA_VALIDATION_IGNORED"
17849	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17850	//   "UNDECLARED_PROPERTIES"
17851	//   "UNREACHABLE"
17852	Code string `json:"code,omitempty"`
17853
17854	// Data: [Output Only] Metadata about this warning in key: value format.
17855	// For example:
17856	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17857	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
17858
17859	// Message: [Output Only] A human-readable description of the warning
17860	// code.
17861	Message string `json:"message,omitempty"`
17862
17863	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") to include in API
17872	// 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 *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
17881	type NoMethod InterconnectAttachmentsScopedListWarning
17882	raw := NoMethod(*s)
17883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17884}
17885
17886type InterconnectAttachmentsScopedListWarningData struct {
17887	// Key: [Output Only] A key that provides more detail on the warning
17888	// being returned. For example, for warnings where there are no results
17889	// in a list request for a particular zone, this key might be scope and
17890	// the key value might be the zone name. Other examples might be a key
17891	// indicating a deprecated resource and a suggested replacement, or a
17892	// warning about invalid network settings (for example, if an instance
17893	// attempts to perform IP forwarding but is not enabled for IP
17894	// forwarding).
17895	Key string `json:"key,omitempty"`
17896
17897	// Value: [Output Only] A warning data value corresponding to the key.
17898	Value string `json:"value,omitempty"`
17899
17900	// ForceSendFields is a list of field names (e.g. "Key") to
17901	// unconditionally include in API requests. By default, fields with
17902	// empty values are omitted from API requests. However, any non-pointer,
17903	// non-interface field appearing in ForceSendFields will be sent to the
17904	// server regardless of whether the field is empty or not. This may be
17905	// used to include empty fields in Patch requests.
17906	ForceSendFields []string `json:"-"`
17907
17908	// NullFields is a list of field names (e.g. "Key") to include in API
17909	// requests with the JSON null value. By default, fields with empty
17910	// values are omitted from API requests. However, any field with an
17911	// empty value appearing in NullFields will be sent to the server as
17912	// null. It is an error if a field in this list has a non-empty value.
17913	// This may be used to include null fields in Patch requests.
17914	NullFields []string `json:"-"`
17915}
17916
17917func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
17918	type NoMethod InterconnectAttachmentsScopedListWarningData
17919	raw := NoMethod(*s)
17920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17921}
17922
17923// InterconnectCircuitInfo: Describes a single physical circuit between
17924// the Customer and Google. CircuitInfo objects are created by Google,
17925// so all fields are output only.
17926type InterconnectCircuitInfo struct {
17927	// CustomerDemarcId: Customer-side demarc ID for this circuit.
17928	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
17929
17930	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
17931	// at circuit turn-up.
17932	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
17933
17934	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
17935	// circuit turn-up and provided by Google to the customer in the LOA.
17936	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
17937
17938	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
17939	// unconditionally include in API requests. By default, fields with
17940	// empty values are omitted from API requests. However, any non-pointer,
17941	// non-interface field appearing in ForceSendFields will be sent to the
17942	// server regardless of whether the field is empty or not. This may be
17943	// used to include empty fields in Patch requests.
17944	ForceSendFields []string `json:"-"`
17945
17946	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
17947	// include in API requests with the JSON null value. By default, fields
17948	// with empty values are omitted from API requests. However, any field
17949	// with an empty value appearing in NullFields will be sent to the
17950	// server as null. It is an error if a field in this list has a
17951	// non-empty value. This may be used to include null fields in Patch
17952	// requests.
17953	NullFields []string `json:"-"`
17954}
17955
17956func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
17957	type NoMethod InterconnectCircuitInfo
17958	raw := NoMethod(*s)
17959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17960}
17961
17962// InterconnectDiagnostics: Diagnostics information about interconnect,
17963// contains detailed and current technical information about Google's
17964// side of the connection.
17965type InterconnectDiagnostics struct {
17966	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
17967	// describing individual neighbors currently seen by the Google router
17968	// in the ARP cache for the Interconnect. This will be empty when the
17969	// Interconnect is not bundled.
17970	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
17971
17972	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
17973	// describing the status for each link on the Interconnect.
17974	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
17975
17976	// MacAddress: The MAC address of the Interconnect's bundle interface.
17977	MacAddress string `json:"macAddress,omitempty"`
17978
17979	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
17980	// unconditionally include in API requests. By default, fields with
17981	// empty values are omitted from API requests. However, any non-pointer,
17982	// non-interface field appearing in ForceSendFields will be sent to the
17983	// server regardless of whether the field is empty or not. This may be
17984	// used to include empty fields in Patch requests.
17985	ForceSendFields []string `json:"-"`
17986
17987	// NullFields is a list of field names (e.g. "ArpCaches") to include in
17988	// API requests with the JSON null value. By default, fields with empty
17989	// values are omitted from API requests. However, any field with an
17990	// empty value appearing in NullFields will be sent to the server as
17991	// null. It is an error if a field in this list has a non-empty value.
17992	// This may be used to include null fields in Patch requests.
17993	NullFields []string `json:"-"`
17994}
17995
17996func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
17997	type NoMethod InterconnectDiagnostics
17998	raw := NoMethod(*s)
17999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18000}
18001
18002// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
18003// seen on this link
18004type InterconnectDiagnosticsARPEntry struct {
18005	// IpAddress: The IP address of this ARP neighbor.
18006	IpAddress string `json:"ipAddress,omitempty"`
18007
18008	// MacAddress: The MAC address of this ARP neighbor.
18009	MacAddress string `json:"macAddress,omitempty"`
18010
18011	// ForceSendFields is a list of field names (e.g. "IpAddress") to
18012	// unconditionally include in API requests. By default, fields with
18013	// empty values are omitted from API requests. However, any non-pointer,
18014	// non-interface field appearing in ForceSendFields will be sent to the
18015	// server regardless of whether the field is empty or not. This may be
18016	// used to include empty fields in Patch requests.
18017	ForceSendFields []string `json:"-"`
18018
18019	// NullFields is a list of field names (e.g. "IpAddress") to include in
18020	// API requests with the JSON null value. By default, fields with empty
18021	// values are omitted from API requests. However, any field with an
18022	// empty value appearing in NullFields will be sent to the server as
18023	// null. It is an error if a field in this list has a non-empty value.
18024	// This may be used to include null fields in Patch requests.
18025	NullFields []string `json:"-"`
18026}
18027
18028func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
18029	type NoMethod InterconnectDiagnosticsARPEntry
18030	raw := NoMethod(*s)
18031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18032}
18033
18034type InterconnectDiagnosticsLinkLACPStatus struct {
18035	// GoogleSystemId: System ID of the port on Google's side of the LACP
18036	// exchange.
18037	GoogleSystemId string `json:"googleSystemId,omitempty"`
18038
18039	// NeighborSystemId: System ID of the port on the neighbor's side of the
18040	// LACP exchange.
18041	NeighborSystemId string `json:"neighborSystemId,omitempty"`
18042
18043	// State: The state of a LACP link, which can take one of the following
18044	// values:
18045	// - ACTIVE: The link is configured and active within the bundle.
18046	// - DETACHED: The link is not configured within the bundle. This means
18047	// that the rest of the object should be empty.
18048	//
18049	// Possible values:
18050	//   "ACTIVE"
18051	//   "DETACHED"
18052	State string `json:"state,omitempty"`
18053
18054	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
18055	// unconditionally include in API requests. By default, fields with
18056	// empty values are omitted from API requests. However, any non-pointer,
18057	// non-interface field appearing in ForceSendFields will be sent to the
18058	// server regardless of whether the field is empty or not. This may be
18059	// used to include empty fields in Patch requests.
18060	ForceSendFields []string `json:"-"`
18061
18062	// NullFields is a list of field names (e.g. "GoogleSystemId") to
18063	// include in API requests with the JSON null value. By default, fields
18064	// with empty values are omitted from API requests. However, any field
18065	// with an empty value appearing in NullFields will be sent to the
18066	// server as null. It is an error if a field in this list has a
18067	// non-empty value. This may be used to include null fields in Patch
18068	// requests.
18069	NullFields []string `json:"-"`
18070}
18071
18072func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
18073	type NoMethod InterconnectDiagnosticsLinkLACPStatus
18074	raw := NoMethod(*s)
18075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18076}
18077
18078type InterconnectDiagnosticsLinkOpticalPower struct {
18079	// State: The status of the current value when compared to the warning
18080	// and alarm levels for the receiving or transmitting transceiver.
18081	// Possible states include:
18082	// - OK: The value has not crossed a warning threshold.
18083	// - LOW_WARNING: The value has crossed below the low warning threshold.
18084	//
18085	// - HIGH_WARNING: The value has crossed above the high warning
18086	// threshold.
18087	// - LOW_ALARM: The value has crossed below the low alarm threshold.
18088	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
18089	//
18090	// Possible values:
18091	//   "HIGH_ALARM"
18092	//   "HIGH_WARNING"
18093	//   "LOW_ALARM"
18094	//   "LOW_WARNING"
18095	//   "OK"
18096	State string `json:"state,omitempty"`
18097
18098	// Value: Value of the current receiving or transmitting optical power,
18099	// read in dBm. Take a known good optical value, give it a 10% margin
18100	// and trigger warnings relative to that value. In general, a -7dBm
18101	// warning and a -11dBm alarm are good optical value estimates for most
18102	// links.
18103	Value float64 `json:"value,omitempty"`
18104
18105	// ForceSendFields is a list of field names (e.g. "State") to
18106	// unconditionally include in API requests. By default, fields with
18107	// empty values are omitted from API requests. However, any non-pointer,
18108	// non-interface field appearing in ForceSendFields will be sent to the
18109	// server regardless of whether the field is empty or not. This may be
18110	// used to include empty fields in Patch requests.
18111	ForceSendFields []string `json:"-"`
18112
18113	// NullFields is a list of field names (e.g. "State") to include in API
18114	// requests with the JSON null value. By default, fields with empty
18115	// values are omitted from API requests. However, any field with an
18116	// empty value appearing in NullFields will be sent to the server as
18117	// null. It is an error if a field in this list has a non-empty value.
18118	// This may be used to include null fields in Patch requests.
18119	NullFields []string `json:"-"`
18120}
18121
18122func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
18123	type NoMethod InterconnectDiagnosticsLinkOpticalPower
18124	raw := NoMethod(*s)
18125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18126}
18127
18128func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
18129	type NoMethod InterconnectDiagnosticsLinkOpticalPower
18130	var s1 struct {
18131		Value gensupport.JSONFloat64 `json:"value"`
18132		*NoMethod
18133	}
18134	s1.NoMethod = (*NoMethod)(s)
18135	if err := json.Unmarshal(data, &s1); err != nil {
18136		return err
18137	}
18138	s.Value = float64(s1.Value)
18139	return nil
18140}
18141
18142type InterconnectDiagnosticsLinkStatus struct {
18143	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
18144	// describing the ARP neighbor entries seen on this link. This will be
18145	// empty if the link is bundled
18146	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
18147
18148	// CircuitId: The unique ID for this link assigned during turn up by
18149	// Google.
18150	CircuitId string `json:"circuitId,omitempty"`
18151
18152	// GoogleDemarc: The Demarc address assigned by Google and provided in
18153	// the LoA.
18154	GoogleDemarc string `json:"googleDemarc,omitempty"`
18155
18156	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
18157
18158	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
18159	// object, describing the current value and status of the received light
18160	// level.
18161	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
18162
18163	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
18164	// object, describing the current value and status of the transmitted
18165	// light level.
18166	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
18167
18168	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
18169	// unconditionally include in API requests. By default, fields with
18170	// empty values are omitted from API requests. However, any non-pointer,
18171	// non-interface field appearing in ForceSendFields will be sent to the
18172	// server regardless of whether the field is empty or not. This may be
18173	// used to include empty fields in Patch requests.
18174	ForceSendFields []string `json:"-"`
18175
18176	// NullFields is a list of field names (e.g. "ArpCaches") to include in
18177	// API requests with the JSON null value. By default, fields with empty
18178	// values are omitted from API requests. However, any field with an
18179	// empty value appearing in NullFields will be sent to the server as
18180	// null. It is an error if a field in this list has a non-empty value.
18181	// This may be used to include null fields in Patch requests.
18182	NullFields []string `json:"-"`
18183}
18184
18185func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
18186	type NoMethod InterconnectDiagnosticsLinkStatus
18187	raw := NoMethod(*s)
18188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18189}
18190
18191// InterconnectList: Response to the list request, and contains a list
18192// of interconnects.
18193type InterconnectList struct {
18194	// Id: [Output Only] Unique identifier for the resource; defined by the
18195	// server.
18196	Id string `json:"id,omitempty"`
18197
18198	// Items: A list of Interconnect resources.
18199	Items []*Interconnect `json:"items,omitempty"`
18200
18201	// Kind: [Output Only] Type of resource. Always compute#interconnectList
18202	// for lists of interconnects.
18203	Kind string `json:"kind,omitempty"`
18204
18205	// NextPageToken: [Output Only] This token allows you to get the next
18206	// page of results for list requests. If the number of results is larger
18207	// than maxResults, use the nextPageToken as a value for the query
18208	// parameter pageToken in the next list request. Subsequent list
18209	// requests will have their own nextPageToken to continue paging through
18210	// the results.
18211	NextPageToken string `json:"nextPageToken,omitempty"`
18212
18213	// SelfLink: [Output Only] Server-defined URL for this resource.
18214	SelfLink string `json:"selfLink,omitempty"`
18215
18216	// Warning: [Output Only] Informational warning message.
18217	Warning *InterconnectListWarning `json:"warning,omitempty"`
18218
18219	// ServerResponse contains the HTTP response code and headers from the
18220	// server.
18221	googleapi.ServerResponse `json:"-"`
18222
18223	// ForceSendFields is a list of field names (e.g. "Id") to
18224	// unconditionally include in API requests. By default, fields with
18225	// empty values are omitted from API requests. However, any non-pointer,
18226	// non-interface field appearing in ForceSendFields will be sent to the
18227	// server regardless of whether the field is empty or not. This may be
18228	// used to include empty fields in Patch requests.
18229	ForceSendFields []string `json:"-"`
18230
18231	// NullFields is a list of field names (e.g. "Id") to include in API
18232	// requests with the JSON null value. By default, fields with empty
18233	// values are omitted from API requests. However, any field with an
18234	// empty value appearing in NullFields will be sent to the server as
18235	// null. It is an error if a field in this list has a non-empty value.
18236	// This may be used to include null fields in Patch requests.
18237	NullFields []string `json:"-"`
18238}
18239
18240func (s *InterconnectList) MarshalJSON() ([]byte, error) {
18241	type NoMethod InterconnectList
18242	raw := NoMethod(*s)
18243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18244}
18245
18246// InterconnectListWarning: [Output Only] Informational warning message.
18247type InterconnectListWarning struct {
18248	// Code: [Output Only] A warning code, if applicable. For example,
18249	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18250	// the response.
18251	//
18252	// Possible values:
18253	//   "CLEANUP_FAILED"
18254	//   "DEPRECATED_RESOURCE_USED"
18255	//   "DEPRECATED_TYPE_USED"
18256	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18257	//   "EXPERIMENTAL_TYPE_USED"
18258	//   "EXTERNAL_API_WARNING"
18259	//   "FIELD_VALUE_OVERRIDEN"
18260	//   "INJECTED_KERNELS_DEPRECATED"
18261	//   "MISSING_TYPE_DEPENDENCY"
18262	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18263	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18264	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18265	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18266	//   "NEXT_HOP_NOT_RUNNING"
18267	//   "NOT_CRITICAL_ERROR"
18268	//   "NO_RESULTS_ON_PAGE"
18269	//   "REQUIRED_TOS_AGREEMENT"
18270	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18271	//   "RESOURCE_NOT_DELETED"
18272	//   "SCHEMA_VALIDATION_IGNORED"
18273	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18274	//   "UNDECLARED_PROPERTIES"
18275	//   "UNREACHABLE"
18276	Code string `json:"code,omitempty"`
18277
18278	// Data: [Output Only] Metadata about this warning in key: value format.
18279	// For example:
18280	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18281	Data []*InterconnectListWarningData `json:"data,omitempty"`
18282
18283	// Message: [Output Only] A human-readable description of the warning
18284	// code.
18285	Message string `json:"message,omitempty"`
18286
18287	// ForceSendFields is a list of field names (e.g. "Code") to
18288	// unconditionally include in API requests. By default, fields with
18289	// empty values are omitted from API requests. However, any non-pointer,
18290	// non-interface field appearing in ForceSendFields will be sent to the
18291	// server regardless of whether the field is empty or not. This may be
18292	// used to include empty fields in Patch requests.
18293	ForceSendFields []string `json:"-"`
18294
18295	// NullFields is a list of field names (e.g. "Code") to include in API
18296	// requests with the JSON null value. By default, fields with empty
18297	// values are omitted from API requests. However, any field with an
18298	// empty value appearing in NullFields will be sent to the server as
18299	// null. It is an error if a field in this list has a non-empty value.
18300	// This may be used to include null fields in Patch requests.
18301	NullFields []string `json:"-"`
18302}
18303
18304func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
18305	type NoMethod InterconnectListWarning
18306	raw := NoMethod(*s)
18307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18308}
18309
18310type InterconnectListWarningData struct {
18311	// Key: [Output Only] A key that provides more detail on the warning
18312	// being returned. For example, for warnings where there are no results
18313	// in a list request for a particular zone, this key might be scope and
18314	// the key value might be the zone name. Other examples might be a key
18315	// indicating a deprecated resource and a suggested replacement, or a
18316	// warning about invalid network settings (for example, if an instance
18317	// attempts to perform IP forwarding but is not enabled for IP
18318	// forwarding).
18319	Key string `json:"key,omitempty"`
18320
18321	// Value: [Output Only] A warning data value corresponding to the key.
18322	Value string `json:"value,omitempty"`
18323
18324	// ForceSendFields is a list of field names (e.g. "Key") to
18325	// unconditionally include in API requests. By default, fields with
18326	// empty values are omitted from API requests. However, any non-pointer,
18327	// non-interface field appearing in ForceSendFields will be sent to the
18328	// server regardless of whether the field is empty or not. This may be
18329	// used to include empty fields in Patch requests.
18330	ForceSendFields []string `json:"-"`
18331
18332	// NullFields is a list of field names (e.g. "Key") to include in API
18333	// requests with the JSON null value. By default, fields with empty
18334	// values are omitted from API requests. However, any field with an
18335	// empty value appearing in NullFields will be sent to the server as
18336	// null. It is an error if a field in this list has a non-empty value.
18337	// This may be used to include null fields in Patch requests.
18338	NullFields []string `json:"-"`
18339}
18340
18341func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
18342	type NoMethod InterconnectListWarningData
18343	raw := NoMethod(*s)
18344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18345}
18346
18347// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
18348// Location resource.
18349//
18350// You can use this resource to find location details about an
18351// Interconnect attachment (VLAN). For more information about
18352// interconnect attachments, read  Creating VLAN Attachments.
18353type InterconnectLocation struct {
18354	// Address: [Output Only] The postal address of the Point of Presence,
18355	// each line in the address is separated by a newline character.
18356	Address string `json:"address,omitempty"`
18357
18358	// AvailabilityZone: [Output Only] Availability zone for this
18359	// InterconnectLocation. Within a metropolitan area (metro), maintenance
18360	// will not be simultaneously scheduled in more than one availability
18361	// zone. Example: "zone1" or "zone2".
18362	AvailabilityZone string `json:"availabilityZone,omitempty"`
18363
18364	// City: [Output Only] Metropolitan area designator that indicates which
18365	// city an interconnect is located. For example: "Chicago, IL",
18366	// "Amsterdam, Netherlands".
18367	City string `json:"city,omitempty"`
18368
18369	// Continent: [Output Only] Continent for this location, which can take
18370	// one of the following values:
18371	// - AFRICA
18372	// - ASIA_PAC
18373	// - EUROPE
18374	// - NORTH_AMERICA
18375	// - SOUTH_AMERICA
18376	//
18377	// Possible values:
18378	//   "AFRICA"
18379	//   "ASIA_PAC"
18380	//   "C_AFRICA"
18381	//   "C_ASIA_PAC"
18382	//   "C_EUROPE"
18383	//   "C_NORTH_AMERICA"
18384	//   "C_SOUTH_AMERICA"
18385	//   "EUROPE"
18386	//   "NORTH_AMERICA"
18387	//   "SOUTH_AMERICA"
18388	Continent string `json:"continent,omitempty"`
18389
18390	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18391	// format.
18392	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18393
18394	// Description: [Output Only] An optional description of the resource.
18395	Description string `json:"description,omitempty"`
18396
18397	// FacilityProvider: [Output Only] The name of the provider for this
18398	// facility (e.g., EQUINIX).
18399	FacilityProvider string `json:"facilityProvider,omitempty"`
18400
18401	// FacilityProviderFacilityId: [Output Only] A provider-assigned
18402	// Identifier for this facility (e.g., Ashburn-DC1).
18403	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
18404
18405	// Id: [Output Only] The unique identifier for the resource. This
18406	// identifier is defined by the server.
18407	Id uint64 `json:"id,omitempty,string"`
18408
18409	// Kind: [Output Only] Type of the resource. Always
18410	// compute#interconnectLocation for interconnect locations.
18411	Kind string `json:"kind,omitempty"`
18412
18413	// Name: [Output Only] Name of the resource.
18414	Name string `json:"name,omitempty"`
18415
18416	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
18417	// facility (corresponding with a netfac type in peeringdb).
18418	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
18419
18420	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
18421	// objects, that describe parameters pertaining to the relation between
18422	// this InterconnectLocation and various Google Cloud regions.
18423	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
18424
18425	// SelfLink: [Output Only] Server-defined URL for the resource.
18426	SelfLink string `json:"selfLink,omitempty"`
18427
18428	// Status: [Output Only] The status of this InterconnectLocation, which
18429	// can take one of the following values:
18430	// - CLOSED: The InterconnectLocation is closed and is unavailable for
18431	// provisioning new Interconnects.
18432	// - AVAILABLE: The InterconnectLocation is available for provisioning
18433	// new Interconnects.
18434	//
18435	// Possible values:
18436	//   "AVAILABLE"
18437	//   "CLOSED"
18438	Status string `json:"status,omitempty"`
18439
18440	// ServerResponse contains the HTTP response code and headers from the
18441	// server.
18442	googleapi.ServerResponse `json:"-"`
18443
18444	// ForceSendFields is a list of field names (e.g. "Address") to
18445	// unconditionally include in API requests. By default, fields with
18446	// empty values are omitted from API requests. However, any non-pointer,
18447	// non-interface field appearing in ForceSendFields will be sent to the
18448	// server regardless of whether the field is empty or not. This may be
18449	// used to include empty fields in Patch requests.
18450	ForceSendFields []string `json:"-"`
18451
18452	// NullFields is a list of field names (e.g. "Address") to include in
18453	// API requests with the JSON null value. By default, fields with empty
18454	// values are omitted from API requests. However, any field with an
18455	// empty value appearing in NullFields will be sent to the server as
18456	// null. It is an error if a field in this list has a non-empty value.
18457	// This may be used to include null fields in Patch requests.
18458	NullFields []string `json:"-"`
18459}
18460
18461func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
18462	type NoMethod InterconnectLocation
18463	raw := NoMethod(*s)
18464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18465}
18466
18467// InterconnectLocationList: Response to the list request, and contains
18468// a list of interconnect locations.
18469type InterconnectLocationList struct {
18470	// Id: [Output Only] Unique identifier for the resource; defined by the
18471	// server.
18472	Id string `json:"id,omitempty"`
18473
18474	// Items: A list of InterconnectLocation resources.
18475	Items []*InterconnectLocation `json:"items,omitempty"`
18476
18477	// Kind: [Output Only] Type of resource. Always
18478	// compute#interconnectLocationList for lists of interconnect locations.
18479	Kind string `json:"kind,omitempty"`
18480
18481	// NextPageToken: [Output Only] This token allows you to get the next
18482	// page of results for list requests. If the number of results is larger
18483	// than maxResults, use the nextPageToken as a value for the query
18484	// parameter pageToken in the next list request. Subsequent list
18485	// requests will have their own nextPageToken to continue paging through
18486	// the results.
18487	NextPageToken string `json:"nextPageToken,omitempty"`
18488
18489	// SelfLink: [Output Only] Server-defined URL for this resource.
18490	SelfLink string `json:"selfLink,omitempty"`
18491
18492	// Warning: [Output Only] Informational warning message.
18493	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
18494
18495	// ServerResponse contains the HTTP response code and headers from the
18496	// server.
18497	googleapi.ServerResponse `json:"-"`
18498
18499	// ForceSendFields is a list of field names (e.g. "Id") to
18500	// unconditionally include in API requests. By default, fields with
18501	// empty values are omitted from API requests. However, any non-pointer,
18502	// non-interface field appearing in ForceSendFields will be sent to the
18503	// server regardless of whether the field is empty or not. This may be
18504	// used to include empty fields in Patch requests.
18505	ForceSendFields []string `json:"-"`
18506
18507	// NullFields is a list of field names (e.g. "Id") to include in API
18508	// requests with the JSON null value. By default, fields with empty
18509	// values are omitted from API requests. However, any field with an
18510	// empty value appearing in NullFields will be sent to the server as
18511	// null. It is an error if a field in this list has a non-empty value.
18512	// This may be used to include null fields in Patch requests.
18513	NullFields []string `json:"-"`
18514}
18515
18516func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
18517	type NoMethod InterconnectLocationList
18518	raw := NoMethod(*s)
18519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18520}
18521
18522// InterconnectLocationListWarning: [Output Only] Informational warning
18523// message.
18524type InterconnectLocationListWarning struct {
18525	// Code: [Output Only] A warning code, if applicable. For example,
18526	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18527	// the response.
18528	//
18529	// Possible values:
18530	//   "CLEANUP_FAILED"
18531	//   "DEPRECATED_RESOURCE_USED"
18532	//   "DEPRECATED_TYPE_USED"
18533	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18534	//   "EXPERIMENTAL_TYPE_USED"
18535	//   "EXTERNAL_API_WARNING"
18536	//   "FIELD_VALUE_OVERRIDEN"
18537	//   "INJECTED_KERNELS_DEPRECATED"
18538	//   "MISSING_TYPE_DEPENDENCY"
18539	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18540	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18541	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18542	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18543	//   "NEXT_HOP_NOT_RUNNING"
18544	//   "NOT_CRITICAL_ERROR"
18545	//   "NO_RESULTS_ON_PAGE"
18546	//   "REQUIRED_TOS_AGREEMENT"
18547	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18548	//   "RESOURCE_NOT_DELETED"
18549	//   "SCHEMA_VALIDATION_IGNORED"
18550	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18551	//   "UNDECLARED_PROPERTIES"
18552	//   "UNREACHABLE"
18553	Code string `json:"code,omitempty"`
18554
18555	// Data: [Output Only] Metadata about this warning in key: value format.
18556	// For example:
18557	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18558	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
18559
18560	// Message: [Output Only] A human-readable description of the warning
18561	// code.
18562	Message string `json:"message,omitempty"`
18563
18564	// ForceSendFields is a list of field names (e.g. "Code") to
18565	// unconditionally include in API requests. By default, fields with
18566	// empty values are omitted from API requests. However, any non-pointer,
18567	// non-interface field appearing in ForceSendFields will be sent to the
18568	// server regardless of whether the field is empty or not. This may be
18569	// used to include empty fields in Patch requests.
18570	ForceSendFields []string `json:"-"`
18571
18572	// NullFields is a list of field names (e.g. "Code") to include in API
18573	// requests with the JSON null value. By default, fields with empty
18574	// values are omitted from API requests. However, any field with an
18575	// empty value appearing in NullFields will be sent to the server as
18576	// null. It is an error if a field in this list has a non-empty value.
18577	// This may be used to include null fields in Patch requests.
18578	NullFields []string `json:"-"`
18579}
18580
18581func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
18582	type NoMethod InterconnectLocationListWarning
18583	raw := NoMethod(*s)
18584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18585}
18586
18587type InterconnectLocationListWarningData struct {
18588	// Key: [Output Only] A key that provides more detail on the warning
18589	// being returned. For example, for warnings where there are no results
18590	// in a list request for a particular zone, this key might be scope and
18591	// the key value might be the zone name. Other examples might be a key
18592	// indicating a deprecated resource and a suggested replacement, or a
18593	// warning about invalid network settings (for example, if an instance
18594	// attempts to perform IP forwarding but is not enabled for IP
18595	// forwarding).
18596	Key string `json:"key,omitempty"`
18597
18598	// Value: [Output Only] A warning data value corresponding to the key.
18599	Value string `json:"value,omitempty"`
18600
18601	// ForceSendFields is a list of field names (e.g. "Key") to
18602	// unconditionally include in API requests. By default, fields with
18603	// empty values are omitted from API requests. However, any non-pointer,
18604	// non-interface field appearing in ForceSendFields will be sent to the
18605	// server regardless of whether the field is empty or not. This may be
18606	// used to include empty fields in Patch requests.
18607	ForceSendFields []string `json:"-"`
18608
18609	// NullFields is a list of field names (e.g. "Key") to include in API
18610	// requests with the JSON null value. By default, fields with empty
18611	// values are omitted from API requests. However, any field with an
18612	// empty value appearing in NullFields will be sent to the server as
18613	// null. It is an error if a field in this list has a non-empty value.
18614	// This may be used to include null fields in Patch requests.
18615	NullFields []string `json:"-"`
18616}
18617
18618func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
18619	type NoMethod InterconnectLocationListWarningData
18620	raw := NoMethod(*s)
18621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18622}
18623
18624// InterconnectLocationRegionInfo: Information about any potential
18625// InterconnectAttachments between an Interconnect at a specific
18626// InterconnectLocation, and a specific Cloud Region.
18627type InterconnectLocationRegionInfo struct {
18628	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
18629	// InterconnectLocation to a VM in this region.
18630	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
18631
18632	// LocationPresence: Identifies the network presence of this location.
18633	//
18634	// Possible values:
18635	//   "GLOBAL"
18636	//   "LOCAL_REGION"
18637	//   "LP_GLOBAL"
18638	//   "LP_LOCAL_REGION"
18639	LocationPresence string `json:"locationPresence,omitempty"`
18640
18641	// Region: URL for the region of this location.
18642	Region string `json:"region,omitempty"`
18643
18644	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
18645	// unconditionally include in API requests. By default, fields with
18646	// empty values are omitted from API requests. However, any non-pointer,
18647	// non-interface field appearing in ForceSendFields will be sent to the
18648	// server regardless of whether the field is empty or not. This may be
18649	// used to include empty fields in Patch requests.
18650	ForceSendFields []string `json:"-"`
18651
18652	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
18653	// in API requests with the JSON null value. By default, fields with
18654	// empty values are omitted from API requests. However, any field with
18655	// an empty value appearing in NullFields will be sent to the server as
18656	// null. It is an error if a field in this list has a non-empty value.
18657	// This may be used to include null fields in Patch requests.
18658	NullFields []string `json:"-"`
18659}
18660
18661func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
18662	type NoMethod InterconnectLocationRegionInfo
18663	raw := NoMethod(*s)
18664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18665}
18666
18667// InterconnectOutageNotification: Description of a planned outage on
18668// this Interconnect.
18669type InterconnectOutageNotification struct {
18670	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
18671	// Google-side circuit IDs that will be affected.
18672	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
18673
18674	// Description: A description about the purpose of the outage.
18675	Description string `json:"description,omitempty"`
18676
18677	// EndTime: Scheduled end time for the outage (milliseconds since Unix
18678	// epoch).
18679	EndTime int64 `json:"endTime,omitempty,string"`
18680
18681	// IssueType: Form this outage is expected to take, which can take one
18682	// of the following values:
18683	// - OUTAGE: The Interconnect may be completely out of service for some
18684	// or all of the specified window.
18685	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
18686	// whole should remain up, but with reduced bandwidth. Note that the
18687	// versions of this enum prefixed with "IT_" have been deprecated in
18688	// favor of the unprefixed values.
18689	//
18690	// Possible values:
18691	//   "IT_OUTAGE"
18692	//   "IT_PARTIAL_OUTAGE"
18693	//   "OUTAGE"
18694	//   "PARTIAL_OUTAGE"
18695	IssueType string `json:"issueType,omitempty"`
18696
18697	// Name: Unique identifier for this outage notification.
18698	Name string `json:"name,omitempty"`
18699
18700	// Source: The party that generated this notification, which can take
18701	// the following value:
18702	// - GOOGLE: this notification as generated by Google. Note that the
18703	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
18704	//
18705	// Possible values:
18706	//   "GOOGLE"
18707	//   "NSRC_GOOGLE"
18708	Source string `json:"source,omitempty"`
18709
18710	// StartTime: Scheduled start time for the outage (milliseconds since
18711	// Unix epoch).
18712	StartTime int64 `json:"startTime,omitempty,string"`
18713
18714	// State: State of this notification, which can take one of the
18715	// following values:
18716	// - ACTIVE: This outage notification is active. The event could be in
18717	// the past, present, or future. See start_time and end_time for
18718	// scheduling.
18719	// - CANCELLED: The outage associated with this notification was
18720	// cancelled before the outage was due to start. Note that the versions
18721	// of this enum prefixed with "NS_" have been deprecated in favor of the
18722	// unprefixed values.
18723	//
18724	// Possible values:
18725	//   "ACTIVE"
18726	//   "CANCELLED"
18727	//   "COMPLETED"
18728	//   "NS_ACTIVE"
18729	//   "NS_CANCELED"
18730	State string `json:"state,omitempty"`
18731
18732	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
18733	// unconditionally include in API requests. By default, fields with
18734	// empty values are omitted from API requests. However, any non-pointer,
18735	// non-interface field appearing in ForceSendFields will be sent to the
18736	// server regardless of whether the field is empty or not. This may be
18737	// used to include empty fields in Patch requests.
18738	ForceSendFields []string `json:"-"`
18739
18740	// NullFields is a list of field names (e.g. "AffectedCircuits") to
18741	// include in API requests with the JSON null value. By default, fields
18742	// with empty values are omitted from API requests. However, any field
18743	// with an empty value appearing in NullFields will be sent to the
18744	// server as null. It is an error if a field in this list has a
18745	// non-empty value. This may be used to include null fields in Patch
18746	// requests.
18747	NullFields []string `json:"-"`
18748}
18749
18750func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
18751	type NoMethod InterconnectOutageNotification
18752	raw := NoMethod(*s)
18753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18754}
18755
18756// InterconnectsGetDiagnosticsResponse: Response for the
18757// InterconnectsGetDiagnosticsRequest.
18758type InterconnectsGetDiagnosticsResponse struct {
18759	Result *InterconnectDiagnostics `json:"result,omitempty"`
18760
18761	// ServerResponse contains the HTTP response code and headers from the
18762	// server.
18763	googleapi.ServerResponse `json:"-"`
18764
18765	// ForceSendFields is a list of field names (e.g. "Result") to
18766	// unconditionally include in API requests. By default, fields with
18767	// empty values are omitted from API requests. However, any non-pointer,
18768	// non-interface field appearing in ForceSendFields will be sent to the
18769	// server regardless of whether the field is empty or not. This may be
18770	// used to include empty fields in Patch requests.
18771	ForceSendFields []string `json:"-"`
18772
18773	// NullFields is a list of field names (e.g. "Result") to include in API
18774	// requests with the JSON null value. By default, fields with empty
18775	// values are omitted from API requests. However, any field with an
18776	// empty value appearing in NullFields will be sent to the server as
18777	// null. It is an error if a field in this list has a non-empty value.
18778	// This may be used to include null fields in Patch requests.
18779	NullFields []string `json:"-"`
18780}
18781
18782func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
18783	type NoMethod InterconnectsGetDiagnosticsResponse
18784	raw := NoMethod(*s)
18785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18786}
18787
18788// License: Represents a License resource.
18789//
18790// A License represents billing and aggregate usage data for public and
18791// marketplace images.  Caution This resource is intended for use only
18792// by third-party partners who are creating Cloud Marketplace images.
18793// (== resource_for {$api_version}.licenses ==)
18794type License struct {
18795	// ChargesUseFee: [Output Only] Deprecated. This field no longer
18796	// reflects whether a license charges a usage fee.
18797	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
18798
18799	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18800	// format.
18801	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18802
18803	// Description: An optional textual description of the resource;
18804	// provided by the client when the resource is created.
18805	Description string `json:"description,omitempty"`
18806
18807	// Id: [Output Only] The unique identifier for the resource. This
18808	// identifier is defined by the server.
18809	Id uint64 `json:"id,omitempty,string"`
18810
18811	// Kind: [Output Only] Type of resource. Always compute#license for
18812	// licenses.
18813	Kind string `json:"kind,omitempty"`
18814
18815	// LicenseCode: [Output Only] The unique code used to attach this
18816	// license to images, snapshots, and disks.
18817	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
18818
18819	// Name: Name of the resource. The name must be 1-63 characters long and
18820	// comply with RFC1035.
18821	Name string `json:"name,omitempty"`
18822
18823	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
18824
18825	// SelfLink: [Output Only] Server-defined URL for the resource.
18826	SelfLink string `json:"selfLink,omitempty"`
18827
18828	// Transferable: If false, licenses will not be copied from the source
18829	// resource when creating an image from a disk, disk from snapshot, or
18830	// snapshot from disk.
18831	Transferable bool `json:"transferable,omitempty"`
18832
18833	// ServerResponse contains the HTTP response code and headers from the
18834	// server.
18835	googleapi.ServerResponse `json:"-"`
18836
18837	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
18838	// unconditionally include in API requests. By default, fields with
18839	// empty values are omitted from API requests. However, any non-pointer,
18840	// non-interface field appearing in ForceSendFields will be sent to the
18841	// server regardless of whether the field is empty or not. This may be
18842	// used to include empty fields in Patch requests.
18843	ForceSendFields []string `json:"-"`
18844
18845	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
18846	// in API requests with the JSON null value. By default, fields with
18847	// empty values are omitted from API requests. However, any field with
18848	// an empty value appearing in NullFields will be sent to the server as
18849	// null. It is an error if a field in this list has a non-empty value.
18850	// This may be used to include null fields in Patch requests.
18851	NullFields []string `json:"-"`
18852}
18853
18854func (s *License) MarshalJSON() ([]byte, error) {
18855	type NoMethod License
18856	raw := NoMethod(*s)
18857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18858}
18859
18860// LicenseCode: Represents a License Code resource.
18861//
18862// A License Code is a unique identifier used to represent a license
18863// resource.  Caution This resource is intended for use only by
18864// third-party partners who are creating Cloud Marketplace images. (==
18865// resource_for {$api_version}.licenseCodes ==)
18866type LicenseCode struct {
18867	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18868	// format.
18869	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18870
18871	// Description: [Output Only] Description of this License Code.
18872	Description string `json:"description,omitempty"`
18873
18874	// Id: [Output Only] The unique identifier for the resource. This
18875	// identifier is defined by the server.
18876	Id uint64 `json:"id,omitempty,string"`
18877
18878	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
18879	// licenses.
18880	Kind string `json:"kind,omitempty"`
18881
18882	// LicenseAlias: [Output Only] URL and description aliases of Licenses
18883	// with the same License Code.
18884	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
18885
18886	// Name: [Output Only] Name of the resource. The name is 1-20 characters
18887	// long and must be a valid 64 bit integer.
18888	Name string `json:"name,omitempty"`
18889
18890	// SelfLink: [Output Only] Server-defined URL for the resource.
18891	SelfLink string `json:"selfLink,omitempty"`
18892
18893	// State: [Output Only] Current state of this License Code.
18894	//
18895	// Possible values:
18896	//   "DISABLED"
18897	//   "ENABLED"
18898	//   "RESTRICTED"
18899	//   "STATE_UNSPECIFIED"
18900	//   "TERMINATED"
18901	State string `json:"state,omitempty"`
18902
18903	// Transferable: [Output Only] If true, the license will remain attached
18904	// when creating images or snapshots from disks. Otherwise, the license
18905	// is not transferred.
18906	Transferable bool `json:"transferable,omitempty"`
18907
18908	// ServerResponse contains the HTTP response code and headers from the
18909	// server.
18910	googleapi.ServerResponse `json:"-"`
18911
18912	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18913	// to unconditionally include in API requests. By default, fields with
18914	// empty values are omitted from API requests. However, any non-pointer,
18915	// non-interface field appearing in ForceSendFields will be sent to the
18916	// server regardless of whether the field is empty or not. This may be
18917	// used to include empty fields in Patch requests.
18918	ForceSendFields []string `json:"-"`
18919
18920	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18921	// include in API requests with the JSON null value. By default, fields
18922	// with empty values are omitted from API requests. However, any field
18923	// with an empty value appearing in NullFields will be sent to the
18924	// server as null. It is an error if a field in this list has a
18925	// non-empty value. This may be used to include null fields in Patch
18926	// requests.
18927	NullFields []string `json:"-"`
18928}
18929
18930func (s *LicenseCode) MarshalJSON() ([]byte, error) {
18931	type NoMethod LicenseCode
18932	raw := NoMethod(*s)
18933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18934}
18935
18936type LicenseCodeLicenseAlias struct {
18937	// Description: [Output Only] Description of this License Code.
18938	Description string `json:"description,omitempty"`
18939
18940	// SelfLink: [Output Only] URL of license corresponding to this License
18941	// Code.
18942	SelfLink string `json:"selfLink,omitempty"`
18943
18944	// ForceSendFields is a list of field names (e.g. "Description") to
18945	// unconditionally include in API requests. By default, fields with
18946	// empty values are omitted from API requests. However, any non-pointer,
18947	// non-interface field appearing in ForceSendFields will be sent to the
18948	// server regardless of whether the field is empty or not. This may be
18949	// used to include empty fields in Patch requests.
18950	ForceSendFields []string `json:"-"`
18951
18952	// NullFields is a list of field names (e.g. "Description") to include
18953	// in API requests with the JSON null value. By default, fields with
18954	// empty values are omitted from API requests. However, any field with
18955	// an empty value appearing in NullFields will be sent to the server as
18956	// null. It is an error if a field in this list has a non-empty value.
18957	// This may be used to include null fields in Patch requests.
18958	NullFields []string `json:"-"`
18959}
18960
18961func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
18962	type NoMethod LicenseCodeLicenseAlias
18963	raw := NoMethod(*s)
18964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18965}
18966
18967type LicenseResourceRequirements struct {
18968	// MinGuestCpuCount: Minimum number of guest cpus required to use the
18969	// Instance. Enforced at Instance creation and Instance start.
18970	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
18971
18972	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
18973	// Instance creation and Instance start.
18974	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
18975
18976	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
18977	// unconditionally include in API requests. By default, fields with
18978	// empty values are omitted from API requests. However, any non-pointer,
18979	// non-interface field appearing in ForceSendFields will be sent to the
18980	// server regardless of whether the field is empty or not. This may be
18981	// used to include empty fields in Patch requests.
18982	ForceSendFields []string `json:"-"`
18983
18984	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
18985	// include in API requests with the JSON null value. By default, fields
18986	// with empty values are omitted from API requests. However, any field
18987	// with an empty value appearing in NullFields will be sent to the
18988	// server as null. It is an error if a field in this list has a
18989	// non-empty value. This may be used to include null fields in Patch
18990	// requests.
18991	NullFields []string `json:"-"`
18992}
18993
18994func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
18995	type NoMethod LicenseResourceRequirements
18996	raw := NoMethod(*s)
18997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18998}
18999
19000type LicensesListResponse struct {
19001	// Id: [Output Only] Unique identifier for the resource; defined by the
19002	// server.
19003	Id string `json:"id,omitempty"`
19004
19005	// Items: A list of License resources.
19006	Items []*License `json:"items,omitempty"`
19007
19008	// NextPageToken: [Output Only] This token allows you to get the next
19009	// page of results for list requests. If the number of results is larger
19010	// than maxResults, use the nextPageToken as a value for the query
19011	// parameter pageToken in the next list request. Subsequent list
19012	// requests will have their own nextPageToken to continue paging through
19013	// the results.
19014	NextPageToken string `json:"nextPageToken,omitempty"`
19015
19016	// SelfLink: [Output Only] Server-defined URL for this resource.
19017	SelfLink string `json:"selfLink,omitempty"`
19018
19019	// Warning: [Output Only] Informational warning message.
19020	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
19021
19022	// ServerResponse contains the HTTP response code and headers from the
19023	// server.
19024	googleapi.ServerResponse `json:"-"`
19025
19026	// ForceSendFields is a list of field names (e.g. "Id") to
19027	// unconditionally include in API requests. By default, fields with
19028	// empty values are omitted from API requests. However, any non-pointer,
19029	// non-interface field appearing in ForceSendFields will be sent to the
19030	// server regardless of whether the field is empty or not. This may be
19031	// used to include empty fields in Patch requests.
19032	ForceSendFields []string `json:"-"`
19033
19034	// NullFields is a list of field names (e.g. "Id") to include in API
19035	// requests with the JSON null value. By default, fields with empty
19036	// values are omitted from API requests. However, any field with an
19037	// empty value appearing in NullFields will be sent to the server as
19038	// null. It is an error if a field in this list has a non-empty value.
19039	// This may be used to include null fields in Patch requests.
19040	NullFields []string `json:"-"`
19041}
19042
19043func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
19044	type NoMethod LicensesListResponse
19045	raw := NoMethod(*s)
19046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19047}
19048
19049// LicensesListResponseWarning: [Output Only] Informational warning
19050// message.
19051type LicensesListResponseWarning struct {
19052	// Code: [Output Only] A warning code, if applicable. For example,
19053	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19054	// the response.
19055	//
19056	// Possible values:
19057	//   "CLEANUP_FAILED"
19058	//   "DEPRECATED_RESOURCE_USED"
19059	//   "DEPRECATED_TYPE_USED"
19060	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19061	//   "EXPERIMENTAL_TYPE_USED"
19062	//   "EXTERNAL_API_WARNING"
19063	//   "FIELD_VALUE_OVERRIDEN"
19064	//   "INJECTED_KERNELS_DEPRECATED"
19065	//   "MISSING_TYPE_DEPENDENCY"
19066	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19067	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19068	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19069	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19070	//   "NEXT_HOP_NOT_RUNNING"
19071	//   "NOT_CRITICAL_ERROR"
19072	//   "NO_RESULTS_ON_PAGE"
19073	//   "REQUIRED_TOS_AGREEMENT"
19074	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19075	//   "RESOURCE_NOT_DELETED"
19076	//   "SCHEMA_VALIDATION_IGNORED"
19077	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19078	//   "UNDECLARED_PROPERTIES"
19079	//   "UNREACHABLE"
19080	Code string `json:"code,omitempty"`
19081
19082	// Data: [Output Only] Metadata about this warning in key: value format.
19083	// For example:
19084	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19085	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
19086
19087	// Message: [Output Only] A human-readable description of the warning
19088	// code.
19089	Message string `json:"message,omitempty"`
19090
19091	// ForceSendFields is a list of field names (e.g. "Code") to
19092	// unconditionally include in API requests. By default, fields with
19093	// empty values are omitted from API requests. However, any non-pointer,
19094	// non-interface field appearing in ForceSendFields will be sent to the
19095	// server regardless of whether the field is empty or not. This may be
19096	// used to include empty fields in Patch requests.
19097	ForceSendFields []string `json:"-"`
19098
19099	// NullFields is a list of field names (e.g. "Code") to include in API
19100	// requests with the JSON null value. By default, fields with empty
19101	// values are omitted from API requests. However, any field with an
19102	// empty value appearing in NullFields will be sent to the server as
19103	// null. It is an error if a field in this list has a non-empty value.
19104	// This may be used to include null fields in Patch requests.
19105	NullFields []string `json:"-"`
19106}
19107
19108func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
19109	type NoMethod LicensesListResponseWarning
19110	raw := NoMethod(*s)
19111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19112}
19113
19114type LicensesListResponseWarningData struct {
19115	// Key: [Output Only] A key that provides more detail on the warning
19116	// being returned. For example, for warnings where there are no results
19117	// in a list request for a particular zone, this key might be scope and
19118	// the key value might be the zone name. Other examples might be a key
19119	// indicating a deprecated resource and a suggested replacement, or a
19120	// warning about invalid network settings (for example, if an instance
19121	// attempts to perform IP forwarding but is not enabled for IP
19122	// forwarding).
19123	Key string `json:"key,omitempty"`
19124
19125	// Value: [Output Only] A warning data value corresponding to the key.
19126	Value string `json:"value,omitempty"`
19127
19128	// ForceSendFields is a list of field names (e.g. "Key") to
19129	// unconditionally include in API requests. By default, fields with
19130	// empty values are omitted from API requests. However, any non-pointer,
19131	// non-interface field appearing in ForceSendFields will be sent to the
19132	// server regardless of whether the field is empty or not. This may be
19133	// used to include empty fields in Patch requests.
19134	ForceSendFields []string `json:"-"`
19135
19136	// NullFields is a list of field names (e.g. "Key") to include in API
19137	// requests with the JSON null value. By default, fields with empty
19138	// values are omitted from API requests. However, any field with an
19139	// empty value appearing in NullFields will be sent to the server as
19140	// null. It is an error if a field in this list has a non-empty value.
19141	// This may be used to include null fields in Patch requests.
19142	NullFields []string `json:"-"`
19143}
19144
19145func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
19146	type NoMethod LicensesListResponseWarningData
19147	raw := NoMethod(*s)
19148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19149}
19150
19151// LogConfig: Specifies what kind of log the caller must write
19152type LogConfig struct {
19153	// CloudAudit: Cloud audit options.
19154	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
19155
19156	// Counter: Counter options.
19157	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
19158
19159	// DataAccess: Data access options.
19160	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
19161
19162	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
19163	// unconditionally include in API requests. By default, fields with
19164	// empty values are omitted from API requests. However, any non-pointer,
19165	// non-interface field appearing in ForceSendFields will be sent to the
19166	// server regardless of whether the field is empty or not. This may be
19167	// used to include empty fields in Patch requests.
19168	ForceSendFields []string `json:"-"`
19169
19170	// NullFields is a list of field names (e.g. "CloudAudit") to include in
19171	// API requests with the JSON null value. By default, fields with empty
19172	// values are omitted from API requests. However, any field with an
19173	// empty value appearing in NullFields will be sent to the server as
19174	// null. It is an error if a field in this list has a non-empty value.
19175	// This may be used to include null fields in Patch requests.
19176	NullFields []string `json:"-"`
19177}
19178
19179func (s *LogConfig) MarshalJSON() ([]byte, error) {
19180	type NoMethod LogConfig
19181	raw := NoMethod(*s)
19182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19183}
19184
19185// LogConfigCloudAuditOptions: Write a Cloud Audit log
19186type LogConfigCloudAuditOptions struct {
19187	// AuthorizationLoggingOptions: Information used by the Cloud Audit
19188	// Logging pipeline.
19189	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
19190
19191	// LogName: The log_name to populate in the Cloud Audit Record.
19192	//
19193	// Possible values:
19194	//   "ADMIN_ACTIVITY"
19195	//   "DATA_ACCESS"
19196	//   "UNSPECIFIED_LOG_NAME"
19197	LogName string `json:"logName,omitempty"`
19198
19199	// ForceSendFields is a list of field names (e.g.
19200	// "AuthorizationLoggingOptions") to unconditionally include in API
19201	// requests. By default, fields with empty values are omitted from API
19202	// requests. However, any non-pointer, non-interface field appearing in
19203	// ForceSendFields will be sent to the server regardless of whether the
19204	// field is empty or not. This may be used to include empty fields in
19205	// Patch requests.
19206	ForceSendFields []string `json:"-"`
19207
19208	// NullFields is a list of field names (e.g.
19209	// "AuthorizationLoggingOptions") to include in API requests with the
19210	// JSON null value. By default, fields with empty values are omitted
19211	// from API requests. However, any field with an empty value appearing
19212	// in NullFields will be sent to the server as null. It is an error if a
19213	// field in this list has a non-empty value. This may be used to include
19214	// null fields in Patch requests.
19215	NullFields []string `json:"-"`
19216}
19217
19218func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
19219	type NoMethod LogConfigCloudAuditOptions
19220	raw := NoMethod(*s)
19221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19222}
19223
19224// LogConfigCounterOptions: Increment a streamz counter with the
19225// specified metric and field names.
19226//
19227// Metric names should start with a '/', generally be lowercase-only,
19228// and end in "_count". Field names should not contain an initial slash.
19229// The actual exported metric names will have "/iam/policy"
19230// prepended.
19231//
19232// Field names correspond to IAM request parameters and field values are
19233// their respective values.
19234//
19235// Supported field names: - "authority", which is "[token]" if
19236// IAMContext.token is present, otherwise the value of
19237// IAMContext.authority_selector if present, and otherwise a
19238// representation of IAMContext.principal; or - "iam_principal", a
19239// representation of IAMContext.principal even if a token or authority
19240// selector is present; or - "" (empty string), resulting in a counter
19241// with no fields.
19242//
19243// Examples: counter { metric: "/debug_access_count" field:
19244// "iam_principal" } ==> increment counter
19245// /iam/policy/debug_access_count {iam_principal=[value of
19246// IAMContext.principal]}
19247type LogConfigCounterOptions struct {
19248	// CustomFields: Custom fields.
19249	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
19250
19251	// Field: The field value to attribute.
19252	Field string `json:"field,omitempty"`
19253
19254	// Metric: The metric to update.
19255	Metric string `json:"metric,omitempty"`
19256
19257	// ForceSendFields is a list of field names (e.g. "CustomFields") to
19258	// unconditionally include in API requests. By default, fields with
19259	// empty values are omitted from API requests. However, any non-pointer,
19260	// non-interface field appearing in ForceSendFields will be sent to the
19261	// server regardless of whether the field is empty or not. This may be
19262	// used to include empty fields in Patch requests.
19263	ForceSendFields []string `json:"-"`
19264
19265	// NullFields is a list of field names (e.g. "CustomFields") to include
19266	// in API requests with the JSON null value. By default, fields with
19267	// empty values are omitted from API requests. However, any field with
19268	// an empty value appearing in NullFields will be sent to the server as
19269	// null. It is an error if a field in this list has a non-empty value.
19270	// This may be used to include null fields in Patch requests.
19271	NullFields []string `json:"-"`
19272}
19273
19274func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
19275	type NoMethod LogConfigCounterOptions
19276	raw := NoMethod(*s)
19277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19278}
19279
19280// LogConfigCounterOptionsCustomField: Custom fields. These can be used
19281// to create a counter with arbitrary field/value pairs. See:
19282// go/rpcsp-custom-fields.
19283type LogConfigCounterOptionsCustomField struct {
19284	// Name: Name is the field name.
19285	Name string `json:"name,omitempty"`
19286
19287	// Value: Value is the field value. It is important that in contrast to
19288	// the CounterOptions.field, the value here is a constant that is not
19289	// derived from the IAMContext.
19290	Value string `json:"value,omitempty"`
19291
19292	// ForceSendFields is a list of field names (e.g. "Name") to
19293	// unconditionally include in API requests. By default, fields with
19294	// empty values are omitted from API requests. However, any non-pointer,
19295	// non-interface field appearing in ForceSendFields will be sent to the
19296	// server regardless of whether the field is empty or not. This may be
19297	// used to include empty fields in Patch requests.
19298	ForceSendFields []string `json:"-"`
19299
19300	// NullFields is a list of field names (e.g. "Name") to include in API
19301	// requests with the JSON null value. By default, fields with empty
19302	// values are omitted from API requests. However, any field with an
19303	// empty value appearing in NullFields will be sent to the server as
19304	// null. It is an error if a field in this list has a non-empty value.
19305	// This may be used to include null fields in Patch requests.
19306	NullFields []string `json:"-"`
19307}
19308
19309func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
19310	type NoMethod LogConfigCounterOptionsCustomField
19311	raw := NoMethod(*s)
19312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19313}
19314
19315// LogConfigDataAccessOptions: Write a Data Access (Gin) log
19316type LogConfigDataAccessOptions struct {
19317	// Possible values:
19318	//   "LOG_FAIL_CLOSED"
19319	//   "LOG_MODE_UNSPECIFIED"
19320	LogMode string `json:"logMode,omitempty"`
19321
19322	// ForceSendFields is a list of field names (e.g. "LogMode") to
19323	// unconditionally include in API requests. By default, fields with
19324	// empty values are omitted from API requests. However, any non-pointer,
19325	// non-interface field appearing in ForceSendFields will be sent to the
19326	// server regardless of whether the field is empty or not. This may be
19327	// used to include empty fields in Patch requests.
19328	ForceSendFields []string `json:"-"`
19329
19330	// NullFields is a list of field names (e.g. "LogMode") to include in
19331	// API requests with the JSON null value. By default, fields with empty
19332	// values are omitted from API requests. However, any field with an
19333	// empty value appearing in NullFields will be sent to the server as
19334	// null. It is an error if a field in this list has a non-empty value.
19335	// This may be used to include null fields in Patch requests.
19336	NullFields []string `json:"-"`
19337}
19338
19339func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
19340	type NoMethod LogConfigDataAccessOptions
19341	raw := NoMethod(*s)
19342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19343}
19344
19345// MachineType: Represents a Machine Type resource.
19346//
19347// You can use specific machine types for your VM instances based on
19348// performance and pricing requirements. For more information, read
19349// Machine Types. (== resource_for {$api_version}.machineTypes ==)
19350type MachineType struct {
19351	// Accelerators: [Output Only] A list of accelerator configurations
19352	// assigned to this machine type.
19353	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
19354
19355	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19356	// format.
19357	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19358
19359	// Deprecated: [Output Only] The deprecation status associated with this
19360	// machine type.
19361	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
19362
19363	// Description: [Output Only] An optional textual description of the
19364	// resource.
19365	Description string `json:"description,omitempty"`
19366
19367	// GuestCpus: [Output Only] The number of virtual CPUs that are
19368	// available to the instance.
19369	GuestCpus int64 `json:"guestCpus,omitempty"`
19370
19371	// Id: [Output Only] The unique identifier for the resource. This
19372	// identifier is defined by the server.
19373	Id uint64 `json:"id,omitempty,string"`
19374
19375	// ImageSpaceGb: [Deprecated] This property is deprecated and will never
19376	// be populated with any relevant values.
19377	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
19378
19379	// IsSharedCpu: [Output Only] Whether this machine type has a shared
19380	// CPU. See Shared-core machine types for more information.
19381	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
19382
19383	// Kind: [Output Only] The type of the resource. Always
19384	// compute#machineType for machine types.
19385	Kind string `json:"kind,omitempty"`
19386
19387	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
19388	// allowed.
19389	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
19390
19391	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
19392	// disks size (GB) allowed.
19393	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
19394
19395	// MemoryMb: [Output Only] The amount of physical memory available to
19396	// the instance, defined in MB.
19397	MemoryMb int64 `json:"memoryMb,omitempty"`
19398
19399	// Name: [Output Only] Name of the resource.
19400	Name string `json:"name,omitempty"`
19401
19402	// ScratchDisks: [Output Only] A list of extended scratch disks assigned
19403	// to the instance.
19404	ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"`
19405
19406	// SelfLink: [Output Only] Server-defined URL for the resource.
19407	SelfLink string `json:"selfLink,omitempty"`
19408
19409	// Zone: [Output Only] The name of the zone where the machine type
19410	// resides, such as us-central1-a.
19411	Zone string `json:"zone,omitempty"`
19412
19413	// ServerResponse contains the HTTP response code and headers from the
19414	// server.
19415	googleapi.ServerResponse `json:"-"`
19416
19417	// ForceSendFields is a list of field names (e.g. "Accelerators") to
19418	// unconditionally include in API requests. By default, fields with
19419	// empty values are omitted from API requests. However, any non-pointer,
19420	// non-interface field appearing in ForceSendFields will be sent to the
19421	// server regardless of whether the field is empty or not. This may be
19422	// used to include empty fields in Patch requests.
19423	ForceSendFields []string `json:"-"`
19424
19425	// NullFields is a list of field names (e.g. "Accelerators") to include
19426	// in API requests with the JSON null value. By default, fields with
19427	// empty values are omitted from API requests. However, any field with
19428	// an empty value appearing in NullFields will be sent to the server as
19429	// null. It is an error if a field in this list has a non-empty value.
19430	// This may be used to include null fields in Patch requests.
19431	NullFields []string `json:"-"`
19432}
19433
19434func (s *MachineType) MarshalJSON() ([]byte, error) {
19435	type NoMethod MachineType
19436	raw := NoMethod(*s)
19437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19438}
19439
19440type MachineTypeAccelerators struct {
19441	// GuestAcceleratorCount: Number of accelerator cards exposed to the
19442	// guest.
19443	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
19444
19445	// GuestAcceleratorType: The accelerator type resource name, not a full
19446	// URL, e.g. 'nvidia-tesla-k80'.
19447	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
19448
19449	// ForceSendFields is a list of field names (e.g.
19450	// "GuestAcceleratorCount") to unconditionally include in API requests.
19451	// By default, fields with empty values are omitted from API requests.
19452	// However, any non-pointer, non-interface field appearing in
19453	// ForceSendFields will be sent to the server regardless of whether the
19454	// field is empty or not. This may be used to include empty fields in
19455	// Patch requests.
19456	ForceSendFields []string `json:"-"`
19457
19458	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
19459	// include in API requests with the JSON null value. By default, fields
19460	// with empty values are omitted from API requests. However, any field
19461	// with an empty value appearing in NullFields will be sent to the
19462	// server as null. It is an error if a field in this list has a
19463	// non-empty value. This may be used to include null fields in Patch
19464	// requests.
19465	NullFields []string `json:"-"`
19466}
19467
19468func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
19469	type NoMethod MachineTypeAccelerators
19470	raw := NoMethod(*s)
19471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19472}
19473
19474type MachineTypeScratchDisks struct {
19475	// DiskGb: Size of the scratch disk, defined in GB.
19476	DiskGb int64 `json:"diskGb,omitempty"`
19477
19478	// ForceSendFields is a list of field names (e.g. "DiskGb") to
19479	// unconditionally include in API requests. By default, fields with
19480	// empty values are omitted from API requests. However, any non-pointer,
19481	// non-interface field appearing in ForceSendFields will be sent to the
19482	// server regardless of whether the field is empty or not. This may be
19483	// used to include empty fields in Patch requests.
19484	ForceSendFields []string `json:"-"`
19485
19486	// NullFields is a list of field names (e.g. "DiskGb") to include in API
19487	// requests with the JSON null value. By default, fields with empty
19488	// values are omitted from API requests. However, any field with an
19489	// empty value appearing in NullFields will be sent to the server as
19490	// null. It is an error if a field in this list has a non-empty value.
19491	// This may be used to include null fields in Patch requests.
19492	NullFields []string `json:"-"`
19493}
19494
19495func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) {
19496	type NoMethod MachineTypeScratchDisks
19497	raw := NoMethod(*s)
19498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19499}
19500
19501type MachineTypeAggregatedList struct {
19502	// Id: [Output Only] Unique identifier for the resource; defined by the
19503	// server.
19504	Id string `json:"id,omitempty"`
19505
19506	// Items: A list of MachineTypesScopedList resources.
19507	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
19508
19509	// Kind: [Output Only] Type of resource. Always
19510	// compute#machineTypeAggregatedList for aggregated lists of machine
19511	// types.
19512	Kind string `json:"kind,omitempty"`
19513
19514	// NextPageToken: [Output Only] This token allows you to get the next
19515	// page of results for list requests. If the number of results is larger
19516	// than maxResults, use the nextPageToken as a value for the query
19517	// parameter pageToken in the next list request. Subsequent list
19518	// requests will have their own nextPageToken to continue paging through
19519	// the results.
19520	NextPageToken string `json:"nextPageToken,omitempty"`
19521
19522	// SelfLink: [Output Only] Server-defined URL for this resource.
19523	SelfLink string `json:"selfLink,omitempty"`
19524
19525	// Warning: [Output Only] Informational warning message.
19526	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
19527
19528	// ServerResponse contains the HTTP response code and headers from the
19529	// server.
19530	googleapi.ServerResponse `json:"-"`
19531
19532	// ForceSendFields is a list of field names (e.g. "Id") to
19533	// unconditionally include in API requests. By default, fields with
19534	// empty values are omitted from API requests. However, any non-pointer,
19535	// non-interface field appearing in ForceSendFields will be sent to the
19536	// server regardless of whether the field is empty or not. This may be
19537	// used to include empty fields in Patch requests.
19538	ForceSendFields []string `json:"-"`
19539
19540	// NullFields is a list of field names (e.g. "Id") to include in API
19541	// requests with the JSON null value. By default, fields with empty
19542	// values are omitted from API requests. However, any field with an
19543	// empty value appearing in NullFields will be sent to the server as
19544	// null. It is an error if a field in this list has a non-empty value.
19545	// This may be used to include null fields in Patch requests.
19546	NullFields []string `json:"-"`
19547}
19548
19549func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
19550	type NoMethod MachineTypeAggregatedList
19551	raw := NoMethod(*s)
19552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19553}
19554
19555// MachineTypeAggregatedListWarning: [Output Only] Informational warning
19556// message.
19557type MachineTypeAggregatedListWarning struct {
19558	// Code: [Output Only] A warning code, if applicable. For example,
19559	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19560	// the response.
19561	//
19562	// Possible values:
19563	//   "CLEANUP_FAILED"
19564	//   "DEPRECATED_RESOURCE_USED"
19565	//   "DEPRECATED_TYPE_USED"
19566	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19567	//   "EXPERIMENTAL_TYPE_USED"
19568	//   "EXTERNAL_API_WARNING"
19569	//   "FIELD_VALUE_OVERRIDEN"
19570	//   "INJECTED_KERNELS_DEPRECATED"
19571	//   "MISSING_TYPE_DEPENDENCY"
19572	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19573	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19574	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19575	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19576	//   "NEXT_HOP_NOT_RUNNING"
19577	//   "NOT_CRITICAL_ERROR"
19578	//   "NO_RESULTS_ON_PAGE"
19579	//   "REQUIRED_TOS_AGREEMENT"
19580	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19581	//   "RESOURCE_NOT_DELETED"
19582	//   "SCHEMA_VALIDATION_IGNORED"
19583	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19584	//   "UNDECLARED_PROPERTIES"
19585	//   "UNREACHABLE"
19586	Code string `json:"code,omitempty"`
19587
19588	// Data: [Output Only] Metadata about this warning in key: value format.
19589	// For example:
19590	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19591	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
19592
19593	// Message: [Output Only] A human-readable description of the warning
19594	// code.
19595	Message string `json:"message,omitempty"`
19596
19597	// ForceSendFields is a list of field names (e.g. "Code") to
19598	// unconditionally include in API requests. By default, fields with
19599	// empty values are omitted from API requests. However, any non-pointer,
19600	// non-interface field appearing in ForceSendFields will be sent to the
19601	// server regardless of whether the field is empty or not. This may be
19602	// used to include empty fields in Patch requests.
19603	ForceSendFields []string `json:"-"`
19604
19605	// NullFields is a list of field names (e.g. "Code") to include in API
19606	// requests with the JSON null value. By default, fields with empty
19607	// values are omitted from API requests. However, any field with an
19608	// empty value appearing in NullFields will be sent to the server as
19609	// null. It is an error if a field in this list has a non-empty value.
19610	// This may be used to include null fields in Patch requests.
19611	NullFields []string `json:"-"`
19612}
19613
19614func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
19615	type NoMethod MachineTypeAggregatedListWarning
19616	raw := NoMethod(*s)
19617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19618}
19619
19620type MachineTypeAggregatedListWarningData struct {
19621	// Key: [Output Only] A key that provides more detail on the warning
19622	// being returned. For example, for warnings where there are no results
19623	// in a list request for a particular zone, this key might be scope and
19624	// the key value might be the zone name. Other examples might be a key
19625	// indicating a deprecated resource and a suggested replacement, or a
19626	// warning about invalid network settings (for example, if an instance
19627	// attempts to perform IP forwarding but is not enabled for IP
19628	// forwarding).
19629	Key string `json:"key,omitempty"`
19630
19631	// Value: [Output Only] A warning data value corresponding to the key.
19632	Value string `json:"value,omitempty"`
19633
19634	// ForceSendFields is a list of field names (e.g. "Key") to
19635	// unconditionally include in API requests. By default, fields with
19636	// empty values are omitted from API requests. However, any non-pointer,
19637	// non-interface field appearing in ForceSendFields will be sent to the
19638	// server regardless of whether the field is empty or not. This may be
19639	// used to include empty fields in Patch requests.
19640	ForceSendFields []string `json:"-"`
19641
19642	// NullFields is a list of field names (e.g. "Key") to include in API
19643	// requests with the JSON null value. By default, fields with empty
19644	// values are omitted from API requests. However, any field with an
19645	// empty value appearing in NullFields will be sent to the server as
19646	// null. It is an error if a field in this list has a non-empty value.
19647	// This may be used to include null fields in Patch requests.
19648	NullFields []string `json:"-"`
19649}
19650
19651func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19652	type NoMethod MachineTypeAggregatedListWarningData
19653	raw := NoMethod(*s)
19654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19655}
19656
19657// MachineTypeList: Contains a list of machine types.
19658type MachineTypeList struct {
19659	// Id: [Output Only] Unique identifier for the resource; defined by the
19660	// server.
19661	Id string `json:"id,omitempty"`
19662
19663	// Items: A list of MachineType resources.
19664	Items []*MachineType `json:"items,omitempty"`
19665
19666	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
19667	// for lists of machine types.
19668	Kind string `json:"kind,omitempty"`
19669
19670	// NextPageToken: [Output Only] This token allows you to get the next
19671	// page of results for list requests. If the number of results is larger
19672	// than maxResults, use the nextPageToken as a value for the query
19673	// parameter pageToken in the next list request. Subsequent list
19674	// requests will have their own nextPageToken to continue paging through
19675	// the results.
19676	NextPageToken string `json:"nextPageToken,omitempty"`
19677
19678	// SelfLink: [Output Only] Server-defined URL for this resource.
19679	SelfLink string `json:"selfLink,omitempty"`
19680
19681	// Warning: [Output Only] Informational warning message.
19682	Warning *MachineTypeListWarning `json:"warning,omitempty"`
19683
19684	// ServerResponse contains the HTTP response code and headers from the
19685	// server.
19686	googleapi.ServerResponse `json:"-"`
19687
19688	// ForceSendFields is a list of field names (e.g. "Id") to
19689	// unconditionally include in API requests. By default, fields with
19690	// empty values are omitted from API requests. However, any non-pointer,
19691	// non-interface field appearing in ForceSendFields will be sent to the
19692	// server regardless of whether the field is empty or not. This may be
19693	// used to include empty fields in Patch requests.
19694	ForceSendFields []string `json:"-"`
19695
19696	// NullFields is a list of field names (e.g. "Id") to include in API
19697	// requests with the JSON null value. By default, fields with empty
19698	// values are omitted from API requests. However, any field with an
19699	// empty value appearing in NullFields will be sent to the server as
19700	// null. It is an error if a field in this list has a non-empty value.
19701	// This may be used to include null fields in Patch requests.
19702	NullFields []string `json:"-"`
19703}
19704
19705func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
19706	type NoMethod MachineTypeList
19707	raw := NoMethod(*s)
19708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19709}
19710
19711// MachineTypeListWarning: [Output Only] Informational warning message.
19712type MachineTypeListWarning struct {
19713	// Code: [Output Only] A warning code, if applicable. For example,
19714	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19715	// the response.
19716	//
19717	// Possible values:
19718	//   "CLEANUP_FAILED"
19719	//   "DEPRECATED_RESOURCE_USED"
19720	//   "DEPRECATED_TYPE_USED"
19721	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19722	//   "EXPERIMENTAL_TYPE_USED"
19723	//   "EXTERNAL_API_WARNING"
19724	//   "FIELD_VALUE_OVERRIDEN"
19725	//   "INJECTED_KERNELS_DEPRECATED"
19726	//   "MISSING_TYPE_DEPENDENCY"
19727	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19728	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19729	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19730	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19731	//   "NEXT_HOP_NOT_RUNNING"
19732	//   "NOT_CRITICAL_ERROR"
19733	//   "NO_RESULTS_ON_PAGE"
19734	//   "REQUIRED_TOS_AGREEMENT"
19735	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19736	//   "RESOURCE_NOT_DELETED"
19737	//   "SCHEMA_VALIDATION_IGNORED"
19738	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19739	//   "UNDECLARED_PROPERTIES"
19740	//   "UNREACHABLE"
19741	Code string `json:"code,omitempty"`
19742
19743	// Data: [Output Only] Metadata about this warning in key: value format.
19744	// For example:
19745	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19746	Data []*MachineTypeListWarningData `json:"data,omitempty"`
19747
19748	// Message: [Output Only] A human-readable description of the warning
19749	// code.
19750	Message string `json:"message,omitempty"`
19751
19752	// ForceSendFields is a list of field names (e.g. "Code") to
19753	// unconditionally include in API requests. By default, fields with
19754	// empty values are omitted from API requests. However, any non-pointer,
19755	// non-interface field appearing in ForceSendFields will be sent to the
19756	// server regardless of whether the field is empty or not. This may be
19757	// used to include empty fields in Patch requests.
19758	ForceSendFields []string `json:"-"`
19759
19760	// NullFields is a list of field names (e.g. "Code") to include in API
19761	// requests with the JSON null value. By default, fields with empty
19762	// values are omitted from API requests. However, any field with an
19763	// empty value appearing in NullFields will be sent to the server as
19764	// null. It is an error if a field in this list has a non-empty value.
19765	// This may be used to include null fields in Patch requests.
19766	NullFields []string `json:"-"`
19767}
19768
19769func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
19770	type NoMethod MachineTypeListWarning
19771	raw := NoMethod(*s)
19772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19773}
19774
19775type MachineTypeListWarningData struct {
19776	// Key: [Output Only] A key that provides more detail on the warning
19777	// being returned. For example, for warnings where there are no results
19778	// in a list request for a particular zone, this key might be scope and
19779	// the key value might be the zone name. Other examples might be a key
19780	// indicating a deprecated resource and a suggested replacement, or a
19781	// warning about invalid network settings (for example, if an instance
19782	// attempts to perform IP forwarding but is not enabled for IP
19783	// forwarding).
19784	Key string `json:"key,omitempty"`
19785
19786	// Value: [Output Only] A warning data value corresponding to the key.
19787	Value string `json:"value,omitempty"`
19788
19789	// ForceSendFields is a list of field names (e.g. "Key") to
19790	// unconditionally include in API requests. By default, fields with
19791	// empty values are omitted from API requests. However, any non-pointer,
19792	// non-interface field appearing in ForceSendFields will be sent to the
19793	// server regardless of whether the field is empty or not. This may be
19794	// used to include empty fields in Patch requests.
19795	ForceSendFields []string `json:"-"`
19796
19797	// NullFields is a list of field names (e.g. "Key") to include in API
19798	// requests with the JSON null value. By default, fields with empty
19799	// values are omitted from API requests. However, any field with an
19800	// empty value appearing in NullFields will be sent to the server as
19801	// null. It is an error if a field in this list has a non-empty value.
19802	// This may be used to include null fields in Patch requests.
19803	NullFields []string `json:"-"`
19804}
19805
19806func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
19807	type NoMethod MachineTypeListWarningData
19808	raw := NoMethod(*s)
19809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19810}
19811
19812type MachineTypesScopedList struct {
19813	// MachineTypes: [Output Only] A list of machine types contained in this
19814	// scope.
19815	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
19816
19817	// Warning: [Output Only] An informational warning that appears when the
19818	// machine types list is empty.
19819	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
19820
19821	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
19822	// unconditionally include in API requests. By default, fields with
19823	// empty values are omitted from API requests. However, any non-pointer,
19824	// non-interface field appearing in ForceSendFields will be sent to the
19825	// server regardless of whether the field is empty or not. This may be
19826	// used to include empty fields in Patch requests.
19827	ForceSendFields []string `json:"-"`
19828
19829	// NullFields is a list of field names (e.g. "MachineTypes") to include
19830	// in API requests with the JSON null value. By default, fields with
19831	// empty values are omitted from API requests. However, any field with
19832	// an empty value appearing in NullFields will be sent to the server as
19833	// null. It is an error if a field in this list has a non-empty value.
19834	// This may be used to include null fields in Patch requests.
19835	NullFields []string `json:"-"`
19836}
19837
19838func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
19839	type NoMethod MachineTypesScopedList
19840	raw := NoMethod(*s)
19841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19842}
19843
19844// MachineTypesScopedListWarning: [Output Only] An informational warning
19845// that appears when the machine types list is empty.
19846type MachineTypesScopedListWarning struct {
19847	// Code: [Output Only] A warning code, if applicable. For example,
19848	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19849	// the response.
19850	//
19851	// Possible values:
19852	//   "CLEANUP_FAILED"
19853	//   "DEPRECATED_RESOURCE_USED"
19854	//   "DEPRECATED_TYPE_USED"
19855	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19856	//   "EXPERIMENTAL_TYPE_USED"
19857	//   "EXTERNAL_API_WARNING"
19858	//   "FIELD_VALUE_OVERRIDEN"
19859	//   "INJECTED_KERNELS_DEPRECATED"
19860	//   "MISSING_TYPE_DEPENDENCY"
19861	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19862	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19863	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19864	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19865	//   "NEXT_HOP_NOT_RUNNING"
19866	//   "NOT_CRITICAL_ERROR"
19867	//   "NO_RESULTS_ON_PAGE"
19868	//   "REQUIRED_TOS_AGREEMENT"
19869	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19870	//   "RESOURCE_NOT_DELETED"
19871	//   "SCHEMA_VALIDATION_IGNORED"
19872	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19873	//   "UNDECLARED_PROPERTIES"
19874	//   "UNREACHABLE"
19875	Code string `json:"code,omitempty"`
19876
19877	// Data: [Output Only] Metadata about this warning in key: value format.
19878	// For example:
19879	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19880	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
19881
19882	// Message: [Output Only] A human-readable description of the warning
19883	// code.
19884	Message string `json:"message,omitempty"`
19885
19886	// ForceSendFields is a list of field names (e.g. "Code") to
19887	// unconditionally include in API requests. By default, fields with
19888	// empty values are omitted from API requests. However, any non-pointer,
19889	// non-interface field appearing in ForceSendFields will be sent to the
19890	// server regardless of whether the field is empty or not. This may be
19891	// used to include empty fields in Patch requests.
19892	ForceSendFields []string `json:"-"`
19893
19894	// NullFields is a list of field names (e.g. "Code") to include in API
19895	// requests with the JSON null value. By default, fields with empty
19896	// values are omitted from API requests. However, any field with an
19897	// empty value appearing in NullFields will be sent to the server as
19898	// null. It is an error if a field in this list has a non-empty value.
19899	// This may be used to include null fields in Patch requests.
19900	NullFields []string `json:"-"`
19901}
19902
19903func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
19904	type NoMethod MachineTypesScopedListWarning
19905	raw := NoMethod(*s)
19906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19907}
19908
19909type MachineTypesScopedListWarningData struct {
19910	// Key: [Output Only] A key that provides more detail on the warning
19911	// being returned. For example, for warnings where there are no results
19912	// in a list request for a particular zone, this key might be scope and
19913	// the key value might be the zone name. Other examples might be a key
19914	// indicating a deprecated resource and a suggested replacement, or a
19915	// warning about invalid network settings (for example, if an instance
19916	// attempts to perform IP forwarding but is not enabled for IP
19917	// forwarding).
19918	Key string `json:"key,omitempty"`
19919
19920	// Value: [Output Only] A warning data value corresponding to the key.
19921	Value string `json:"value,omitempty"`
19922
19923	// ForceSendFields is a list of field names (e.g. "Key") to
19924	// unconditionally include in API requests. By default, fields with
19925	// empty values are omitted from API requests. However, any non-pointer,
19926	// non-interface field appearing in ForceSendFields will be sent to the
19927	// server regardless of whether the field is empty or not. This may be
19928	// used to include empty fields in Patch requests.
19929	ForceSendFields []string `json:"-"`
19930
19931	// NullFields is a list of field names (e.g. "Key") to include in API
19932	// requests with the JSON null value. By default, fields with empty
19933	// values are omitted from API requests. However, any field with an
19934	// empty value appearing in NullFields will be sent to the server as
19935	// null. It is an error if a field in this list has a non-empty value.
19936	// This may be used to include null fields in Patch requests.
19937	NullFields []string `json:"-"`
19938}
19939
19940func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
19941	type NoMethod MachineTypesScopedListWarningData
19942	raw := NoMethod(*s)
19943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19944}
19945
19946// ManagedInstance: A Managed Instance resource.
19947type ManagedInstance struct {
19948	// CurrentAction: [Output Only] The current action that the managed
19949	// instance group has scheduled for the instance. Possible values:
19950	// - NONE The instance is running, and the managed instance group does
19951	// not have any scheduled actions for this instance.
19952	// - CREATING The managed instance group is creating this instance. If
19953	// the group fails to create this instance, it will try again until it
19954	// is successful.
19955	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
19956	// to create this instance only once. If the group fails to create this
19957	// instance, it does not try again and the group's targetSize value is
19958	// decreased instead.
19959	// - RECREATING The managed instance group is recreating this instance.
19960	//
19961	// - DELETING The managed instance group is permanently deleting this
19962	// instance.
19963	// - ABANDONING The managed instance group is abandoning this instance.
19964	// The instance will be removed from the instance group and from any
19965	// target pools that are associated with this group.
19966	// - RESTARTING The managed instance group is restarting the instance.
19967	//
19968	// - REFRESHING The managed instance group is applying configuration
19969	// changes to the instance without stopping it. For example, the group
19970	// can update the target pool list for an instance without stopping that
19971	// instance.
19972	// - VERIFYING The managed instance group has created the instance and
19973	// it is in the process of being verified.
19974	//
19975	// Possible values:
19976	//   "ABANDONING"
19977	//   "CREATING"
19978	//   "CREATING_WITHOUT_RETRIES"
19979	//   "DELETING"
19980	//   "NONE"
19981	//   "RECREATING"
19982	//   "REFRESHING"
19983	//   "RESTARTING"
19984	//   "VERIFYING"
19985	CurrentAction string `json:"currentAction,omitempty"`
19986
19987	// Id: [Output only] The unique identifier for this resource. This field
19988	// is empty when instance does not exist.
19989	Id uint64 `json:"id,omitempty,string"`
19990
19991	// Instance: [Output Only] The URL of the instance. The URL can exist
19992	// even if the instance has not yet been created.
19993	Instance string `json:"instance,omitempty"`
19994
19995	// InstanceHealth: [Output Only] Health state of the instance per
19996	// health-check.
19997	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
19998
19999	// InstanceStatus: [Output Only] The status of the instance. This field
20000	// is empty when the instance does not exist.
20001	//
20002	// Possible values:
20003	//   "DEPROVISIONING"
20004	//   "PROVISIONING"
20005	//   "REPAIRING"
20006	//   "RUNNING"
20007	//   "STAGING"
20008	//   "STOPPED"
20009	//   "STOPPING"
20010	//   "SUSPENDED"
20011	//   "SUSPENDING"
20012	//   "TERMINATED"
20013	InstanceStatus string `json:"instanceStatus,omitempty"`
20014
20015	// LastAttempt: [Output Only] Information about the last attempt to
20016	// create or delete the instance.
20017	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
20018
20019	// Version: [Output Only] Intended version of this instance.
20020	Version *ManagedInstanceVersion `json:"version,omitempty"`
20021
20022	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
20023	// unconditionally include in API requests. By default, fields with
20024	// empty values are omitted from API requests. However, any non-pointer,
20025	// non-interface field appearing in ForceSendFields will be sent to the
20026	// server regardless of whether the field is empty or not. This may be
20027	// used to include empty fields in Patch requests.
20028	ForceSendFields []string `json:"-"`
20029
20030	// NullFields is a list of field names (e.g. "CurrentAction") to include
20031	// in API requests with the JSON null value. By default, fields with
20032	// empty values are omitted from API requests. However, any field with
20033	// an empty value appearing in NullFields will be sent to the server as
20034	// null. It is an error if a field in this list has a non-empty value.
20035	// This may be used to include null fields in Patch requests.
20036	NullFields []string `json:"-"`
20037}
20038
20039func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
20040	type NoMethod ManagedInstance
20041	raw := NoMethod(*s)
20042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20043}
20044
20045type ManagedInstanceInstanceHealth struct {
20046	// DetailedHealthState: [Output Only] The current detailed instance
20047	// health state.
20048	//
20049	// Possible values:
20050	//   "DRAINING"
20051	//   "HEALTHY"
20052	//   "TIMEOUT"
20053	//   "UNHEALTHY"
20054	//   "UNKNOWN"
20055	DetailedHealthState string `json:"detailedHealthState,omitempty"`
20056
20057	// HealthCheck: [Output Only] The URL for the health check that verifies
20058	// whether the instance is healthy.
20059	HealthCheck string `json:"healthCheck,omitempty"`
20060
20061	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
20062	// to unconditionally include in API requests. By default, fields with
20063	// empty values are omitted from API requests. However, any non-pointer,
20064	// non-interface field appearing in ForceSendFields will be sent to the
20065	// server regardless of whether the field is empty or not. This may be
20066	// used to include empty fields in Patch requests.
20067	ForceSendFields []string `json:"-"`
20068
20069	// NullFields is a list of field names (e.g. "DetailedHealthState") to
20070	// include in API requests with the JSON null value. By default, fields
20071	// with empty values are omitted from API requests. However, any field
20072	// with an empty value appearing in NullFields will be sent to the
20073	// server as null. It is an error if a field in this list has a
20074	// non-empty value. This may be used to include null fields in Patch
20075	// requests.
20076	NullFields []string `json:"-"`
20077}
20078
20079func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
20080	type NoMethod ManagedInstanceInstanceHealth
20081	raw := NoMethod(*s)
20082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20083}
20084
20085type ManagedInstanceLastAttempt struct {
20086	// Errors: [Output Only] Encountered errors during the last attempt to
20087	// create or delete the instance.
20088	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
20089
20090	// ForceSendFields is a list of field names (e.g. "Errors") to
20091	// unconditionally include in API requests. By default, fields with
20092	// empty values are omitted from API requests. However, any non-pointer,
20093	// non-interface field appearing in ForceSendFields will be sent to the
20094	// server regardless of whether the field is empty or not. This may be
20095	// used to include empty fields in Patch requests.
20096	ForceSendFields []string `json:"-"`
20097
20098	// NullFields is a list of field names (e.g. "Errors") to include in API
20099	// requests with the JSON null value. By default, fields with empty
20100	// values are omitted from API requests. However, any field with an
20101	// empty value appearing in NullFields will be sent to the server as
20102	// null. It is an error if a field in this list has a non-empty value.
20103	// This may be used to include null fields in Patch requests.
20104	NullFields []string `json:"-"`
20105}
20106
20107func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
20108	type NoMethod ManagedInstanceLastAttempt
20109	raw := NoMethod(*s)
20110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20111}
20112
20113// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
20114// during the last attempt to create or delete the instance.
20115type ManagedInstanceLastAttemptErrors struct {
20116	// Errors: [Output Only] The array of errors encountered while
20117	// processing this operation.
20118	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
20119
20120	// ForceSendFields is a list of field names (e.g. "Errors") to
20121	// unconditionally include in API requests. By default, fields with
20122	// empty values are omitted from API requests. However, any non-pointer,
20123	// non-interface field appearing in ForceSendFields will be sent to the
20124	// server regardless of whether the field is empty or not. This may be
20125	// used to include empty fields in Patch requests.
20126	ForceSendFields []string `json:"-"`
20127
20128	// NullFields is a list of field names (e.g. "Errors") to include in API
20129	// requests with the JSON null value. By default, fields with empty
20130	// values are omitted from API requests. However, any field with an
20131	// empty value appearing in NullFields will be sent to the server as
20132	// null. It is an error if a field in this list has a non-empty value.
20133	// This may be used to include null fields in Patch requests.
20134	NullFields []string `json:"-"`
20135}
20136
20137func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
20138	type NoMethod ManagedInstanceLastAttemptErrors
20139	raw := NoMethod(*s)
20140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20141}
20142
20143type ManagedInstanceLastAttemptErrorsErrors struct {
20144	// Code: [Output Only] The error type identifier for this error.
20145	Code string `json:"code,omitempty"`
20146
20147	// Location: [Output Only] Indicates the field in the request that
20148	// caused the error. This property is optional.
20149	Location string `json:"location,omitempty"`
20150
20151	// Message: [Output Only] An optional, human-readable error message.
20152	Message string `json:"message,omitempty"`
20153
20154	// ForceSendFields is a list of field names (e.g. "Code") to
20155	// unconditionally include in API requests. By default, fields with
20156	// empty values are omitted from API requests. However, any non-pointer,
20157	// non-interface field appearing in ForceSendFields will be sent to the
20158	// server regardless of whether the field is empty or not. This may be
20159	// used to include empty fields in Patch requests.
20160	ForceSendFields []string `json:"-"`
20161
20162	// NullFields is a list of field names (e.g. "Code") to include in API
20163	// requests with the JSON null value. By default, fields with empty
20164	// values are omitted from API requests. However, any field with an
20165	// empty value appearing in NullFields will be sent to the server as
20166	// null. It is an error if a field in this list has a non-empty value.
20167	// This may be used to include null fields in Patch requests.
20168	NullFields []string `json:"-"`
20169}
20170
20171func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
20172	type NoMethod ManagedInstanceLastAttemptErrorsErrors
20173	raw := NoMethod(*s)
20174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20175}
20176
20177type ManagedInstanceVersion struct {
20178	// InstanceTemplate: [Output Only] The intended template of the
20179	// instance. This field is empty when current_action is one of {
20180	// DELETING, ABANDONING }.
20181	InstanceTemplate string `json:"instanceTemplate,omitempty"`
20182
20183	// Name: [Output Only] Name of the version.
20184	Name string `json:"name,omitempty"`
20185
20186	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
20187	// unconditionally include in API requests. By default, fields with
20188	// empty values are omitted from API requests. However, any non-pointer,
20189	// non-interface field appearing in ForceSendFields will be sent to the
20190	// server regardless of whether the field is empty or not. This may be
20191	// used to include empty fields in Patch requests.
20192	ForceSendFields []string `json:"-"`
20193
20194	// NullFields is a list of field names (e.g. "InstanceTemplate") to
20195	// include in API requests with the JSON null value. By default, fields
20196	// with empty values are omitted from API requests. However, any field
20197	// with an empty value appearing in NullFields will be sent to the
20198	// server as null. It is an error if a field in this list has a
20199	// non-empty value. This may be used to include null fields in Patch
20200	// requests.
20201	NullFields []string `json:"-"`
20202}
20203
20204func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
20205	type NoMethod ManagedInstanceVersion
20206	raw := NoMethod(*s)
20207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20208}
20209
20210// Metadata: A metadata key/value entry.
20211type Metadata struct {
20212	// Fingerprint: Specifies a fingerprint for this request, which is
20213	// essentially a hash of the metadata's contents and used for optimistic
20214	// locking. The fingerprint is initially generated by Compute Engine and
20215	// changes after every request to modify or update metadata. You must
20216	// always provide an up-to-date fingerprint hash in order to update or
20217	// change metadata, otherwise the request will fail with error 412
20218	// conditionNotMet.
20219	//
20220	// To see the latest fingerprint, make a get() request to retrieve the
20221	// resource.
20222	Fingerprint string `json:"fingerprint,omitempty"`
20223
20224	// Items: Array of key/value pairs. The total size of all keys and
20225	// values must be less than 512 KB.
20226	Items []*MetadataItems `json:"items,omitempty"`
20227
20228	// Kind: [Output Only] Type of the resource. Always compute#metadata for
20229	// metadata.
20230	Kind string `json:"kind,omitempty"`
20231
20232	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
20233	// unconditionally include in API requests. By default, fields with
20234	// empty values are omitted from API requests. However, any non-pointer,
20235	// non-interface field appearing in ForceSendFields will be sent to the
20236	// server regardless of whether the field is empty or not. This may be
20237	// used to include empty fields in Patch requests.
20238	ForceSendFields []string `json:"-"`
20239
20240	// NullFields is a list of field names (e.g. "Fingerprint") to include
20241	// in API requests with the JSON null value. By default, fields with
20242	// empty values are omitted from API requests. However, any field with
20243	// an empty value appearing in NullFields will be sent to the server as
20244	// null. It is an error if a field in this list has a non-empty value.
20245	// This may be used to include null fields in Patch requests.
20246	NullFields []string `json:"-"`
20247}
20248
20249func (s *Metadata) MarshalJSON() ([]byte, error) {
20250	type NoMethod Metadata
20251	raw := NoMethod(*s)
20252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20253}
20254
20255type MetadataItems struct {
20256	// Key: Key for the metadata entry. Keys must conform to the following
20257	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
20258	// reflected as part of a URL in the metadata server. Additionally, to
20259	// avoid ambiguity, keys must not conflict with any other metadata keys
20260	// for the project.
20261	Key string `json:"key,omitempty"`
20262
20263	// Value: Value for the metadata entry. These are free-form strings, and
20264	// only have meaning as interpreted by the image running in the
20265	// instance. The only restriction placed on values is that their size
20266	// must be less than or equal to 262144 bytes (256 KiB).
20267	Value *string `json:"value,omitempty"`
20268
20269	// ForceSendFields is a list of field names (e.g. "Key") to
20270	// unconditionally include in API requests. By default, fields with
20271	// empty values are omitted from API requests. However, any non-pointer,
20272	// non-interface field appearing in ForceSendFields will be sent to the
20273	// server regardless of whether the field is empty or not. This may be
20274	// used to include empty fields in Patch requests.
20275	ForceSendFields []string `json:"-"`
20276
20277	// NullFields is a list of field names (e.g. "Key") to include in API
20278	// requests with the JSON null value. By default, fields with empty
20279	// values are omitted from API requests. However, any field with an
20280	// empty value appearing in NullFields will be sent to the server as
20281	// null. It is an error if a field in this list has a non-empty value.
20282	// This may be used to include null fields in Patch requests.
20283	NullFields []string `json:"-"`
20284}
20285
20286func (s *MetadataItems) MarshalJSON() ([]byte, error) {
20287	type NoMethod MetadataItems
20288	raw := NoMethod(*s)
20289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20290}
20291
20292// MetadataFilter: Opaque filter criteria used by loadbalancers to
20293// restrict routing configuration to a limited set of loadbalancing
20294// proxies. Proxies and sidecars involved in loadbalancing would
20295// typically present metadata to the loadbalancers which need to match
20296// criteria specified here. If a match takes place, the relevant
20297// configuration is made available to those proxies.
20298// For each metadataFilter in this list, if its filterMatchCriteria is
20299// set to MATCH_ANY, at least one of the filterLabels must match the
20300// corresponding label provided in the metadata. If its
20301// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
20302// must match with corresponding labels provided in the metadata.
20303// An example for using metadataFilters would be: if loadbalancing
20304// involves  Envoys, they will only receive routing configuration when
20305// values in metadataFilters match values supplied in <a
20306// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
20307// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
20308// requests to loadbalancers.
20309type MetadataFilter struct {
20310	// FilterLabels: The list of label value pairs that must match labels in
20311	// the provided metadata based on filterMatchCriteria
20312	// This list must not be empty and can have at the most 64 entries.
20313	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
20314
20315	// FilterMatchCriteria: Specifies how individual filterLabel matches
20316	// within the list of filterLabels contribute towards the overall
20317	// metadataFilter match.
20318	// Supported values are:
20319	// - MATCH_ANY: At least one of the filterLabels must have a matching
20320	// label in the provided metadata.
20321	// - MATCH_ALL: All filterLabels must have matching labels in the
20322	// provided metadata.
20323	//
20324	// Possible values:
20325	//   "MATCH_ALL"
20326	//   "MATCH_ANY"
20327	//   "NOT_SET"
20328	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
20329
20330	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
20331	// unconditionally include in API requests. By default, fields with
20332	// empty values are omitted from API requests. However, any non-pointer,
20333	// non-interface field appearing in ForceSendFields will be sent to the
20334	// server regardless of whether the field is empty or not. This may be
20335	// used to include empty fields in Patch requests.
20336	ForceSendFields []string `json:"-"`
20337
20338	// NullFields is a list of field names (e.g. "FilterLabels") to include
20339	// in API requests with the JSON null value. By default, fields with
20340	// empty values are omitted from API requests. However, any field with
20341	// an empty value appearing in NullFields will be sent to the server as
20342	// null. It is an error if a field in this list has a non-empty value.
20343	// This may be used to include null fields in Patch requests.
20344	NullFields []string `json:"-"`
20345}
20346
20347func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
20348	type NoMethod MetadataFilter
20349	raw := NoMethod(*s)
20350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20351}
20352
20353// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
20354// are expected to match corresponding labels presented as metadata to
20355// the loadbalancer.
20356type MetadataFilterLabelMatch struct {
20357	// Name: Name of metadata label.
20358	// The name can have a maximum length of 1024 characters and must be at
20359	// least 1 character long.
20360	Name string `json:"name,omitempty"`
20361
20362	// Value: The value of the label must match the specified value.
20363	// value can have a maximum length of 1024 characters.
20364	Value string `json:"value,omitempty"`
20365
20366	// ForceSendFields is a list of field names (e.g. "Name") to
20367	// unconditionally include in API requests. By default, fields with
20368	// empty values are omitted from API requests. However, any non-pointer,
20369	// non-interface field appearing in ForceSendFields will be sent to the
20370	// server regardless of whether the field is empty or not. This may be
20371	// used to include empty fields in Patch requests.
20372	ForceSendFields []string `json:"-"`
20373
20374	// NullFields is a list of field names (e.g. "Name") to include in API
20375	// requests with the JSON null value. By default, fields with empty
20376	// values are omitted from API requests. However, any field with an
20377	// empty value appearing in NullFields will be sent to the server as
20378	// null. It is an error if a field in this list has a non-empty value.
20379	// This may be used to include null fields in Patch requests.
20380	NullFields []string `json:"-"`
20381}
20382
20383func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
20384	type NoMethod MetadataFilterLabelMatch
20385	raw := NoMethod(*s)
20386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20387}
20388
20389// NamedPort: The named port. For example: .
20390type NamedPort struct {
20391	// Name: The name for this named port. The name must be 1-63 characters
20392	// long, and comply with RFC1035.
20393	Name string `json:"name,omitempty"`
20394
20395	// Port: The port number, which can be a value between 1 and 65535.
20396	Port int64 `json:"port,omitempty"`
20397
20398	// ForceSendFields is a list of field names (e.g. "Name") to
20399	// unconditionally include in API requests. By default, fields with
20400	// empty values are omitted from API requests. However, any non-pointer,
20401	// non-interface field appearing in ForceSendFields will be sent to the
20402	// server regardless of whether the field is empty or not. This may be
20403	// used to include empty fields in Patch requests.
20404	ForceSendFields []string `json:"-"`
20405
20406	// NullFields is a list of field names (e.g. "Name") to include in API
20407	// requests with the JSON null value. By default, fields with empty
20408	// values are omitted from API requests. However, any field with an
20409	// empty value appearing in NullFields will be sent to the server as
20410	// null. It is an error if a field in this list has a non-empty value.
20411	// This may be used to include null fields in Patch requests.
20412	NullFields []string `json:"-"`
20413}
20414
20415func (s *NamedPort) MarshalJSON() ([]byte, error) {
20416	type NoMethod NamedPort
20417	raw := NoMethod(*s)
20418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20419}
20420
20421// Network: Represents a VPC Network resource.
20422//
20423// Networks connect resources to each other and to the internet. For
20424// more information, read Virtual Private Cloud (VPC) Network. (==
20425// resource_for {$api_version}.networks ==)
20426type Network struct {
20427	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
20428	// internal addresses that are legal on this network. This range is a
20429	// CIDR specification, for example: 192.168.0.0/16. Provided by the
20430	// client when the network is created.
20431	IPv4Range string `json:"IPv4Range,omitempty"`
20432
20433	// AutoCreateSubnetworks: When set to true, the VPC network is created
20434	// in auto mode. When set to false, the VPC network is created in custom
20435	// mode.
20436	//
20437	// An auto mode VPC network starts with one subnet per region. Each
20438	// subnet has a predetermined range as described in Auto mode VPC
20439	// network IP ranges.
20440	//
20441	// For custom mode VPC networks, you can add subnets using the
20442	// subnetworks insert method.
20443	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
20444
20445	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20446	// format.
20447	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20448
20449	// Description: An optional description of this resource. Provide this
20450	// field when you create the resource.
20451	Description string `json:"description,omitempty"`
20452
20453	// GatewayIPv4: [Output Only] The gateway address for default routing
20454	// out of the network, selected by GCP.
20455	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
20456
20457	// Id: [Output Only] The unique identifier for the resource. This
20458	// identifier is defined by the server.
20459	Id uint64 `json:"id,omitempty,string"`
20460
20461	// Kind: [Output Only] Type of the resource. Always compute#network for
20462	// networks.
20463	Kind string `json:"kind,omitempty"`
20464
20465	// Name: Name of the resource. Provided by the client when the resource
20466	// is created. The name must be 1-63 characters long, and comply with
20467	// RFC1035. Specifically, the name must be 1-63 characters long and
20468	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
20469	// character must be a lowercase letter, and all following characters
20470	// (except for the last character) must be a dash, lowercase letter, or
20471	// digit. The last character must be a lowercase letter or digit.
20472	Name string `json:"name,omitempty"`
20473
20474	// Peerings: [Output Only] A list of network peerings for the resource.
20475	Peerings []*NetworkPeering `json:"peerings,omitempty"`
20476
20477	// RoutingConfig: The network-level routing configuration for this
20478	// network. Used by Cloud Router to determine what type of network-wide
20479	// routing behavior to enforce.
20480	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
20481
20482	// SelfLink: [Output Only] Server-defined URL for the resource.
20483	SelfLink string `json:"selfLink,omitempty"`
20484
20485	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
20486	// all subnetworks in this VPC network.
20487	Subnetworks []string `json:"subnetworks,omitempty"`
20488
20489	// ServerResponse contains the HTTP response code and headers from the
20490	// server.
20491	googleapi.ServerResponse `json:"-"`
20492
20493	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
20494	// unconditionally include in API requests. By default, fields with
20495	// empty values are omitted from API requests. However, any non-pointer,
20496	// non-interface field appearing in ForceSendFields will be sent to the
20497	// server regardless of whether the field is empty or not. This may be
20498	// used to include empty fields in Patch requests.
20499	ForceSendFields []string `json:"-"`
20500
20501	// NullFields is a list of field names (e.g. "IPv4Range") to include in
20502	// API requests with the JSON null value. By default, fields with empty
20503	// values are omitted from API requests. However, any field with an
20504	// empty value appearing in NullFields will be sent to the server as
20505	// null. It is an error if a field in this list has a non-empty value.
20506	// This may be used to include null fields in Patch requests.
20507	NullFields []string `json:"-"`
20508}
20509
20510func (s *Network) MarshalJSON() ([]byte, error) {
20511	type NoMethod Network
20512	raw := NoMethod(*s)
20513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20514}
20515
20516// NetworkEndpoint: The network endpoint.
20517type NetworkEndpoint struct {
20518	// Annotations: Metadata defined as annotations on the network endpoint.
20519	Annotations map[string]string `json:"annotations,omitempty"`
20520
20521	// Fqdn: Optional fully qualified domain name of network endpoint. This
20522	// can only be specified when NetworkEndpointGroup.network_endpoint_type
20523	// is NON_GCP_FQDN_PORT.
20524	Fqdn string `json:"fqdn,omitempty"`
20525
20526	// Instance: The name for a specific VM instance that the IP address
20527	// belongs to. This is required for network endpoints of type
20528	// GCE_VM_IP_PORT. The instance must be in the same zone of network
20529	// endpoint group.
20530	//
20531	// The name must be 1-63 characters long, and comply with RFC1035.
20532	Instance string `json:"instance,omitempty"`
20533
20534	// IpAddress: Optional IPv4 address of network endpoint. The IP address
20535	// must belong to a VM in Compute Engine (either the primary IP or as
20536	// part of an aliased IP range). If the IP address is not specified,
20537	// then the primary IP address for the VM instance in the network that
20538	// the network endpoint group belongs to will be used.
20539	IpAddress string `json:"ipAddress,omitempty"`
20540
20541	// Port: Optional port number of network endpoint. If not specified and
20542	// the NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
20543	// defaultPort for the network endpoint group will be used.
20544	Port int64 `json:"port,omitempty"`
20545
20546	// ForceSendFields is a list of field names (e.g. "Annotations") to
20547	// unconditionally include in API requests. By default, fields with
20548	// empty values are omitted from API requests. However, any non-pointer,
20549	// non-interface field appearing in ForceSendFields will be sent to the
20550	// server regardless of whether the field is empty or not. This may be
20551	// used to include empty fields in Patch requests.
20552	ForceSendFields []string `json:"-"`
20553
20554	// NullFields is a list of field names (e.g. "Annotations") to include
20555	// in API requests with the JSON null value. By default, fields with
20556	// empty values are omitted from API requests. However, any field with
20557	// an empty value appearing in NullFields will be sent to the server as
20558	// null. It is an error if a field in this list has a non-empty value.
20559	// This may be used to include null fields in Patch requests.
20560	NullFields []string `json:"-"`
20561}
20562
20563func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
20564	type NoMethod NetworkEndpoint
20565	raw := NoMethod(*s)
20566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20567}
20568
20569// NetworkEndpointGroup: Represents a collection of network
20570// endpoints.
20571//
20572// A network endpoint group (NEG) defines how a set of endpoints should
20573// be reached, whether they are reachable, and where they are located.
20574// For more information about using NEGs, see  Setting up internet NEGs
20575// or  Setting up zonal NEGs. (== resource_for
20576// {$api_version}.networkEndpointGroups ==) (== resource_for
20577// {$api_version}.globalNetworkEndpointGroups ==)
20578type NetworkEndpointGroup struct {
20579	// Annotations: Metadata defined as annotations on the network endpoint
20580	// group.
20581	Annotations map[string]string `json:"annotations,omitempty"`
20582
20583	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20584	// format.
20585	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20586
20587	// DefaultPort: The default port used if the port number is not
20588	// specified in the network endpoint.
20589	DefaultPort int64 `json:"defaultPort,omitempty"`
20590
20591	// Description: An optional description of this resource. Provide this
20592	// property when you create the resource.
20593	Description string `json:"description,omitempty"`
20594
20595	// Id: [Output Only] The unique identifier for the resource. This
20596	// identifier is defined by the server.
20597	Id uint64 `json:"id,omitempty,string"`
20598
20599	// Kind: [Output Only] Type of the resource. Always
20600	// compute#networkEndpointGroup for network endpoint group.
20601	Kind string `json:"kind,omitempty"`
20602
20603	// Name: Name of the resource; provided by the client when the resource
20604	// is created. The name must be 1-63 characters long, and comply with
20605	// RFC1035. Specifically, the name must be 1-63 characters long and
20606	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20607	// the first character must be a lowercase letter, and all following
20608	// characters must be a dash, lowercase letter, or digit, except the
20609	// last character, which cannot be a dash.
20610	Name string `json:"name,omitempty"`
20611
20612	// Network: The URL of the network to which all network endpoints in the
20613	// NEG belong. Uses "default" project network if unspecified.
20614	Network string `json:"network,omitempty"`
20615
20616	// NetworkEndpointType: Type of network endpoints in this network
20617	// endpoint group.
20618	//
20619	// Possible values:
20620	//   "GCE_VM_IP_PORT"
20621	//   "INTERNET_FQDN_PORT"
20622	//   "INTERNET_IP_PORT"
20623	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
20624
20625	// SelfLink: [Output Only] Server-defined URL for the resource.
20626	SelfLink string `json:"selfLink,omitempty"`
20627
20628	// Size: [Output only] Number of network endpoints in the network
20629	// endpoint group.
20630	Size int64 `json:"size,omitempty"`
20631
20632	// Subnetwork: Optional URL of the subnetwork to which all network
20633	// endpoints in the NEG belong.
20634	Subnetwork string `json:"subnetwork,omitempty"`
20635
20636	// Zone: [Output Only] The URL of the zone where the network endpoint
20637	// group is located.
20638	Zone string `json:"zone,omitempty"`
20639
20640	// ServerResponse contains the HTTP response code and headers from the
20641	// server.
20642	googleapi.ServerResponse `json:"-"`
20643
20644	// ForceSendFields is a list of field names (e.g. "Annotations") to
20645	// unconditionally include in API requests. By default, fields with
20646	// empty values are omitted from API requests. However, any non-pointer,
20647	// non-interface field appearing in ForceSendFields will be sent to the
20648	// server regardless of whether the field is empty or not. This may be
20649	// used to include empty fields in Patch requests.
20650	ForceSendFields []string `json:"-"`
20651
20652	// NullFields is a list of field names (e.g. "Annotations") to include
20653	// in API requests with the JSON null value. By default, fields with
20654	// empty values are omitted from API requests. However, any field with
20655	// an empty value appearing in NullFields will be sent to the server as
20656	// null. It is an error if a field in this list has a non-empty value.
20657	// This may be used to include null fields in Patch requests.
20658	NullFields []string `json:"-"`
20659}
20660
20661func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
20662	type NoMethod NetworkEndpointGroup
20663	raw := NoMethod(*s)
20664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20665}
20666
20667type NetworkEndpointGroupAggregatedList struct {
20668	// Id: [Output Only] Unique identifier for the resource; defined by the
20669	// server.
20670	Id string `json:"id,omitempty"`
20671
20672	// Items: A list of NetworkEndpointGroupsScopedList resources.
20673	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
20674
20675	// Kind: [Output Only] The resource type, which is always
20676	// compute#networkEndpointGroupAggregatedList for aggregated lists of
20677	// network endpoint groups.
20678	Kind string `json:"kind,omitempty"`
20679
20680	// NextPageToken: [Output Only] This token allows you to get the next
20681	// page of results for list requests. If the number of results is larger
20682	// than maxResults, use the nextPageToken as a value for the query
20683	// parameter pageToken in the next list request. Subsequent list
20684	// requests will have their own nextPageToken to continue paging through
20685	// the results.
20686	NextPageToken string `json:"nextPageToken,omitempty"`
20687
20688	// SelfLink: [Output Only] Server-defined URL for this resource.
20689	SelfLink string `json:"selfLink,omitempty"`
20690
20691	// Warning: [Output Only] Informational warning message.
20692	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
20693
20694	// ServerResponse contains the HTTP response code and headers from the
20695	// server.
20696	googleapi.ServerResponse `json:"-"`
20697
20698	// ForceSendFields is a list of field names (e.g. "Id") to
20699	// unconditionally include in API requests. By default, fields with
20700	// empty values are omitted from API requests. However, any non-pointer,
20701	// non-interface field appearing in ForceSendFields will be sent to the
20702	// server regardless of whether the field is empty or not. This may be
20703	// used to include empty fields in Patch requests.
20704	ForceSendFields []string `json:"-"`
20705
20706	// NullFields is a list of field names (e.g. "Id") to include in API
20707	// requests with the JSON null value. By default, fields with empty
20708	// values are omitted from API requests. However, any field with an
20709	// empty value appearing in NullFields will be sent to the server as
20710	// null. It is an error if a field in this list has a non-empty value.
20711	// This may be used to include null fields in Patch requests.
20712	NullFields []string `json:"-"`
20713}
20714
20715func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
20716	type NoMethod NetworkEndpointGroupAggregatedList
20717	raw := NoMethod(*s)
20718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20719}
20720
20721// NetworkEndpointGroupAggregatedListWarning: [Output Only]
20722// Informational warning message.
20723type NetworkEndpointGroupAggregatedListWarning struct {
20724	// Code: [Output Only] A warning code, if applicable. For example,
20725	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20726	// the response.
20727	//
20728	// Possible values:
20729	//   "CLEANUP_FAILED"
20730	//   "DEPRECATED_RESOURCE_USED"
20731	//   "DEPRECATED_TYPE_USED"
20732	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20733	//   "EXPERIMENTAL_TYPE_USED"
20734	//   "EXTERNAL_API_WARNING"
20735	//   "FIELD_VALUE_OVERRIDEN"
20736	//   "INJECTED_KERNELS_DEPRECATED"
20737	//   "MISSING_TYPE_DEPENDENCY"
20738	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20739	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20740	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20741	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20742	//   "NEXT_HOP_NOT_RUNNING"
20743	//   "NOT_CRITICAL_ERROR"
20744	//   "NO_RESULTS_ON_PAGE"
20745	//   "REQUIRED_TOS_AGREEMENT"
20746	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20747	//   "RESOURCE_NOT_DELETED"
20748	//   "SCHEMA_VALIDATION_IGNORED"
20749	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20750	//   "UNDECLARED_PROPERTIES"
20751	//   "UNREACHABLE"
20752	Code string `json:"code,omitempty"`
20753
20754	// Data: [Output Only] Metadata about this warning in key: value format.
20755	// For example:
20756	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20757	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
20758
20759	// Message: [Output Only] A human-readable description of the warning
20760	// code.
20761	Message string `json:"message,omitempty"`
20762
20763	// ForceSendFields is a list of field names (e.g. "Code") to
20764	// unconditionally include in API requests. By default, fields with
20765	// empty values are omitted from API requests. However, any non-pointer,
20766	// non-interface field appearing in ForceSendFields will be sent to the
20767	// server regardless of whether the field is empty or not. This may be
20768	// used to include empty fields in Patch requests.
20769	ForceSendFields []string `json:"-"`
20770
20771	// NullFields is a list of field names (e.g. "Code") to include in API
20772	// requests with the JSON null value. By default, fields with empty
20773	// values are omitted from API requests. However, any field with an
20774	// empty value appearing in NullFields will be sent to the server as
20775	// null. It is an error if a field in this list has a non-empty value.
20776	// This may be used to include null fields in Patch requests.
20777	NullFields []string `json:"-"`
20778}
20779
20780func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
20781	type NoMethod NetworkEndpointGroupAggregatedListWarning
20782	raw := NoMethod(*s)
20783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20784}
20785
20786type NetworkEndpointGroupAggregatedListWarningData struct {
20787	// Key: [Output Only] A key that provides more detail on the warning
20788	// being returned. For example, for warnings where there are no results
20789	// in a list request for a particular zone, this key might be scope and
20790	// the key value might be the zone name. Other examples might be a key
20791	// indicating a deprecated resource and a suggested replacement, or a
20792	// warning about invalid network settings (for example, if an instance
20793	// attempts to perform IP forwarding but is not enabled for IP
20794	// forwarding).
20795	Key string `json:"key,omitempty"`
20796
20797	// Value: [Output Only] A warning data value corresponding to the key.
20798	Value string `json:"value,omitempty"`
20799
20800	// ForceSendFields is a list of field names (e.g. "Key") to
20801	// unconditionally include in API requests. By default, fields with
20802	// empty values are omitted from API requests. However, any non-pointer,
20803	// non-interface field appearing in ForceSendFields will be sent to the
20804	// server regardless of whether the field is empty or not. This may be
20805	// used to include empty fields in Patch requests.
20806	ForceSendFields []string `json:"-"`
20807
20808	// NullFields is a list of field names (e.g. "Key") to include in API
20809	// requests with the JSON null value. By default, fields with empty
20810	// values are omitted from API requests. However, any field with an
20811	// empty value appearing in NullFields will be sent to the server as
20812	// null. It is an error if a field in this list has a non-empty value.
20813	// This may be used to include null fields in Patch requests.
20814	NullFields []string `json:"-"`
20815}
20816
20817func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
20818	type NoMethod NetworkEndpointGroupAggregatedListWarningData
20819	raw := NoMethod(*s)
20820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20821}
20822
20823type NetworkEndpointGroupList struct {
20824	// Id: [Output Only] Unique identifier for the resource; defined by the
20825	// server.
20826	Id string `json:"id,omitempty"`
20827
20828	// Items: A list of NetworkEndpointGroup resources.
20829	Items []*NetworkEndpointGroup `json:"items,omitempty"`
20830
20831	// Kind: [Output Only] The resource type, which is always
20832	// compute#networkEndpointGroupList for network endpoint group lists.
20833	Kind string `json:"kind,omitempty"`
20834
20835	// NextPageToken: [Output Only] This token allows you to get the next
20836	// page of results for list requests. If the number of results is larger
20837	// than maxResults, use the nextPageToken as a value for the query
20838	// parameter pageToken in the next list request. Subsequent list
20839	// requests will have their own nextPageToken to continue paging through
20840	// the results.
20841	NextPageToken string `json:"nextPageToken,omitempty"`
20842
20843	// SelfLink: [Output Only] Server-defined URL for this resource.
20844	SelfLink string `json:"selfLink,omitempty"`
20845
20846	// Warning: [Output Only] Informational warning message.
20847	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
20848
20849	// ServerResponse contains the HTTP response code and headers from the
20850	// server.
20851	googleapi.ServerResponse `json:"-"`
20852
20853	// ForceSendFields is a list of field names (e.g. "Id") to
20854	// unconditionally include in API requests. By default, fields with
20855	// empty values are omitted from API requests. However, any non-pointer,
20856	// non-interface field appearing in ForceSendFields will be sent to the
20857	// server regardless of whether the field is empty or not. This may be
20858	// used to include empty fields in Patch requests.
20859	ForceSendFields []string `json:"-"`
20860
20861	// NullFields is a list of field names (e.g. "Id") to include in API
20862	// requests with the JSON null value. By default, fields with empty
20863	// values are omitted from API requests. However, any field with an
20864	// empty value appearing in NullFields will be sent to the server as
20865	// null. It is an error if a field in this list has a non-empty value.
20866	// This may be used to include null fields in Patch requests.
20867	NullFields []string `json:"-"`
20868}
20869
20870func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
20871	type NoMethod NetworkEndpointGroupList
20872	raw := NoMethod(*s)
20873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20874}
20875
20876// NetworkEndpointGroupListWarning: [Output Only] Informational warning
20877// message.
20878type NetworkEndpointGroupListWarning struct {
20879	// Code: [Output Only] A warning code, if applicable. For example,
20880	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20881	// the response.
20882	//
20883	// Possible values:
20884	//   "CLEANUP_FAILED"
20885	//   "DEPRECATED_RESOURCE_USED"
20886	//   "DEPRECATED_TYPE_USED"
20887	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20888	//   "EXPERIMENTAL_TYPE_USED"
20889	//   "EXTERNAL_API_WARNING"
20890	//   "FIELD_VALUE_OVERRIDEN"
20891	//   "INJECTED_KERNELS_DEPRECATED"
20892	//   "MISSING_TYPE_DEPENDENCY"
20893	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20894	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20895	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20896	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20897	//   "NEXT_HOP_NOT_RUNNING"
20898	//   "NOT_CRITICAL_ERROR"
20899	//   "NO_RESULTS_ON_PAGE"
20900	//   "REQUIRED_TOS_AGREEMENT"
20901	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20902	//   "RESOURCE_NOT_DELETED"
20903	//   "SCHEMA_VALIDATION_IGNORED"
20904	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20905	//   "UNDECLARED_PROPERTIES"
20906	//   "UNREACHABLE"
20907	Code string `json:"code,omitempty"`
20908
20909	// Data: [Output Only] Metadata about this warning in key: value format.
20910	// For example:
20911	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20912	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
20913
20914	// Message: [Output Only] A human-readable description of the warning
20915	// code.
20916	Message string `json:"message,omitempty"`
20917
20918	// ForceSendFields is a list of field names (e.g. "Code") to
20919	// unconditionally include in API requests. By default, fields with
20920	// empty values are omitted from API requests. However, any non-pointer,
20921	// non-interface field appearing in ForceSendFields will be sent to the
20922	// server regardless of whether the field is empty or not. This may be
20923	// used to include empty fields in Patch requests.
20924	ForceSendFields []string `json:"-"`
20925
20926	// NullFields is a list of field names (e.g. "Code") to include in API
20927	// requests with the JSON null value. By default, fields with empty
20928	// values are omitted from API requests. However, any field with an
20929	// empty value appearing in NullFields will be sent to the server as
20930	// null. It is an error if a field in this list has a non-empty value.
20931	// This may be used to include null fields in Patch requests.
20932	NullFields []string `json:"-"`
20933}
20934
20935func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
20936	type NoMethod NetworkEndpointGroupListWarning
20937	raw := NoMethod(*s)
20938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20939}
20940
20941type NetworkEndpointGroupListWarningData struct {
20942	// Key: [Output Only] A key that provides more detail on the warning
20943	// being returned. For example, for warnings where there are no results
20944	// in a list request for a particular zone, this key might be scope and
20945	// the key value might be the zone name. Other examples might be a key
20946	// indicating a deprecated resource and a suggested replacement, or a
20947	// warning about invalid network settings (for example, if an instance
20948	// attempts to perform IP forwarding but is not enabled for IP
20949	// forwarding).
20950	Key string `json:"key,omitempty"`
20951
20952	// Value: [Output Only] A warning data value corresponding to the key.
20953	Value string `json:"value,omitempty"`
20954
20955	// ForceSendFields is a list of field names (e.g. "Key") to
20956	// unconditionally include in API requests. By default, fields with
20957	// empty values are omitted from API requests. However, any non-pointer,
20958	// non-interface field appearing in ForceSendFields will be sent to the
20959	// server regardless of whether the field is empty or not. This may be
20960	// used to include empty fields in Patch requests.
20961	ForceSendFields []string `json:"-"`
20962
20963	// NullFields is a list of field names (e.g. "Key") to include in API
20964	// requests with the JSON null value. By default, fields with empty
20965	// values are omitted from API requests. However, any field with an
20966	// empty value appearing in NullFields will be sent to the server as
20967	// null. It is an error if a field in this list has a non-empty value.
20968	// This may be used to include null fields in Patch requests.
20969	NullFields []string `json:"-"`
20970}
20971
20972func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
20973	type NoMethod NetworkEndpointGroupListWarningData
20974	raw := NoMethod(*s)
20975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20976}
20977
20978type NetworkEndpointGroupsAttachEndpointsRequest struct {
20979	// NetworkEndpoints: The list of network endpoints to be attached.
20980	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
20981
20982	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
20983	// unconditionally include in API requests. By default, fields with
20984	// empty values are omitted from API requests. However, any non-pointer,
20985	// non-interface field appearing in ForceSendFields will be sent to the
20986	// server regardless of whether the field is empty or not. This may be
20987	// used to include empty fields in Patch requests.
20988	ForceSendFields []string `json:"-"`
20989
20990	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
20991	// include in API requests with the JSON null value. By default, fields
20992	// with empty values are omitted from API requests. However, any field
20993	// with an empty value appearing in NullFields will be sent to the
20994	// server as null. It is an error if a field in this list has a
20995	// non-empty value. This may be used to include null fields in Patch
20996	// requests.
20997	NullFields []string `json:"-"`
20998}
20999
21000func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
21001	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
21002	raw := NoMethod(*s)
21003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21004}
21005
21006type NetworkEndpointGroupsDetachEndpointsRequest struct {
21007	// NetworkEndpoints: The list of network endpoints to be detached.
21008	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
21009
21010	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
21011	// unconditionally include in API requests. By default, fields with
21012	// empty values are omitted from API requests. However, any non-pointer,
21013	// non-interface field appearing in ForceSendFields will be sent to the
21014	// server regardless of whether the field is empty or not. This may be
21015	// used to include empty fields in Patch requests.
21016	ForceSendFields []string `json:"-"`
21017
21018	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
21019	// include in API requests with the JSON null value. By default, fields
21020	// with empty values are omitted from API requests. However, any field
21021	// with an empty value appearing in NullFields will be sent to the
21022	// server as null. It is an error if a field in this list has a
21023	// non-empty value. This may be used to include null fields in Patch
21024	// requests.
21025	NullFields []string `json:"-"`
21026}
21027
21028func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
21029	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
21030	raw := NoMethod(*s)
21031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21032}
21033
21034type NetworkEndpointGroupsListEndpointsRequest struct {
21035	// HealthStatus: Optional query parameter for showing the health status
21036	// of each network endpoint. Valid options are SKIP or SHOW. If you
21037	// don't specify this parameter, the health status of network endpoints
21038	// will not be provided.
21039	//
21040	// Possible values:
21041	//   "SHOW"
21042	//   "SKIP"
21043	HealthStatus string `json:"healthStatus,omitempty"`
21044
21045	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
21046	// unconditionally include in API requests. By default, fields with
21047	// empty values are omitted from API requests. However, any non-pointer,
21048	// non-interface field appearing in ForceSendFields will be sent to the
21049	// server regardless of whether the field is empty or not. This may be
21050	// used to include empty fields in Patch requests.
21051	ForceSendFields []string `json:"-"`
21052
21053	// NullFields is a list of field names (e.g. "HealthStatus") to include
21054	// in API requests with the JSON null value. By default, fields with
21055	// empty values are omitted from API requests. However, any field with
21056	// an empty value appearing in NullFields will be sent to the server as
21057	// null. It is an error if a field in this list has a non-empty value.
21058	// This may be used to include null fields in Patch requests.
21059	NullFields []string `json:"-"`
21060}
21061
21062func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
21063	type NoMethod NetworkEndpointGroupsListEndpointsRequest
21064	raw := NoMethod(*s)
21065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21066}
21067
21068type NetworkEndpointGroupsListNetworkEndpoints struct {
21069	// Id: [Output Only] Unique identifier for the resource; defined by the
21070	// server.
21071	Id string `json:"id,omitempty"`
21072
21073	// Items: A list of NetworkEndpointWithHealthStatus resources.
21074	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
21075
21076	// Kind: [Output Only] The resource type, which is always
21077	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
21078	// network endpoints in the specified network endpoint group.
21079	Kind string `json:"kind,omitempty"`
21080
21081	// NextPageToken: [Output Only] This token allows you to get the next
21082	// page of results for list requests. If the number of results is larger
21083	// than maxResults, use the nextPageToken as a value for the query
21084	// parameter pageToken in the next list request. Subsequent list
21085	// requests will have their own nextPageToken to continue paging through
21086	// the results.
21087	NextPageToken string `json:"nextPageToken,omitempty"`
21088
21089	// Warning: [Output Only] Informational warning message.
21090	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
21091
21092	// ServerResponse contains the HTTP response code and headers from the
21093	// server.
21094	googleapi.ServerResponse `json:"-"`
21095
21096	// ForceSendFields is a list of field names (e.g. "Id") to
21097	// unconditionally include in API requests. By default, fields with
21098	// empty values are omitted from API requests. However, any non-pointer,
21099	// non-interface field appearing in ForceSendFields will be sent to the
21100	// server regardless of whether the field is empty or not. This may be
21101	// used to include empty fields in Patch requests.
21102	ForceSendFields []string `json:"-"`
21103
21104	// NullFields is a list of field names (e.g. "Id") to include in API
21105	// requests with the JSON null value. By default, fields with empty
21106	// values are omitted from API requests. However, any field with an
21107	// empty value appearing in NullFields will be sent to the server as
21108	// null. It is an error if a field in this list has a non-empty value.
21109	// This may be used to include null fields in Patch requests.
21110	NullFields []string `json:"-"`
21111}
21112
21113func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
21114	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
21115	raw := NoMethod(*s)
21116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21117}
21118
21119// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
21120// Informational warning message.
21121type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
21122	// Code: [Output Only] A warning code, if applicable. For example,
21123	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21124	// the response.
21125	//
21126	// Possible values:
21127	//   "CLEANUP_FAILED"
21128	//   "DEPRECATED_RESOURCE_USED"
21129	//   "DEPRECATED_TYPE_USED"
21130	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21131	//   "EXPERIMENTAL_TYPE_USED"
21132	//   "EXTERNAL_API_WARNING"
21133	//   "FIELD_VALUE_OVERRIDEN"
21134	//   "INJECTED_KERNELS_DEPRECATED"
21135	//   "MISSING_TYPE_DEPENDENCY"
21136	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21137	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21138	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21139	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21140	//   "NEXT_HOP_NOT_RUNNING"
21141	//   "NOT_CRITICAL_ERROR"
21142	//   "NO_RESULTS_ON_PAGE"
21143	//   "REQUIRED_TOS_AGREEMENT"
21144	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21145	//   "RESOURCE_NOT_DELETED"
21146	//   "SCHEMA_VALIDATION_IGNORED"
21147	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21148	//   "UNDECLARED_PROPERTIES"
21149	//   "UNREACHABLE"
21150	Code string `json:"code,omitempty"`
21151
21152	// Data: [Output Only] Metadata about this warning in key: value format.
21153	// For example:
21154	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21155	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
21156
21157	// Message: [Output Only] A human-readable description of the warning
21158	// code.
21159	Message string `json:"message,omitempty"`
21160
21161	// ForceSendFields is a list of field names (e.g. "Code") to
21162	// unconditionally include in API requests. By default, fields with
21163	// empty values are omitted from API requests. However, any non-pointer,
21164	// non-interface field appearing in ForceSendFields will be sent to the
21165	// server regardless of whether the field is empty or not. This may be
21166	// used to include empty fields in Patch requests.
21167	ForceSendFields []string `json:"-"`
21168
21169	// NullFields is a list of field names (e.g. "Code") to include in API
21170	// requests with the JSON null value. By default, fields with empty
21171	// values are omitted from API requests. However, any field with an
21172	// empty value appearing in NullFields will be sent to the server as
21173	// null. It is an error if a field in this list has a non-empty value.
21174	// This may be used to include null fields in Patch requests.
21175	NullFields []string `json:"-"`
21176}
21177
21178func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
21179	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
21180	raw := NoMethod(*s)
21181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21182}
21183
21184type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
21185	// Key: [Output Only] A key that provides more detail on the warning
21186	// being returned. For example, for warnings where there are no results
21187	// in a list request for a particular zone, this key might be scope and
21188	// the key value might be the zone name. Other examples might be a key
21189	// indicating a deprecated resource and a suggested replacement, or a
21190	// warning about invalid network settings (for example, if an instance
21191	// attempts to perform IP forwarding but is not enabled for IP
21192	// forwarding).
21193	Key string `json:"key,omitempty"`
21194
21195	// Value: [Output Only] A warning data value corresponding to the key.
21196	Value string `json:"value,omitempty"`
21197
21198	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
21216	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
21217	raw := NoMethod(*s)
21218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21219}
21220
21221type NetworkEndpointGroupsScopedList struct {
21222	// NetworkEndpointGroups: [Output Only] The list of network endpoint
21223	// groups that are contained in this scope.
21224	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
21225
21226	// Warning: [Output Only] An informational warning that replaces the
21227	// list of network endpoint groups when the list is empty.
21228	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
21229
21230	// ForceSendFields is a list of field names (e.g.
21231	// "NetworkEndpointGroups") to unconditionally include in API requests.
21232	// By default, fields with empty values are omitted from API requests.
21233	// However, any non-pointer, non-interface field appearing in
21234	// ForceSendFields will be sent to the server regardless of whether the
21235	// field is empty or not. This may be used to include empty fields in
21236	// Patch requests.
21237	ForceSendFields []string `json:"-"`
21238
21239	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
21240	// include in API requests with the JSON null value. By default, fields
21241	// with empty values are omitted from API requests. However, any field
21242	// with an empty value appearing in NullFields will be sent to the
21243	// server as null. It is an error if a field in this list has a
21244	// non-empty value. This may be used to include null fields in Patch
21245	// requests.
21246	NullFields []string `json:"-"`
21247}
21248
21249func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
21250	type NoMethod NetworkEndpointGroupsScopedList
21251	raw := NoMethod(*s)
21252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21253}
21254
21255// NetworkEndpointGroupsScopedListWarning: [Output Only] An
21256// informational warning that replaces the list of network endpoint
21257// groups when the list is empty.
21258type NetworkEndpointGroupsScopedListWarning struct {
21259	// Code: [Output Only] A warning code, if applicable. For example,
21260	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21261	// the response.
21262	//
21263	// Possible values:
21264	//   "CLEANUP_FAILED"
21265	//   "DEPRECATED_RESOURCE_USED"
21266	//   "DEPRECATED_TYPE_USED"
21267	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21268	//   "EXPERIMENTAL_TYPE_USED"
21269	//   "EXTERNAL_API_WARNING"
21270	//   "FIELD_VALUE_OVERRIDEN"
21271	//   "INJECTED_KERNELS_DEPRECATED"
21272	//   "MISSING_TYPE_DEPENDENCY"
21273	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21274	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21275	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21276	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21277	//   "NEXT_HOP_NOT_RUNNING"
21278	//   "NOT_CRITICAL_ERROR"
21279	//   "NO_RESULTS_ON_PAGE"
21280	//   "REQUIRED_TOS_AGREEMENT"
21281	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21282	//   "RESOURCE_NOT_DELETED"
21283	//   "SCHEMA_VALIDATION_IGNORED"
21284	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21285	//   "UNDECLARED_PROPERTIES"
21286	//   "UNREACHABLE"
21287	Code string `json:"code,omitempty"`
21288
21289	// Data: [Output Only] Metadata about this warning in key: value format.
21290	// For example:
21291	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21292	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
21293
21294	// Message: [Output Only] A human-readable description of the warning
21295	// code.
21296	Message string `json:"message,omitempty"`
21297
21298	// ForceSendFields is a list of field names (e.g. "Code") to
21299	// unconditionally include in API requests. By default, fields with
21300	// empty values are omitted from API requests. However, any non-pointer,
21301	// non-interface field appearing in ForceSendFields will be sent to the
21302	// server regardless of whether the field is empty or not. This may be
21303	// used to include empty fields in Patch requests.
21304	ForceSendFields []string `json:"-"`
21305
21306	// NullFields is a list of field names (e.g. "Code") to include in API
21307	// requests with the JSON null value. By default, fields with empty
21308	// values are omitted from API requests. However, any field with an
21309	// empty value appearing in NullFields will be sent to the server as
21310	// null. It is an error if a field in this list has a non-empty value.
21311	// This may be used to include null fields in Patch requests.
21312	NullFields []string `json:"-"`
21313}
21314
21315func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
21316	type NoMethod NetworkEndpointGroupsScopedListWarning
21317	raw := NoMethod(*s)
21318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21319}
21320
21321type NetworkEndpointGroupsScopedListWarningData struct {
21322	// Key: [Output Only] A key that provides more detail on the warning
21323	// being returned. For example, for warnings where there are no results
21324	// in a list request for a particular zone, this key might be scope and
21325	// the key value might be the zone name. Other examples might be a key
21326	// indicating a deprecated resource and a suggested replacement, or a
21327	// warning about invalid network settings (for example, if an instance
21328	// attempts to perform IP forwarding but is not enabled for IP
21329	// forwarding).
21330	Key string `json:"key,omitempty"`
21331
21332	// Value: [Output Only] A warning data value corresponding to the key.
21333	Value string `json:"value,omitempty"`
21334
21335	// ForceSendFields is a list of field names (e.g. "Key") to
21336	// unconditionally include in API requests. By default, fields with
21337	// empty values are omitted from API requests. However, any non-pointer,
21338	// non-interface field appearing in ForceSendFields will be sent to the
21339	// server regardless of whether the field is empty or not. This may be
21340	// used to include empty fields in Patch requests.
21341	ForceSendFields []string `json:"-"`
21342
21343	// NullFields is a list of field names (e.g. "Key") to include in API
21344	// requests with the JSON null value. By default, fields with empty
21345	// values are omitted from API requests. However, any field with an
21346	// empty value appearing in NullFields will be sent to the server as
21347	// null. It is an error if a field in this list has a non-empty value.
21348	// This may be used to include null fields in Patch requests.
21349	NullFields []string `json:"-"`
21350}
21351
21352func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
21353	type NoMethod NetworkEndpointGroupsScopedListWarningData
21354	raw := NoMethod(*s)
21355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21356}
21357
21358type NetworkEndpointWithHealthStatus struct {
21359	// Healths: [Output only] The health status of network endpoint;
21360	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
21361
21362	// NetworkEndpoint: [Output only] The network endpoint;
21363	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
21364
21365	// ForceSendFields is a list of field names (e.g. "Healths") to
21366	// unconditionally include in API requests. By default, fields with
21367	// empty values are omitted from API requests. However, any non-pointer,
21368	// non-interface field appearing in ForceSendFields will be sent to the
21369	// server regardless of whether the field is empty or not. This may be
21370	// used to include empty fields in Patch requests.
21371	ForceSendFields []string `json:"-"`
21372
21373	// NullFields is a list of field names (e.g. "Healths") to include in
21374	// API requests with the JSON null value. By default, fields with empty
21375	// values are omitted from API requests. However, any field with an
21376	// empty value appearing in NullFields will be sent to the server as
21377	// null. It is an error if a field in this list has a non-empty value.
21378	// This may be used to include null fields in Patch requests.
21379	NullFields []string `json:"-"`
21380}
21381
21382func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
21383	type NoMethod NetworkEndpointWithHealthStatus
21384	raw := NoMethod(*s)
21385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21386}
21387
21388// NetworkInterface: A network interface resource attached to an
21389// instance.
21390type NetworkInterface struct {
21391	// AccessConfigs: An array of configurations for this interface.
21392	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
21393	// there are no accessConfigs specified, then this instance will have no
21394	// external internet access.
21395	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
21396
21397	// AliasIpRanges: An array of alias IP ranges for this network
21398	// interface. You can only specify this field for network interfaces in
21399	// VPC networks.
21400	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
21401
21402	// Fingerprint: Fingerprint hash of contents stored in this network
21403	// interface. This field will be ignored when inserting an Instance or
21404	// adding a NetworkInterface. An up-to-date fingerprint must be provided
21405	// in order to update the NetworkInterface, otherwise the request will
21406	// fail with error 412 conditionNotMet.
21407	Fingerprint string `json:"fingerprint,omitempty"`
21408
21409	// Ipv6Address: [Output Only] An IPv6 internal network address for this
21410	// network interface.
21411	Ipv6Address string `json:"ipv6Address,omitempty"`
21412
21413	// Kind: [Output Only] Type of the resource. Always
21414	// compute#networkInterface for network interfaces.
21415	Kind string `json:"kind,omitempty"`
21416
21417	// Name: [Output Only] The name of the network interface, which is
21418	// generated by the server. For network devices, these are eth0, eth1,
21419	// etc.
21420	Name string `json:"name,omitempty"`
21421
21422	// Network: URL of the network resource for this instance. When creating
21423	// an instance, if neither the network nor the subnetwork is specified,
21424	// the default network global/networks/default is used; if the network
21425	// is not specified but the subnetwork is specified, the network is
21426	// inferred.
21427	//
21428	// If you specify this property, you can specify the network as a full
21429	// or partial URL. For example, the following are all valid URLs:
21430	// -
21431	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
21432	// - projects/project/global/networks/network
21433	// - global/networks/default
21434	Network string `json:"network,omitempty"`
21435
21436	// NetworkIP: An IPv4 internal IP address to assign to the instance for
21437	// this network interface. If not specified by the user, an unused
21438	// internal IP is assigned by the system.
21439	NetworkIP string `json:"networkIP,omitempty"`
21440
21441	// Subnetwork: The URL of the Subnetwork resource for this instance. If
21442	// the network resource is in legacy mode, do not specify this field. If
21443	// the network is in auto subnet mode, specifying the subnetwork is
21444	// optional. If the network is in custom subnet mode, specifying the
21445	// subnetwork is required. If you specify this field, you can specify
21446	// the subnetwork as a full or partial URL. For example, the following
21447	// are all valid URLs:
21448	// -
21449	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
21450	// - regions/region/subnetworks/subnetwork
21451	Subnetwork string `json:"subnetwork,omitempty"`
21452
21453	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
21454	// unconditionally include in API requests. By default, fields with
21455	// empty values are omitted from API requests. However, any non-pointer,
21456	// non-interface field appearing in ForceSendFields will be sent to the
21457	// server regardless of whether the field is empty or not. This may be
21458	// used to include empty fields in Patch requests.
21459	ForceSendFields []string `json:"-"`
21460
21461	// NullFields is a list of field names (e.g. "AccessConfigs") to include
21462	// in API requests with the JSON null value. By default, fields with
21463	// empty values are omitted from API requests. However, any field with
21464	// an empty value appearing in NullFields will be sent to the server as
21465	// null. It is an error if a field in this list has a non-empty value.
21466	// This may be used to include null fields in Patch requests.
21467	NullFields []string `json:"-"`
21468}
21469
21470func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
21471	type NoMethod NetworkInterface
21472	raw := NoMethod(*s)
21473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21474}
21475
21476// NetworkList: Contains a list of networks.
21477type NetworkList struct {
21478	// Id: [Output Only] Unique identifier for the resource; defined by the
21479	// server.
21480	Id string `json:"id,omitempty"`
21481
21482	// Items: A list of Network resources.
21483	Items []*Network `json:"items,omitempty"`
21484
21485	// Kind: [Output Only] Type of resource. Always compute#networkList for
21486	// lists of networks.
21487	Kind string `json:"kind,omitempty"`
21488
21489	// NextPageToken: [Output Only] This token allows you to get the next
21490	// page of results for list requests. If the number of results is larger
21491	// than maxResults, use the nextPageToken as a value for the query
21492	// parameter pageToken in the next list request. Subsequent list
21493	// requests will have their own nextPageToken to continue paging through
21494	// the results.
21495	NextPageToken string `json:"nextPageToken,omitempty"`
21496
21497	// SelfLink: [Output Only] Server-defined URL for this resource.
21498	SelfLink string `json:"selfLink,omitempty"`
21499
21500	// Warning: [Output Only] Informational warning message.
21501	Warning *NetworkListWarning `json:"warning,omitempty"`
21502
21503	// ServerResponse contains the HTTP response code and headers from the
21504	// server.
21505	googleapi.ServerResponse `json:"-"`
21506
21507	// ForceSendFields is a list of field names (e.g. "Id") to
21508	// unconditionally include in API requests. By default, fields with
21509	// empty values are omitted from API requests. However, any non-pointer,
21510	// non-interface field appearing in ForceSendFields will be sent to the
21511	// server regardless of whether the field is empty or not. This may be
21512	// used to include empty fields in Patch requests.
21513	ForceSendFields []string `json:"-"`
21514
21515	// NullFields is a list of field names (e.g. "Id") to include in API
21516	// requests with the JSON null value. By default, fields with empty
21517	// values are omitted from API requests. However, any field with an
21518	// empty value appearing in NullFields will be sent to the server as
21519	// null. It is an error if a field in this list has a non-empty value.
21520	// This may be used to include null fields in Patch requests.
21521	NullFields []string `json:"-"`
21522}
21523
21524func (s *NetworkList) MarshalJSON() ([]byte, error) {
21525	type NoMethod NetworkList
21526	raw := NoMethod(*s)
21527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21528}
21529
21530// NetworkListWarning: [Output Only] Informational warning message.
21531type NetworkListWarning struct {
21532	// Code: [Output Only] A warning code, if applicable. For example,
21533	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21534	// the response.
21535	//
21536	// Possible values:
21537	//   "CLEANUP_FAILED"
21538	//   "DEPRECATED_RESOURCE_USED"
21539	//   "DEPRECATED_TYPE_USED"
21540	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21541	//   "EXPERIMENTAL_TYPE_USED"
21542	//   "EXTERNAL_API_WARNING"
21543	//   "FIELD_VALUE_OVERRIDEN"
21544	//   "INJECTED_KERNELS_DEPRECATED"
21545	//   "MISSING_TYPE_DEPENDENCY"
21546	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21547	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21548	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21549	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21550	//   "NEXT_HOP_NOT_RUNNING"
21551	//   "NOT_CRITICAL_ERROR"
21552	//   "NO_RESULTS_ON_PAGE"
21553	//   "REQUIRED_TOS_AGREEMENT"
21554	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21555	//   "RESOURCE_NOT_DELETED"
21556	//   "SCHEMA_VALIDATION_IGNORED"
21557	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21558	//   "UNDECLARED_PROPERTIES"
21559	//   "UNREACHABLE"
21560	Code string `json:"code,omitempty"`
21561
21562	// Data: [Output Only] Metadata about this warning in key: value format.
21563	// For example:
21564	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21565	Data []*NetworkListWarningData `json:"data,omitempty"`
21566
21567	// Message: [Output Only] A human-readable description of the warning
21568	// code.
21569	Message string `json:"message,omitempty"`
21570
21571	// ForceSendFields is a list of field names (e.g. "Code") to
21572	// unconditionally include in API requests. By default, fields with
21573	// empty values are omitted from API requests. However, any non-pointer,
21574	// non-interface field appearing in ForceSendFields will be sent to the
21575	// server regardless of whether the field is empty or not. This may be
21576	// used to include empty fields in Patch requests.
21577	ForceSendFields []string `json:"-"`
21578
21579	// NullFields is a list of field names (e.g. "Code") to include in API
21580	// requests with the JSON null value. By default, fields with empty
21581	// values are omitted from API requests. However, any field with an
21582	// empty value appearing in NullFields will be sent to the server as
21583	// null. It is an error if a field in this list has a non-empty value.
21584	// This may be used to include null fields in Patch requests.
21585	NullFields []string `json:"-"`
21586}
21587
21588func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
21589	type NoMethod NetworkListWarning
21590	raw := NoMethod(*s)
21591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21592}
21593
21594type NetworkListWarningData struct {
21595	// Key: [Output Only] A key that provides more detail on the warning
21596	// being returned. For example, for warnings where there are no results
21597	// in a list request for a particular zone, this key might be scope and
21598	// the key value might be the zone name. Other examples might be a key
21599	// indicating a deprecated resource and a suggested replacement, or a
21600	// warning about invalid network settings (for example, if an instance
21601	// attempts to perform IP forwarding but is not enabled for IP
21602	// forwarding).
21603	Key string `json:"key,omitempty"`
21604
21605	// Value: [Output Only] A warning data value corresponding to the key.
21606	Value string `json:"value,omitempty"`
21607
21608	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *NetworkListWarningData) MarshalJSON() ([]byte, error) {
21626	type NoMethod NetworkListWarningData
21627	raw := NoMethod(*s)
21628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21629}
21630
21631// NetworkPeering: A network peering attached to a network resource. The
21632// message includes the peering name, peer network, peering state, and a
21633// flag indicating whether Google Compute Engine should automatically
21634// create routes for the peering.
21635type NetworkPeering struct {
21636	// AutoCreateRoutes: This field will be deprecated soon. Use the
21637	// exchange_subnet_routes field instead. Indicates whether full mesh
21638	// connectivity is created and managed automatically between peered
21639	// networks. Currently this field should always be true since Google
21640	// Compute Engine will automatically create and manage subnetwork routes
21641	// between two networks when peering state is ACTIVE.
21642	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
21643
21644	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
21645	// created and managed automatically between peered networks. Currently
21646	// this field should always be true since Google Compute Engine will
21647	// automatically create and manage subnetwork routes between two
21648	// networks when peering state is ACTIVE.
21649	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
21650
21651	// ExportCustomRoutes: Whether to export the custom routes to peer
21652	// network.
21653	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
21654
21655	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
21656	// range are exported. The default value is true, all subnet routes are
21657	// exported. The IPv4 special-use ranges
21658	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
21659	// exported to peers and are not controlled by this field.
21660	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
21661
21662	// ImportCustomRoutes: Whether to import the custom routes from peer
21663	// network.
21664	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
21665
21666	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
21667	// range are imported. The default value is false. The IPv4 special-use
21668	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
21669	// always imported from peers and are not controlled by this field.
21670	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
21671
21672	// Name: Name of this peering. Provided by the client when the peering
21673	// is created. The name must comply with RFC1035. Specifically, the name
21674	// must be 1-63 characters long and match regular expression
21675	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
21676	// letter, and all the following characters must be a dash, lowercase
21677	// letter, or digit, except the last character, which cannot be a dash.
21678	Name string `json:"name,omitempty"`
21679
21680	// Network: The URL of the peer network. It can be either full URL or
21681	// partial URL. The peer network may belong to a different project. If
21682	// the partial URL does not contain project, it is assumed that the peer
21683	// network is in the same project as the current network.
21684	Network string `json:"network,omitempty"`
21685
21686	// State: [Output Only] State for the peering, either `ACTIVE` or
21687	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
21688	// configuration in the peer network.
21689	//
21690	// Possible values:
21691	//   "ACTIVE"
21692	//   "INACTIVE"
21693	State string `json:"state,omitempty"`
21694
21695	// StateDetails: [Output Only] Details about the current state of the
21696	// peering.
21697	StateDetails string `json:"stateDetails,omitempty"`
21698
21699	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
21700	// unconditionally include in API requests. By default, fields with
21701	// empty values are omitted from API requests. However, any non-pointer,
21702	// non-interface field appearing in ForceSendFields will be sent to the
21703	// server regardless of whether the field is empty or not. This may be
21704	// used to include empty fields in Patch requests.
21705	ForceSendFields []string `json:"-"`
21706
21707	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
21708	// include in API requests with the JSON null value. By default, fields
21709	// with empty values are omitted from API requests. However, any field
21710	// with an empty value appearing in NullFields will be sent to the
21711	// server as null. It is an error if a field in this list has a
21712	// non-empty value. This may be used to include null fields in Patch
21713	// requests.
21714	NullFields []string `json:"-"`
21715}
21716
21717func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
21718	type NoMethod NetworkPeering
21719	raw := NoMethod(*s)
21720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21721}
21722
21723// NetworkRoutingConfig: A routing configuration attached to a network
21724// resource. The message includes the list of routers associated with
21725// the network, and a flag indicating the type of routing behavior to
21726// enforce network-wide.
21727type NetworkRoutingConfig struct {
21728	// RoutingMode: The network-wide routing mode to use. If set to
21729	// REGIONAL, this network's Cloud Routers will only advertise routes
21730	// with subnets of this network in the same region as the router. If set
21731	// to GLOBAL, this network's Cloud Routers will advertise routes with
21732	// all subnets of this network, across regions.
21733	//
21734	// Possible values:
21735	//   "GLOBAL"
21736	//   "REGIONAL"
21737	RoutingMode string `json:"routingMode,omitempty"`
21738
21739	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
21740	// unconditionally include in API requests. By default, fields with
21741	// empty values are omitted from API requests. However, any non-pointer,
21742	// non-interface field appearing in ForceSendFields will be sent to the
21743	// server regardless of whether the field is empty or not. This may be
21744	// used to include empty fields in Patch requests.
21745	ForceSendFields []string `json:"-"`
21746
21747	// NullFields is a list of field names (e.g. "RoutingMode") to include
21748	// in API requests with the JSON null value. By default, fields with
21749	// empty values are omitted from API requests. However, any field with
21750	// an empty value appearing in NullFields will be sent to the server as
21751	// null. It is an error if a field in this list has a non-empty value.
21752	// This may be used to include null fields in Patch requests.
21753	NullFields []string `json:"-"`
21754}
21755
21756func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
21757	type NoMethod NetworkRoutingConfig
21758	raw := NoMethod(*s)
21759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21760}
21761
21762type NetworksAddPeeringRequest struct {
21763	// AutoCreateRoutes: This field will be deprecated soon. Use
21764	// exchange_subnet_routes in network_peering instead. Indicates whether
21765	// full mesh connectivity is created and managed automatically between
21766	// peered networks. Currently this field should always be true since
21767	// Google Compute Engine will automatically create and manage subnetwork
21768	// routes between two networks when peering state is ACTIVE.
21769	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
21770
21771	// Name: Name of the peering, which should conform to RFC1035.
21772	Name string `json:"name,omitempty"`
21773
21774	// NetworkPeering: Network peering parameters. In order to specify route
21775	// policies for peering using import and export custom routes, you must
21776	// specify all peering related parameters (name, peer network,
21777	// exchange_subnet_routes) in the network_peering field. The
21778	// corresponding fields in NetworksAddPeeringRequest will be deprecated
21779	// soon.
21780	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
21781
21782	// PeerNetwork: URL of the peer network. It can be either full URL or
21783	// partial URL. The peer network may belong to a different project. If
21784	// the partial URL does not contain project, it is assumed that the peer
21785	// network is in the same project as the current network.
21786	PeerNetwork string `json:"peerNetwork,omitempty"`
21787
21788	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
21789	// unconditionally include in API requests. By default, fields with
21790	// empty values are omitted from API requests. However, any non-pointer,
21791	// non-interface field appearing in ForceSendFields will be sent to the
21792	// server regardless of whether the field is empty or not. This may be
21793	// used to include empty fields in Patch requests.
21794	ForceSendFields []string `json:"-"`
21795
21796	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
21797	// include in API requests with the JSON null value. By default, fields
21798	// with empty values are omitted from API requests. However, any field
21799	// with an empty value appearing in NullFields will be sent to the
21800	// server as null. It is an error if a field in this list has a
21801	// non-empty value. This may be used to include null fields in Patch
21802	// requests.
21803	NullFields []string `json:"-"`
21804}
21805
21806func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
21807	type NoMethod NetworksAddPeeringRequest
21808	raw := NoMethod(*s)
21809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21810}
21811
21812type NetworksRemovePeeringRequest struct {
21813	// Name: Name of the peering, which should conform to RFC1035.
21814	Name string `json:"name,omitempty"`
21815
21816	// ForceSendFields is a list of field names (e.g. "Name") to
21817	// unconditionally include in API requests. By default, fields with
21818	// empty values are omitted from API requests. However, any non-pointer,
21819	// non-interface field appearing in ForceSendFields will be sent to the
21820	// server regardless of whether the field is empty or not. This may be
21821	// used to include empty fields in Patch requests.
21822	ForceSendFields []string `json:"-"`
21823
21824	// NullFields is a list of field names (e.g. "Name") to include in API
21825	// requests with the JSON null value. By default, fields with empty
21826	// values are omitted from API requests. However, any field with an
21827	// empty value appearing in NullFields will be sent to the server as
21828	// null. It is an error if a field in this list has a non-empty value.
21829	// This may be used to include null fields in Patch requests.
21830	NullFields []string `json:"-"`
21831}
21832
21833func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
21834	type NoMethod NetworksRemovePeeringRequest
21835	raw := NoMethod(*s)
21836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21837}
21838
21839type NetworksUpdatePeeringRequest struct {
21840	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
21841
21842	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
21843	// unconditionally include in API requests. By default, fields with
21844	// empty values are omitted from API requests. However, any non-pointer,
21845	// non-interface field appearing in ForceSendFields will be sent to the
21846	// server regardless of whether the field is empty or not. This may be
21847	// used to include empty fields in Patch requests.
21848	ForceSendFields []string `json:"-"`
21849
21850	// NullFields is a list of field names (e.g. "NetworkPeering") to
21851	// include in API requests with the JSON null value. By default, fields
21852	// with empty values are omitted from API requests. However, any field
21853	// with an empty value appearing in NullFields will be sent to the
21854	// server as null. It is an error if a field in this list has a
21855	// non-empty value. This may be used to include null fields in Patch
21856	// requests.
21857	NullFields []string `json:"-"`
21858}
21859
21860func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
21861	type NoMethod NetworksUpdatePeeringRequest
21862	raw := NoMethod(*s)
21863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21864}
21865
21866// NodeGroup: Represent a sole-tenant Node Group resource.
21867//
21868// A sole-tenant node is a physical server that is dedicated to hosting
21869// VM instances only for your specific project. Use sole-tenant nodes to
21870// keep your instances physically separated from instances in other
21871// projects, or to group your instances together on the same host
21872// hardware. For more information, read Sole-tenant nodes. (==
21873// resource_for {$api_version}.nodeGroups ==)
21874type NodeGroup struct {
21875	// AutoscalingPolicy: Specifies how autoscaling should behave.
21876	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
21877
21878	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21879	// format.
21880	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21881
21882	// Description: An optional description of this resource. Provide this
21883	// property when you create the resource.
21884	Description string `json:"description,omitempty"`
21885
21886	Fingerprint string `json:"fingerprint,omitempty"`
21887
21888	// Id: [Output Only] The unique identifier for the resource. This
21889	// identifier is defined by the server.
21890	Id uint64 `json:"id,omitempty,string"`
21891
21892	// Kind: [Output Only] The type of the resource. Always
21893	// compute#nodeGroup for node group.
21894	Kind string `json:"kind,omitempty"`
21895
21896	// MaintenancePolicy: Specifies how to handle instances when a node in
21897	// the group undergoes maintenance.
21898	//
21899	// Possible values:
21900	//   "DEFAULT"
21901	//   "MAINTENANCE_POLICY_UNSPECIFIED"
21902	//   "MIGRATE_WITHIN_NODE_GROUP"
21903	//   "RESTART_IN_PLACE"
21904	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
21905
21906	// Name: The name of the resource, provided by the client when initially
21907	// creating the resource. The resource name must be 1-63 characters
21908	// long, and comply with RFC1035. Specifically, the name must be 1-63
21909	// characters long and match the regular expression
21910	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
21911	// a lowercase letter, and all following characters must be a dash,
21912	// lowercase letter, or digit, except the last character, which cannot
21913	// be a dash.
21914	Name string `json:"name,omitempty"`
21915
21916	// NodeTemplate: URL of the node template to create the node group from.
21917	NodeTemplate string `json:"nodeTemplate,omitempty"`
21918
21919	// SelfLink: [Output Only] Server-defined URL for the resource.
21920	SelfLink string `json:"selfLink,omitempty"`
21921
21922	// Size: [Output Only] The total number of nodes in the node group.
21923	Size int64 `json:"size,omitempty"`
21924
21925	// Possible values:
21926	//   "CREATING"
21927	//   "DELETING"
21928	//   "INVALID"
21929	//   "READY"
21930	Status string `json:"status,omitempty"`
21931
21932	// Zone: [Output Only] The name of the zone where the node group
21933	// resides, such as us-central1-a.
21934	Zone string `json:"zone,omitempty"`
21935
21936	// ServerResponse contains the HTTP response code and headers from the
21937	// server.
21938	googleapi.ServerResponse `json:"-"`
21939
21940	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
21941	// to unconditionally include in API requests. By default, fields with
21942	// empty values are omitted from API requests. However, any non-pointer,
21943	// non-interface field appearing in ForceSendFields will be sent to the
21944	// server regardless of whether the field is empty or not. This may be
21945	// used to include empty fields in Patch requests.
21946	ForceSendFields []string `json:"-"`
21947
21948	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
21949	// include in API requests with the JSON null value. By default, fields
21950	// with empty values are omitted from API requests. However, any field
21951	// with an empty value appearing in NullFields will be sent to the
21952	// server as null. It is an error if a field in this list has a
21953	// non-empty value. This may be used to include null fields in Patch
21954	// requests.
21955	NullFields []string `json:"-"`
21956}
21957
21958func (s *NodeGroup) MarshalJSON() ([]byte, error) {
21959	type NoMethod NodeGroup
21960	raw := NoMethod(*s)
21961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21962}
21963
21964type NodeGroupAggregatedList struct {
21965	// Id: [Output Only] Unique identifier for the resource; defined by the
21966	// server.
21967	Id string `json:"id,omitempty"`
21968
21969	// Items: A list of NodeGroupsScopedList resources.
21970	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
21971
21972	// Kind: [Output Only] Type of resource.Always
21973	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
21974	Kind string `json:"kind,omitempty"`
21975
21976	// NextPageToken: [Output Only] This token allows you to get the next
21977	// page of results for list requests. If the number of results is larger
21978	// than maxResults, use the nextPageToken as a value for the query
21979	// parameter pageToken in the next list request. Subsequent list
21980	// requests will have their own nextPageToken to continue paging through
21981	// the results.
21982	NextPageToken string `json:"nextPageToken,omitempty"`
21983
21984	// SelfLink: [Output Only] Server-defined URL for this resource.
21985	SelfLink string `json:"selfLink,omitempty"`
21986
21987	// Warning: [Output Only] Informational warning message.
21988	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
21989
21990	// ServerResponse contains the HTTP response code and headers from the
21991	// server.
21992	googleapi.ServerResponse `json:"-"`
21993
21994	// ForceSendFields is a list of field names (e.g. "Id") to
21995	// unconditionally include in API requests. By default, fields with
21996	// empty values are omitted from API requests. However, any non-pointer,
21997	// non-interface field appearing in ForceSendFields will be sent to the
21998	// server regardless of whether the field is empty or not. This may be
21999	// used to include empty fields in Patch requests.
22000	ForceSendFields []string `json:"-"`
22001
22002	// NullFields is a list of field names (e.g. "Id") to include in API
22003	// requests with the JSON null value. By default, fields with empty
22004	// values are omitted from API requests. However, any field with an
22005	// empty value appearing in NullFields will be sent to the server as
22006	// null. It is an error if a field in this list has a non-empty value.
22007	// This may be used to include null fields in Patch requests.
22008	NullFields []string `json:"-"`
22009}
22010
22011func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
22012	type NoMethod NodeGroupAggregatedList
22013	raw := NoMethod(*s)
22014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22015}
22016
22017// NodeGroupAggregatedListWarning: [Output Only] Informational warning
22018// message.
22019type NodeGroupAggregatedListWarning struct {
22020	// Code: [Output Only] A warning code, if applicable. For example,
22021	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22022	// the response.
22023	//
22024	// Possible values:
22025	//   "CLEANUP_FAILED"
22026	//   "DEPRECATED_RESOURCE_USED"
22027	//   "DEPRECATED_TYPE_USED"
22028	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22029	//   "EXPERIMENTAL_TYPE_USED"
22030	//   "EXTERNAL_API_WARNING"
22031	//   "FIELD_VALUE_OVERRIDEN"
22032	//   "INJECTED_KERNELS_DEPRECATED"
22033	//   "MISSING_TYPE_DEPENDENCY"
22034	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22035	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22036	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22037	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22038	//   "NEXT_HOP_NOT_RUNNING"
22039	//   "NOT_CRITICAL_ERROR"
22040	//   "NO_RESULTS_ON_PAGE"
22041	//   "REQUIRED_TOS_AGREEMENT"
22042	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22043	//   "RESOURCE_NOT_DELETED"
22044	//   "SCHEMA_VALIDATION_IGNORED"
22045	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22046	//   "UNDECLARED_PROPERTIES"
22047	//   "UNREACHABLE"
22048	Code string `json:"code,omitempty"`
22049
22050	// Data: [Output Only] Metadata about this warning in key: value format.
22051	// For example:
22052	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22053	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
22054
22055	// Message: [Output Only] A human-readable description of the warning
22056	// code.
22057	Message string `json:"message,omitempty"`
22058
22059	// ForceSendFields is a list of field names (e.g. "Code") to
22060	// unconditionally include in API requests. By default, fields with
22061	// empty values are omitted from API requests. However, any non-pointer,
22062	// non-interface field appearing in ForceSendFields will be sent to the
22063	// server regardless of whether the field is empty or not. This may be
22064	// used to include empty fields in Patch requests.
22065	ForceSendFields []string `json:"-"`
22066
22067	// NullFields is a list of field names (e.g. "Code") to include in API
22068	// requests with the JSON null value. By default, fields with empty
22069	// values are omitted from API requests. However, any field with an
22070	// empty value appearing in NullFields will be sent to the server as
22071	// null. It is an error if a field in this list has a non-empty value.
22072	// This may be used to include null fields in Patch requests.
22073	NullFields []string `json:"-"`
22074}
22075
22076func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
22077	type NoMethod NodeGroupAggregatedListWarning
22078	raw := NoMethod(*s)
22079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22080}
22081
22082type NodeGroupAggregatedListWarningData struct {
22083	// Key: [Output Only] A key that provides more detail on the warning
22084	// being returned. For example, for warnings where there are no results
22085	// in a list request for a particular zone, this key might be scope and
22086	// the key value might be the zone name. Other examples might be a key
22087	// indicating a deprecated resource and a suggested replacement, or a
22088	// warning about invalid network settings (for example, if an instance
22089	// attempts to perform IP forwarding but is not enabled for IP
22090	// forwarding).
22091	Key string `json:"key,omitempty"`
22092
22093	// Value: [Output Only] A warning data value corresponding to the key.
22094	Value string `json:"value,omitempty"`
22095
22096	// ForceSendFields is a list of field names (e.g. "Key") to
22097	// unconditionally include in API requests. By default, fields with
22098	// empty values are omitted from API requests. However, any non-pointer,
22099	// non-interface field appearing in ForceSendFields will be sent to the
22100	// server regardless of whether the field is empty or not. This may be
22101	// used to include empty fields in Patch requests.
22102	ForceSendFields []string `json:"-"`
22103
22104	// NullFields is a list of field names (e.g. "Key") to include in API
22105	// requests with the JSON null value. By default, fields with empty
22106	// values are omitted from API requests. However, any field with an
22107	// empty value appearing in NullFields will be sent to the server as
22108	// null. It is an error if a field in this list has a non-empty value.
22109	// This may be used to include null fields in Patch requests.
22110	NullFields []string `json:"-"`
22111}
22112
22113func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22114	type NoMethod NodeGroupAggregatedListWarningData
22115	raw := NoMethod(*s)
22116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22117}
22118
22119type NodeGroupAutoscalingPolicy struct {
22120	// MaxNodes: The maximum number of nodes that the group should have.
22121	MaxNodes int64 `json:"maxNodes,omitempty"`
22122
22123	// MinNodes: The minimum number of nodes that the group should have.
22124	MinNodes int64 `json:"minNodes,omitempty"`
22125
22126	// Mode: The autoscaling mode.
22127	//
22128	// Possible values:
22129	//   "MODE_UNSPECIFIED"
22130	//   "OFF"
22131	//   "ON"
22132	//   "ONLY_SCALE_OUT"
22133	Mode string `json:"mode,omitempty"`
22134
22135	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
22136	// unconditionally include in API requests. By default, fields with
22137	// empty values are omitted from API requests. However, any non-pointer,
22138	// non-interface field appearing in ForceSendFields will be sent to the
22139	// server regardless of whether the field is empty or not. This may be
22140	// used to include empty fields in Patch requests.
22141	ForceSendFields []string `json:"-"`
22142
22143	// NullFields is a list of field names (e.g. "MaxNodes") to include in
22144	// API requests with the JSON null value. By default, fields with empty
22145	// values are omitted from API requests. However, any field with an
22146	// empty value appearing in NullFields will be sent to the server as
22147	// null. It is an error if a field in this list has a non-empty value.
22148	// This may be used to include null fields in Patch requests.
22149	NullFields []string `json:"-"`
22150}
22151
22152func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
22153	type NoMethod NodeGroupAutoscalingPolicy
22154	raw := NoMethod(*s)
22155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22156}
22157
22158// NodeGroupList: Contains a list of nodeGroups.
22159type NodeGroupList struct {
22160	// Id: [Output Only] Unique identifier for the resource; defined by the
22161	// server.
22162	Id string `json:"id,omitempty"`
22163
22164	// Items: A list of NodeGroup resources.
22165	Items []*NodeGroup `json:"items,omitempty"`
22166
22167	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
22168	// lists of node groups.
22169	Kind string `json:"kind,omitempty"`
22170
22171	// NextPageToken: [Output Only] This token allows you to get the next
22172	// page of results for list requests. If the number of results is larger
22173	// than maxResults, use the nextPageToken as a value for the query
22174	// parameter pageToken in the next list request. Subsequent list
22175	// requests will have their own nextPageToken to continue paging through
22176	// the results.
22177	NextPageToken string `json:"nextPageToken,omitempty"`
22178
22179	// SelfLink: [Output Only] Server-defined URL for this resource.
22180	SelfLink string `json:"selfLink,omitempty"`
22181
22182	// Warning: [Output Only] Informational warning message.
22183	Warning *NodeGroupListWarning `json:"warning,omitempty"`
22184
22185	// ServerResponse contains the HTTP response code and headers from the
22186	// server.
22187	googleapi.ServerResponse `json:"-"`
22188
22189	// ForceSendFields is a list of field names (e.g. "Id") to
22190	// unconditionally include in API requests. By default, fields with
22191	// empty values are omitted from API requests. However, any non-pointer,
22192	// non-interface field appearing in ForceSendFields will be sent to the
22193	// server regardless of whether the field is empty or not. This may be
22194	// used to include empty fields in Patch requests.
22195	ForceSendFields []string `json:"-"`
22196
22197	// NullFields is a list of field names (e.g. "Id") to include in API
22198	// requests with the JSON null value. By default, fields with empty
22199	// values are omitted from API requests. However, any field with an
22200	// empty value appearing in NullFields will be sent to the server as
22201	// null. It is an error if a field in this list has a non-empty value.
22202	// This may be used to include null fields in Patch requests.
22203	NullFields []string `json:"-"`
22204}
22205
22206func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
22207	type NoMethod NodeGroupList
22208	raw := NoMethod(*s)
22209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22210}
22211
22212// NodeGroupListWarning: [Output Only] Informational warning message.
22213type NodeGroupListWarning struct {
22214	// Code: [Output Only] A warning code, if applicable. For example,
22215	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22216	// the response.
22217	//
22218	// Possible values:
22219	//   "CLEANUP_FAILED"
22220	//   "DEPRECATED_RESOURCE_USED"
22221	//   "DEPRECATED_TYPE_USED"
22222	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22223	//   "EXPERIMENTAL_TYPE_USED"
22224	//   "EXTERNAL_API_WARNING"
22225	//   "FIELD_VALUE_OVERRIDEN"
22226	//   "INJECTED_KERNELS_DEPRECATED"
22227	//   "MISSING_TYPE_DEPENDENCY"
22228	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22229	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22230	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22231	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22232	//   "NEXT_HOP_NOT_RUNNING"
22233	//   "NOT_CRITICAL_ERROR"
22234	//   "NO_RESULTS_ON_PAGE"
22235	//   "REQUIRED_TOS_AGREEMENT"
22236	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22237	//   "RESOURCE_NOT_DELETED"
22238	//   "SCHEMA_VALIDATION_IGNORED"
22239	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22240	//   "UNDECLARED_PROPERTIES"
22241	//   "UNREACHABLE"
22242	Code string `json:"code,omitempty"`
22243
22244	// Data: [Output Only] Metadata about this warning in key: value format.
22245	// For example:
22246	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22247	Data []*NodeGroupListWarningData `json:"data,omitempty"`
22248
22249	// Message: [Output Only] A human-readable description of the warning
22250	// code.
22251	Message string `json:"message,omitempty"`
22252
22253	// ForceSendFields is a list of field names (e.g. "Code") to
22254	// unconditionally include in API requests. By default, fields with
22255	// empty values are omitted from API requests. However, any non-pointer,
22256	// non-interface field appearing in ForceSendFields will be sent to the
22257	// server regardless of whether the field is empty or not. This may be
22258	// used to include empty fields in Patch requests.
22259	ForceSendFields []string `json:"-"`
22260
22261	// NullFields is a list of field names (e.g. "Code") to include in API
22262	// requests with the JSON null value. By default, fields with empty
22263	// values are omitted from API requests. However, any field with an
22264	// empty value appearing in NullFields will be sent to the server as
22265	// null. It is an error if a field in this list has a non-empty value.
22266	// This may be used to include null fields in Patch requests.
22267	NullFields []string `json:"-"`
22268}
22269
22270func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
22271	type NoMethod NodeGroupListWarning
22272	raw := NoMethod(*s)
22273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22274}
22275
22276type NodeGroupListWarningData struct {
22277	// Key: [Output Only] A key that provides more detail on the warning
22278	// being returned. For example, for warnings where there are no results
22279	// in a list request for a particular zone, this key might be scope and
22280	// the key value might be the zone name. Other examples might be a key
22281	// indicating a deprecated resource and a suggested replacement, or a
22282	// warning about invalid network settings (for example, if an instance
22283	// attempts to perform IP forwarding but is not enabled for IP
22284	// forwarding).
22285	Key string `json:"key,omitempty"`
22286
22287	// Value: [Output Only] A warning data value corresponding to the key.
22288	Value string `json:"value,omitempty"`
22289
22290	// ForceSendFields is a list of field names (e.g. "Key") to
22291	// unconditionally include in API requests. By default, fields with
22292	// empty values are omitted from API requests. However, any non-pointer,
22293	// non-interface field appearing in ForceSendFields will be sent to the
22294	// server regardless of whether the field is empty or not. This may be
22295	// used to include empty fields in Patch requests.
22296	ForceSendFields []string `json:"-"`
22297
22298	// NullFields is a list of field names (e.g. "Key") to include in API
22299	// requests with the JSON null value. By default, fields with empty
22300	// values are omitted from API requests. However, any field with an
22301	// empty value appearing in NullFields will be sent to the server as
22302	// null. It is an error if a field in this list has a non-empty value.
22303	// This may be used to include null fields in Patch requests.
22304	NullFields []string `json:"-"`
22305}
22306
22307func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
22308	type NoMethod NodeGroupListWarningData
22309	raw := NoMethod(*s)
22310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22311}
22312
22313type NodeGroupNode struct {
22314	// Instances: Instances scheduled on this node.
22315	Instances []string `json:"instances,omitempty"`
22316
22317	// Name: The name of the node.
22318	Name string `json:"name,omitempty"`
22319
22320	// NodeType: The type of this node.
22321	NodeType string `json:"nodeType,omitempty"`
22322
22323	// ServerBinding: Binding properties for the physical server.
22324	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
22325
22326	// ServerId: Server ID associated with this node.
22327	ServerId string `json:"serverId,omitempty"`
22328
22329	// Possible values:
22330	//   "CREATING"
22331	//   "DELETING"
22332	//   "INVALID"
22333	//   "READY"
22334	//   "REPAIRING"
22335	Status string `json:"status,omitempty"`
22336
22337	// ForceSendFields is a list of field names (e.g. "Instances") to
22338	// unconditionally include in API requests. By default, fields with
22339	// empty values are omitted from API requests. However, any non-pointer,
22340	// non-interface field appearing in ForceSendFields will be sent to the
22341	// server regardless of whether the field is empty or not. This may be
22342	// used to include empty fields in Patch requests.
22343	ForceSendFields []string `json:"-"`
22344
22345	// NullFields is a list of field names (e.g. "Instances") to include in
22346	// API requests with the JSON null value. By default, fields with empty
22347	// values are omitted from API requests. However, any field with an
22348	// empty value appearing in NullFields will be sent to the server as
22349	// null. It is an error if a field in this list has a non-empty value.
22350	// This may be used to include null fields in Patch requests.
22351	NullFields []string `json:"-"`
22352}
22353
22354func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
22355	type NoMethod NodeGroupNode
22356	raw := NoMethod(*s)
22357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22358}
22359
22360type NodeGroupsAddNodesRequest struct {
22361	// AdditionalNodeCount: Count of additional nodes to be added to the
22362	// node group.
22363	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
22364
22365	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
22366	// to unconditionally include in API requests. By default, fields with
22367	// empty values are omitted from API requests. However, any non-pointer,
22368	// non-interface field appearing in ForceSendFields will be sent to the
22369	// server regardless of whether the field is empty or not. This may be
22370	// used to include empty fields in Patch requests.
22371	ForceSendFields []string `json:"-"`
22372
22373	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
22374	// include in API requests with the JSON null value. By default, fields
22375	// with empty values are omitted from API requests. However, any field
22376	// with an empty value appearing in NullFields will be sent to the
22377	// server as null. It is an error if a field in this list has a
22378	// non-empty value. This may be used to include null fields in Patch
22379	// requests.
22380	NullFields []string `json:"-"`
22381}
22382
22383func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
22384	type NoMethod NodeGroupsAddNodesRequest
22385	raw := NoMethod(*s)
22386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22387}
22388
22389type NodeGroupsDeleteNodesRequest struct {
22390	// Nodes: Names of the nodes to delete.
22391	Nodes []string `json:"nodes,omitempty"`
22392
22393	// ForceSendFields is a list of field names (e.g. "Nodes") to
22394	// unconditionally include in API requests. By default, fields with
22395	// empty values are omitted from API requests. However, any non-pointer,
22396	// non-interface field appearing in ForceSendFields will be sent to the
22397	// server regardless of whether the field is empty or not. This may be
22398	// used to include empty fields in Patch requests.
22399	ForceSendFields []string `json:"-"`
22400
22401	// NullFields is a list of field names (e.g. "Nodes") to include in API
22402	// requests with the JSON null value. By default, fields with empty
22403	// values are omitted from API requests. However, any field with an
22404	// empty value appearing in NullFields will be sent to the server as
22405	// null. It is an error if a field in this list has a non-empty value.
22406	// This may be used to include null fields in Patch requests.
22407	NullFields []string `json:"-"`
22408}
22409
22410func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
22411	type NoMethod NodeGroupsDeleteNodesRequest
22412	raw := NoMethod(*s)
22413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22414}
22415
22416type NodeGroupsListNodes struct {
22417	// Id: [Output Only] Unique identifier for the resource; defined by the
22418	// server.
22419	Id string `json:"id,omitempty"`
22420
22421	// Items: A list of Node resources.
22422	Items []*NodeGroupNode `json:"items,omitempty"`
22423
22424	// Kind: [Output Only] The resource type, which is always
22425	// compute.nodeGroupsListNodes for the list of nodes in the specified
22426	// node group.
22427	Kind string `json:"kind,omitempty"`
22428
22429	// NextPageToken: [Output Only] This token allows you to get the next
22430	// page of results for list requests. If the number of results is larger
22431	// than maxResults, use the nextPageToken as a value for the query
22432	// parameter pageToken in the next list request. Subsequent list
22433	// requests will have their own nextPageToken to continue paging through
22434	// the results.
22435	NextPageToken string `json:"nextPageToken,omitempty"`
22436
22437	// SelfLink: [Output Only] Server-defined URL for this resource.
22438	SelfLink string `json:"selfLink,omitempty"`
22439
22440	// Warning: [Output Only] Informational warning message.
22441	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
22442
22443	// ServerResponse contains the HTTP response code and headers from the
22444	// server.
22445	googleapi.ServerResponse `json:"-"`
22446
22447	// ForceSendFields is a list of field names (e.g. "Id") to
22448	// unconditionally include in API requests. By default, fields with
22449	// empty values are omitted from API requests. However, any non-pointer,
22450	// non-interface field appearing in ForceSendFields will be sent to the
22451	// server regardless of whether the field is empty or not. This may be
22452	// used to include empty fields in Patch requests.
22453	ForceSendFields []string `json:"-"`
22454
22455	// NullFields is a list of field names (e.g. "Id") to include in API
22456	// requests with the JSON null value. By default, fields with empty
22457	// values are omitted from API requests. However, any field with an
22458	// empty value appearing in NullFields will be sent to the server as
22459	// null. It is an error if a field in this list has a non-empty value.
22460	// This may be used to include null fields in Patch requests.
22461	NullFields []string `json:"-"`
22462}
22463
22464func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
22465	type NoMethod NodeGroupsListNodes
22466	raw := NoMethod(*s)
22467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22468}
22469
22470// NodeGroupsListNodesWarning: [Output Only] Informational warning
22471// message.
22472type NodeGroupsListNodesWarning struct {
22473	// Code: [Output Only] A warning code, if applicable. For example,
22474	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22475	// the response.
22476	//
22477	// Possible values:
22478	//   "CLEANUP_FAILED"
22479	//   "DEPRECATED_RESOURCE_USED"
22480	//   "DEPRECATED_TYPE_USED"
22481	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22482	//   "EXPERIMENTAL_TYPE_USED"
22483	//   "EXTERNAL_API_WARNING"
22484	//   "FIELD_VALUE_OVERRIDEN"
22485	//   "INJECTED_KERNELS_DEPRECATED"
22486	//   "MISSING_TYPE_DEPENDENCY"
22487	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22488	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22489	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22490	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22491	//   "NEXT_HOP_NOT_RUNNING"
22492	//   "NOT_CRITICAL_ERROR"
22493	//   "NO_RESULTS_ON_PAGE"
22494	//   "REQUIRED_TOS_AGREEMENT"
22495	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22496	//   "RESOURCE_NOT_DELETED"
22497	//   "SCHEMA_VALIDATION_IGNORED"
22498	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22499	//   "UNDECLARED_PROPERTIES"
22500	//   "UNREACHABLE"
22501	Code string `json:"code,omitempty"`
22502
22503	// Data: [Output Only] Metadata about this warning in key: value format.
22504	// For example:
22505	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22506	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
22507
22508	// Message: [Output Only] A human-readable description of the warning
22509	// code.
22510	Message string `json:"message,omitempty"`
22511
22512	// ForceSendFields is a list of field names (e.g. "Code") to
22513	// unconditionally include in API requests. By default, fields with
22514	// empty values are omitted from API requests. However, any non-pointer,
22515	// non-interface field appearing in ForceSendFields will be sent to the
22516	// server regardless of whether the field is empty or not. This may be
22517	// used to include empty fields in Patch requests.
22518	ForceSendFields []string `json:"-"`
22519
22520	// NullFields is a list of field names (e.g. "Code") to include in API
22521	// requests with the JSON null value. By default, fields with empty
22522	// values are omitted from API requests. However, any field with an
22523	// empty value appearing in NullFields will be sent to the server as
22524	// null. It is an error if a field in this list has a non-empty value.
22525	// This may be used to include null fields in Patch requests.
22526	NullFields []string `json:"-"`
22527}
22528
22529func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
22530	type NoMethod NodeGroupsListNodesWarning
22531	raw := NoMethod(*s)
22532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22533}
22534
22535type NodeGroupsListNodesWarningData struct {
22536	// Key: [Output Only] A key that provides more detail on the warning
22537	// being returned. For example, for warnings where there are no results
22538	// in a list request for a particular zone, this key might be scope and
22539	// the key value might be the zone name. Other examples might be a key
22540	// indicating a deprecated resource and a suggested replacement, or a
22541	// warning about invalid network settings (for example, if an instance
22542	// attempts to perform IP forwarding but is not enabled for IP
22543	// forwarding).
22544	Key string `json:"key,omitempty"`
22545
22546	// Value: [Output Only] A warning data value corresponding to the key.
22547	Value string `json:"value,omitempty"`
22548
22549	// ForceSendFields is a list of field names (e.g. "Key") to
22550	// unconditionally include in API requests. By default, fields with
22551	// empty values are omitted from API requests. However, any non-pointer,
22552	// non-interface field appearing in ForceSendFields will be sent to the
22553	// server regardless of whether the field is empty or not. This may be
22554	// used to include empty fields in Patch requests.
22555	ForceSendFields []string `json:"-"`
22556
22557	// NullFields is a list of field names (e.g. "Key") to include in API
22558	// requests with the JSON null value. By default, fields with empty
22559	// values are omitted from API requests. However, any field with an
22560	// empty value appearing in NullFields will be sent to the server as
22561	// null. It is an error if a field in this list has a non-empty value.
22562	// This may be used to include null fields in Patch requests.
22563	NullFields []string `json:"-"`
22564}
22565
22566func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
22567	type NoMethod NodeGroupsListNodesWarningData
22568	raw := NoMethod(*s)
22569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22570}
22571
22572type NodeGroupsScopedList struct {
22573	// NodeGroups: [Output Only] A list of node groups contained in this
22574	// scope.
22575	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
22576
22577	// Warning: [Output Only] An informational warning that appears when the
22578	// nodeGroup list is empty.
22579	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
22580
22581	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
22582	// unconditionally include in API requests. By default, fields with
22583	// empty values are omitted from API requests. However, any non-pointer,
22584	// non-interface field appearing in ForceSendFields will be sent to the
22585	// server regardless of whether the field is empty or not. This may be
22586	// used to include empty fields in Patch requests.
22587	ForceSendFields []string `json:"-"`
22588
22589	// NullFields is a list of field names (e.g. "NodeGroups") to include in
22590	// API requests with the JSON null value. By default, fields with empty
22591	// values are omitted from API requests. However, any field with an
22592	// empty value appearing in NullFields will be sent to the server as
22593	// null. It is an error if a field in this list has a non-empty value.
22594	// This may be used to include null fields in Patch requests.
22595	NullFields []string `json:"-"`
22596}
22597
22598func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
22599	type NoMethod NodeGroupsScopedList
22600	raw := NoMethod(*s)
22601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22602}
22603
22604// NodeGroupsScopedListWarning: [Output Only] An informational warning
22605// that appears when the nodeGroup list is empty.
22606type NodeGroupsScopedListWarning struct {
22607	// Code: [Output Only] A warning code, if applicable. For example,
22608	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22609	// the response.
22610	//
22611	// Possible values:
22612	//   "CLEANUP_FAILED"
22613	//   "DEPRECATED_RESOURCE_USED"
22614	//   "DEPRECATED_TYPE_USED"
22615	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22616	//   "EXPERIMENTAL_TYPE_USED"
22617	//   "EXTERNAL_API_WARNING"
22618	//   "FIELD_VALUE_OVERRIDEN"
22619	//   "INJECTED_KERNELS_DEPRECATED"
22620	//   "MISSING_TYPE_DEPENDENCY"
22621	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22622	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22623	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22624	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22625	//   "NEXT_HOP_NOT_RUNNING"
22626	//   "NOT_CRITICAL_ERROR"
22627	//   "NO_RESULTS_ON_PAGE"
22628	//   "REQUIRED_TOS_AGREEMENT"
22629	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22630	//   "RESOURCE_NOT_DELETED"
22631	//   "SCHEMA_VALIDATION_IGNORED"
22632	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22633	//   "UNDECLARED_PROPERTIES"
22634	//   "UNREACHABLE"
22635	Code string `json:"code,omitempty"`
22636
22637	// Data: [Output Only] Metadata about this warning in key: value format.
22638	// For example:
22639	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22640	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
22641
22642	// Message: [Output Only] A human-readable description of the warning
22643	// code.
22644	Message string `json:"message,omitempty"`
22645
22646	// ForceSendFields is a list of field names (e.g. "Code") to
22647	// unconditionally include in API requests. By default, fields with
22648	// empty values are omitted from API requests. However, any non-pointer,
22649	// non-interface field appearing in ForceSendFields will be sent to the
22650	// server regardless of whether the field is empty or not. This may be
22651	// used to include empty fields in Patch requests.
22652	ForceSendFields []string `json:"-"`
22653
22654	// NullFields is a list of field names (e.g. "Code") to include in API
22655	// requests with the JSON null value. By default, fields with empty
22656	// values are omitted from API requests. However, any field with an
22657	// empty value appearing in NullFields will be sent to the server as
22658	// null. It is an error if a field in this list has a non-empty value.
22659	// This may be used to include null fields in Patch requests.
22660	NullFields []string `json:"-"`
22661}
22662
22663func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
22664	type NoMethod NodeGroupsScopedListWarning
22665	raw := NoMethod(*s)
22666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22667}
22668
22669type NodeGroupsScopedListWarningData struct {
22670	// Key: [Output Only] A key that provides more detail on the warning
22671	// being returned. For example, for warnings where there are no results
22672	// in a list request for a particular zone, this key might be scope and
22673	// the key value might be the zone name. Other examples might be a key
22674	// indicating a deprecated resource and a suggested replacement, or a
22675	// warning about invalid network settings (for example, if an instance
22676	// attempts to perform IP forwarding but is not enabled for IP
22677	// forwarding).
22678	Key string `json:"key,omitempty"`
22679
22680	// Value: [Output Only] A warning data value corresponding to the key.
22681	Value string `json:"value,omitempty"`
22682
22683	// ForceSendFields is a list of field names (e.g. "Key") to
22684	// unconditionally include in API requests. By default, fields with
22685	// empty values are omitted from API requests. However, any non-pointer,
22686	// non-interface field appearing in ForceSendFields will be sent to the
22687	// server regardless of whether the field is empty or not. This may be
22688	// used to include empty fields in Patch requests.
22689	ForceSendFields []string `json:"-"`
22690
22691	// NullFields is a list of field names (e.g. "Key") to include in API
22692	// requests with the JSON null value. By default, fields with empty
22693	// values are omitted from API requests. However, any field with an
22694	// empty value appearing in NullFields will be sent to the server as
22695	// null. It is an error if a field in this list has a non-empty value.
22696	// This may be used to include null fields in Patch requests.
22697	NullFields []string `json:"-"`
22698}
22699
22700func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
22701	type NoMethod NodeGroupsScopedListWarningData
22702	raw := NoMethod(*s)
22703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22704}
22705
22706type NodeGroupsSetNodeTemplateRequest struct {
22707	// NodeTemplate: Full or partial URL of the node template resource to be
22708	// updated for this node group.
22709	NodeTemplate string `json:"nodeTemplate,omitempty"`
22710
22711	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
22712	// unconditionally include in API requests. By default, fields with
22713	// empty values are omitted from API requests. However, any non-pointer,
22714	// non-interface field appearing in ForceSendFields will be sent to the
22715	// server regardless of whether the field is empty or not. This may be
22716	// used to include empty fields in Patch requests.
22717	ForceSendFields []string `json:"-"`
22718
22719	// NullFields is a list of field names (e.g. "NodeTemplate") to include
22720	// in API requests with the JSON null value. By default, fields with
22721	// empty values are omitted from API requests. However, any field with
22722	// an empty value appearing in NullFields will be sent to the server as
22723	// null. It is an error if a field in this list has a non-empty value.
22724	// This may be used to include null fields in Patch requests.
22725	NullFields []string `json:"-"`
22726}
22727
22728func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
22729	type NoMethod NodeGroupsSetNodeTemplateRequest
22730	raw := NoMethod(*s)
22731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22732}
22733
22734// NodeTemplate: Represent a sole-tenant Node Template resource.
22735//
22736// You can use a template to define properties for nodes in a node
22737// group. For more information, read Creating node groups and instances.
22738// (== resource_for {$api_version}.nodeTemplates ==)
22739type NodeTemplate struct {
22740	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22741	// format.
22742	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22743
22744	// Description: An optional description of this resource. Provide this
22745	// property when you create the resource.
22746	Description string `json:"description,omitempty"`
22747
22748	// Id: [Output Only] The unique identifier for the resource. This
22749	// identifier is defined by the server.
22750	Id uint64 `json:"id,omitempty,string"`
22751
22752	// Kind: [Output Only] The type of the resource. Always
22753	// compute#nodeTemplate for node templates.
22754	Kind string `json:"kind,omitempty"`
22755
22756	// Name: The name of the resource, provided by the client when initially
22757	// creating the resource. The resource name must be 1-63 characters
22758	// long, and comply with RFC1035. Specifically, the name must be 1-63
22759	// characters long and match the regular expression
22760	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
22761	// a lowercase letter, and all following characters must be a dash,
22762	// lowercase letter, or digit, except the last character, which cannot
22763	// be a dash.
22764	Name string `json:"name,omitempty"`
22765
22766	// NodeAffinityLabels: Labels to use for node affinity, which will be
22767	// used in instance scheduling.
22768	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
22769
22770	// NodeType: The node type to use for nodes group that are created from
22771	// this template.
22772	NodeType string `json:"nodeType,omitempty"`
22773
22774	// NodeTypeFlexibility: The flexible properties of the desired node
22775	// type. Node groups that use this node template will create nodes of a
22776	// type that matches these properties.
22777	//
22778	// This field is mutually exclusive with the node_type property; you can
22779	// only define one or the other, but not both.
22780	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
22781
22782	// Region: [Output Only] The name of the region where the node template
22783	// resides, such as us-central1.
22784	Region string `json:"region,omitempty"`
22785
22786	// SelfLink: [Output Only] Server-defined URL for the resource.
22787	SelfLink string `json:"selfLink,omitempty"`
22788
22789	// ServerBinding: Sets the binding properties for the physical server.
22790	// Valid values include:
22791	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
22792	// physical server
22793	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
22794	// server whenever possible
22795	//
22796	// See Sole-tenant node options for more information.
22797	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
22798
22799	// Status: [Output Only] The status of the node template. One of the
22800	// following values: CREATING, READY, and DELETING.
22801	//
22802	// Possible values:
22803	//   "CREATING"
22804	//   "DELETING"
22805	//   "INVALID"
22806	//   "READY"
22807	Status string `json:"status,omitempty"`
22808
22809	// StatusMessage: [Output Only] An optional, human-readable explanation
22810	// of the status.
22811	StatusMessage string `json:"statusMessage,omitempty"`
22812
22813	// ServerResponse contains the HTTP response code and headers from the
22814	// server.
22815	googleapi.ServerResponse `json:"-"`
22816
22817	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22818	// to unconditionally include in API requests. By default, fields with
22819	// empty values are omitted from API requests. However, any non-pointer,
22820	// non-interface field appearing in ForceSendFields will be sent to the
22821	// server regardless of whether the field is empty or not. This may be
22822	// used to include empty fields in Patch requests.
22823	ForceSendFields []string `json:"-"`
22824
22825	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22826	// include in API requests with the JSON null value. By default, fields
22827	// with empty values are omitted from API requests. However, any field
22828	// with an empty value appearing in NullFields will be sent to the
22829	// server as null. It is an error if a field in this list has a
22830	// non-empty value. This may be used to include null fields in Patch
22831	// requests.
22832	NullFields []string `json:"-"`
22833}
22834
22835func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
22836	type NoMethod NodeTemplate
22837	raw := NoMethod(*s)
22838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22839}
22840
22841type NodeTemplateAggregatedList struct {
22842	// Id: [Output Only] Unique identifier for the resource; defined by the
22843	// server.
22844	Id string `json:"id,omitempty"`
22845
22846	// Items: A list of NodeTemplatesScopedList resources.
22847	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
22848
22849	// Kind: [Output Only] Type of resource.Always
22850	// compute#nodeTemplateAggregatedList for aggregated lists of node
22851	// templates.
22852	Kind string `json:"kind,omitempty"`
22853
22854	// NextPageToken: [Output Only] This token allows you to get the next
22855	// page of results for list requests. If the number of results is larger
22856	// than maxResults, use the nextPageToken as a value for the query
22857	// parameter pageToken in the next list request. Subsequent list
22858	// requests will have their own nextPageToken to continue paging through
22859	// the results.
22860	NextPageToken string `json:"nextPageToken,omitempty"`
22861
22862	// SelfLink: [Output Only] Server-defined URL for this resource.
22863	SelfLink string `json:"selfLink,omitempty"`
22864
22865	// Warning: [Output Only] Informational warning message.
22866	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
22867
22868	// ServerResponse contains the HTTP response code and headers from the
22869	// server.
22870	googleapi.ServerResponse `json:"-"`
22871
22872	// ForceSendFields is a list of field names (e.g. "Id") to
22873	// unconditionally include in API requests. By default, fields with
22874	// empty values are omitted from API requests. However, any non-pointer,
22875	// non-interface field appearing in ForceSendFields will be sent to the
22876	// server regardless of whether the field is empty or not. This may be
22877	// used to include empty fields in Patch requests.
22878	ForceSendFields []string `json:"-"`
22879
22880	// NullFields is a list of field names (e.g. "Id") to include in API
22881	// requests with the JSON null value. By default, fields with empty
22882	// values are omitted from API requests. However, any field with an
22883	// empty value appearing in NullFields will be sent to the server as
22884	// null. It is an error if a field in this list has a non-empty value.
22885	// This may be used to include null fields in Patch requests.
22886	NullFields []string `json:"-"`
22887}
22888
22889func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
22890	type NoMethod NodeTemplateAggregatedList
22891	raw := NoMethod(*s)
22892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22893}
22894
22895// NodeTemplateAggregatedListWarning: [Output Only] Informational
22896// warning message.
22897type NodeTemplateAggregatedListWarning struct {
22898	// Code: [Output Only] A warning code, if applicable. For example,
22899	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22900	// the response.
22901	//
22902	// Possible values:
22903	//   "CLEANUP_FAILED"
22904	//   "DEPRECATED_RESOURCE_USED"
22905	//   "DEPRECATED_TYPE_USED"
22906	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22907	//   "EXPERIMENTAL_TYPE_USED"
22908	//   "EXTERNAL_API_WARNING"
22909	//   "FIELD_VALUE_OVERRIDEN"
22910	//   "INJECTED_KERNELS_DEPRECATED"
22911	//   "MISSING_TYPE_DEPENDENCY"
22912	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22913	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22914	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22915	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22916	//   "NEXT_HOP_NOT_RUNNING"
22917	//   "NOT_CRITICAL_ERROR"
22918	//   "NO_RESULTS_ON_PAGE"
22919	//   "REQUIRED_TOS_AGREEMENT"
22920	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22921	//   "RESOURCE_NOT_DELETED"
22922	//   "SCHEMA_VALIDATION_IGNORED"
22923	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22924	//   "UNDECLARED_PROPERTIES"
22925	//   "UNREACHABLE"
22926	Code string `json:"code,omitempty"`
22927
22928	// Data: [Output Only] Metadata about this warning in key: value format.
22929	// For example:
22930	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22931	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
22932
22933	// Message: [Output Only] A human-readable description of the warning
22934	// code.
22935	Message string `json:"message,omitempty"`
22936
22937	// ForceSendFields is a list of field names (e.g. "Code") to
22938	// unconditionally include in API requests. By default, fields with
22939	// empty values are omitted from API requests. However, any non-pointer,
22940	// non-interface field appearing in ForceSendFields will be sent to the
22941	// server regardless of whether the field is empty or not. This may be
22942	// used to include empty fields in Patch requests.
22943	ForceSendFields []string `json:"-"`
22944
22945	// NullFields is a list of field names (e.g. "Code") to include in API
22946	// requests with the JSON null value. By default, fields with empty
22947	// values are omitted from API requests. However, any field with an
22948	// empty value appearing in NullFields will be sent to the server as
22949	// null. It is an error if a field in this list has a non-empty value.
22950	// This may be used to include null fields in Patch requests.
22951	NullFields []string `json:"-"`
22952}
22953
22954func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
22955	type NoMethod NodeTemplateAggregatedListWarning
22956	raw := NoMethod(*s)
22957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22958}
22959
22960type NodeTemplateAggregatedListWarningData struct {
22961	// Key: [Output Only] A key that provides more detail on the warning
22962	// being returned. For example, for warnings where there are no results
22963	// in a list request for a particular zone, this key might be scope and
22964	// the key value might be the zone name. Other examples might be a key
22965	// indicating a deprecated resource and a suggested replacement, or a
22966	// warning about invalid network settings (for example, if an instance
22967	// attempts to perform IP forwarding but is not enabled for IP
22968	// forwarding).
22969	Key string `json:"key,omitempty"`
22970
22971	// Value: [Output Only] A warning data value corresponding to the key.
22972	Value string `json:"value,omitempty"`
22973
22974	// ForceSendFields is a list of field names (e.g. "Key") to
22975	// unconditionally include in API requests. By default, fields with
22976	// empty values are omitted from API requests. However, any non-pointer,
22977	// non-interface field appearing in ForceSendFields will be sent to the
22978	// server regardless of whether the field is empty or not. This may be
22979	// used to include empty fields in Patch requests.
22980	ForceSendFields []string `json:"-"`
22981
22982	// NullFields is a list of field names (e.g. "Key") to include in API
22983	// requests with the JSON null value. By default, fields with empty
22984	// values are omitted from API requests. However, any field with an
22985	// empty value appearing in NullFields will be sent to the server as
22986	// null. It is an error if a field in this list has a non-empty value.
22987	// This may be used to include null fields in Patch requests.
22988	NullFields []string `json:"-"`
22989}
22990
22991func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22992	type NoMethod NodeTemplateAggregatedListWarningData
22993	raw := NoMethod(*s)
22994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22995}
22996
22997// NodeTemplateList: Contains a list of node templates.
22998type NodeTemplateList struct {
22999	// Id: [Output Only] Unique identifier for the resource; defined by the
23000	// server.
23001	Id string `json:"id,omitempty"`
23002
23003	// Items: A list of NodeTemplate resources.
23004	Items []*NodeTemplate `json:"items,omitempty"`
23005
23006	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
23007	// for lists of node templates.
23008	Kind string `json:"kind,omitempty"`
23009
23010	// NextPageToken: [Output Only] This token allows you to get the next
23011	// page of results for list requests. If the number of results is larger
23012	// than maxResults, use the nextPageToken as a value for the query
23013	// parameter pageToken in the next list request. Subsequent list
23014	// requests will have their own nextPageToken to continue paging through
23015	// the results.
23016	NextPageToken string `json:"nextPageToken,omitempty"`
23017
23018	// SelfLink: [Output Only] Server-defined URL for this resource.
23019	SelfLink string `json:"selfLink,omitempty"`
23020
23021	// Warning: [Output Only] Informational warning message.
23022	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
23023
23024	// ServerResponse contains the HTTP response code and headers from the
23025	// server.
23026	googleapi.ServerResponse `json:"-"`
23027
23028	// ForceSendFields is a list of field names (e.g. "Id") to
23029	// unconditionally include in API requests. By default, fields with
23030	// empty values are omitted from API requests. However, any non-pointer,
23031	// non-interface field appearing in ForceSendFields will be sent to the
23032	// server regardless of whether the field is empty or not. This may be
23033	// used to include empty fields in Patch requests.
23034	ForceSendFields []string `json:"-"`
23035
23036	// NullFields is a list of field names (e.g. "Id") to include in API
23037	// requests with the JSON null value. By default, fields with empty
23038	// values are omitted from API requests. However, any field with an
23039	// empty value appearing in NullFields will be sent to the server as
23040	// null. It is an error if a field in this list has a non-empty value.
23041	// This may be used to include null fields in Patch requests.
23042	NullFields []string `json:"-"`
23043}
23044
23045func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
23046	type NoMethod NodeTemplateList
23047	raw := NoMethod(*s)
23048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23049}
23050
23051// NodeTemplateListWarning: [Output Only] Informational warning message.
23052type NodeTemplateListWarning struct {
23053	// Code: [Output Only] A warning code, if applicable. For example,
23054	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23055	// the response.
23056	//
23057	// Possible values:
23058	//   "CLEANUP_FAILED"
23059	//   "DEPRECATED_RESOURCE_USED"
23060	//   "DEPRECATED_TYPE_USED"
23061	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23062	//   "EXPERIMENTAL_TYPE_USED"
23063	//   "EXTERNAL_API_WARNING"
23064	//   "FIELD_VALUE_OVERRIDEN"
23065	//   "INJECTED_KERNELS_DEPRECATED"
23066	//   "MISSING_TYPE_DEPENDENCY"
23067	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23068	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23069	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23070	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23071	//   "NEXT_HOP_NOT_RUNNING"
23072	//   "NOT_CRITICAL_ERROR"
23073	//   "NO_RESULTS_ON_PAGE"
23074	//   "REQUIRED_TOS_AGREEMENT"
23075	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23076	//   "RESOURCE_NOT_DELETED"
23077	//   "SCHEMA_VALIDATION_IGNORED"
23078	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23079	//   "UNDECLARED_PROPERTIES"
23080	//   "UNREACHABLE"
23081	Code string `json:"code,omitempty"`
23082
23083	// Data: [Output Only] Metadata about this warning in key: value format.
23084	// For example:
23085	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23086	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
23087
23088	// Message: [Output Only] A human-readable description of the warning
23089	// code.
23090	Message string `json:"message,omitempty"`
23091
23092	// ForceSendFields is a list of field names (e.g. "Code") to
23093	// unconditionally include in API requests. By default, fields with
23094	// empty values are omitted from API requests. However, any non-pointer,
23095	// non-interface field appearing in ForceSendFields will be sent to the
23096	// server regardless of whether the field is empty or not. This may be
23097	// used to include empty fields in Patch requests.
23098	ForceSendFields []string `json:"-"`
23099
23100	// NullFields is a list of field names (e.g. "Code") to include in API
23101	// requests with the JSON null value. By default, fields with empty
23102	// values are omitted from API requests. However, any field with an
23103	// empty value appearing in NullFields will be sent to the server as
23104	// null. It is an error if a field in this list has a non-empty value.
23105	// This may be used to include null fields in Patch requests.
23106	NullFields []string `json:"-"`
23107}
23108
23109func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
23110	type NoMethod NodeTemplateListWarning
23111	raw := NoMethod(*s)
23112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23113}
23114
23115type NodeTemplateListWarningData struct {
23116	// Key: [Output Only] A key that provides more detail on the warning
23117	// being returned. For example, for warnings where there are no results
23118	// in a list request for a particular zone, this key might be scope and
23119	// the key value might be the zone name. Other examples might be a key
23120	// indicating a deprecated resource and a suggested replacement, or a
23121	// warning about invalid network settings (for example, if an instance
23122	// attempts to perform IP forwarding but is not enabled for IP
23123	// forwarding).
23124	Key string `json:"key,omitempty"`
23125
23126	// Value: [Output Only] A warning data value corresponding to the key.
23127	Value string `json:"value,omitempty"`
23128
23129	// ForceSendFields is a list of field names (e.g. "Key") to
23130	// unconditionally include in API requests. By default, fields with
23131	// empty values are omitted from API requests. However, any non-pointer,
23132	// non-interface field appearing in ForceSendFields will be sent to the
23133	// server regardless of whether the field is empty or not. This may be
23134	// used to include empty fields in Patch requests.
23135	ForceSendFields []string `json:"-"`
23136
23137	// NullFields is a list of field names (e.g. "Key") to include in API
23138	// requests with the JSON null value. By default, fields with empty
23139	// values are omitted from API requests. However, any field with an
23140	// empty value appearing in NullFields will be sent to the server as
23141	// null. It is an error if a field in this list has a non-empty value.
23142	// This may be used to include null fields in Patch requests.
23143	NullFields []string `json:"-"`
23144}
23145
23146func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
23147	type NoMethod NodeTemplateListWarningData
23148	raw := NoMethod(*s)
23149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23150}
23151
23152type NodeTemplateNodeTypeFlexibility struct {
23153	Cpus string `json:"cpus,omitempty"`
23154
23155	LocalSsd string `json:"localSsd,omitempty"`
23156
23157	Memory string `json:"memory,omitempty"`
23158
23159	// ForceSendFields is a list of field names (e.g. "Cpus") to
23160	// unconditionally include in API requests. By default, fields with
23161	// empty values are omitted from API requests. However, any non-pointer,
23162	// non-interface field appearing in ForceSendFields will be sent to the
23163	// server regardless of whether the field is empty or not. This may be
23164	// used to include empty fields in Patch requests.
23165	ForceSendFields []string `json:"-"`
23166
23167	// NullFields is a list of field names (e.g. "Cpus") to include in API
23168	// requests with the JSON null value. By default, fields with empty
23169	// values are omitted from API requests. However, any field with an
23170	// empty value appearing in NullFields will be sent to the server as
23171	// null. It is an error if a field in this list has a non-empty value.
23172	// This may be used to include null fields in Patch requests.
23173	NullFields []string `json:"-"`
23174}
23175
23176func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
23177	type NoMethod NodeTemplateNodeTypeFlexibility
23178	raw := NoMethod(*s)
23179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23180}
23181
23182type NodeTemplatesScopedList struct {
23183	// NodeTemplates: [Output Only] A list of node templates contained in
23184	// this scope.
23185	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
23186
23187	// Warning: [Output Only] An informational warning that appears when the
23188	// node templates list is empty.
23189	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
23190
23191	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
23192	// unconditionally include in API requests. By default, fields with
23193	// empty values are omitted from API requests. However, any non-pointer,
23194	// non-interface field appearing in ForceSendFields will be sent to the
23195	// server regardless of whether the field is empty or not. This may be
23196	// used to include empty fields in Patch requests.
23197	ForceSendFields []string `json:"-"`
23198
23199	// NullFields is a list of field names (e.g. "NodeTemplates") to include
23200	// in API requests with the JSON null value. By default, fields with
23201	// empty values are omitted from API requests. However, any field with
23202	// an empty value appearing in NullFields will be sent to the server as
23203	// null. It is an error if a field in this list has a non-empty value.
23204	// This may be used to include null fields in Patch requests.
23205	NullFields []string `json:"-"`
23206}
23207
23208func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
23209	type NoMethod NodeTemplatesScopedList
23210	raw := NoMethod(*s)
23211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23212}
23213
23214// NodeTemplatesScopedListWarning: [Output Only] An informational
23215// warning that appears when the node templates list is empty.
23216type NodeTemplatesScopedListWarning struct {
23217	// Code: [Output Only] A warning code, if applicable. For example,
23218	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23219	// the response.
23220	//
23221	// Possible values:
23222	//   "CLEANUP_FAILED"
23223	//   "DEPRECATED_RESOURCE_USED"
23224	//   "DEPRECATED_TYPE_USED"
23225	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23226	//   "EXPERIMENTAL_TYPE_USED"
23227	//   "EXTERNAL_API_WARNING"
23228	//   "FIELD_VALUE_OVERRIDEN"
23229	//   "INJECTED_KERNELS_DEPRECATED"
23230	//   "MISSING_TYPE_DEPENDENCY"
23231	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23232	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23233	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23234	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23235	//   "NEXT_HOP_NOT_RUNNING"
23236	//   "NOT_CRITICAL_ERROR"
23237	//   "NO_RESULTS_ON_PAGE"
23238	//   "REQUIRED_TOS_AGREEMENT"
23239	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23240	//   "RESOURCE_NOT_DELETED"
23241	//   "SCHEMA_VALIDATION_IGNORED"
23242	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23243	//   "UNDECLARED_PROPERTIES"
23244	//   "UNREACHABLE"
23245	Code string `json:"code,omitempty"`
23246
23247	// Data: [Output Only] Metadata about this warning in key: value format.
23248	// For example:
23249	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23250	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
23251
23252	// Message: [Output Only] A human-readable description of the warning
23253	// code.
23254	Message string `json:"message,omitempty"`
23255
23256	// ForceSendFields is a list of field names (e.g. "Code") to
23257	// unconditionally include in API requests. By default, fields with
23258	// empty values are omitted from API requests. However, any non-pointer,
23259	// non-interface field appearing in ForceSendFields will be sent to the
23260	// server regardless of whether the field is empty or not. This may be
23261	// used to include empty fields in Patch requests.
23262	ForceSendFields []string `json:"-"`
23263
23264	// NullFields is a list of field names (e.g. "Code") to include in API
23265	// requests with the JSON null value. By default, fields with empty
23266	// values are omitted from API requests. However, any field with an
23267	// empty value appearing in NullFields will be sent to the server as
23268	// null. It is an error if a field in this list has a non-empty value.
23269	// This may be used to include null fields in Patch requests.
23270	NullFields []string `json:"-"`
23271}
23272
23273func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
23274	type NoMethod NodeTemplatesScopedListWarning
23275	raw := NoMethod(*s)
23276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23277}
23278
23279type NodeTemplatesScopedListWarningData struct {
23280	// Key: [Output Only] A key that provides more detail on the warning
23281	// being returned. For example, for warnings where there are no results
23282	// in a list request for a particular zone, this key might be scope and
23283	// the key value might be the zone name. Other examples might be a key
23284	// indicating a deprecated resource and a suggested replacement, or a
23285	// warning about invalid network settings (for example, if an instance
23286	// attempts to perform IP forwarding but is not enabled for IP
23287	// forwarding).
23288	Key string `json:"key,omitempty"`
23289
23290	// Value: [Output Only] A warning data value corresponding to the key.
23291	Value string `json:"value,omitempty"`
23292
23293	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
23311	type NoMethod NodeTemplatesScopedListWarningData
23312	raw := NoMethod(*s)
23313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23314}
23315
23316// NodeType: Represent a sole-tenant Node Type resource.
23317//
23318// Each node within a node group must have a node type. A node type
23319// specifies the total amount of cores and memory for that node.
23320// Currently, the only available node type is n1-node-96-624 node type
23321// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
23322// For more information read Node types. (== resource_for
23323// {$api_version}.nodeTypes ==)
23324type NodeType struct {
23325	// CpuPlatform: [Output Only] The CPU platform used by this node type.
23326	CpuPlatform string `json:"cpuPlatform,omitempty"`
23327
23328	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23329	// format.
23330	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23331
23332	// Deprecated: [Output Only] The deprecation status associated with this
23333	// node type.
23334	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
23335
23336	// Description: [Output Only] An optional textual description of the
23337	// resource.
23338	Description string `json:"description,omitempty"`
23339
23340	// GuestCpus: [Output Only] The number of virtual CPUs that are
23341	// available to the node type.
23342	GuestCpus int64 `json:"guestCpus,omitempty"`
23343
23344	// Id: [Output Only] The unique identifier for the resource. This
23345	// identifier is defined by the server.
23346	Id uint64 `json:"id,omitempty,string"`
23347
23348	// Kind: [Output Only] The type of the resource. Always compute#nodeType
23349	// for node types.
23350	Kind string `json:"kind,omitempty"`
23351
23352	// LocalSsdGb: [Output Only] Local SSD available to the node type,
23353	// defined in GB.
23354	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
23355
23356	// MemoryMb: [Output Only] The amount of physical memory available to
23357	// the node type, defined in MB.
23358	MemoryMb int64 `json:"memoryMb,omitempty"`
23359
23360	// Name: [Output Only] Name of the resource.
23361	Name string `json:"name,omitempty"`
23362
23363	// SelfLink: [Output Only] Server-defined URL for the resource.
23364	SelfLink string `json:"selfLink,omitempty"`
23365
23366	// Zone: [Output Only] The name of the zone where the node type resides,
23367	// such as us-central1-a.
23368	Zone string `json:"zone,omitempty"`
23369
23370	// ServerResponse contains the HTTP response code and headers from the
23371	// server.
23372	googleapi.ServerResponse `json:"-"`
23373
23374	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
23375	// unconditionally include in API requests. By default, fields with
23376	// empty values are omitted from API requests. However, any non-pointer,
23377	// non-interface field appearing in ForceSendFields will be sent to the
23378	// server regardless of whether the field is empty or not. This may be
23379	// used to include empty fields in Patch requests.
23380	ForceSendFields []string `json:"-"`
23381
23382	// NullFields is a list of field names (e.g. "CpuPlatform") to include
23383	// in API requests with the JSON null value. By default, fields with
23384	// empty values are omitted from API requests. However, any field with
23385	// an empty value appearing in NullFields will be sent to the server as
23386	// null. It is an error if a field in this list has a non-empty value.
23387	// This may be used to include null fields in Patch requests.
23388	NullFields []string `json:"-"`
23389}
23390
23391func (s *NodeType) MarshalJSON() ([]byte, error) {
23392	type NoMethod NodeType
23393	raw := NoMethod(*s)
23394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23395}
23396
23397type NodeTypeAggregatedList struct {
23398	// Id: [Output Only] Unique identifier for the resource; defined by the
23399	// server.
23400	Id string `json:"id,omitempty"`
23401
23402	// Items: A list of NodeTypesScopedList resources.
23403	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
23404
23405	// Kind: [Output Only] Type of resource.Always
23406	// compute#nodeTypeAggregatedList for aggregated lists of node types.
23407	Kind string `json:"kind,omitempty"`
23408
23409	// NextPageToken: [Output Only] This token allows you to get the next
23410	// page of results for list requests. If the number of results is larger
23411	// than maxResults, use the nextPageToken as a value for the query
23412	// parameter pageToken in the next list request. Subsequent list
23413	// requests will have their own nextPageToken to continue paging through
23414	// the results.
23415	NextPageToken string `json:"nextPageToken,omitempty"`
23416
23417	// SelfLink: [Output Only] Server-defined URL for this resource.
23418	SelfLink string `json:"selfLink,omitempty"`
23419
23420	// Warning: [Output Only] Informational warning message.
23421	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
23422
23423	// ServerResponse contains the HTTP response code and headers from the
23424	// server.
23425	googleapi.ServerResponse `json:"-"`
23426
23427	// ForceSendFields is a list of field names (e.g. "Id") to
23428	// unconditionally include in API requests. By default, fields with
23429	// empty values are omitted from API requests. However, any non-pointer,
23430	// non-interface field appearing in ForceSendFields will be sent to the
23431	// server regardless of whether the field is empty or not. This may be
23432	// used to include empty fields in Patch requests.
23433	ForceSendFields []string `json:"-"`
23434
23435	// NullFields is a list of field names (e.g. "Id") to include in API
23436	// requests with the JSON null value. By default, fields with empty
23437	// values are omitted from API requests. However, any field with an
23438	// empty value appearing in NullFields will be sent to the server as
23439	// null. It is an error if a field in this list has a non-empty value.
23440	// This may be used to include null fields in Patch requests.
23441	NullFields []string `json:"-"`
23442}
23443
23444func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
23445	type NoMethod NodeTypeAggregatedList
23446	raw := NoMethod(*s)
23447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23448}
23449
23450// NodeTypeAggregatedListWarning: [Output Only] Informational warning
23451// message.
23452type NodeTypeAggregatedListWarning struct {
23453	// Code: [Output Only] A warning code, if applicable. For example,
23454	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23455	// the response.
23456	//
23457	// Possible values:
23458	//   "CLEANUP_FAILED"
23459	//   "DEPRECATED_RESOURCE_USED"
23460	//   "DEPRECATED_TYPE_USED"
23461	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23462	//   "EXPERIMENTAL_TYPE_USED"
23463	//   "EXTERNAL_API_WARNING"
23464	//   "FIELD_VALUE_OVERRIDEN"
23465	//   "INJECTED_KERNELS_DEPRECATED"
23466	//   "MISSING_TYPE_DEPENDENCY"
23467	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23468	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23469	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23470	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23471	//   "NEXT_HOP_NOT_RUNNING"
23472	//   "NOT_CRITICAL_ERROR"
23473	//   "NO_RESULTS_ON_PAGE"
23474	//   "REQUIRED_TOS_AGREEMENT"
23475	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23476	//   "RESOURCE_NOT_DELETED"
23477	//   "SCHEMA_VALIDATION_IGNORED"
23478	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23479	//   "UNDECLARED_PROPERTIES"
23480	//   "UNREACHABLE"
23481	Code string `json:"code,omitempty"`
23482
23483	// Data: [Output Only] Metadata about this warning in key: value format.
23484	// For example:
23485	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23486	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
23487
23488	// Message: [Output Only] A human-readable description of the warning
23489	// code.
23490	Message string `json:"message,omitempty"`
23491
23492	// ForceSendFields is a list of field names (e.g. "Code") to
23493	// unconditionally include in API requests. By default, fields with
23494	// empty values are omitted from API requests. However, any non-pointer,
23495	// non-interface field appearing in ForceSendFields will be sent to the
23496	// server regardless of whether the field is empty or not. This may be
23497	// used to include empty fields in Patch requests.
23498	ForceSendFields []string `json:"-"`
23499
23500	// NullFields is a list of field names (e.g. "Code") to include in API
23501	// requests with the JSON null value. By default, fields with empty
23502	// values are omitted from API requests. However, any field with an
23503	// empty value appearing in NullFields will be sent to the server as
23504	// null. It is an error if a field in this list has a non-empty value.
23505	// This may be used to include null fields in Patch requests.
23506	NullFields []string `json:"-"`
23507}
23508
23509func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
23510	type NoMethod NodeTypeAggregatedListWarning
23511	raw := NoMethod(*s)
23512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23513}
23514
23515type NodeTypeAggregatedListWarningData struct {
23516	// Key: [Output Only] A key that provides more detail on the warning
23517	// being returned. For example, for warnings where there are no results
23518	// in a list request for a particular zone, this key might be scope and
23519	// the key value might be the zone name. Other examples might be a key
23520	// indicating a deprecated resource and a suggested replacement, or a
23521	// warning about invalid network settings (for example, if an instance
23522	// attempts to perform IP forwarding but is not enabled for IP
23523	// forwarding).
23524	Key string `json:"key,omitempty"`
23525
23526	// Value: [Output Only] A warning data value corresponding to the key.
23527	Value string `json:"value,omitempty"`
23528
23529	// ForceSendFields is a list of field names (e.g. "Key") to
23530	// unconditionally include in API requests. By default, fields with
23531	// empty values are omitted from API requests. However, any non-pointer,
23532	// non-interface field appearing in ForceSendFields will be sent to the
23533	// server regardless of whether the field is empty or not. This may be
23534	// used to include empty fields in Patch requests.
23535	ForceSendFields []string `json:"-"`
23536
23537	// NullFields is a list of field names (e.g. "Key") to include in API
23538	// requests with the JSON null value. By default, fields with empty
23539	// values are omitted from API requests. However, any field with an
23540	// empty value appearing in NullFields will be sent to the server as
23541	// null. It is an error if a field in this list has a non-empty value.
23542	// This may be used to include null fields in Patch requests.
23543	NullFields []string `json:"-"`
23544}
23545
23546func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23547	type NoMethod NodeTypeAggregatedListWarningData
23548	raw := NoMethod(*s)
23549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23550}
23551
23552// NodeTypeList: Contains a list of node types.
23553type NodeTypeList struct {
23554	// Id: [Output Only] Unique identifier for the resource; defined by the
23555	// server.
23556	Id string `json:"id,omitempty"`
23557
23558	// Items: A list of NodeType resources.
23559	Items []*NodeType `json:"items,omitempty"`
23560
23561	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
23562	// lists of node types.
23563	Kind string `json:"kind,omitempty"`
23564
23565	// NextPageToken: [Output Only] This token allows you to get the next
23566	// page of results for list requests. If the number of results is larger
23567	// than maxResults, use the nextPageToken as a value for the query
23568	// parameter pageToken in the next list request. Subsequent list
23569	// requests will have their own nextPageToken to continue paging through
23570	// the results.
23571	NextPageToken string `json:"nextPageToken,omitempty"`
23572
23573	// SelfLink: [Output Only] Server-defined URL for this resource.
23574	SelfLink string `json:"selfLink,omitempty"`
23575
23576	// Warning: [Output Only] Informational warning message.
23577	Warning *NodeTypeListWarning `json:"warning,omitempty"`
23578
23579	// ServerResponse contains the HTTP response code and headers from the
23580	// server.
23581	googleapi.ServerResponse `json:"-"`
23582
23583	// ForceSendFields is a list of field names (e.g. "Id") to
23584	// unconditionally include in API requests. By default, fields with
23585	// empty values are omitted from API requests. However, any non-pointer,
23586	// non-interface field appearing in ForceSendFields will be sent to the
23587	// server regardless of whether the field is empty or not. This may be
23588	// used to include empty fields in Patch requests.
23589	ForceSendFields []string `json:"-"`
23590
23591	// NullFields is a list of field names (e.g. "Id") to include in API
23592	// requests with the JSON null value. By default, fields with empty
23593	// values are omitted from API requests. However, any field with an
23594	// empty value appearing in NullFields will be sent to the server as
23595	// null. It is an error if a field in this list has a non-empty value.
23596	// This may be used to include null fields in Patch requests.
23597	NullFields []string `json:"-"`
23598}
23599
23600func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
23601	type NoMethod NodeTypeList
23602	raw := NoMethod(*s)
23603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23604}
23605
23606// NodeTypeListWarning: [Output Only] Informational warning message.
23607type NodeTypeListWarning struct {
23608	// Code: [Output Only] A warning code, if applicable. For example,
23609	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23610	// the response.
23611	//
23612	// Possible values:
23613	//   "CLEANUP_FAILED"
23614	//   "DEPRECATED_RESOURCE_USED"
23615	//   "DEPRECATED_TYPE_USED"
23616	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23617	//   "EXPERIMENTAL_TYPE_USED"
23618	//   "EXTERNAL_API_WARNING"
23619	//   "FIELD_VALUE_OVERRIDEN"
23620	//   "INJECTED_KERNELS_DEPRECATED"
23621	//   "MISSING_TYPE_DEPENDENCY"
23622	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23623	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23624	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23625	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23626	//   "NEXT_HOP_NOT_RUNNING"
23627	//   "NOT_CRITICAL_ERROR"
23628	//   "NO_RESULTS_ON_PAGE"
23629	//   "REQUIRED_TOS_AGREEMENT"
23630	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23631	//   "RESOURCE_NOT_DELETED"
23632	//   "SCHEMA_VALIDATION_IGNORED"
23633	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23634	//   "UNDECLARED_PROPERTIES"
23635	//   "UNREACHABLE"
23636	Code string `json:"code,omitempty"`
23637
23638	// Data: [Output Only] Metadata about this warning in key: value format.
23639	// For example:
23640	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23641	Data []*NodeTypeListWarningData `json:"data,omitempty"`
23642
23643	// Message: [Output Only] A human-readable description of the warning
23644	// code.
23645	Message string `json:"message,omitempty"`
23646
23647	// ForceSendFields is a list of field names (e.g. "Code") to
23648	// unconditionally include in API requests. By default, fields with
23649	// empty values are omitted from API requests. However, any non-pointer,
23650	// non-interface field appearing in ForceSendFields will be sent to the
23651	// server regardless of whether the field is empty or not. This may be
23652	// used to include empty fields in Patch requests.
23653	ForceSendFields []string `json:"-"`
23654
23655	// NullFields is a list of field names (e.g. "Code") to include in API
23656	// requests with the JSON null value. By default, fields with empty
23657	// values are omitted from API requests. However, any field with an
23658	// empty value appearing in NullFields will be sent to the server as
23659	// null. It is an error if a field in this list has a non-empty value.
23660	// This may be used to include null fields in Patch requests.
23661	NullFields []string `json:"-"`
23662}
23663
23664func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
23665	type NoMethod NodeTypeListWarning
23666	raw := NoMethod(*s)
23667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23668}
23669
23670type NodeTypeListWarningData struct {
23671	// Key: [Output Only] A key that provides more detail on the warning
23672	// being returned. For example, for warnings where there are no results
23673	// in a list request for a particular zone, this key might be scope and
23674	// the key value might be the zone name. Other examples might be a key
23675	// indicating a deprecated resource and a suggested replacement, or a
23676	// warning about invalid network settings (for example, if an instance
23677	// attempts to perform IP forwarding but is not enabled for IP
23678	// forwarding).
23679	Key string `json:"key,omitempty"`
23680
23681	// Value: [Output Only] A warning data value corresponding to the key.
23682	Value string `json:"value,omitempty"`
23683
23684	// ForceSendFields is a list of field names (e.g. "Key") to
23685	// unconditionally include in API requests. By default, fields with
23686	// empty values are omitted from API requests. However, any non-pointer,
23687	// non-interface field appearing in ForceSendFields will be sent to the
23688	// server regardless of whether the field is empty or not. This may be
23689	// used to include empty fields in Patch requests.
23690	ForceSendFields []string `json:"-"`
23691
23692	// NullFields is a list of field names (e.g. "Key") to include in API
23693	// requests with the JSON null value. By default, fields with empty
23694	// values are omitted from API requests. However, any field with an
23695	// empty value appearing in NullFields will be sent to the server as
23696	// null. It is an error if a field in this list has a non-empty value.
23697	// This may be used to include null fields in Patch requests.
23698	NullFields []string `json:"-"`
23699}
23700
23701func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
23702	type NoMethod NodeTypeListWarningData
23703	raw := NoMethod(*s)
23704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23705}
23706
23707type NodeTypesScopedList struct {
23708	// NodeTypes: [Output Only] A list of node types contained in this
23709	// scope.
23710	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
23711
23712	// Warning: [Output Only] An informational warning that appears when the
23713	// node types list is empty.
23714	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
23715
23716	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
23717	// unconditionally include in API requests. By default, fields with
23718	// empty values are omitted from API requests. However, any non-pointer,
23719	// non-interface field appearing in ForceSendFields will be sent to the
23720	// server regardless of whether the field is empty or not. This may be
23721	// used to include empty fields in Patch requests.
23722	ForceSendFields []string `json:"-"`
23723
23724	// NullFields is a list of field names (e.g. "NodeTypes") to include in
23725	// API requests with the JSON null value. By default, fields with empty
23726	// values are omitted from API requests. However, any field with an
23727	// empty value appearing in NullFields will be sent to the server as
23728	// null. It is an error if a field in this list has a non-empty value.
23729	// This may be used to include null fields in Patch requests.
23730	NullFields []string `json:"-"`
23731}
23732
23733func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
23734	type NoMethod NodeTypesScopedList
23735	raw := NoMethod(*s)
23736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23737}
23738
23739// NodeTypesScopedListWarning: [Output Only] An informational warning
23740// that appears when the node types list is empty.
23741type NodeTypesScopedListWarning struct {
23742	// Code: [Output Only] A warning code, if applicable. For example,
23743	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23744	// the response.
23745	//
23746	// Possible values:
23747	//   "CLEANUP_FAILED"
23748	//   "DEPRECATED_RESOURCE_USED"
23749	//   "DEPRECATED_TYPE_USED"
23750	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23751	//   "EXPERIMENTAL_TYPE_USED"
23752	//   "EXTERNAL_API_WARNING"
23753	//   "FIELD_VALUE_OVERRIDEN"
23754	//   "INJECTED_KERNELS_DEPRECATED"
23755	//   "MISSING_TYPE_DEPENDENCY"
23756	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23757	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23758	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23759	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23760	//   "NEXT_HOP_NOT_RUNNING"
23761	//   "NOT_CRITICAL_ERROR"
23762	//   "NO_RESULTS_ON_PAGE"
23763	//   "REQUIRED_TOS_AGREEMENT"
23764	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23765	//   "RESOURCE_NOT_DELETED"
23766	//   "SCHEMA_VALIDATION_IGNORED"
23767	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23768	//   "UNDECLARED_PROPERTIES"
23769	//   "UNREACHABLE"
23770	Code string `json:"code,omitempty"`
23771
23772	// Data: [Output Only] Metadata about this warning in key: value format.
23773	// For example:
23774	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23775	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
23776
23777	// Message: [Output Only] A human-readable description of the warning
23778	// code.
23779	Message string `json:"message,omitempty"`
23780
23781	// ForceSendFields is a list of field names (e.g. "Code") to
23782	// unconditionally include in API requests. By default, fields with
23783	// empty values are omitted from API requests. However, any non-pointer,
23784	// non-interface field appearing in ForceSendFields will be sent to the
23785	// server regardless of whether the field is empty or not. This may be
23786	// used to include empty fields in Patch requests.
23787	ForceSendFields []string `json:"-"`
23788
23789	// NullFields is a list of field names (e.g. "Code") to include in API
23790	// requests with the JSON null value. By default, fields with empty
23791	// values are omitted from API requests. However, any field with an
23792	// empty value appearing in NullFields will be sent to the server as
23793	// null. It is an error if a field in this list has a non-empty value.
23794	// This may be used to include null fields in Patch requests.
23795	NullFields []string `json:"-"`
23796}
23797
23798func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
23799	type NoMethod NodeTypesScopedListWarning
23800	raw := NoMethod(*s)
23801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23802}
23803
23804type NodeTypesScopedListWarningData struct {
23805	// Key: [Output Only] A key that provides more detail on the warning
23806	// being returned. For example, for warnings where there are no results
23807	// in a list request for a particular zone, this key might be scope and
23808	// the key value might be the zone name. Other examples might be a key
23809	// indicating a deprecated resource and a suggested replacement, or a
23810	// warning about invalid network settings (for example, if an instance
23811	// attempts to perform IP forwarding but is not enabled for IP
23812	// forwarding).
23813	Key string `json:"key,omitempty"`
23814
23815	// Value: [Output Only] A warning data value corresponding to the key.
23816	Value string `json:"value,omitempty"`
23817
23818	// ForceSendFields is a list of field names (e.g. "Key") to
23819	// unconditionally include in API requests. By default, fields with
23820	// empty values are omitted from API requests. However, any non-pointer,
23821	// non-interface field appearing in ForceSendFields will be sent to the
23822	// server regardless of whether the field is empty or not. This may be
23823	// used to include empty fields in Patch requests.
23824	ForceSendFields []string `json:"-"`
23825
23826	// NullFields is a list of field names (e.g. "Key") to include in API
23827	// requests with the JSON null value. By default, fields with empty
23828	// values are omitted from API requests. However, any field with an
23829	// empty value appearing in NullFields will be sent to the server as
23830	// null. It is an error if a field in this list has a non-empty value.
23831	// This may be used to include null fields in Patch requests.
23832	NullFields []string `json:"-"`
23833}
23834
23835func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
23836	type NoMethod NodeTypesScopedListWarningData
23837	raw := NoMethod(*s)
23838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23839}
23840
23841// NotificationEndpoint: Represents a notification endpoint.
23842//
23843// A notification endpoint resource defines an endpoint to receive
23844// notifications when there are status changes detected by the
23845// associated health check service.
23846//
23847// For more information, see  Health checks overview. (== resource_for
23848// {$api_version}.notificationEndpoint ==) (== resource_for
23849// {$api_version}.regionNotificationEndpoints ==)
23850type NotificationEndpoint struct {
23851	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23852	// format.
23853	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23854
23855	// Description: An optional description of this resource. Provide this
23856	// property when you create the resource.
23857	Description string `json:"description,omitempty"`
23858
23859	// GrpcSettings: Settings of the gRPC notification endpoint including
23860	// the endpoint URL and the retry duration.
23861	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
23862
23863	// Id: [Output Only] A unique identifier for this resource type. The
23864	// server generates this identifier.
23865	Id uint64 `json:"id,omitempty,string"`
23866
23867	// Kind: [Output Only] Type of the resource. Always
23868	// compute#notificationEndpoint for notification endpoints.
23869	Kind string `json:"kind,omitempty"`
23870
23871	// Name: Name of the resource. Provided by the client when the resource
23872	// is created. The name must be 1-63 characters long, and comply with
23873	// RFC1035. Specifically, the name must be 1-63 characters long and
23874	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
23875	// the first character must be a lowercase letter, and all following
23876	// characters must be a dash, lowercase letter, or digit, except the
23877	// last character, which cannot be a dash.
23878	Name string `json:"name,omitempty"`
23879
23880	// Region: [Output Only] URL of the region where the notification
23881	// endpoint resides. This field applies only to the regional resource.
23882	// You must specify this field as part of the HTTP request URL. It is
23883	// not settable as a field in the request body.
23884	Region string `json:"region,omitempty"`
23885
23886	// SelfLink: [Output Only] Server-defined URL for the resource.
23887	SelfLink string `json:"selfLink,omitempty"`
23888
23889	// ServerResponse contains the HTTP response code and headers from the
23890	// server.
23891	googleapi.ServerResponse `json:"-"`
23892
23893	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
23894	// to unconditionally include in API requests. By default, fields with
23895	// empty values are omitted from API requests. However, any non-pointer,
23896	// non-interface field appearing in ForceSendFields will be sent to the
23897	// server regardless of whether the field is empty or not. This may be
23898	// used to include empty fields in Patch requests.
23899	ForceSendFields []string `json:"-"`
23900
23901	// NullFields is a list of field names (e.g. "CreationTimestamp") to
23902	// include in API requests with the JSON null value. By default, fields
23903	// with empty values are omitted from API requests. However, any field
23904	// with an empty value appearing in NullFields will be sent to the
23905	// server as null. It is an error if a field in this list has a
23906	// non-empty value. This may be used to include null fields in Patch
23907	// requests.
23908	NullFields []string `json:"-"`
23909}
23910
23911func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
23912	type NoMethod NotificationEndpoint
23913	raw := NoMethod(*s)
23914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23915}
23916
23917// NotificationEndpointGrpcSettings: Represents a gRPC setting that
23918// describes one gRPC notification endpoint and the retry duration
23919// attempting to send notification to this endpoint.
23920type NotificationEndpointGrpcSettings struct {
23921	// Authority: Optional. If specified, this field is used to set the
23922	// authority header by the sender of notifications. See
23923	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
23924	Authority string `json:"authority,omitempty"`
23925
23926	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
23927	// a valid gRPCLB DNS name.
23928	Endpoint string `json:"endpoint,omitempty"`
23929
23930	// PayloadName: Optional. If specified, this field is used to populate
23931	// the "name" field in gRPC requests.
23932	PayloadName string `json:"payloadName,omitempty"`
23933
23934	// ResendInterval: Optional. This field is used to configure how often
23935	// to send a full update of all non-healthy backends. If unspecified,
23936	// full updates are not sent. If specified, must be in the range between
23937	// 600 seconds to 3600 seconds. Nanos are disallowed.
23938	ResendInterval *Duration `json:"resendInterval,omitempty"`
23939
23940	// RetryDurationSec: How much time (in seconds) is spent attempting
23941	// notification retries until a successful response is received. Default
23942	// is 30s. Limit is 20m (1200s). Must be a positive number.
23943	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
23944
23945	// ForceSendFields is a list of field names (e.g. "Authority") to
23946	// unconditionally include in API requests. By default, fields with
23947	// empty values are omitted from API requests. However, any non-pointer,
23948	// non-interface field appearing in ForceSendFields will be sent to the
23949	// server regardless of whether the field is empty or not. This may be
23950	// used to include empty fields in Patch requests.
23951	ForceSendFields []string `json:"-"`
23952
23953	// NullFields is a list of field names (e.g. "Authority") to include in
23954	// API requests with the JSON null value. By default, fields with empty
23955	// values are omitted from API requests. However, any field with an
23956	// empty value appearing in NullFields will be sent to the server as
23957	// null. It is an error if a field in this list has a non-empty value.
23958	// This may be used to include null fields in Patch requests.
23959	NullFields []string `json:"-"`
23960}
23961
23962func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
23963	type NoMethod NotificationEndpointGrpcSettings
23964	raw := NoMethod(*s)
23965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23966}
23967
23968type NotificationEndpointList struct {
23969	// Id: [Output Only] Unique identifier for the resource; defined by the
23970	// server.
23971	Id string `json:"id,omitempty"`
23972
23973	// Items: A list of NotificationEndpoint resources.
23974	Items []*NotificationEndpoint `json:"items,omitempty"`
23975
23976	// Kind: [Output Only] Type of the resource. Always
23977	// compute#notificationEndpoint for notification endpoints.
23978	Kind string `json:"kind,omitempty"`
23979
23980	// NextPageToken: [Output Only] This token allows you to get the next
23981	// page of results for list requests. If the number of results is larger
23982	// than maxResults, use the nextPageToken as a value for the query
23983	// parameter pageToken in the next list request. Subsequent list
23984	// requests will have their own nextPageToken to continue paging through
23985	// the results.
23986	NextPageToken string `json:"nextPageToken,omitempty"`
23987
23988	// SelfLink: [Output Only] Server-defined URL for this resource.
23989	SelfLink string `json:"selfLink,omitempty"`
23990
23991	// Warning: [Output Only] Informational warning message.
23992	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
23993
23994	// ServerResponse contains the HTTP response code and headers from the
23995	// server.
23996	googleapi.ServerResponse `json:"-"`
23997
23998	// ForceSendFields is a list of field names (e.g. "Id") to
23999	// unconditionally include in API requests. By default, fields with
24000	// empty values are omitted from API requests. However, any non-pointer,
24001	// non-interface field appearing in ForceSendFields will be sent to the
24002	// server regardless of whether the field is empty or not. This may be
24003	// used to include empty fields in Patch requests.
24004	ForceSendFields []string `json:"-"`
24005
24006	// NullFields is a list of field names (e.g. "Id") to include in API
24007	// requests with the JSON null value. By default, fields with empty
24008	// values are omitted from API requests. However, any field with an
24009	// empty value appearing in NullFields will be sent to the server as
24010	// null. It is an error if a field in this list has a non-empty value.
24011	// This may be used to include null fields in Patch requests.
24012	NullFields []string `json:"-"`
24013}
24014
24015func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
24016	type NoMethod NotificationEndpointList
24017	raw := NoMethod(*s)
24018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24019}
24020
24021// NotificationEndpointListWarning: [Output Only] Informational warning
24022// message.
24023type NotificationEndpointListWarning struct {
24024	// Code: [Output Only] A warning code, if applicable. For example,
24025	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24026	// the response.
24027	//
24028	// Possible values:
24029	//   "CLEANUP_FAILED"
24030	//   "DEPRECATED_RESOURCE_USED"
24031	//   "DEPRECATED_TYPE_USED"
24032	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24033	//   "EXPERIMENTAL_TYPE_USED"
24034	//   "EXTERNAL_API_WARNING"
24035	//   "FIELD_VALUE_OVERRIDEN"
24036	//   "INJECTED_KERNELS_DEPRECATED"
24037	//   "MISSING_TYPE_DEPENDENCY"
24038	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24039	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24040	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24041	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24042	//   "NEXT_HOP_NOT_RUNNING"
24043	//   "NOT_CRITICAL_ERROR"
24044	//   "NO_RESULTS_ON_PAGE"
24045	//   "REQUIRED_TOS_AGREEMENT"
24046	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24047	//   "RESOURCE_NOT_DELETED"
24048	//   "SCHEMA_VALIDATION_IGNORED"
24049	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24050	//   "UNDECLARED_PROPERTIES"
24051	//   "UNREACHABLE"
24052	Code string `json:"code,omitempty"`
24053
24054	// Data: [Output Only] Metadata about this warning in key: value format.
24055	// For example:
24056	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24057	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
24058
24059	// Message: [Output Only] A human-readable description of the warning
24060	// code.
24061	Message string `json:"message,omitempty"`
24062
24063	// ForceSendFields is a list of field names (e.g. "Code") to
24064	// unconditionally include in API requests. By default, fields with
24065	// empty values are omitted from API requests. However, any non-pointer,
24066	// non-interface field appearing in ForceSendFields will be sent to the
24067	// server regardless of whether the field is empty or not. This may be
24068	// used to include empty fields in Patch requests.
24069	ForceSendFields []string `json:"-"`
24070
24071	// NullFields is a list of field names (e.g. "Code") to include in API
24072	// requests with the JSON null value. By default, fields with empty
24073	// values are omitted from API requests. However, any field with an
24074	// empty value appearing in NullFields will be sent to the server as
24075	// null. It is an error if a field in this list has a non-empty value.
24076	// This may be used to include null fields in Patch requests.
24077	NullFields []string `json:"-"`
24078}
24079
24080func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
24081	type NoMethod NotificationEndpointListWarning
24082	raw := NoMethod(*s)
24083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24084}
24085
24086type NotificationEndpointListWarningData struct {
24087	// Key: [Output Only] A key that provides more detail on the warning
24088	// being returned. For example, for warnings where there are no results
24089	// in a list request for a particular zone, this key might be scope and
24090	// the key value might be the zone name. Other examples might be a key
24091	// indicating a deprecated resource and a suggested replacement, or a
24092	// warning about invalid network settings (for example, if an instance
24093	// attempts to perform IP forwarding but is not enabled for IP
24094	// forwarding).
24095	Key string `json:"key,omitempty"`
24096
24097	// Value: [Output Only] A warning data value corresponding to the key.
24098	Value string `json:"value,omitempty"`
24099
24100	// ForceSendFields is a list of field names (e.g. "Key") to
24101	// unconditionally include in API requests. By default, fields with
24102	// empty values are omitted from API requests. However, any non-pointer,
24103	// non-interface field appearing in ForceSendFields will be sent to the
24104	// server regardless of whether the field is empty or not. This may be
24105	// used to include empty fields in Patch requests.
24106	ForceSendFields []string `json:"-"`
24107
24108	// NullFields is a list of field names (e.g. "Key") to include in API
24109	// requests with the JSON null value. By default, fields with empty
24110	// values are omitted from API requests. However, any field with an
24111	// empty value appearing in NullFields will be sent to the server as
24112	// null. It is an error if a field in this list has a non-empty value.
24113	// This may be used to include null fields in Patch requests.
24114	NullFields []string `json:"-"`
24115}
24116
24117func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
24118	type NoMethod NotificationEndpointListWarningData
24119	raw := NoMethod(*s)
24120	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24121}
24122
24123// Operation: Represents an Operation resource.
24124//
24125// Google Compute Engine has three Operation resources:
24126//
24127// *
24128// [Global](/compute/docs/reference/rest/{$api_version}/globalOperations)
24129//  *
24130// [Regional](/compute/docs/reference/rest/{$api_version}/regionOperation
24131// s) *
24132// [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations)
24133//
24134// Y
24135// ou can use an operation resource to manage asynchronous API requests.
24136// For more information, read Handling API responses.
24137//
24138// Operations can be global, regional or zonal.
24139// - For global operations, use the `globalOperations` resource.
24140// - For regional operations, use the `regionOperations` resource.
24141// - For zonal operations, use the `zonalOperations` resource.
24142//
24143// For more information, read  Global, Regional, and Zonal Resources.
24144// (== resource_for {$api_version}.globalOperations ==) (== resource_for
24145// {$api_version}.regionOperations ==) (== resource_for
24146// {$api_version}.zoneOperations ==)
24147type Operation struct {
24148	// ClientOperationId: [Output Only] The value of `requestId` if you
24149	// provided it in the request. Not present otherwise.
24150	ClientOperationId string `json:"clientOperationId,omitempty"`
24151
24152	// CreationTimestamp: [Deprecated] This field is deprecated.
24153	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24154
24155	// Description: [Output Only] A textual description of the operation,
24156	// which is set when the operation is created.
24157	Description string `json:"description,omitempty"`
24158
24159	// EndTime: [Output Only] The time that this operation was completed.
24160	// This value is in RFC3339 text format.
24161	EndTime string `json:"endTime,omitempty"`
24162
24163	// Error: [Output Only] If errors are generated during processing of the
24164	// operation, this field will be populated.
24165	Error *OperationError `json:"error,omitempty"`
24166
24167	// HttpErrorMessage: [Output Only] If the operation fails, this field
24168	// contains the HTTP error message that was returned, such as `NOT
24169	// FOUND`.
24170	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
24171
24172	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
24173	// contains the HTTP error status code that was returned. For example, a
24174	// `404` means the resource was not found.
24175	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
24176
24177	// Id: [Output Only] The unique identifier for the operation. This
24178	// identifier is defined by the server.
24179	Id uint64 `json:"id,omitempty,string"`
24180
24181	// InsertTime: [Output Only] The time that this operation was requested.
24182	// This value is in RFC3339 text format.
24183	InsertTime string `json:"insertTime,omitempty"`
24184
24185	// Kind: [Output Only] Type of the resource. Always `compute#operation`
24186	// for Operation resources.
24187	Kind string `json:"kind,omitempty"`
24188
24189	// Name: [Output Only] Name of the operation.
24190	Name string `json:"name,omitempty"`
24191
24192	// OperationType: [Output Only] The type of operation, such as `insert`,
24193	// `update`, or `delete`, and so on.
24194	OperationType string `json:"operationType,omitempty"`
24195
24196	// Progress: [Output Only] An optional progress indicator that ranges
24197	// from 0 to 100. There is no requirement that this be linear or support
24198	// any granularity of operations. This should not be used to guess when
24199	// the operation will be complete. This number should monotonically
24200	// increase as the operation progresses.
24201	Progress int64 `json:"progress,omitempty"`
24202
24203	// Region: [Output Only] The URL of the region where the operation
24204	// resides. Only applicable when performing regional operations.
24205	Region string `json:"region,omitempty"`
24206
24207	// SelfLink: [Output Only] Server-defined URL for the resource.
24208	SelfLink string `json:"selfLink,omitempty"`
24209
24210	// StartTime: [Output Only] The time that this operation was started by
24211	// the server. This value is in RFC3339 text format.
24212	StartTime string `json:"startTime,omitempty"`
24213
24214	// Status: [Output Only] The status of the operation, which can be one
24215	// of the following: `PENDING`, `RUNNING`, or `DONE`.
24216	//
24217	// Possible values:
24218	//   "DONE"
24219	//   "PENDING"
24220	//   "RUNNING"
24221	Status string `json:"status,omitempty"`
24222
24223	// StatusMessage: [Output Only] An optional textual description of the
24224	// current status of the operation.
24225	StatusMessage string `json:"statusMessage,omitempty"`
24226
24227	// TargetId: [Output Only] The unique target ID, which identifies a
24228	// specific incarnation of the target resource.
24229	TargetId uint64 `json:"targetId,omitempty,string"`
24230
24231	// TargetLink: [Output Only] The URL of the resource that the operation
24232	// modifies. For operations related to creating a snapshot, this points
24233	// to the persistent disk that the snapshot was created from.
24234	TargetLink string `json:"targetLink,omitempty"`
24235
24236	// User: [Output Only] User who requested the operation, for example:
24237	// `user@example.com`.
24238	User string `json:"user,omitempty"`
24239
24240	// Warnings: [Output Only] If warning messages are generated during
24241	// processing of the operation, this field will be populated.
24242	Warnings []*OperationWarnings `json:"warnings,omitempty"`
24243
24244	// Zone: [Output Only] The URL of the zone where the operation resides.
24245	// Only applicable when performing per-zone operations.
24246	Zone string `json:"zone,omitempty"`
24247
24248	// ServerResponse contains the HTTP response code and headers from the
24249	// server.
24250	googleapi.ServerResponse `json:"-"`
24251
24252	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
24253	// to unconditionally include in API requests. By default, fields with
24254	// empty values are omitted from API requests. However, any non-pointer,
24255	// non-interface field appearing in ForceSendFields will be sent to the
24256	// server regardless of whether the field is empty or not. This may be
24257	// used to include empty fields in Patch requests.
24258	ForceSendFields []string `json:"-"`
24259
24260	// NullFields is a list of field names (e.g. "ClientOperationId") to
24261	// include in API requests with the JSON null value. By default, fields
24262	// with empty values are omitted from API requests. However, any field
24263	// with an empty value appearing in NullFields will be sent to the
24264	// server as null. It is an error if a field in this list has a
24265	// non-empty value. This may be used to include null fields in Patch
24266	// requests.
24267	NullFields []string `json:"-"`
24268}
24269
24270func (s *Operation) MarshalJSON() ([]byte, error) {
24271	type NoMethod Operation
24272	raw := NoMethod(*s)
24273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24274}
24275
24276// OperationError: [Output Only] If errors are generated during
24277// processing of the operation, this field will be populated.
24278type OperationError struct {
24279	// Errors: [Output Only] The array of errors encountered while
24280	// processing this operation.
24281	Errors []*OperationErrorErrors `json:"errors,omitempty"`
24282
24283	// ForceSendFields is a list of field names (e.g. "Errors") to
24284	// unconditionally include in API requests. By default, fields with
24285	// empty values are omitted from API requests. However, any non-pointer,
24286	// non-interface field appearing in ForceSendFields will be sent to the
24287	// server regardless of whether the field is empty or not. This may be
24288	// used to include empty fields in Patch requests.
24289	ForceSendFields []string `json:"-"`
24290
24291	// NullFields is a list of field names (e.g. "Errors") to include in API
24292	// requests with the JSON null value. By default, fields with empty
24293	// values are omitted from API requests. However, any field with an
24294	// empty value appearing in NullFields will be sent to the server as
24295	// null. It is an error if a field in this list has a non-empty value.
24296	// This may be used to include null fields in Patch requests.
24297	NullFields []string `json:"-"`
24298}
24299
24300func (s *OperationError) MarshalJSON() ([]byte, error) {
24301	type NoMethod OperationError
24302	raw := NoMethod(*s)
24303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24304}
24305
24306type OperationErrorErrors struct {
24307	// Code: [Output Only] The error type identifier for this error.
24308	Code string `json:"code,omitempty"`
24309
24310	// Location: [Output Only] Indicates the field in the request that
24311	// caused the error. This property is optional.
24312	Location string `json:"location,omitempty"`
24313
24314	// Message: [Output Only] An optional, human-readable error message.
24315	Message string `json:"message,omitempty"`
24316
24317	// ForceSendFields is a list of field names (e.g. "Code") to
24318	// unconditionally include in API requests. By default, fields with
24319	// empty values are omitted from API requests. However, any non-pointer,
24320	// non-interface field appearing in ForceSendFields will be sent to the
24321	// server regardless of whether the field is empty or not. This may be
24322	// used to include empty fields in Patch requests.
24323	ForceSendFields []string `json:"-"`
24324
24325	// NullFields is a list of field names (e.g. "Code") to include in API
24326	// requests with the JSON null value. By default, fields with empty
24327	// values are omitted from API requests. However, any field with an
24328	// empty value appearing in NullFields will be sent to the server as
24329	// null. It is an error if a field in this list has a non-empty value.
24330	// This may be used to include null fields in Patch requests.
24331	NullFields []string `json:"-"`
24332}
24333
24334func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
24335	type NoMethod OperationErrorErrors
24336	raw := NoMethod(*s)
24337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24338}
24339
24340type OperationWarnings struct {
24341	// Code: [Output Only] A warning code, if applicable. For example,
24342	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24343	// the response.
24344	//
24345	// Possible values:
24346	//   "CLEANUP_FAILED"
24347	//   "DEPRECATED_RESOURCE_USED"
24348	//   "DEPRECATED_TYPE_USED"
24349	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24350	//   "EXPERIMENTAL_TYPE_USED"
24351	//   "EXTERNAL_API_WARNING"
24352	//   "FIELD_VALUE_OVERRIDEN"
24353	//   "INJECTED_KERNELS_DEPRECATED"
24354	//   "MISSING_TYPE_DEPENDENCY"
24355	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24356	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24357	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24358	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24359	//   "NEXT_HOP_NOT_RUNNING"
24360	//   "NOT_CRITICAL_ERROR"
24361	//   "NO_RESULTS_ON_PAGE"
24362	//   "REQUIRED_TOS_AGREEMENT"
24363	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24364	//   "RESOURCE_NOT_DELETED"
24365	//   "SCHEMA_VALIDATION_IGNORED"
24366	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24367	//   "UNDECLARED_PROPERTIES"
24368	//   "UNREACHABLE"
24369	Code string `json:"code,omitempty"`
24370
24371	// Data: [Output Only] Metadata about this warning in key: value format.
24372	// For example:
24373	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24374	Data []*OperationWarningsData `json:"data,omitempty"`
24375
24376	// Message: [Output Only] A human-readable description of the warning
24377	// code.
24378	Message string `json:"message,omitempty"`
24379
24380	// ForceSendFields is a list of field names (e.g. "Code") to
24381	// unconditionally include in API requests. By default, fields with
24382	// empty values are omitted from API requests. However, any non-pointer,
24383	// non-interface field appearing in ForceSendFields will be sent to the
24384	// server regardless of whether the field is empty or not. This may be
24385	// used to include empty fields in Patch requests.
24386	ForceSendFields []string `json:"-"`
24387
24388	// NullFields is a list of field names (e.g. "Code") to include in API
24389	// requests with the JSON null value. By default, fields with empty
24390	// values are omitted from API requests. However, any field with an
24391	// empty value appearing in NullFields will be sent to the server as
24392	// null. It is an error if a field in this list has a non-empty value.
24393	// This may be used to include null fields in Patch requests.
24394	NullFields []string `json:"-"`
24395}
24396
24397func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
24398	type NoMethod OperationWarnings
24399	raw := NoMethod(*s)
24400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24401}
24402
24403type OperationWarningsData struct {
24404	// Key: [Output Only] A key that provides more detail on the warning
24405	// being returned. For example, for warnings where there are no results
24406	// in a list request for a particular zone, this key might be scope and
24407	// the key value might be the zone name. Other examples might be a key
24408	// indicating a deprecated resource and a suggested replacement, or a
24409	// warning about invalid network settings (for example, if an instance
24410	// attempts to perform IP forwarding but is not enabled for IP
24411	// forwarding).
24412	Key string `json:"key,omitempty"`
24413
24414	// Value: [Output Only] A warning data value corresponding to the key.
24415	Value string `json:"value,omitempty"`
24416
24417	// ForceSendFields is a list of field names (e.g. "Key") to
24418	// unconditionally include in API requests. By default, fields with
24419	// empty values are omitted from API requests. However, any non-pointer,
24420	// non-interface field appearing in ForceSendFields will be sent to the
24421	// server regardless of whether the field is empty or not. This may be
24422	// used to include empty fields in Patch requests.
24423	ForceSendFields []string `json:"-"`
24424
24425	// NullFields is a list of field names (e.g. "Key") to include in API
24426	// requests with the JSON null value. By default, fields with empty
24427	// values are omitted from API requests. However, any field with an
24428	// empty value appearing in NullFields will be sent to the server as
24429	// null. It is an error if a field in this list has a non-empty value.
24430	// This may be used to include null fields in Patch requests.
24431	NullFields []string `json:"-"`
24432}
24433
24434func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
24435	type NoMethod OperationWarningsData
24436	raw := NoMethod(*s)
24437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24438}
24439
24440type OperationAggregatedList struct {
24441	// Id: [Output Only] The unique identifier for the resource. This
24442	// identifier is defined by the server.
24443	Id string `json:"id,omitempty"`
24444
24445	// Items: [Output Only] A map of scoped operation lists.
24446	Items map[string]OperationsScopedList `json:"items,omitempty"`
24447
24448	// Kind: [Output Only] Type of resource. Always
24449	// `compute#operationAggregatedList` for aggregated lists of operations.
24450	Kind string `json:"kind,omitempty"`
24451
24452	// NextPageToken: [Output Only] This token allows you to get the next
24453	// page of results for list requests. If the number of results is larger
24454	// than `maxResults`, use the `nextPageToken` as a value for the query
24455	// parameter `pageToken` in the next list request. Subsequent list
24456	// requests will have their own `nextPageToken` to continue paging
24457	// through the results.
24458	NextPageToken string `json:"nextPageToken,omitempty"`
24459
24460	// SelfLink: [Output Only] Server-defined URL for this resource.
24461	SelfLink string `json:"selfLink,omitempty"`
24462
24463	// Warning: [Output Only] Informational warning message.
24464	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
24465
24466	// ServerResponse contains the HTTP response code and headers from the
24467	// server.
24468	googleapi.ServerResponse `json:"-"`
24469
24470	// ForceSendFields is a list of field names (e.g. "Id") to
24471	// unconditionally include in API requests. By default, fields with
24472	// empty values are omitted from API requests. However, any non-pointer,
24473	// non-interface field appearing in ForceSendFields will be sent to the
24474	// server regardless of whether the field is empty or not. This may be
24475	// used to include empty fields in Patch requests.
24476	ForceSendFields []string `json:"-"`
24477
24478	// NullFields is a list of field names (e.g. "Id") to include in API
24479	// requests with the JSON null value. By default, fields with empty
24480	// values are omitted from API requests. However, any field with an
24481	// empty value appearing in NullFields will be sent to the server as
24482	// null. It is an error if a field in this list has a non-empty value.
24483	// This may be used to include null fields in Patch requests.
24484	NullFields []string `json:"-"`
24485}
24486
24487func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
24488	type NoMethod OperationAggregatedList
24489	raw := NoMethod(*s)
24490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24491}
24492
24493// OperationAggregatedListWarning: [Output Only] Informational warning
24494// message.
24495type OperationAggregatedListWarning struct {
24496	// Code: [Output Only] A warning code, if applicable. For example,
24497	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24498	// the response.
24499	//
24500	// Possible values:
24501	//   "CLEANUP_FAILED"
24502	//   "DEPRECATED_RESOURCE_USED"
24503	//   "DEPRECATED_TYPE_USED"
24504	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24505	//   "EXPERIMENTAL_TYPE_USED"
24506	//   "EXTERNAL_API_WARNING"
24507	//   "FIELD_VALUE_OVERRIDEN"
24508	//   "INJECTED_KERNELS_DEPRECATED"
24509	//   "MISSING_TYPE_DEPENDENCY"
24510	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24511	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24512	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24513	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24514	//   "NEXT_HOP_NOT_RUNNING"
24515	//   "NOT_CRITICAL_ERROR"
24516	//   "NO_RESULTS_ON_PAGE"
24517	//   "REQUIRED_TOS_AGREEMENT"
24518	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24519	//   "RESOURCE_NOT_DELETED"
24520	//   "SCHEMA_VALIDATION_IGNORED"
24521	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24522	//   "UNDECLARED_PROPERTIES"
24523	//   "UNREACHABLE"
24524	Code string `json:"code,omitempty"`
24525
24526	// Data: [Output Only] Metadata about this warning in key: value format.
24527	// For example:
24528	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24529	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
24530
24531	// Message: [Output Only] A human-readable description of the warning
24532	// code.
24533	Message string `json:"message,omitempty"`
24534
24535	// ForceSendFields is a list of field names (e.g. "Code") to
24536	// unconditionally include in API requests. By default, fields with
24537	// empty values are omitted from API requests. However, any non-pointer,
24538	// non-interface field appearing in ForceSendFields will be sent to the
24539	// server regardless of whether the field is empty or not. This may be
24540	// used to include empty fields in Patch requests.
24541	ForceSendFields []string `json:"-"`
24542
24543	// NullFields is a list of field names (e.g. "Code") to include in API
24544	// requests with the JSON null value. By default, fields with empty
24545	// values are omitted from API requests. However, any field with an
24546	// empty value appearing in NullFields will be sent to the server as
24547	// null. It is an error if a field in this list has a non-empty value.
24548	// This may be used to include null fields in Patch requests.
24549	NullFields []string `json:"-"`
24550}
24551
24552func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
24553	type NoMethod OperationAggregatedListWarning
24554	raw := NoMethod(*s)
24555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24556}
24557
24558type OperationAggregatedListWarningData struct {
24559	// Key: [Output Only] A key that provides more detail on the warning
24560	// being returned. For example, for warnings where there are no results
24561	// in a list request for a particular zone, this key might be scope and
24562	// the key value might be the zone name. Other examples might be a key
24563	// indicating a deprecated resource and a suggested replacement, or a
24564	// warning about invalid network settings (for example, if an instance
24565	// attempts to perform IP forwarding but is not enabled for IP
24566	// forwarding).
24567	Key string `json:"key,omitempty"`
24568
24569	// Value: [Output Only] A warning data value corresponding to the key.
24570	Value string `json:"value,omitempty"`
24571
24572	// ForceSendFields is a list of field names (e.g. "Key") to
24573	// unconditionally include in API requests. By default, fields with
24574	// empty values are omitted from API requests. However, any non-pointer,
24575	// non-interface field appearing in ForceSendFields will be sent to the
24576	// server regardless of whether the field is empty or not. This may be
24577	// used to include empty fields in Patch requests.
24578	ForceSendFields []string `json:"-"`
24579
24580	// NullFields is a list of field names (e.g. "Key") to include in API
24581	// requests with the JSON null value. By default, fields with empty
24582	// values are omitted from API requests. However, any field with an
24583	// empty value appearing in NullFields will be sent to the server as
24584	// null. It is an error if a field in this list has a non-empty value.
24585	// This may be used to include null fields in Patch requests.
24586	NullFields []string `json:"-"`
24587}
24588
24589func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24590	type NoMethod OperationAggregatedListWarningData
24591	raw := NoMethod(*s)
24592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24593}
24594
24595// OperationList: Contains a list of Operation resources.
24596type OperationList struct {
24597	// Id: [Output Only] The unique identifier for the resource. This
24598	// identifier is defined by the server.
24599	Id string `json:"id,omitempty"`
24600
24601	// Items: [Output Only] A list of Operation resources.
24602	Items []*Operation `json:"items,omitempty"`
24603
24604	// Kind: [Output Only] Type of resource. Always `compute#operations` for
24605	// Operations resource.
24606	Kind string `json:"kind,omitempty"`
24607
24608	// NextPageToken: [Output Only] This token allows you to get the next
24609	// page of results for list requests. If the number of results is larger
24610	// than `maxResults`, use the `nextPageToken` as a value for the query
24611	// parameter `pageToken` in the next list request. Subsequent list
24612	// requests will have their own `nextPageToken` to continue paging
24613	// through the results.
24614	NextPageToken string `json:"nextPageToken,omitempty"`
24615
24616	// SelfLink: [Output Only] Server-defined URL for this resource.
24617	SelfLink string `json:"selfLink,omitempty"`
24618
24619	// Warning: [Output Only] Informational warning message.
24620	Warning *OperationListWarning `json:"warning,omitempty"`
24621
24622	// ServerResponse contains the HTTP response code and headers from the
24623	// server.
24624	googleapi.ServerResponse `json:"-"`
24625
24626	// ForceSendFields is a list of field names (e.g. "Id") to
24627	// unconditionally include in API requests. By default, fields with
24628	// empty values are omitted from API requests. However, any non-pointer,
24629	// non-interface field appearing in ForceSendFields will be sent to the
24630	// server regardless of whether the field is empty or not. This may be
24631	// used to include empty fields in Patch requests.
24632	ForceSendFields []string `json:"-"`
24633
24634	// NullFields is a list of field names (e.g. "Id") to include in API
24635	// requests with the JSON null value. By default, fields with empty
24636	// values are omitted from API requests. However, any field with an
24637	// empty value appearing in NullFields will be sent to the server as
24638	// null. It is an error if a field in this list has a non-empty value.
24639	// This may be used to include null fields in Patch requests.
24640	NullFields []string `json:"-"`
24641}
24642
24643func (s *OperationList) MarshalJSON() ([]byte, error) {
24644	type NoMethod OperationList
24645	raw := NoMethod(*s)
24646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24647}
24648
24649// OperationListWarning: [Output Only] Informational warning message.
24650type OperationListWarning struct {
24651	// Code: [Output Only] A warning code, if applicable. For example,
24652	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24653	// the response.
24654	//
24655	// Possible values:
24656	//   "CLEANUP_FAILED"
24657	//   "DEPRECATED_RESOURCE_USED"
24658	//   "DEPRECATED_TYPE_USED"
24659	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24660	//   "EXPERIMENTAL_TYPE_USED"
24661	//   "EXTERNAL_API_WARNING"
24662	//   "FIELD_VALUE_OVERRIDEN"
24663	//   "INJECTED_KERNELS_DEPRECATED"
24664	//   "MISSING_TYPE_DEPENDENCY"
24665	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24666	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24667	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24668	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24669	//   "NEXT_HOP_NOT_RUNNING"
24670	//   "NOT_CRITICAL_ERROR"
24671	//   "NO_RESULTS_ON_PAGE"
24672	//   "REQUIRED_TOS_AGREEMENT"
24673	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24674	//   "RESOURCE_NOT_DELETED"
24675	//   "SCHEMA_VALIDATION_IGNORED"
24676	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24677	//   "UNDECLARED_PROPERTIES"
24678	//   "UNREACHABLE"
24679	Code string `json:"code,omitempty"`
24680
24681	// Data: [Output Only] Metadata about this warning in key: value format.
24682	// For example:
24683	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24684	Data []*OperationListWarningData `json:"data,omitempty"`
24685
24686	// Message: [Output Only] A human-readable description of the warning
24687	// code.
24688	Message string `json:"message,omitempty"`
24689
24690	// ForceSendFields is a list of field names (e.g. "Code") to
24691	// unconditionally include in API requests. By default, fields with
24692	// empty values are omitted from API requests. However, any non-pointer,
24693	// non-interface field appearing in ForceSendFields will be sent to the
24694	// server regardless of whether the field is empty or not. This may be
24695	// used to include empty fields in Patch requests.
24696	ForceSendFields []string `json:"-"`
24697
24698	// NullFields is a list of field names (e.g. "Code") to include in API
24699	// requests with the JSON null value. By default, fields with empty
24700	// values are omitted from API requests. However, any field with an
24701	// empty value appearing in NullFields will be sent to the server as
24702	// null. It is an error if a field in this list has a non-empty value.
24703	// This may be used to include null fields in Patch requests.
24704	NullFields []string `json:"-"`
24705}
24706
24707func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
24708	type NoMethod OperationListWarning
24709	raw := NoMethod(*s)
24710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24711}
24712
24713type OperationListWarningData struct {
24714	// Key: [Output Only] A key that provides more detail on the warning
24715	// being returned. For example, for warnings where there are no results
24716	// in a list request for a particular zone, this key might be scope and
24717	// the key value might be the zone name. Other examples might be a key
24718	// indicating a deprecated resource and a suggested replacement, or a
24719	// warning about invalid network settings (for example, if an instance
24720	// attempts to perform IP forwarding but is not enabled for IP
24721	// forwarding).
24722	Key string `json:"key,omitempty"`
24723
24724	// Value: [Output Only] A warning data value corresponding to the key.
24725	Value string `json:"value,omitempty"`
24726
24727	// ForceSendFields is a list of field names (e.g. "Key") to
24728	// unconditionally include in API requests. By default, fields with
24729	// empty values are omitted from API requests. However, any non-pointer,
24730	// non-interface field appearing in ForceSendFields will be sent to the
24731	// server regardless of whether the field is empty or not. This may be
24732	// used to include empty fields in Patch requests.
24733	ForceSendFields []string `json:"-"`
24734
24735	// NullFields is a list of field names (e.g. "Key") to include in API
24736	// requests with the JSON null value. By default, fields with empty
24737	// values are omitted from API requests. However, any field with an
24738	// empty value appearing in NullFields will be sent to the server as
24739	// null. It is an error if a field in this list has a non-empty value.
24740	// This may be used to include null fields in Patch requests.
24741	NullFields []string `json:"-"`
24742}
24743
24744func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
24745	type NoMethod OperationListWarningData
24746	raw := NoMethod(*s)
24747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24748}
24749
24750type OperationsScopedList struct {
24751	// Operations: [Output Only] A list of operations contained in this
24752	// scope.
24753	Operations []*Operation `json:"operations,omitempty"`
24754
24755	// Warning: [Output Only] Informational warning which replaces the list
24756	// of operations when the list is empty.
24757	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
24758
24759	// ForceSendFields is a list of field names (e.g. "Operations") to
24760	// unconditionally include in API requests. By default, fields with
24761	// empty values are omitted from API requests. However, any non-pointer,
24762	// non-interface field appearing in ForceSendFields will be sent to the
24763	// server regardless of whether the field is empty or not. This may be
24764	// used to include empty fields in Patch requests.
24765	ForceSendFields []string `json:"-"`
24766
24767	// NullFields is a list of field names (e.g. "Operations") to include in
24768	// API requests with the JSON null value. By default, fields with empty
24769	// values are omitted from API requests. However, any field with an
24770	// empty value appearing in NullFields will be sent to the server as
24771	// null. It is an error if a field in this list has a non-empty value.
24772	// This may be used to include null fields in Patch requests.
24773	NullFields []string `json:"-"`
24774}
24775
24776func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
24777	type NoMethod OperationsScopedList
24778	raw := NoMethod(*s)
24779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24780}
24781
24782// OperationsScopedListWarning: [Output Only] Informational warning
24783// which replaces the list of operations when the list is empty.
24784type OperationsScopedListWarning struct {
24785	// Code: [Output Only] A warning code, if applicable. For example,
24786	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24787	// the response.
24788	//
24789	// Possible values:
24790	//   "CLEANUP_FAILED"
24791	//   "DEPRECATED_RESOURCE_USED"
24792	//   "DEPRECATED_TYPE_USED"
24793	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24794	//   "EXPERIMENTAL_TYPE_USED"
24795	//   "EXTERNAL_API_WARNING"
24796	//   "FIELD_VALUE_OVERRIDEN"
24797	//   "INJECTED_KERNELS_DEPRECATED"
24798	//   "MISSING_TYPE_DEPENDENCY"
24799	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24800	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24801	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24802	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24803	//   "NEXT_HOP_NOT_RUNNING"
24804	//   "NOT_CRITICAL_ERROR"
24805	//   "NO_RESULTS_ON_PAGE"
24806	//   "REQUIRED_TOS_AGREEMENT"
24807	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24808	//   "RESOURCE_NOT_DELETED"
24809	//   "SCHEMA_VALIDATION_IGNORED"
24810	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24811	//   "UNDECLARED_PROPERTIES"
24812	//   "UNREACHABLE"
24813	Code string `json:"code,omitempty"`
24814
24815	// Data: [Output Only] Metadata about this warning in key: value format.
24816	// For example:
24817	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24818	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
24819
24820	// Message: [Output Only] A human-readable description of the warning
24821	// code.
24822	Message string `json:"message,omitempty"`
24823
24824	// ForceSendFields is a list of field names (e.g. "Code") to
24825	// unconditionally include in API requests. By default, fields with
24826	// empty values are omitted from API requests. However, any non-pointer,
24827	// non-interface field appearing in ForceSendFields will be sent to the
24828	// server regardless of whether the field is empty or not. This may be
24829	// used to include empty fields in Patch requests.
24830	ForceSendFields []string `json:"-"`
24831
24832	// NullFields is a list of field names (e.g. "Code") to include in API
24833	// requests with the JSON null value. By default, fields with empty
24834	// values are omitted from API requests. However, any field with an
24835	// empty value appearing in NullFields will be sent to the server as
24836	// null. It is an error if a field in this list has a non-empty value.
24837	// This may be used to include null fields in Patch requests.
24838	NullFields []string `json:"-"`
24839}
24840
24841func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
24842	type NoMethod OperationsScopedListWarning
24843	raw := NoMethod(*s)
24844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24845}
24846
24847type OperationsScopedListWarningData struct {
24848	// Key: [Output Only] A key that provides more detail on the warning
24849	// being returned. For example, for warnings where there are no results
24850	// in a list request for a particular zone, this key might be scope and
24851	// the key value might be the zone name. Other examples might be a key
24852	// indicating a deprecated resource and a suggested replacement, or a
24853	// warning about invalid network settings (for example, if an instance
24854	// attempts to perform IP forwarding but is not enabled for IP
24855	// forwarding).
24856	Key string `json:"key,omitempty"`
24857
24858	// Value: [Output Only] A warning data value corresponding to the key.
24859	Value string `json:"value,omitempty"`
24860
24861	// ForceSendFields is a list of field names (e.g. "Key") to
24862	// unconditionally include in API requests. By default, fields with
24863	// empty values are omitted from API requests. However, any non-pointer,
24864	// non-interface field appearing in ForceSendFields will be sent to the
24865	// server regardless of whether the field is empty or not. This may be
24866	// used to include empty fields in Patch requests.
24867	ForceSendFields []string `json:"-"`
24868
24869	// NullFields is a list of field names (e.g. "Key") to include in API
24870	// requests with the JSON null value. By default, fields with empty
24871	// values are omitted from API requests. However, any field with an
24872	// empty value appearing in NullFields will be sent to the server as
24873	// null. It is an error if a field in this list has a non-empty value.
24874	// This may be used to include null fields in Patch requests.
24875	NullFields []string `json:"-"`
24876}
24877
24878func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
24879	type NoMethod OperationsScopedListWarningData
24880	raw := NoMethod(*s)
24881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24882}
24883
24884// OutlierDetection: Settings controlling the eviction of unhealthy
24885// hosts from the load balancing pool for the backend service.
24886type OutlierDetection struct {
24887	// BaseEjectionTime: The base time that a host is ejected for. The real
24888	// ejection time is equal to the base ejection time multiplied by the
24889	// number of times the host has been ejected. Defaults to 30000ms or
24890	// 30s.
24891	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
24892
24893	// ConsecutiveErrors: Number of errors before a host is ejected from the
24894	// connection pool. When the backend host is accessed over HTTP, a 5xx
24895	// return code qualifies as an error. Defaults to 5.
24896	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
24897
24898	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
24899	// (502, 503, 504 status or connection errors that are mapped to one of
24900	// those status codes) before a consecutive gateway failure ejection
24901	// occurs. Defaults to 3.
24902	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
24903
24904	// EnforcingConsecutiveErrors: The percentage chance that a host will be
24905	// actually ejected when an outlier status is detected through
24906	// consecutive 5xx. This setting can be used to disable ejection or to
24907	// ramp it up slowly. Defaults to 0.
24908	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
24909
24910	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
24911	// will be actually ejected when an outlier status is detected through
24912	// consecutive gateway failures. This setting can be used to disable
24913	// ejection or to ramp it up slowly. Defaults to 100.
24914	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
24915
24916	// EnforcingSuccessRate: The percentage chance that a host will be
24917	// actually ejected when an outlier status is detected through success
24918	// rate statistics. This setting can be used to disable ejection or to
24919	// ramp it up slowly. Defaults to 100.
24920	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
24921
24922	// Interval: Time interval between ejection analysis sweeps. This can
24923	// result in both new ejections as well as hosts being returned to
24924	// service. Defaults to 1 second.
24925	Interval *Duration `json:"interval,omitempty"`
24926
24927	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
24928	// pool for the backend service that can be ejected. Defaults to 50%.
24929	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
24930
24931	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
24932	// have enough request volume to detect success rate outliers. If the
24933	// number of hosts is less than this setting, outlier detection via
24934	// success rate statistics is not performed for any host in the cluster.
24935	// Defaults to 5.
24936	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
24937
24938	// SuccessRateRequestVolume: The minimum number of total requests that
24939	// must be collected in one interval (as defined by the interval
24940	// duration above) to include this host in success rate based outlier
24941	// detection. If the volume is lower than this setting, outlier
24942	// detection via success rate statistics is not performed for that host.
24943	// Defaults to 100.
24944	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
24945
24946	// SuccessRateStdevFactor: This factor is used to determine the ejection
24947	// threshold for success rate outlier ejection. The ejection threshold
24948	// is the difference between the mean success rate, and the product of
24949	// this factor and the standard deviation of the mean success rate: mean
24950	// - (stdev * success_rate_stdev_factor). This factor is divided by a
24951	// thousand to get a double. That is, if the desired factor is 1.9, the
24952	// runtime value should be 1900. Defaults to 1900.
24953	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
24954
24955	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
24956	// unconditionally include in API requests. By default, fields with
24957	// empty values are omitted from API requests. However, any non-pointer,
24958	// non-interface field appearing in ForceSendFields will be sent to the
24959	// server regardless of whether the field is empty or not. This may be
24960	// used to include empty fields in Patch requests.
24961	ForceSendFields []string `json:"-"`
24962
24963	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
24964	// include in API requests with the JSON null value. By default, fields
24965	// with empty values are omitted from API requests. However, any field
24966	// with an empty value appearing in NullFields will be sent to the
24967	// server as null. It is an error if a field in this list has a
24968	// non-empty value. This may be used to include null fields in Patch
24969	// requests.
24970	NullFields []string `json:"-"`
24971}
24972
24973func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
24974	type NoMethod OutlierDetection
24975	raw := NoMethod(*s)
24976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24977}
24978
24979// PacketMirroring: Represents a Packet Mirroring resource.
24980//
24981// Packet Mirroring clones the traffic of specified instances in your
24982// Virtual Private Cloud (VPC) network and forwards it to a collector
24983// destination, such as an instance group of an internal TCP/UDP load
24984// balancer, for analysis or examination. For more information about
24985// setting up Packet Mirroring, see Using Packet Mirroring. (==
24986// resource_for {$api_version}.packetMirrorings ==)
24987type PacketMirroring struct {
24988	// CollectorIlb: The Forwarding Rule resource of type
24989	// loadBalancingScheme=INTERNAL that will be used as collector for
24990	// mirrored traffic. The specified forwarding rule must have
24991	// isMirroringCollector set to true.
24992	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
24993
24994	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24995	// format.
24996	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24997
24998	// Description: An optional description of this resource. Provide this
24999	// property when you create the resource.
25000	Description string `json:"description,omitempty"`
25001
25002	// Enable: Indicates whether or not this packet mirroring takes effect.
25003	// If set to FALSE, this packet mirroring policy will not be enforced on
25004	// the network.
25005	//
25006	// The default is TRUE.
25007	//
25008	// Possible values:
25009	//   "FALSE"
25010	//   "TRUE"
25011	Enable string `json:"enable,omitempty"`
25012
25013	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
25014	// mirrored.
25015	Filter *PacketMirroringFilter `json:"filter,omitempty"`
25016
25017	// Id: [Output Only] The unique identifier for the resource. This
25018	// identifier is defined by the server.
25019	Id uint64 `json:"id,omitempty,string"`
25020
25021	// Kind: [Output Only] Type of the resource. Always
25022	// compute#packetMirroring for packet mirrorings.
25023	Kind string `json:"kind,omitempty"`
25024
25025	// MirroredResources: PacketMirroring mirroredResourceInfos.
25026	// MirroredResourceInfo specifies a set of mirrored VM instances,
25027	// subnetworks and/or tags for which traffic from/to all VM instances
25028	// will be mirrored.
25029	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
25030
25031	// Name: Name of the resource; provided by the client when the resource
25032	// is created. The name must be 1-63 characters long, and comply with
25033	// RFC1035. Specifically, the name must be 1-63 characters long and
25034	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
25035	// the first character must be a lowercase letter, and all following
25036	// characters must be a dash, lowercase letter, or digit, except the
25037	// last character, which cannot be a dash.
25038	Name string `json:"name,omitempty"`
25039
25040	// Network: Specifies the mirrored VPC network. Only packets in this
25041	// network will be mirrored. All mirrored VMs should have a NIC in the
25042	// given network. All mirrored subnetworks should belong to the given
25043	// network.
25044	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
25045
25046	// Priority: The priority of applying this configuration. Priority is
25047	// used to break ties in cases where there is more than one matching
25048	// rule. In the case of two rules that apply for a given Instance, the
25049	// one with the lowest-numbered priority value wins.
25050	//
25051	// Default value is 1000. Valid range is 0 through 65535.
25052	Priority int64 `json:"priority,omitempty"`
25053
25054	// Region: [Output Only] URI of the region where the packetMirroring
25055	// resides.
25056	Region string `json:"region,omitempty"`
25057
25058	// SelfLink: [Output Only] Server-defined URL for the resource.
25059	SelfLink string `json:"selfLink,omitempty"`
25060
25061	// ServerResponse contains the HTTP response code and headers from the
25062	// server.
25063	googleapi.ServerResponse `json:"-"`
25064
25065	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
25066	// unconditionally include in API requests. By default, fields with
25067	// empty values are omitted from API requests. However, any non-pointer,
25068	// non-interface field appearing in ForceSendFields will be sent to the
25069	// server regardless of whether the field is empty or not. This may be
25070	// used to include empty fields in Patch requests.
25071	ForceSendFields []string `json:"-"`
25072
25073	// NullFields is a list of field names (e.g. "CollectorIlb") to include
25074	// in API requests with the JSON null value. By default, fields with
25075	// empty values are omitted from API requests. However, any field with
25076	// an empty value appearing in NullFields will be sent to the server as
25077	// null. It is an error if a field in this list has a non-empty value.
25078	// This may be used to include null fields in Patch requests.
25079	NullFields []string `json:"-"`
25080}
25081
25082func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
25083	type NoMethod PacketMirroring
25084	raw := NoMethod(*s)
25085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25086}
25087
25088// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
25089type PacketMirroringAggregatedList struct {
25090	// Id: [Output Only] Unique identifier for the resource; defined by the
25091	// server.
25092	Id string `json:"id,omitempty"`
25093
25094	// Items: A list of PacketMirroring resources.
25095	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
25096
25097	// Kind: Type of resource.
25098	Kind string `json:"kind,omitempty"`
25099
25100	// NextPageToken: [Output Only] This token allows you to get the next
25101	// page of results for list requests. If the number of results is larger
25102	// than maxResults, use the nextPageToken as a value for the query
25103	// parameter pageToken in the next list request. Subsequent list
25104	// requests will have their own nextPageToken to continue paging through
25105	// the results.
25106	NextPageToken string `json:"nextPageToken,omitempty"`
25107
25108	// SelfLink: [Output Only] Server-defined URL for this resource.
25109	SelfLink string `json:"selfLink,omitempty"`
25110
25111	// Warning: [Output Only] Informational warning message.
25112	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
25113
25114	// ServerResponse contains the HTTP response code and headers from the
25115	// server.
25116	googleapi.ServerResponse `json:"-"`
25117
25118	// ForceSendFields is a list of field names (e.g. "Id") to
25119	// unconditionally include in API requests. By default, fields with
25120	// empty values are omitted from API requests. However, any non-pointer,
25121	// non-interface field appearing in ForceSendFields will be sent to the
25122	// server regardless of whether the field is empty or not. This may be
25123	// used to include empty fields in Patch requests.
25124	ForceSendFields []string `json:"-"`
25125
25126	// NullFields is a list of field names (e.g. "Id") to include in API
25127	// requests with the JSON null value. By default, fields with empty
25128	// values are omitted from API requests. However, any field with an
25129	// empty value appearing in NullFields will be sent to the server as
25130	// null. It is an error if a field in this list has a non-empty value.
25131	// This may be used to include null fields in Patch requests.
25132	NullFields []string `json:"-"`
25133}
25134
25135func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
25136	type NoMethod PacketMirroringAggregatedList
25137	raw := NoMethod(*s)
25138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25139}
25140
25141// PacketMirroringAggregatedListWarning: [Output Only] Informational
25142// warning message.
25143type PacketMirroringAggregatedListWarning struct {
25144	// Code: [Output Only] A warning code, if applicable. For example,
25145	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25146	// the response.
25147	//
25148	// Possible values:
25149	//   "CLEANUP_FAILED"
25150	//   "DEPRECATED_RESOURCE_USED"
25151	//   "DEPRECATED_TYPE_USED"
25152	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25153	//   "EXPERIMENTAL_TYPE_USED"
25154	//   "EXTERNAL_API_WARNING"
25155	//   "FIELD_VALUE_OVERRIDEN"
25156	//   "INJECTED_KERNELS_DEPRECATED"
25157	//   "MISSING_TYPE_DEPENDENCY"
25158	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25159	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25160	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25161	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25162	//   "NEXT_HOP_NOT_RUNNING"
25163	//   "NOT_CRITICAL_ERROR"
25164	//   "NO_RESULTS_ON_PAGE"
25165	//   "REQUIRED_TOS_AGREEMENT"
25166	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25167	//   "RESOURCE_NOT_DELETED"
25168	//   "SCHEMA_VALIDATION_IGNORED"
25169	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25170	//   "UNDECLARED_PROPERTIES"
25171	//   "UNREACHABLE"
25172	Code string `json:"code,omitempty"`
25173
25174	// Data: [Output Only] Metadata about this warning in key: value format.
25175	// For example:
25176	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25177	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
25178
25179	// Message: [Output Only] A human-readable description of the warning
25180	// code.
25181	Message string `json:"message,omitempty"`
25182
25183	// ForceSendFields is a list of field names (e.g. "Code") to
25184	// unconditionally include in API requests. By default, fields with
25185	// empty values are omitted from API requests. However, any non-pointer,
25186	// non-interface field appearing in ForceSendFields will be sent to the
25187	// server regardless of whether the field is empty or not. This may be
25188	// used to include empty fields in Patch requests.
25189	ForceSendFields []string `json:"-"`
25190
25191	// NullFields is a list of field names (e.g. "Code") to include in API
25192	// requests with the JSON null value. By default, fields with empty
25193	// values are omitted from API requests. However, any field with an
25194	// empty value appearing in NullFields will be sent to the server as
25195	// null. It is an error if a field in this list has a non-empty value.
25196	// This may be used to include null fields in Patch requests.
25197	NullFields []string `json:"-"`
25198}
25199
25200func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
25201	type NoMethod PacketMirroringAggregatedListWarning
25202	raw := NoMethod(*s)
25203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25204}
25205
25206type PacketMirroringAggregatedListWarningData struct {
25207	// Key: [Output Only] A key that provides more detail on the warning
25208	// being returned. For example, for warnings where there are no results
25209	// in a list request for a particular zone, this key might be scope and
25210	// the key value might be the zone name. Other examples might be a key
25211	// indicating a deprecated resource and a suggested replacement, or a
25212	// warning about invalid network settings (for example, if an instance
25213	// attempts to perform IP forwarding but is not enabled for IP
25214	// forwarding).
25215	Key string `json:"key,omitempty"`
25216
25217	// Value: [Output Only] A warning data value corresponding to the key.
25218	Value string `json:"value,omitempty"`
25219
25220	// ForceSendFields is a list of field names (e.g. "Key") to
25221	// unconditionally include in API requests. By default, fields with
25222	// empty values are omitted from API requests. However, any non-pointer,
25223	// non-interface field appearing in ForceSendFields will be sent to the
25224	// server regardless of whether the field is empty or not. This may be
25225	// used to include empty fields in Patch requests.
25226	ForceSendFields []string `json:"-"`
25227
25228	// NullFields is a list of field names (e.g. "Key") to include in API
25229	// requests with the JSON null value. By default, fields with empty
25230	// values are omitted from API requests. However, any field with an
25231	// empty value appearing in NullFields will be sent to the server as
25232	// null. It is an error if a field in this list has a non-empty value.
25233	// This may be used to include null fields in Patch requests.
25234	NullFields []string `json:"-"`
25235}
25236
25237func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25238	type NoMethod PacketMirroringAggregatedListWarningData
25239	raw := NoMethod(*s)
25240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25241}
25242
25243type PacketMirroringFilter struct {
25244	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
25245	// no protocols are specified, all traffic that matches the specified
25246	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
25247	// specified, all traffic is mirrored.
25248	IPProtocols []string `json:"IPProtocols,omitempty"`
25249
25250	// CidrRanges: IP CIDR ranges that apply as filter on the source
25251	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
25252	// supported. If no ranges are specified, all traffic that matches the
25253	// specified IPProtocols is mirrored. If neither cidrRanges nor
25254	// IPProtocols is specified, all traffic is mirrored.
25255	CidrRanges []string `json:"cidrRanges,omitempty"`
25256
25257	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
25258	// unconditionally include in API requests. By default, fields with
25259	// empty values are omitted from API requests. However, any non-pointer,
25260	// non-interface field appearing in ForceSendFields will be sent to the
25261	// server regardless of whether the field is empty or not. This may be
25262	// used to include empty fields in Patch requests.
25263	ForceSendFields []string `json:"-"`
25264
25265	// NullFields is a list of field names (e.g. "IPProtocols") to include
25266	// in API requests with the JSON null value. By default, fields with
25267	// empty values are omitted from API requests. However, any field with
25268	// an empty value appearing in NullFields will be sent to the server as
25269	// null. It is an error if a field in this list has a non-empty value.
25270	// This may be used to include null fields in Patch requests.
25271	NullFields []string `json:"-"`
25272}
25273
25274func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
25275	type NoMethod PacketMirroringFilter
25276	raw := NoMethod(*s)
25277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25278}
25279
25280type PacketMirroringForwardingRuleInfo struct {
25281	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
25282	// rule; defined by the server.
25283	CanonicalUrl string `json:"canonicalUrl,omitempty"`
25284
25285	// Url: Resource URL to the forwarding rule representing the ILB
25286	// configured as destination of the mirrored traffic.
25287	Url string `json:"url,omitempty"`
25288
25289	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
25290	// unconditionally include in API requests. By default, fields with
25291	// empty values are omitted from API requests. However, any non-pointer,
25292	// non-interface field appearing in ForceSendFields will be sent to the
25293	// server regardless of whether the field is empty or not. This may be
25294	// used to include empty fields in Patch requests.
25295	ForceSendFields []string `json:"-"`
25296
25297	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
25298	// in API requests with the JSON null value. By default, fields with
25299	// empty values are omitted from API requests. However, any field with
25300	// an empty value appearing in NullFields will be sent to the server as
25301	// null. It is an error if a field in this list has a non-empty value.
25302	// This may be used to include null fields in Patch requests.
25303	NullFields []string `json:"-"`
25304}
25305
25306func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
25307	type NoMethod PacketMirroringForwardingRuleInfo
25308	raw := NoMethod(*s)
25309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25310}
25311
25312// PacketMirroringList: Contains a list of PacketMirroring resources.
25313type PacketMirroringList struct {
25314	// Id: [Output Only] Unique identifier for the resource; defined by the
25315	// server.
25316	Id string `json:"id,omitempty"`
25317
25318	// Items: A list of PacketMirroring resources.
25319	Items []*PacketMirroring `json:"items,omitempty"`
25320
25321	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
25322	// for packetMirrorings.
25323	Kind string `json:"kind,omitempty"`
25324
25325	// NextPageToken: [Output Only] This token allows you to get the next
25326	// page of results for list requests. If the number of results is larger
25327	// than maxResults, use the nextPageToken as a value for the query
25328	// parameter pageToken in the next list request. Subsequent list
25329	// requests will have their own nextPageToken to continue paging through
25330	// the results.
25331	NextPageToken string `json:"nextPageToken,omitempty"`
25332
25333	// SelfLink: [Output Only] Server-defined URL for this resource.
25334	SelfLink string `json:"selfLink,omitempty"`
25335
25336	// Warning: [Output Only] Informational warning message.
25337	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
25338
25339	// ServerResponse contains the HTTP response code and headers from the
25340	// server.
25341	googleapi.ServerResponse `json:"-"`
25342
25343	// ForceSendFields is a list of field names (e.g. "Id") to
25344	// unconditionally include in API requests. By default, fields with
25345	// empty values are omitted from API requests. However, any non-pointer,
25346	// non-interface field appearing in ForceSendFields will be sent to the
25347	// server regardless of whether the field is empty or not. This may be
25348	// used to include empty fields in Patch requests.
25349	ForceSendFields []string `json:"-"`
25350
25351	// NullFields is a list of field names (e.g. "Id") to include in API
25352	// requests with the JSON null value. By default, fields with empty
25353	// values are omitted from API requests. However, any field with an
25354	// empty value appearing in NullFields will be sent to the server as
25355	// null. It is an error if a field in this list has a non-empty value.
25356	// This may be used to include null fields in Patch requests.
25357	NullFields []string `json:"-"`
25358}
25359
25360func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
25361	type NoMethod PacketMirroringList
25362	raw := NoMethod(*s)
25363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25364}
25365
25366// PacketMirroringListWarning: [Output Only] Informational warning
25367// message.
25368type PacketMirroringListWarning struct {
25369	// Code: [Output Only] A warning code, if applicable. For example,
25370	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25371	// the response.
25372	//
25373	// Possible values:
25374	//   "CLEANUP_FAILED"
25375	//   "DEPRECATED_RESOURCE_USED"
25376	//   "DEPRECATED_TYPE_USED"
25377	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25378	//   "EXPERIMENTAL_TYPE_USED"
25379	//   "EXTERNAL_API_WARNING"
25380	//   "FIELD_VALUE_OVERRIDEN"
25381	//   "INJECTED_KERNELS_DEPRECATED"
25382	//   "MISSING_TYPE_DEPENDENCY"
25383	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25384	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25385	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25386	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25387	//   "NEXT_HOP_NOT_RUNNING"
25388	//   "NOT_CRITICAL_ERROR"
25389	//   "NO_RESULTS_ON_PAGE"
25390	//   "REQUIRED_TOS_AGREEMENT"
25391	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25392	//   "RESOURCE_NOT_DELETED"
25393	//   "SCHEMA_VALIDATION_IGNORED"
25394	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25395	//   "UNDECLARED_PROPERTIES"
25396	//   "UNREACHABLE"
25397	Code string `json:"code,omitempty"`
25398
25399	// Data: [Output Only] Metadata about this warning in key: value format.
25400	// For example:
25401	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25402	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
25403
25404	// Message: [Output Only] A human-readable description of the warning
25405	// code.
25406	Message string `json:"message,omitempty"`
25407
25408	// ForceSendFields is a list of field names (e.g. "Code") to
25409	// unconditionally include in API requests. By default, fields with
25410	// empty values are omitted from API requests. However, any non-pointer,
25411	// non-interface field appearing in ForceSendFields will be sent to the
25412	// server regardless of whether the field is empty or not. This may be
25413	// used to include empty fields in Patch requests.
25414	ForceSendFields []string `json:"-"`
25415
25416	// NullFields is a list of field names (e.g. "Code") to include in API
25417	// requests with the JSON null value. By default, fields with empty
25418	// values are omitted from API requests. However, any field with an
25419	// empty value appearing in NullFields will be sent to the server as
25420	// null. It is an error if a field in this list has a non-empty value.
25421	// This may be used to include null fields in Patch requests.
25422	NullFields []string `json:"-"`
25423}
25424
25425func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
25426	type NoMethod PacketMirroringListWarning
25427	raw := NoMethod(*s)
25428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25429}
25430
25431type PacketMirroringListWarningData struct {
25432	// Key: [Output Only] A key that provides more detail on the warning
25433	// being returned. For example, for warnings where there are no results
25434	// in a list request for a particular zone, this key might be scope and
25435	// the key value might be the zone name. Other examples might be a key
25436	// indicating a deprecated resource and a suggested replacement, or a
25437	// warning about invalid network settings (for example, if an instance
25438	// attempts to perform IP forwarding but is not enabled for IP
25439	// forwarding).
25440	Key string `json:"key,omitempty"`
25441
25442	// Value: [Output Only] A warning data value corresponding to the key.
25443	Value string `json:"value,omitempty"`
25444
25445	// ForceSendFields is a list of field names (e.g. "Key") to
25446	// unconditionally include in API requests. By default, fields with
25447	// empty values are omitted from API requests. However, any non-pointer,
25448	// non-interface field appearing in ForceSendFields will be sent to the
25449	// server regardless of whether the field is empty or not. This may be
25450	// used to include empty fields in Patch requests.
25451	ForceSendFields []string `json:"-"`
25452
25453	// NullFields is a list of field names (e.g. "Key") to include in API
25454	// requests with the JSON null value. By default, fields with empty
25455	// values are omitted from API requests. However, any field with an
25456	// empty value appearing in NullFields will be sent to the server as
25457	// null. It is an error if a field in this list has a non-empty value.
25458	// This may be used to include null fields in Patch requests.
25459	NullFields []string `json:"-"`
25460}
25461
25462func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
25463	type NoMethod PacketMirroringListWarningData
25464	raw := NoMethod(*s)
25465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25466}
25467
25468type PacketMirroringMirroredResourceInfo struct {
25469	// Instances: A set of virtual machine instances that are being
25470	// mirrored. They must live in zones contained in the same region as
25471	// this packetMirroring.
25472	//
25473	// Note that this config will apply only to those network interfaces of
25474	// the Instances that belong to the network specified in this
25475	// packetMirroring.
25476	//
25477	// You may specify a maximum of 50 Instances.
25478	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
25479
25480	// Subnetworks: A set of subnetworks for which traffic from/to all VM
25481	// instances will be mirrored. They must live in the same region as this
25482	// packetMirroring.
25483	//
25484	// You may specify a maximum of 5 subnetworks.
25485	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
25486
25487	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
25488	// have one or more of these tags will be mirrored.
25489	Tags []string `json:"tags,omitempty"`
25490
25491	// ForceSendFields is a list of field names (e.g. "Instances") to
25492	// unconditionally include in API requests. By default, fields with
25493	// empty values are omitted from API requests. However, any non-pointer,
25494	// non-interface field appearing in ForceSendFields will be sent to the
25495	// server regardless of whether the field is empty or not. This may be
25496	// used to include empty fields in Patch requests.
25497	ForceSendFields []string `json:"-"`
25498
25499	// NullFields is a list of field names (e.g. "Instances") to include in
25500	// API requests with the JSON null value. By default, fields with empty
25501	// values are omitted from API requests. However, any field with an
25502	// empty value appearing in NullFields will be sent to the server as
25503	// null. It is an error if a field in this list has a non-empty value.
25504	// This may be used to include null fields in Patch requests.
25505	NullFields []string `json:"-"`
25506}
25507
25508func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
25509	type NoMethod PacketMirroringMirroredResourceInfo
25510	raw := NoMethod(*s)
25511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25512}
25513
25514type PacketMirroringMirroredResourceInfoInstanceInfo struct {
25515	// CanonicalUrl: [Output Only] Unique identifier for the instance;
25516	// defined by the server.
25517	CanonicalUrl string `json:"canonicalUrl,omitempty"`
25518
25519	// Url: Resource URL to the virtual machine instance which is being
25520	// mirrored.
25521	Url string `json:"url,omitempty"`
25522
25523	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
25524	// unconditionally include in API requests. By default, fields with
25525	// empty values are omitted from API requests. However, any non-pointer,
25526	// non-interface field appearing in ForceSendFields will be sent to the
25527	// server regardless of whether the field is empty or not. This may be
25528	// used to include empty fields in Patch requests.
25529	ForceSendFields []string `json:"-"`
25530
25531	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
25532	// in API requests with the JSON null value. By default, fields with
25533	// empty values are omitted from API requests. However, any field with
25534	// an empty value appearing in NullFields will be sent to the server as
25535	// null. It is an error if a field in this list has a non-empty value.
25536	// This may be used to include null fields in Patch requests.
25537	NullFields []string `json:"-"`
25538}
25539
25540func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
25541	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
25542	raw := NoMethod(*s)
25543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25544}
25545
25546type PacketMirroringMirroredResourceInfoSubnetInfo struct {
25547	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
25548	// defined by the server.
25549	CanonicalUrl string `json:"canonicalUrl,omitempty"`
25550
25551	// Url: Resource URL to the subnetwork for which traffic from/to all VM
25552	// instances will be mirrored.
25553	Url string `json:"url,omitempty"`
25554
25555	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
25556	// unconditionally include in API requests. By default, fields with
25557	// empty values are omitted from API requests. However, any non-pointer,
25558	// non-interface field appearing in ForceSendFields will be sent to the
25559	// server regardless of whether the field is empty or not. This may be
25560	// used to include empty fields in Patch requests.
25561	ForceSendFields []string `json:"-"`
25562
25563	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
25564	// in API requests with the JSON null value. By default, fields with
25565	// empty values are omitted from API requests. However, any field with
25566	// an empty value appearing in NullFields will be sent to the server as
25567	// null. It is an error if a field in this list has a non-empty value.
25568	// This may be used to include null fields in Patch requests.
25569	NullFields []string `json:"-"`
25570}
25571
25572func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
25573	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
25574	raw := NoMethod(*s)
25575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25576}
25577
25578type PacketMirroringNetworkInfo struct {
25579	// CanonicalUrl: [Output Only] Unique identifier for the network;
25580	// defined by the server.
25581	CanonicalUrl string `json:"canonicalUrl,omitempty"`
25582
25583	// Url: URL of the network resource.
25584	Url string `json:"url,omitempty"`
25585
25586	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
25587	// unconditionally include in API requests. By default, fields with
25588	// empty values are omitted from API requests. However, any non-pointer,
25589	// non-interface field appearing in ForceSendFields will be sent to the
25590	// server regardless of whether the field is empty or not. This may be
25591	// used to include empty fields in Patch requests.
25592	ForceSendFields []string `json:"-"`
25593
25594	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
25595	// in API requests with the JSON null value. By default, fields with
25596	// empty values are omitted from API requests. However, any field with
25597	// an empty value appearing in NullFields will be sent to the server as
25598	// null. It is an error if a field in this list has a non-empty value.
25599	// This may be used to include null fields in Patch requests.
25600	NullFields []string `json:"-"`
25601}
25602
25603func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
25604	type NoMethod PacketMirroringNetworkInfo
25605	raw := NoMethod(*s)
25606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25607}
25608
25609type PacketMirroringsScopedList struct {
25610	// PacketMirrorings: A list of packetMirrorings contained in this scope.
25611	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
25612
25613	// Warning: Informational warning which replaces the list of
25614	// packetMirrorings when the list is empty.
25615	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
25616
25617	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
25618	// unconditionally include in API requests. By default, fields with
25619	// empty values are omitted from API requests. However, any non-pointer,
25620	// non-interface field appearing in ForceSendFields will be sent to the
25621	// server regardless of whether the field is empty or not. This may be
25622	// used to include empty fields in Patch requests.
25623	ForceSendFields []string `json:"-"`
25624
25625	// NullFields is a list of field names (e.g. "PacketMirrorings") to
25626	// include in API requests with the JSON null value. By default, fields
25627	// with empty values are omitted from API requests. However, any field
25628	// with an empty value appearing in NullFields will be sent to the
25629	// server as null. It is an error if a field in this list has a
25630	// non-empty value. This may be used to include null fields in Patch
25631	// requests.
25632	NullFields []string `json:"-"`
25633}
25634
25635func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
25636	type NoMethod PacketMirroringsScopedList
25637	raw := NoMethod(*s)
25638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25639}
25640
25641// PacketMirroringsScopedListWarning: Informational warning which
25642// replaces the list of packetMirrorings when the list is empty.
25643type PacketMirroringsScopedListWarning struct {
25644	// Code: [Output Only] A warning code, if applicable. For example,
25645	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25646	// the response.
25647	//
25648	// Possible values:
25649	//   "CLEANUP_FAILED"
25650	//   "DEPRECATED_RESOURCE_USED"
25651	//   "DEPRECATED_TYPE_USED"
25652	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25653	//   "EXPERIMENTAL_TYPE_USED"
25654	//   "EXTERNAL_API_WARNING"
25655	//   "FIELD_VALUE_OVERRIDEN"
25656	//   "INJECTED_KERNELS_DEPRECATED"
25657	//   "MISSING_TYPE_DEPENDENCY"
25658	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25659	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25660	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25661	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25662	//   "NEXT_HOP_NOT_RUNNING"
25663	//   "NOT_CRITICAL_ERROR"
25664	//   "NO_RESULTS_ON_PAGE"
25665	//   "REQUIRED_TOS_AGREEMENT"
25666	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25667	//   "RESOURCE_NOT_DELETED"
25668	//   "SCHEMA_VALIDATION_IGNORED"
25669	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25670	//   "UNDECLARED_PROPERTIES"
25671	//   "UNREACHABLE"
25672	Code string `json:"code,omitempty"`
25673
25674	// Data: [Output Only] Metadata about this warning in key: value format.
25675	// For example:
25676	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25677	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
25678
25679	// Message: [Output Only] A human-readable description of the warning
25680	// code.
25681	Message string `json:"message,omitempty"`
25682
25683	// ForceSendFields is a list of field names (e.g. "Code") to
25684	// unconditionally include in API requests. By default, fields with
25685	// empty values are omitted from API requests. However, any non-pointer,
25686	// non-interface field appearing in ForceSendFields will be sent to the
25687	// server regardless of whether the field is empty or not. This may be
25688	// used to include empty fields in Patch requests.
25689	ForceSendFields []string `json:"-"`
25690
25691	// NullFields is a list of field names (e.g. "Code") to include in API
25692	// requests with the JSON null value. By default, fields with empty
25693	// values are omitted from API requests. However, any field with an
25694	// empty value appearing in NullFields will be sent to the server as
25695	// null. It is an error if a field in this list has a non-empty value.
25696	// This may be used to include null fields in Patch requests.
25697	NullFields []string `json:"-"`
25698}
25699
25700func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
25701	type NoMethod PacketMirroringsScopedListWarning
25702	raw := NoMethod(*s)
25703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25704}
25705
25706type PacketMirroringsScopedListWarningData struct {
25707	// Key: [Output Only] A key that provides more detail on the warning
25708	// being returned. For example, for warnings where there are no results
25709	// in a list request for a particular zone, this key might be scope and
25710	// the key value might be the zone name. Other examples might be a key
25711	// indicating a deprecated resource and a suggested replacement, or a
25712	// warning about invalid network settings (for example, if an instance
25713	// attempts to perform IP forwarding but is not enabled for IP
25714	// forwarding).
25715	Key string `json:"key,omitempty"`
25716
25717	// Value: [Output Only] A warning data value corresponding to the key.
25718	Value string `json:"value,omitempty"`
25719
25720	// ForceSendFields is a list of field names (e.g. "Key") to
25721	// unconditionally include in API requests. By default, fields with
25722	// empty values are omitted from API requests. However, any non-pointer,
25723	// non-interface field appearing in ForceSendFields will be sent to the
25724	// server regardless of whether the field is empty or not. This may be
25725	// used to include empty fields in Patch requests.
25726	ForceSendFields []string `json:"-"`
25727
25728	// NullFields is a list of field names (e.g. "Key") to include in API
25729	// requests with the JSON null value. By default, fields with empty
25730	// values are omitted from API requests. However, any field with an
25731	// empty value appearing in NullFields will be sent to the server as
25732	// null. It is an error if a field in this list has a non-empty value.
25733	// This may be used to include null fields in Patch requests.
25734	NullFields []string `json:"-"`
25735}
25736
25737func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
25738	type NoMethod PacketMirroringsScopedListWarningData
25739	raw := NoMethod(*s)
25740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25741}
25742
25743// PathMatcher: A matcher for the path portion of the URL. The
25744// BackendService from the longest-matched rule will serve the URL. If
25745// no rule was matched, the default service will be used.
25746type PathMatcher struct {
25747	// DefaultRouteAction: defaultRouteAction takes effect when none of the
25748	// pathRules or routeRules match. The load balancer performs advanced
25749	// routing actions like URL rewrites, header transformations, etc. prior
25750	// to forwarding the request to the selected backend. If
25751	// defaultRouteAction specifies any weightedBackendServices,
25752	// defaultService must not be set. Conversely if defaultService is set,
25753	// defaultRouteAction cannot contain any  weightedBackendServices.
25754	// Only one of defaultRouteAction or defaultUrlRedirect must be
25755	// set.
25756	// UrlMaps for external HTTP(S) load balancers support only the
25757	// urlRewrite action within a pathMatcher's defaultRouteAction.
25758	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
25759
25760	// DefaultService: The full or partial URL to the BackendService
25761	// resource. This will be used if none of the pathRules or routeRules
25762	// defined by this PathMatcher are matched. For example, the following
25763	// are all valid URLs to a BackendService resource:
25764	// -
25765	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
25766	// - compute/v1/projects/project/global/backendServices/backendService
25767	//
25768	// - global/backendServices/backendService  If defaultRouteAction is
25769	// additionally specified, advanced routing actions like URL Rewrites,
25770	// etc. take effect prior to sending the request to the backend.
25771	// However, if defaultService is specified, defaultRouteAction cannot
25772	// contain any weightedBackendServices. Conversely, if
25773	// defaultRouteAction specifies any weightedBackendServices,
25774	// defaultService must not be specified.
25775	// Only one of defaultService, defaultUrlRedirect  or
25776	// defaultRouteAction.weightedBackendService must be set.
25777	// Authorization requires one or more of the following Google IAM
25778	// permissions on the specified resource default_service:
25779	// - compute.backendBuckets.use
25780	// - compute.backendServices.use
25781	DefaultService string `json:"defaultService,omitempty"`
25782
25783	// DefaultUrlRedirect: When none of the specified pathRules or
25784	// routeRules match, the request is redirected to a URL specified by
25785	// defaultUrlRedirect.
25786	// If defaultUrlRedirect is specified, defaultService or
25787	// defaultRouteAction must not be set.
25788	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
25789
25790	// Description: An optional description of this resource. Provide this
25791	// property when you create the resource.
25792	Description string `json:"description,omitempty"`
25793
25794	// HeaderAction: Specifies changes to request and response headers that
25795	// need to take effect for the selected backendService.
25796	// HeaderAction specified here are applied after the matching
25797	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
25798	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
25799
25800	// Name: The name to which this PathMatcher is referred by the HostRule.
25801	Name string `json:"name,omitempty"`
25802
25803	// PathRules: The list of path rules. Use this list instead of
25804	// routeRules when routing based on simple path matching is all that's
25805	// required. The order by which path rules are specified does not
25806	// matter. Matches are always done on the longest-path-first basis.
25807	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
25808	// irrespective of the order in which those paths appear in this
25809	// list.
25810	// Within a given pathMatcher, only one of pathRules or routeRules must
25811	// be set.
25812	PathRules []*PathRule `json:"pathRules,omitempty"`
25813
25814	// RouteRules: The list of HTTP route rules. Use this list instead of
25815	// pathRules when advanced route matching and routing actions are
25816	// desired. routeRules are evaluated in order of priority, from the
25817	// lowest to highest number.
25818	// Within a given pathMatcher, you can set only one of pathRules or
25819	// routeRules.
25820	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
25821
25822	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
25823	// to unconditionally include in API requests. By default, fields with
25824	// empty values are omitted from API requests. However, any non-pointer,
25825	// non-interface field appearing in ForceSendFields will be sent to the
25826	// server regardless of whether the field is empty or not. This may be
25827	// used to include empty fields in Patch requests.
25828	ForceSendFields []string `json:"-"`
25829
25830	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
25831	// include in API requests with the JSON null value. By default, fields
25832	// with empty values are omitted from API requests. However, any field
25833	// with an empty value appearing in NullFields will be sent to the
25834	// server as null. It is an error if a field in this list has a
25835	// non-empty value. This may be used to include null fields in Patch
25836	// requests.
25837	NullFields []string `json:"-"`
25838}
25839
25840func (s *PathMatcher) MarshalJSON() ([]byte, error) {
25841	type NoMethod PathMatcher
25842	raw := NoMethod(*s)
25843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25844}
25845
25846// PathRule: A path-matching rule for a URL. If matched, will use the
25847// specified BackendService to handle the traffic arriving at this URL.
25848type PathRule struct {
25849	// Paths: The list of path patterns to match. Each must start with / and
25850	// the only place a * is allowed is at the end following a /. The string
25851	// fed to the path matcher does not include any text after the first ?
25852	// or #, and those chars are not allowed here.
25853	Paths []string `json:"paths,omitempty"`
25854
25855	// RouteAction: In response to a matching path, the load balancer
25856	// performs advanced routing actions like URL rewrites, header
25857	// transformations, etc. prior to forwarding the request to the selected
25858	// backend. If routeAction specifies any  weightedBackendServices,
25859	// service must not be set. Conversely if service is set, routeAction
25860	// cannot contain any  weightedBackendServices.
25861	// Only one of routeAction or urlRedirect must be set.
25862	// UrlMaps for external HTTP(S) load balancers support only the
25863	// urlRewrite action within a pathRule's routeAction.
25864	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
25865
25866	// Service: The full or partial URL of the backend service resource to
25867	// which traffic is directed if this rule is matched. If routeAction is
25868	// additionally specified, advanced routing actions like URL Rewrites,
25869	// etc. take effect prior to sending the request to the backend.
25870	// However, if service is specified, routeAction cannot contain any
25871	// weightedBackendService s. Conversely, if routeAction specifies any
25872	// weightedBackendServices, service must not be specified.
25873	// Only one of urlRedirect, service or
25874	// routeAction.weightedBackendService must be set.
25875	Service string `json:"service,omitempty"`
25876
25877	// UrlRedirect: When a path pattern is matched, the request is
25878	// redirected to a URL specified by urlRedirect.
25879	// If urlRedirect is specified, service or routeAction must not be set.
25880	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
25881
25882	// ForceSendFields is a list of field names (e.g. "Paths") to
25883	// unconditionally include in API requests. By default, fields with
25884	// empty values are omitted from API requests. However, any non-pointer,
25885	// non-interface field appearing in ForceSendFields will be sent to the
25886	// server regardless of whether the field is empty or not. This may be
25887	// used to include empty fields in Patch requests.
25888	ForceSendFields []string `json:"-"`
25889
25890	// NullFields is a list of field names (e.g. "Paths") to include in API
25891	// requests with the JSON null value. By default, fields with empty
25892	// values are omitted from API requests. However, any field with an
25893	// empty value appearing in NullFields will be sent to the server as
25894	// null. It is an error if a field in this list has a non-empty value.
25895	// This may be used to include null fields in Patch requests.
25896	NullFields []string `json:"-"`
25897}
25898
25899func (s *PathRule) MarshalJSON() ([]byte, error) {
25900	type NoMethod PathRule
25901	raw := NoMethod(*s)
25902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25903}
25904
25905type PerInstanceConfig struct {
25906	// Fingerprint: Fingerprint of this per-instance config. This field can
25907	// be used in optimistic locking. It is ignored when inserting a
25908	// per-instance config. An up-to-date fingerprint must be provided in
25909	// order to update an existing per-instance config or the field needs to
25910	// be unset.
25911	Fingerprint string `json:"fingerprint,omitempty"`
25912
25913	// Name: The name of a per-instance config and its corresponding
25914	// instance. Serves as a merge key during UpdatePerInstanceConfigs
25915	// operations, that is, if a per-instance config with the same name
25916	// exists then it will be updated, otherwise a new one will be created
25917	// for the VM instance with the same name. An attempt to create a
25918	// per-instance config for a VM instance that either doesn't exist or is
25919	// not part of the group will result in an error.
25920	Name string `json:"name,omitempty"`
25921
25922	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
25923	// unconditionally include in API requests. By default, fields with
25924	// empty values are omitted from API requests. However, any non-pointer,
25925	// non-interface field appearing in ForceSendFields will be sent to the
25926	// server regardless of whether the field is empty or not. This may be
25927	// used to include empty fields in Patch requests.
25928	ForceSendFields []string `json:"-"`
25929
25930	// NullFields is a list of field names (e.g. "Fingerprint") to include
25931	// in API requests with the JSON null value. By default, fields with
25932	// empty values are omitted from API requests. However, any field with
25933	// an empty value appearing in NullFields will be sent to the server as
25934	// null. It is an error if a field in this list has a non-empty value.
25935	// This may be used to include null fields in Patch requests.
25936	NullFields []string `json:"-"`
25937}
25938
25939func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
25940	type NoMethod PerInstanceConfig
25941	raw := NoMethod(*s)
25942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25943}
25944
25945// Policy: An Identity and Access Management (IAM) policy, which
25946// specifies access controls for Google Cloud resources.
25947//
25948//
25949//
25950// A `Policy` is a collection of `bindings`. A `binding` binds one or
25951// more `members` to a single `role`. Members can be user accounts,
25952// service accounts, Google groups, and domains (such as G Suite). A
25953// `role` is a named list of permissions; each `role` can be an IAM
25954// predefined role or a user-created custom role.
25955//
25956// For some types of Google Cloud resources, a `binding` can also
25957// specify a `condition`, which is a logical expression that allows
25958// access to a resource only if the expression evaluates to `true`. A
25959// condition can add constraints based on attributes of the request, the
25960// resource, or both. To learn which resources support conditions in
25961// their IAM policies, see the [IAM
25962// documentation](https://cloud.google.com/iam/help/conditions/resource-p
25963// olicies).
25964//
25965// **JSON example:**
25966//
25967// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
25968// "members": [ "user:mike@example.com", "group:admins@example.com",
25969// "domain:google.com",
25970// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
25971// "role": "roles/resourcemanager.organizationViewer", "members": [
25972// "user:eve@example.com" ], "condition": { "title": "expirable access",
25973// "description": "Does not grant access after Sep 2020", "expression":
25974// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
25975// "etag": "BwWWja0YfJA=", "version": 3 }
25976//
25977// **YAML example:**
25978//
25979// bindings: - members: - user:mike@example.com -
25980// group:admins@example.com - domain:google.com -
25981// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
25982// roles/resourcemanager.organizationAdmin - members: -
25983// user:eve@example.com role: roles/resourcemanager.organizationViewer
25984// condition: title: expirable access description: Does not grant access
25985// after Sep 2020 expression: request.time <
25986// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
25987// 3
25988//
25989// For a description of IAM and its features, see the [IAM
25990// documentation](https://cloud.google.com/iam/docs/).
25991type Policy struct {
25992	// AuditConfigs: Specifies cloud audit logging configuration for this
25993	// policy.
25994	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
25995
25996	// Bindings: Associates a list of `members` to a `role`. Optionally, may
25997	// specify a `condition` that determines how and when the `bindings` are
25998	// applied. Each of the `bindings` must contain at least one member.
25999	Bindings []*Binding `json:"bindings,omitempty"`
26000
26001	// Etag: `etag` is used for optimistic concurrency control as a way to
26002	// help prevent simultaneous updates of a policy from overwriting each
26003	// other. It is strongly suggested that systems make use of the `etag`
26004	// in the read-modify-write cycle to perform policy updates in order to
26005	// avoid race conditions: An `etag` is returned in the response to
26006	// `getIamPolicy`, and systems are expected to put that etag in the
26007	// request to `setIamPolicy` to ensure that their change will be applied
26008	// to the same version of the policy.
26009	//
26010	// **Important:** If you use IAM Conditions, you must include the `etag`
26011	// field whenever you call `setIamPolicy`. If you omit this field, then
26012	// IAM allows you to overwrite a version `3` policy with a version `1`
26013	// policy, and all of the conditions in the version `3` policy are lost.
26014	Etag string `json:"etag,omitempty"`
26015
26016	IamOwned bool `json:"iamOwned,omitempty"`
26017
26018	// Rules: If more than one rule is specified, the rules are applied in
26019	// the following manner: - All matching LOG rules are always applied. -
26020	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
26021	// will be applied if one or more matching rule requires logging. -
26022	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
26023	// granted. Logging will be applied if one or more matching rule
26024	// requires logging. - Otherwise, if no rule applies, permission is
26025	// denied.
26026	Rules []*Rule `json:"rules,omitempty"`
26027
26028	// Version: Specifies the format of the policy.
26029	//
26030	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
26031	// value are rejected.
26032	//
26033	// Any operation that affects conditional role bindings must specify
26034	// version `3`. This requirement applies to the following operations:
26035	//
26036	// * Getting a policy that includes a conditional role binding * Adding
26037	// a conditional role binding to a policy * Changing a conditional role
26038	// binding in a policy * Removing any role binding, with or without a
26039	// condition, from a policy that includes conditions
26040	//
26041	// **Important:** If you use IAM Conditions, you must include the `etag`
26042	// field whenever you call `setIamPolicy`. If you omit this field, then
26043	// IAM allows you to overwrite a version `3` policy with a version `1`
26044	// policy, and all of the conditions in the version `3` policy are
26045	// lost.
26046	//
26047	// If a policy does not include any conditions, operations on that
26048	// policy may specify any valid version or leave the field unset.
26049	//
26050	// To learn which resources support conditions in their IAM policies,
26051	// see the [IAM
26052	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
26053	// olicies).
26054	Version int64 `json:"version,omitempty"`
26055
26056	// ServerResponse contains the HTTP response code and headers from the
26057	// server.
26058	googleapi.ServerResponse `json:"-"`
26059
26060	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
26061	// unconditionally include in API requests. By default, fields with
26062	// empty values are omitted from API requests. However, any non-pointer,
26063	// non-interface field appearing in ForceSendFields will be sent to the
26064	// server regardless of whether the field is empty or not. This may be
26065	// used to include empty fields in Patch requests.
26066	ForceSendFields []string `json:"-"`
26067
26068	// NullFields is a list of field names (e.g. "AuditConfigs") to include
26069	// in API requests with the JSON null value. By default, fields with
26070	// empty values are omitted from API requests. However, any field with
26071	// an empty value appearing in NullFields will be sent to the server as
26072	// null. It is an error if a field in this list has a non-empty value.
26073	// This may be used to include null fields in Patch requests.
26074	NullFields []string `json:"-"`
26075}
26076
26077func (s *Policy) MarshalJSON() ([]byte, error) {
26078	type NoMethod Policy
26079	raw := NoMethod(*s)
26080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26081}
26082
26083type PreconfiguredWafSet struct {
26084	// ExpressionSets: List of entities that are currently supported for WAF
26085	// rules.
26086	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
26087
26088	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
26089	// unconditionally include in API requests. By default, fields with
26090	// empty values are omitted from API requests. However, any non-pointer,
26091	// non-interface field appearing in ForceSendFields will be sent to the
26092	// server regardless of whether the field is empty or not. This may be
26093	// used to include empty fields in Patch requests.
26094	ForceSendFields []string `json:"-"`
26095
26096	// NullFields is a list of field names (e.g. "ExpressionSets") to
26097	// include in API requests with the JSON null value. By default, fields
26098	// with empty values are omitted from API requests. However, any field
26099	// with an empty value appearing in NullFields will be sent to the
26100	// server as null. It is an error if a field in this list has a
26101	// non-empty value. This may be used to include null fields in Patch
26102	// requests.
26103	NullFields []string `json:"-"`
26104}
26105
26106func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
26107	type NoMethod PreconfiguredWafSet
26108	raw := NoMethod(*s)
26109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26110}
26111
26112// Project: Represents a Project resource.
26113//
26114// A project is used to organize resources in a Google Cloud Platform
26115// environment. For more information, read about the  Resource
26116// Hierarchy. (== resource_for {$api_version}.projects ==)
26117type Project struct {
26118	// CommonInstanceMetadata: Metadata key/value pairs available to all
26119	// instances contained in this project. See Custom metadata for more
26120	// information.
26121	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
26122
26123	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26124	// format.
26125	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26126
26127	// DefaultNetworkTier: This signifies the default network tier used for
26128	// configuring resources of the project and can only take the following
26129	// values: PREMIUM, STANDARD. Initially the default network tier is
26130	// PREMIUM.
26131	//
26132	// Possible values:
26133	//   "PREMIUM"
26134	//   "STANDARD"
26135	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
26136
26137	// DefaultServiceAccount: [Output Only] Default service account used by
26138	// VMs running in this project.
26139	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
26140
26141	// Description: An optional textual description of the resource.
26142	Description string `json:"description,omitempty"`
26143
26144	// EnabledFeatures: Restricted features enabled for use on this project.
26145	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
26146
26147	// Id: [Output Only] The unique identifier for the resource. This
26148	// identifier is defined by the server. This is not the project ID, and
26149	// is just a unique ID used by Compute Engine to identify resources.
26150	Id uint64 `json:"id,omitempty,string"`
26151
26152	// Kind: [Output Only] Type of the resource. Always compute#project for
26153	// projects.
26154	Kind string `json:"kind,omitempty"`
26155
26156	// Name: The project ID. For example: my-example-project. Use the
26157	// project ID to make requests to Compute Engine.
26158	Name string `json:"name,omitempty"`
26159
26160	// Quotas: [Output Only] Quotas assigned to this project.
26161	Quotas []*Quota `json:"quotas,omitempty"`
26162
26163	// SelfLink: [Output Only] Server-defined URL for the resource.
26164	SelfLink string `json:"selfLink,omitempty"`
26165
26166	// UsageExportLocation: The naming prefix for daily usage reports and
26167	// the Google Cloud Storage bucket where they are stored.
26168	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
26169
26170	// XpnProjectStatus: [Output Only] The role this project has in a shared
26171	// VPC configuration. Currently only HOST projects are differentiated.
26172	//
26173	// Possible values:
26174	//   "HOST"
26175	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
26176	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
26177
26178	// ServerResponse contains the HTTP response code and headers from the
26179	// server.
26180	googleapi.ServerResponse `json:"-"`
26181
26182	// ForceSendFields is a list of field names (e.g.
26183	// "CommonInstanceMetadata") to unconditionally include in API requests.
26184	// By default, fields with empty values are omitted from API requests.
26185	// However, any non-pointer, non-interface field appearing in
26186	// ForceSendFields will be sent to the server regardless of whether the
26187	// field is empty or not. This may be used to include empty fields in
26188	// Patch requests.
26189	ForceSendFields []string `json:"-"`
26190
26191	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
26192	// to include in API requests with the JSON null value. By default,
26193	// fields with empty values are omitted from API requests. However, any
26194	// field with an empty value appearing in NullFields will be sent to the
26195	// server as null. It is an error if a field in this list has a
26196	// non-empty value. This may be used to include null fields in Patch
26197	// requests.
26198	NullFields []string `json:"-"`
26199}
26200
26201func (s *Project) MarshalJSON() ([]byte, error) {
26202	type NoMethod Project
26203	raw := NoMethod(*s)
26204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26205}
26206
26207type ProjectsDisableXpnResourceRequest struct {
26208	// XpnResource: Service resource (a.k.a service project) ID.
26209	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
26210
26211	// ForceSendFields is a list of field names (e.g. "XpnResource") to
26212	// unconditionally include in API requests. By default, fields with
26213	// empty values are omitted from API requests. However, any non-pointer,
26214	// non-interface field appearing in ForceSendFields will be sent to the
26215	// server regardless of whether the field is empty or not. This may be
26216	// used to include empty fields in Patch requests.
26217	ForceSendFields []string `json:"-"`
26218
26219	// NullFields is a list of field names (e.g. "XpnResource") to include
26220	// in API requests with the JSON null value. By default, fields with
26221	// empty values are omitted from API requests. However, any field with
26222	// an empty value appearing in NullFields will be sent to the server as
26223	// null. It is an error if a field in this list has a non-empty value.
26224	// This may be used to include null fields in Patch requests.
26225	NullFields []string `json:"-"`
26226}
26227
26228func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
26229	type NoMethod ProjectsDisableXpnResourceRequest
26230	raw := NoMethod(*s)
26231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26232}
26233
26234type ProjectsEnableXpnResourceRequest struct {
26235	// XpnResource: Service resource (a.k.a service project) ID.
26236	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
26237
26238	// ForceSendFields is a list of field names (e.g. "XpnResource") to
26239	// unconditionally include in API requests. By default, fields with
26240	// empty values are omitted from API requests. However, any non-pointer,
26241	// non-interface field appearing in ForceSendFields will be sent to the
26242	// server regardless of whether the field is empty or not. This may be
26243	// used to include empty fields in Patch requests.
26244	ForceSendFields []string `json:"-"`
26245
26246	// NullFields is a list of field names (e.g. "XpnResource") to include
26247	// in API requests with the JSON null value. By default, fields with
26248	// empty values are omitted from API requests. However, any field with
26249	// an empty value appearing in NullFields will be sent to the server as
26250	// null. It is an error if a field in this list has a non-empty value.
26251	// This may be used to include null fields in Patch requests.
26252	NullFields []string `json:"-"`
26253}
26254
26255func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
26256	type NoMethod ProjectsEnableXpnResourceRequest
26257	raw := NoMethod(*s)
26258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26259}
26260
26261type ProjectsGetXpnResources struct {
26262	// Kind: [Output Only] Type of resource. Always
26263	// compute#projectsGetXpnResources for lists of service resources (a.k.a
26264	// service projects)
26265	Kind string `json:"kind,omitempty"`
26266
26267	// NextPageToken: [Output Only] This token allows you to get the next
26268	// page of results for list requests. If the number of results is larger
26269	// than maxResults, use the nextPageToken as a value for the query
26270	// parameter pageToken in the next list request. Subsequent list
26271	// requests will have their own nextPageToken to continue paging through
26272	// the results.
26273	NextPageToken string `json:"nextPageToken,omitempty"`
26274
26275	// Resources: Service resources (a.k.a service projects) attached to
26276	// this project as their shared VPC host.
26277	Resources []*XpnResourceId `json:"resources,omitempty"`
26278
26279	// ServerResponse contains the HTTP response code and headers from the
26280	// server.
26281	googleapi.ServerResponse `json:"-"`
26282
26283	// ForceSendFields is a list of field names (e.g. "Kind") to
26284	// unconditionally include in API requests. By default, fields with
26285	// empty values are omitted from API requests. However, any non-pointer,
26286	// non-interface field appearing in ForceSendFields will be sent to the
26287	// server regardless of whether the field is empty or not. This may be
26288	// used to include empty fields in Patch requests.
26289	ForceSendFields []string `json:"-"`
26290
26291	// NullFields is a list of field names (e.g. "Kind") to include in API
26292	// requests with the JSON null value. By default, fields with empty
26293	// values are omitted from API requests. However, any field with an
26294	// empty value appearing in NullFields will be sent to the server as
26295	// null. It is an error if a field in this list has a non-empty value.
26296	// This may be used to include null fields in Patch requests.
26297	NullFields []string `json:"-"`
26298}
26299
26300func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
26301	type NoMethod ProjectsGetXpnResources
26302	raw := NoMethod(*s)
26303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26304}
26305
26306type ProjectsListXpnHostsRequest struct {
26307	// Organization: Optional organization ID managed by Cloud Resource
26308	// Manager, for which to list shared VPC host projects. If not
26309	// specified, the organization will be inferred from the project.
26310	Organization string `json:"organization,omitempty"`
26311
26312	// ForceSendFields is a list of field names (e.g. "Organization") to
26313	// unconditionally include in API requests. By default, fields with
26314	// empty values are omitted from API requests. However, any non-pointer,
26315	// non-interface field appearing in ForceSendFields will be sent to the
26316	// server regardless of whether the field is empty or not. This may be
26317	// used to include empty fields in Patch requests.
26318	ForceSendFields []string `json:"-"`
26319
26320	// NullFields is a list of field names (e.g. "Organization") to include
26321	// in API requests with the JSON null value. By default, fields with
26322	// empty values are omitted from API requests. However, any field with
26323	// an empty value appearing in NullFields will be sent to the server as
26324	// null. It is an error if a field in this list has a non-empty value.
26325	// This may be used to include null fields in Patch requests.
26326	NullFields []string `json:"-"`
26327}
26328
26329func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
26330	type NoMethod ProjectsListXpnHostsRequest
26331	raw := NoMethod(*s)
26332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26333}
26334
26335type ProjectsSetDefaultNetworkTierRequest struct {
26336	// NetworkTier: Default network tier to be set.
26337	//
26338	// Possible values:
26339	//   "PREMIUM"
26340	//   "STANDARD"
26341	NetworkTier string `json:"networkTier,omitempty"`
26342
26343	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
26344	// unconditionally include in API requests. By default, fields with
26345	// empty values are omitted from API requests. However, any non-pointer,
26346	// non-interface field appearing in ForceSendFields will be sent to the
26347	// server regardless of whether the field is empty or not. This may be
26348	// used to include empty fields in Patch requests.
26349	ForceSendFields []string `json:"-"`
26350
26351	// NullFields is a list of field names (e.g. "NetworkTier") to include
26352	// in API requests with the JSON null value. By default, fields with
26353	// empty values are omitted from API requests. However, any field with
26354	// an empty value appearing in NullFields will be sent to the server as
26355	// null. It is an error if a field in this list has a non-empty value.
26356	// This may be used to include null fields in Patch requests.
26357	NullFields []string `json:"-"`
26358}
26359
26360func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
26361	type NoMethod ProjectsSetDefaultNetworkTierRequest
26362	raw := NoMethod(*s)
26363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26364}
26365
26366// Quota: A quotas entry.
26367type Quota struct {
26368	// Limit: [Output Only] Quota limit for this metric.
26369	Limit float64 `json:"limit,omitempty"`
26370
26371	// Metric: [Output Only] Name of the quota metric.
26372	//
26373	// Possible values:
26374	//   "A2_CPUS"
26375	//   "AFFINITY_GROUPS"
26376	//   "AUTOSCALERS"
26377	//   "BACKEND_BUCKETS"
26378	//   "BACKEND_SERVICES"
26379	//   "C2_CPUS"
26380	//   "COMMITMENTS"
26381	//   "COMMITTED_A2_CPUS"
26382	//   "COMMITTED_C2_CPUS"
26383	//   "COMMITTED_CPUS"
26384	//   "COMMITTED_LICENSES"
26385	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
26386	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
26387	//   "COMMITTED_N2D_CPUS"
26388	//   "COMMITTED_N2_CPUS"
26389	//   "COMMITTED_NVIDIA_A100_GPUS"
26390	//   "COMMITTED_NVIDIA_K80_GPUS"
26391	//   "COMMITTED_NVIDIA_P100_GPUS"
26392	//   "COMMITTED_NVIDIA_P4_GPUS"
26393	//   "COMMITTED_NVIDIA_T4_GPUS"
26394	//   "COMMITTED_NVIDIA_V100_GPUS"
26395	//   "CPUS"
26396	//   "CPUS_ALL_REGIONS"
26397	//   "DISKS_TOTAL_GB"
26398	//   "EXTERNAL_VPN_GATEWAYS"
26399	//   "FIREWALLS"
26400	//   "FORWARDING_RULES"
26401	//   "GLOBAL_INTERNAL_ADDRESSES"
26402	//   "GPUS_ALL_REGIONS"
26403	//   "HEALTH_CHECKS"
26404	//   "IMAGES"
26405	//   "INSTANCES"
26406	//   "INSTANCE_GROUPS"
26407	//   "INSTANCE_GROUP_MANAGERS"
26408	//   "INSTANCE_TEMPLATES"
26409	//   "INTERCONNECTS"
26410	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
26411	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
26412	//   "INTERCONNECT_TOTAL_GBPS"
26413	//   "INTERNAL_ADDRESSES"
26414	//   "IN_PLACE_SNAPSHOTS"
26415	//   "IN_USE_ADDRESSES"
26416	//   "IN_USE_BACKUP_SCHEDULES"
26417	//   "IN_USE_SNAPSHOT_SCHEDULES"
26418	//   "LOCAL_SSD_TOTAL_GB"
26419	//   "M1_CPUS"
26420	//   "M2_CPUS"
26421	//   "MACHINE_IMAGES"
26422	//   "N2D_CPUS"
26423	//   "N2_CPUS"
26424	//   "NETWORKS"
26425	//   "NETWORK_ENDPOINT_GROUPS"
26426	//   "NETWORK_FIREWALL_POLICIES"
26427	//   "NODE_GROUPS"
26428	//   "NODE_TEMPLATES"
26429	//   "NVIDIA_A100_GPUS"
26430	//   "NVIDIA_K80_GPUS"
26431	//   "NVIDIA_P100_GPUS"
26432	//   "NVIDIA_P100_VWS_GPUS"
26433	//   "NVIDIA_P4_GPUS"
26434	//   "NVIDIA_P4_VWS_GPUS"
26435	//   "NVIDIA_T4_GPUS"
26436	//   "NVIDIA_T4_VWS_GPUS"
26437	//   "NVIDIA_V100_GPUS"
26438	//   "PACKET_MIRRORINGS"
26439	//   "PREEMPTIBLE_CPUS"
26440	//   "PREEMPTIBLE_LOCAL_SSD_GB"
26441	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
26442	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
26443	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
26444	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
26445	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
26446	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
26447	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
26448	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
26449	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
26450	//   "PUBLIC_ADVERTISED_PREFIXES"
26451	//   "PUBLIC_DELEGATED_PREFIXES"
26452	//   "REGIONAL_AUTOSCALERS"
26453	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
26454	//   "RESERVATIONS"
26455	//   "RESOURCE_POLICIES"
26456	//   "ROUTERS"
26457	//   "ROUTES"
26458	//   "SECURITY_POLICIES"
26459	//   "SECURITY_POLICY_CEVAL_RULES"
26460	//   "SECURITY_POLICY_RULES"
26461	//   "SNAPSHOTS"
26462	//   "SSD_TOTAL_GB"
26463	//   "SSL_CERTIFICATES"
26464	//   "STATIC_ADDRESSES"
26465	//   "STATIC_BYOIP_ADDRESSES"
26466	//   "SUBNETWORKS"
26467	//   "TARGET_HTTPS_PROXIES"
26468	//   "TARGET_HTTP_PROXIES"
26469	//   "TARGET_INSTANCES"
26470	//   "TARGET_POOLS"
26471	//   "TARGET_SSL_PROXIES"
26472	//   "TARGET_TCP_PROXIES"
26473	//   "TARGET_VPN_GATEWAYS"
26474	//   "URL_MAPS"
26475	//   "VPN_GATEWAYS"
26476	//   "VPN_TUNNELS"
26477	Metric string `json:"metric,omitempty"`
26478
26479	// Owner: [Output Only] Owning resource. This is the resource on which
26480	// this quota is applied.
26481	Owner string `json:"owner,omitempty"`
26482
26483	// Usage: [Output Only] Current usage of this metric.
26484	Usage float64 `json:"usage,omitempty"`
26485
26486	// ForceSendFields is a list of field names (e.g. "Limit") to
26487	// unconditionally include in API requests. By default, fields with
26488	// empty values are omitted from API requests. However, any non-pointer,
26489	// non-interface field appearing in ForceSendFields will be sent to the
26490	// server regardless of whether the field is empty or not. This may be
26491	// used to include empty fields in Patch requests.
26492	ForceSendFields []string `json:"-"`
26493
26494	// NullFields is a list of field names (e.g. "Limit") to include in API
26495	// requests with the JSON null value. By default, fields with empty
26496	// values are omitted from API requests. However, any field with an
26497	// empty value appearing in NullFields will be sent to the server as
26498	// null. It is an error if a field in this list has a non-empty value.
26499	// This may be used to include null fields in Patch requests.
26500	NullFields []string `json:"-"`
26501}
26502
26503func (s *Quota) MarshalJSON() ([]byte, error) {
26504	type NoMethod Quota
26505	raw := NoMethod(*s)
26506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26507}
26508
26509func (s *Quota) UnmarshalJSON(data []byte) error {
26510	type NoMethod Quota
26511	var s1 struct {
26512		Limit gensupport.JSONFloat64 `json:"limit"`
26513		Usage gensupport.JSONFloat64 `json:"usage"`
26514		*NoMethod
26515	}
26516	s1.NoMethod = (*NoMethod)(s)
26517	if err := json.Unmarshal(data, &s1); err != nil {
26518		return err
26519	}
26520	s.Limit = float64(s1.Limit)
26521	s.Usage = float64(s1.Usage)
26522	return nil
26523}
26524
26525// Reference: Represents a reference to a resource.
26526type Reference struct {
26527	// Kind: [Output Only] Type of the resource. Always compute#reference
26528	// for references.
26529	Kind string `json:"kind,omitempty"`
26530
26531	// ReferenceType: A description of the reference type with no implied
26532	// semantics. Possible values include:
26533	// - MEMBER_OF
26534	ReferenceType string `json:"referenceType,omitempty"`
26535
26536	// Referrer: URL of the resource which refers to the target.
26537	Referrer string `json:"referrer,omitempty"`
26538
26539	// Target: URL of the resource to which this reference points.
26540	Target string `json:"target,omitempty"`
26541
26542	// ForceSendFields is a list of field names (e.g. "Kind") to
26543	// unconditionally include in API requests. By default, fields with
26544	// empty values are omitted from API requests. However, any non-pointer,
26545	// non-interface field appearing in ForceSendFields will be sent to the
26546	// server regardless of whether the field is empty or not. This may be
26547	// used to include empty fields in Patch requests.
26548	ForceSendFields []string `json:"-"`
26549
26550	// NullFields is a list of field names (e.g. "Kind") to include in API
26551	// requests with the JSON null value. By default, fields with empty
26552	// values are omitted from API requests. However, any field with an
26553	// empty value appearing in NullFields will be sent to the server as
26554	// null. It is an error if a field in this list has a non-empty value.
26555	// This may be used to include null fields in Patch requests.
26556	NullFields []string `json:"-"`
26557}
26558
26559func (s *Reference) MarshalJSON() ([]byte, error) {
26560	type NoMethod Reference
26561	raw := NoMethod(*s)
26562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26563}
26564
26565// Region: Represents a Region resource.
26566//
26567// A region is a geographical area where a resource is located. For more
26568// information, read Regions and Zones. (== resource_for
26569// {$api_version}.regions ==)
26570type Region struct {
26571	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26572	// format.
26573	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26574
26575	// Deprecated: [Output Only] The deprecation status associated with this
26576	// region.
26577	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
26578
26579	// Description: [Output Only] Textual description of the resource.
26580	Description string `json:"description,omitempty"`
26581
26582	// Id: [Output Only] The unique identifier for the resource. This
26583	// identifier is defined by the server.
26584	Id uint64 `json:"id,omitempty,string"`
26585
26586	// Kind: [Output Only] Type of the resource. Always compute#region for
26587	// regions.
26588	Kind string `json:"kind,omitempty"`
26589
26590	// Name: [Output Only] Name of the resource.
26591	Name string `json:"name,omitempty"`
26592
26593	// Quotas: [Output Only] Quotas assigned to this region.
26594	Quotas []*Quota `json:"quotas,omitempty"`
26595
26596	// SelfLink: [Output Only] Server-defined URL for the resource.
26597	SelfLink string `json:"selfLink,omitempty"`
26598
26599	// Status: [Output Only] Status of the region, either UP or DOWN.
26600	//
26601	// Possible values:
26602	//   "DOWN"
26603	//   "UP"
26604	Status string `json:"status,omitempty"`
26605
26606	// Zones: [Output Only] A list of zones available in this region, in the
26607	// form of resource URLs.
26608	Zones []string `json:"zones,omitempty"`
26609
26610	// ServerResponse contains the HTTP response code and headers from the
26611	// server.
26612	googleapi.ServerResponse `json:"-"`
26613
26614	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
26615	// to unconditionally include in API requests. By default, fields with
26616	// empty values are omitted from API requests. However, any non-pointer,
26617	// non-interface field appearing in ForceSendFields will be sent to the
26618	// server regardless of whether the field is empty or not. This may be
26619	// used to include empty fields in Patch requests.
26620	ForceSendFields []string `json:"-"`
26621
26622	// NullFields is a list of field names (e.g. "CreationTimestamp") to
26623	// include in API requests with the JSON null value. By default, fields
26624	// with empty values are omitted from API requests. However, any field
26625	// with an empty value appearing in NullFields will be sent to the
26626	// server as null. It is an error if a field in this list has a
26627	// non-empty value. This may be used to include null fields in Patch
26628	// requests.
26629	NullFields []string `json:"-"`
26630}
26631
26632func (s *Region) MarshalJSON() ([]byte, error) {
26633	type NoMethod Region
26634	raw := NoMethod(*s)
26635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26636}
26637
26638// RegionAutoscalerList: Contains a list of autoscalers.
26639type RegionAutoscalerList struct {
26640	// Id: [Output Only] Unique identifier for the resource; defined by the
26641	// server.
26642	Id string `json:"id,omitempty"`
26643
26644	// Items: A list of Autoscaler resources.
26645	Items []*Autoscaler `json:"items,omitempty"`
26646
26647	// Kind: Type of resource.
26648	Kind string `json:"kind,omitempty"`
26649
26650	// NextPageToken: [Output Only] This token allows you to get the next
26651	// page of results for list requests. If the number of results is larger
26652	// than maxResults, use the nextPageToken as a value for the query
26653	// parameter pageToken in the next list request. Subsequent list
26654	// requests will have their own nextPageToken to continue paging through
26655	// the results.
26656	NextPageToken string `json:"nextPageToken,omitempty"`
26657
26658	// SelfLink: [Output Only] Server-defined URL for this resource.
26659	SelfLink string `json:"selfLink,omitempty"`
26660
26661	// Warning: [Output Only] Informational warning message.
26662	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
26663
26664	// ServerResponse contains the HTTP response code and headers from the
26665	// server.
26666	googleapi.ServerResponse `json:"-"`
26667
26668	// ForceSendFields is a list of field names (e.g. "Id") to
26669	// unconditionally include in API requests. By default, fields with
26670	// empty values are omitted from API requests. However, any non-pointer,
26671	// non-interface field appearing in ForceSendFields will be sent to the
26672	// server regardless of whether the field is empty or not. This may be
26673	// used to include empty fields in Patch requests.
26674	ForceSendFields []string `json:"-"`
26675
26676	// NullFields is a list of field names (e.g. "Id") to include in API
26677	// requests with the JSON null value. By default, fields with empty
26678	// values are omitted from API requests. However, any field with an
26679	// empty value appearing in NullFields will be sent to the server as
26680	// null. It is an error if a field in this list has a non-empty value.
26681	// This may be used to include null fields in Patch requests.
26682	NullFields []string `json:"-"`
26683}
26684
26685func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
26686	type NoMethod RegionAutoscalerList
26687	raw := NoMethod(*s)
26688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26689}
26690
26691// RegionAutoscalerListWarning: [Output Only] Informational warning
26692// message.
26693type RegionAutoscalerListWarning struct {
26694	// Code: [Output Only] A warning code, if applicable. For example,
26695	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26696	// the response.
26697	//
26698	// Possible values:
26699	//   "CLEANUP_FAILED"
26700	//   "DEPRECATED_RESOURCE_USED"
26701	//   "DEPRECATED_TYPE_USED"
26702	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26703	//   "EXPERIMENTAL_TYPE_USED"
26704	//   "EXTERNAL_API_WARNING"
26705	//   "FIELD_VALUE_OVERRIDEN"
26706	//   "INJECTED_KERNELS_DEPRECATED"
26707	//   "MISSING_TYPE_DEPENDENCY"
26708	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26709	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26710	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26711	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26712	//   "NEXT_HOP_NOT_RUNNING"
26713	//   "NOT_CRITICAL_ERROR"
26714	//   "NO_RESULTS_ON_PAGE"
26715	//   "REQUIRED_TOS_AGREEMENT"
26716	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26717	//   "RESOURCE_NOT_DELETED"
26718	//   "SCHEMA_VALIDATION_IGNORED"
26719	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26720	//   "UNDECLARED_PROPERTIES"
26721	//   "UNREACHABLE"
26722	Code string `json:"code,omitempty"`
26723
26724	// Data: [Output Only] Metadata about this warning in key: value format.
26725	// For example:
26726	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26727	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
26728
26729	// Message: [Output Only] A human-readable description of the warning
26730	// code.
26731	Message string `json:"message,omitempty"`
26732
26733	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
26751	type NoMethod RegionAutoscalerListWarning
26752	raw := NoMethod(*s)
26753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26754}
26755
26756type RegionAutoscalerListWarningData struct {
26757	// Key: [Output Only] A key that provides more detail on the warning
26758	// being returned. For example, for warnings where there are no results
26759	// in a list request for a particular zone, this key might be scope and
26760	// the key value might be the zone name. Other examples might be a key
26761	// indicating a deprecated resource and a suggested replacement, or a
26762	// warning about invalid network settings (for example, if an instance
26763	// attempts to perform IP forwarding but is not enabled for IP
26764	// forwarding).
26765	Key string `json:"key,omitempty"`
26766
26767	// Value: [Output Only] A warning data value corresponding to the key.
26768	Value string `json:"value,omitempty"`
26769
26770	// ForceSendFields is a list of field names (e.g. "Key") to
26771	// unconditionally include in API requests. By default, fields with
26772	// empty values are omitted from API requests. However, any non-pointer,
26773	// non-interface field appearing in ForceSendFields will be sent to the
26774	// server regardless of whether the field is empty or not. This may be
26775	// used to include empty fields in Patch requests.
26776	ForceSendFields []string `json:"-"`
26777
26778	// NullFields is a list of field names (e.g. "Key") to include in API
26779	// requests with the JSON null value. By default, fields with empty
26780	// values are omitted from API requests. However, any field with an
26781	// empty value appearing in NullFields will be sent to the server as
26782	// null. It is an error if a field in this list has a non-empty value.
26783	// This may be used to include null fields in Patch requests.
26784	NullFields []string `json:"-"`
26785}
26786
26787func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
26788	type NoMethod RegionAutoscalerListWarningData
26789	raw := NoMethod(*s)
26790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26791}
26792
26793type RegionDiskTypeList struct {
26794	// Id: [Output Only] Unique identifier for the resource; defined by the
26795	// server.
26796	Id string `json:"id,omitempty"`
26797
26798	// Items: A list of DiskType resources.
26799	Items []*DiskType `json:"items,omitempty"`
26800
26801	// Kind: [Output Only] Type of resource. Always
26802	// compute#regionDiskTypeList for region disk types.
26803	Kind string `json:"kind,omitempty"`
26804
26805	// NextPageToken: [Output Only] This token allows you to get the next
26806	// page of results for list requests. If the number of results is larger
26807	// than maxResults, use the nextPageToken as a value for the query
26808	// parameter pageToken in the next list request. Subsequent list
26809	// requests will have their own nextPageToken to continue paging through
26810	// the results.
26811	NextPageToken string `json:"nextPageToken,omitempty"`
26812
26813	// SelfLink: [Output Only] Server-defined URL for this resource.
26814	SelfLink string `json:"selfLink,omitempty"`
26815
26816	// Warning: [Output Only] Informational warning message.
26817	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
26818
26819	// ServerResponse contains the HTTP response code and headers from the
26820	// server.
26821	googleapi.ServerResponse `json:"-"`
26822
26823	// ForceSendFields is a list of field names (e.g. "Id") to
26824	// unconditionally include in API requests. By default, fields with
26825	// empty values are omitted from API requests. However, any non-pointer,
26826	// non-interface field appearing in ForceSendFields will be sent to the
26827	// server regardless of whether the field is empty or not. This may be
26828	// used to include empty fields in Patch requests.
26829	ForceSendFields []string `json:"-"`
26830
26831	// NullFields is a list of field names (e.g. "Id") to include in API
26832	// requests with the JSON null value. By default, fields with empty
26833	// values are omitted from API requests. However, any field with an
26834	// empty value appearing in NullFields will be sent to the server as
26835	// null. It is an error if a field in this list has a non-empty value.
26836	// This may be used to include null fields in Patch requests.
26837	NullFields []string `json:"-"`
26838}
26839
26840func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
26841	type NoMethod RegionDiskTypeList
26842	raw := NoMethod(*s)
26843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26844}
26845
26846// RegionDiskTypeListWarning: [Output Only] Informational warning
26847// message.
26848type RegionDiskTypeListWarning struct {
26849	// Code: [Output Only] A warning code, if applicable. For example,
26850	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26851	// the response.
26852	//
26853	// Possible values:
26854	//   "CLEANUP_FAILED"
26855	//   "DEPRECATED_RESOURCE_USED"
26856	//   "DEPRECATED_TYPE_USED"
26857	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26858	//   "EXPERIMENTAL_TYPE_USED"
26859	//   "EXTERNAL_API_WARNING"
26860	//   "FIELD_VALUE_OVERRIDEN"
26861	//   "INJECTED_KERNELS_DEPRECATED"
26862	//   "MISSING_TYPE_DEPENDENCY"
26863	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26864	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26865	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26866	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26867	//   "NEXT_HOP_NOT_RUNNING"
26868	//   "NOT_CRITICAL_ERROR"
26869	//   "NO_RESULTS_ON_PAGE"
26870	//   "REQUIRED_TOS_AGREEMENT"
26871	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26872	//   "RESOURCE_NOT_DELETED"
26873	//   "SCHEMA_VALIDATION_IGNORED"
26874	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26875	//   "UNDECLARED_PROPERTIES"
26876	//   "UNREACHABLE"
26877	Code string `json:"code,omitempty"`
26878
26879	// Data: [Output Only] Metadata about this warning in key: value format.
26880	// For example:
26881	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26882	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
26883
26884	// Message: [Output Only] A human-readable description of the warning
26885	// code.
26886	Message string `json:"message,omitempty"`
26887
26888	// ForceSendFields is a list of field names (e.g. "Code") to
26889	// unconditionally include in API requests. By default, fields with
26890	// empty values are omitted from API requests. However, any non-pointer,
26891	// non-interface field appearing in ForceSendFields will be sent to the
26892	// server regardless of whether the field is empty or not. This may be
26893	// used to include empty fields in Patch requests.
26894	ForceSendFields []string `json:"-"`
26895
26896	// NullFields is a list of field names (e.g. "Code") to include in API
26897	// requests with the JSON null value. By default, fields with empty
26898	// values are omitted from API requests. However, any field with an
26899	// empty value appearing in NullFields will be sent to the server as
26900	// null. It is an error if a field in this list has a non-empty value.
26901	// This may be used to include null fields in Patch requests.
26902	NullFields []string `json:"-"`
26903}
26904
26905func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
26906	type NoMethod RegionDiskTypeListWarning
26907	raw := NoMethod(*s)
26908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26909}
26910
26911type RegionDiskTypeListWarningData struct {
26912	// Key: [Output Only] A key that provides more detail on the warning
26913	// being returned. For example, for warnings where there are no results
26914	// in a list request for a particular zone, this key might be scope and
26915	// the key value might be the zone name. Other examples might be a key
26916	// indicating a deprecated resource and a suggested replacement, or a
26917	// warning about invalid network settings (for example, if an instance
26918	// attempts to perform IP forwarding but is not enabled for IP
26919	// forwarding).
26920	Key string `json:"key,omitempty"`
26921
26922	// Value: [Output Only] A warning data value corresponding to the key.
26923	Value string `json:"value,omitempty"`
26924
26925	// ForceSendFields is a list of field names (e.g. "Key") to
26926	// unconditionally include in API requests. By default, fields with
26927	// empty values are omitted from API requests. However, any non-pointer,
26928	// non-interface field appearing in ForceSendFields will be sent to the
26929	// server regardless of whether the field is empty or not. This may be
26930	// used to include empty fields in Patch requests.
26931	ForceSendFields []string `json:"-"`
26932
26933	// NullFields is a list of field names (e.g. "Key") to include in API
26934	// requests with the JSON null value. By default, fields with empty
26935	// values are omitted from API requests. However, any field with an
26936	// empty value appearing in NullFields will be sent to the server as
26937	// null. It is an error if a field in this list has a non-empty value.
26938	// This may be used to include null fields in Patch requests.
26939	NullFields []string `json:"-"`
26940}
26941
26942func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
26943	type NoMethod RegionDiskTypeListWarningData
26944	raw := NoMethod(*s)
26945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26946}
26947
26948type RegionDisksAddResourcePoliciesRequest struct {
26949	// ResourcePolicies: Resource policies to be added to this disk.
26950	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
26951
26952	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
26953	// unconditionally include in API requests. By default, fields with
26954	// empty values are omitted from API requests. However, any non-pointer,
26955	// non-interface field appearing in ForceSendFields will be sent to the
26956	// server regardless of whether the field is empty or not. This may be
26957	// used to include empty fields in Patch requests.
26958	ForceSendFields []string `json:"-"`
26959
26960	// NullFields is a list of field names (e.g. "ResourcePolicies") to
26961	// include in API requests with the JSON null value. By default, fields
26962	// with empty values are omitted from API requests. However, any field
26963	// with an empty value appearing in NullFields will be sent to the
26964	// server as null. It is an error if a field in this list has a
26965	// non-empty value. This may be used to include null fields in Patch
26966	// requests.
26967	NullFields []string `json:"-"`
26968}
26969
26970func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
26971	type NoMethod RegionDisksAddResourcePoliciesRequest
26972	raw := NoMethod(*s)
26973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26974}
26975
26976type RegionDisksRemoveResourcePoliciesRequest struct {
26977	// ResourcePolicies: Resource policies to be removed from this disk.
26978	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
26979
26980	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
26981	// unconditionally include in API requests. By default, fields with
26982	// empty values are omitted from API requests. However, any non-pointer,
26983	// non-interface field appearing in ForceSendFields will be sent to the
26984	// server regardless of whether the field is empty or not. This may be
26985	// used to include empty fields in Patch requests.
26986	ForceSendFields []string `json:"-"`
26987
26988	// NullFields is a list of field names (e.g. "ResourcePolicies") to
26989	// include in API requests with the JSON null value. By default, fields
26990	// with empty values are omitted from API requests. However, any field
26991	// with an empty value appearing in NullFields will be sent to the
26992	// server as null. It is an error if a field in this list has a
26993	// non-empty value. This may be used to include null fields in Patch
26994	// requests.
26995	NullFields []string `json:"-"`
26996}
26997
26998func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
26999	type NoMethod RegionDisksRemoveResourcePoliciesRequest
27000	raw := NoMethod(*s)
27001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27002}
27003
27004type RegionDisksResizeRequest struct {
27005	// SizeGb: The new size of the regional persistent disk, which is
27006	// specified in GB.
27007	SizeGb int64 `json:"sizeGb,omitempty,string"`
27008
27009	// ForceSendFields is a list of field names (e.g. "SizeGb") to
27010	// unconditionally include in API requests. By default, fields with
27011	// empty values are omitted from API requests. However, any non-pointer,
27012	// non-interface field appearing in ForceSendFields will be sent to the
27013	// server regardless of whether the field is empty or not. This may be
27014	// used to include empty fields in Patch requests.
27015	ForceSendFields []string `json:"-"`
27016
27017	// NullFields is a list of field names (e.g. "SizeGb") to include in API
27018	// requests with the JSON null value. By default, fields with empty
27019	// values are omitted from API requests. However, any field with an
27020	// empty value appearing in NullFields will be sent to the server as
27021	// null. It is an error if a field in this list has a non-empty value.
27022	// This may be used to include null fields in Patch requests.
27023	NullFields []string `json:"-"`
27024}
27025
27026func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
27027	type NoMethod RegionDisksResizeRequest
27028	raw := NoMethod(*s)
27029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27030}
27031
27032// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
27033type RegionInstanceGroupList struct {
27034	// Id: [Output Only] Unique identifier for the resource; defined by the
27035	// server.
27036	Id string `json:"id,omitempty"`
27037
27038	// Items: A list of InstanceGroup resources.
27039	Items []*InstanceGroup `json:"items,omitempty"`
27040
27041	// Kind: The resource type.
27042	Kind string `json:"kind,omitempty"`
27043
27044	// NextPageToken: [Output Only] This token allows you to get the next
27045	// page of results for list requests. If the number of results is larger
27046	// than maxResults, use the nextPageToken as a value for the query
27047	// parameter pageToken in the next list request. Subsequent list
27048	// requests will have their own nextPageToken to continue paging through
27049	// the results.
27050	NextPageToken string `json:"nextPageToken,omitempty"`
27051
27052	// SelfLink: [Output Only] Server-defined URL for this resource.
27053	SelfLink string `json:"selfLink,omitempty"`
27054
27055	// Warning: [Output Only] Informational warning message.
27056	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
27057
27058	// ServerResponse contains the HTTP response code and headers from the
27059	// server.
27060	googleapi.ServerResponse `json:"-"`
27061
27062	// ForceSendFields is a list of field names (e.g. "Id") to
27063	// unconditionally include in API requests. By default, fields with
27064	// empty values are omitted from API requests. However, any non-pointer,
27065	// non-interface field appearing in ForceSendFields will be sent to the
27066	// server regardless of whether the field is empty or not. This may be
27067	// used to include empty fields in Patch requests.
27068	ForceSendFields []string `json:"-"`
27069
27070	// NullFields is a list of field names (e.g. "Id") to include in API
27071	// requests with the JSON null value. By default, fields with empty
27072	// values are omitted from API requests. However, any field with an
27073	// empty value appearing in NullFields will be sent to the server as
27074	// null. It is an error if a field in this list has a non-empty value.
27075	// This may be used to include null fields in Patch requests.
27076	NullFields []string `json:"-"`
27077}
27078
27079func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
27080	type NoMethod RegionInstanceGroupList
27081	raw := NoMethod(*s)
27082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27083}
27084
27085// RegionInstanceGroupListWarning: [Output Only] Informational warning
27086// message.
27087type RegionInstanceGroupListWarning struct {
27088	// Code: [Output Only] A warning code, if applicable. For example,
27089	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27090	// the response.
27091	//
27092	// Possible values:
27093	//   "CLEANUP_FAILED"
27094	//   "DEPRECATED_RESOURCE_USED"
27095	//   "DEPRECATED_TYPE_USED"
27096	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27097	//   "EXPERIMENTAL_TYPE_USED"
27098	//   "EXTERNAL_API_WARNING"
27099	//   "FIELD_VALUE_OVERRIDEN"
27100	//   "INJECTED_KERNELS_DEPRECATED"
27101	//   "MISSING_TYPE_DEPENDENCY"
27102	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27103	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27104	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27105	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27106	//   "NEXT_HOP_NOT_RUNNING"
27107	//   "NOT_CRITICAL_ERROR"
27108	//   "NO_RESULTS_ON_PAGE"
27109	//   "REQUIRED_TOS_AGREEMENT"
27110	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27111	//   "RESOURCE_NOT_DELETED"
27112	//   "SCHEMA_VALIDATION_IGNORED"
27113	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27114	//   "UNDECLARED_PROPERTIES"
27115	//   "UNREACHABLE"
27116	Code string `json:"code,omitempty"`
27117
27118	// Data: [Output Only] Metadata about this warning in key: value format.
27119	// For example:
27120	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27121	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
27122
27123	// Message: [Output Only] A human-readable description of the warning
27124	// code.
27125	Message string `json:"message,omitempty"`
27126
27127	// ForceSendFields is a list of field names (e.g. "Code") to
27128	// unconditionally include in API requests. By default, fields with
27129	// empty values are omitted from API requests. However, any non-pointer,
27130	// non-interface field appearing in ForceSendFields will be sent to the
27131	// server regardless of whether the field is empty or not. This may be
27132	// used to include empty fields in Patch requests.
27133	ForceSendFields []string `json:"-"`
27134
27135	// NullFields is a list of field names (e.g. "Code") to include in API
27136	// requests with the JSON null value. By default, fields with empty
27137	// values are omitted from API requests. However, any field with an
27138	// empty value appearing in NullFields will be sent to the server as
27139	// null. It is an error if a field in this list has a non-empty value.
27140	// This may be used to include null fields in Patch requests.
27141	NullFields []string `json:"-"`
27142}
27143
27144func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
27145	type NoMethod RegionInstanceGroupListWarning
27146	raw := NoMethod(*s)
27147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27148}
27149
27150type RegionInstanceGroupListWarningData struct {
27151	// Key: [Output Only] A key that provides more detail on the warning
27152	// being returned. For example, for warnings where there are no results
27153	// in a list request for a particular zone, this key might be scope and
27154	// the key value might be the zone name. Other examples might be a key
27155	// indicating a deprecated resource and a suggested replacement, or a
27156	// warning about invalid network settings (for example, if an instance
27157	// attempts to perform IP forwarding but is not enabled for IP
27158	// forwarding).
27159	Key string `json:"key,omitempty"`
27160
27161	// Value: [Output Only] A warning data value corresponding to the key.
27162	Value string `json:"value,omitempty"`
27163
27164	// ForceSendFields is a list of field names (e.g. "Key") to
27165	// unconditionally include in API requests. By default, fields with
27166	// empty values are omitted from API requests. However, any non-pointer,
27167	// non-interface field appearing in ForceSendFields will be sent to the
27168	// server regardless of whether the field is empty or not. This may be
27169	// used to include empty fields in Patch requests.
27170	ForceSendFields []string `json:"-"`
27171
27172	// NullFields is a list of field names (e.g. "Key") to include in API
27173	// requests with the JSON null value. By default, fields with empty
27174	// values are omitted from API requests. However, any field with an
27175	// empty value appearing in NullFields will be sent to the server as
27176	// null. It is an error if a field in this list has a non-empty value.
27177	// This may be used to include null fields in Patch requests.
27178	NullFields []string `json:"-"`
27179}
27180
27181func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
27182	type NoMethod RegionInstanceGroupListWarningData
27183	raw := NoMethod(*s)
27184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27185}
27186
27187// RegionInstanceGroupManagerList: Contains a list of managed instance
27188// groups.
27189type RegionInstanceGroupManagerList struct {
27190	// Id: [Output Only] Unique identifier for the resource; defined by the
27191	// server.
27192	Id string `json:"id,omitempty"`
27193
27194	// Items: A list of InstanceGroupManager resources.
27195	Items []*InstanceGroupManager `json:"items,omitempty"`
27196
27197	// Kind: [Output Only] The resource type, which is always
27198	// compute#instanceGroupManagerList for a list of managed instance
27199	// groups that exist in th regional scope.
27200	Kind string `json:"kind,omitempty"`
27201
27202	// NextPageToken: [Output Only] This token allows you to get the next
27203	// page of results for list requests. If the number of results is larger
27204	// than maxResults, use the nextPageToken as a value for the query
27205	// parameter pageToken in the next list request. Subsequent list
27206	// requests will have their own nextPageToken to continue paging through
27207	// the results.
27208	NextPageToken string `json:"nextPageToken,omitempty"`
27209
27210	// SelfLink: [Output Only] Server-defined URL for this resource.
27211	SelfLink string `json:"selfLink,omitempty"`
27212
27213	// Warning: [Output Only] Informational warning message.
27214	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
27215
27216	// ServerResponse contains the HTTP response code and headers from the
27217	// server.
27218	googleapi.ServerResponse `json:"-"`
27219
27220	// ForceSendFields is a list of field names (e.g. "Id") to
27221	// unconditionally include in API requests. By default, fields with
27222	// empty values are omitted from API requests. However, any non-pointer,
27223	// non-interface field appearing in ForceSendFields will be sent to the
27224	// server regardless of whether the field is empty or not. This may be
27225	// used to include empty fields in Patch requests.
27226	ForceSendFields []string `json:"-"`
27227
27228	// NullFields is a list of field names (e.g. "Id") to include in API
27229	// requests with the JSON null value. By default, fields with empty
27230	// values are omitted from API requests. However, any field with an
27231	// empty value appearing in NullFields will be sent to the server as
27232	// null. It is an error if a field in this list has a non-empty value.
27233	// This may be used to include null fields in Patch requests.
27234	NullFields []string `json:"-"`
27235}
27236
27237func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
27238	type NoMethod RegionInstanceGroupManagerList
27239	raw := NoMethod(*s)
27240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27241}
27242
27243// RegionInstanceGroupManagerListWarning: [Output Only] Informational
27244// warning message.
27245type RegionInstanceGroupManagerListWarning struct {
27246	// Code: [Output Only] A warning code, if applicable. For example,
27247	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27248	// the response.
27249	//
27250	// Possible values:
27251	//   "CLEANUP_FAILED"
27252	//   "DEPRECATED_RESOURCE_USED"
27253	//   "DEPRECATED_TYPE_USED"
27254	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27255	//   "EXPERIMENTAL_TYPE_USED"
27256	//   "EXTERNAL_API_WARNING"
27257	//   "FIELD_VALUE_OVERRIDEN"
27258	//   "INJECTED_KERNELS_DEPRECATED"
27259	//   "MISSING_TYPE_DEPENDENCY"
27260	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27261	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27262	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27263	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27264	//   "NEXT_HOP_NOT_RUNNING"
27265	//   "NOT_CRITICAL_ERROR"
27266	//   "NO_RESULTS_ON_PAGE"
27267	//   "REQUIRED_TOS_AGREEMENT"
27268	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27269	//   "RESOURCE_NOT_DELETED"
27270	//   "SCHEMA_VALIDATION_IGNORED"
27271	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27272	//   "UNDECLARED_PROPERTIES"
27273	//   "UNREACHABLE"
27274	Code string `json:"code,omitempty"`
27275
27276	// Data: [Output Only] Metadata about this warning in key: value format.
27277	// For example:
27278	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27279	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
27280
27281	// Message: [Output Only] A human-readable description of the warning
27282	// code.
27283	Message string `json:"message,omitempty"`
27284
27285	// ForceSendFields is a list of field names (e.g. "Code") to
27286	// unconditionally include in API requests. By default, fields with
27287	// empty values are omitted from API requests. However, any non-pointer,
27288	// non-interface field appearing in ForceSendFields will be sent to the
27289	// server regardless of whether the field is empty or not. This may be
27290	// used to include empty fields in Patch requests.
27291	ForceSendFields []string `json:"-"`
27292
27293	// NullFields is a list of field names (e.g. "Code") to include in API
27294	// requests with the JSON null value. By default, fields with empty
27295	// values are omitted from API requests. However, any field with an
27296	// empty value appearing in NullFields will be sent to the server as
27297	// null. It is an error if a field in this list has a non-empty value.
27298	// This may be used to include null fields in Patch requests.
27299	NullFields []string `json:"-"`
27300}
27301
27302func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
27303	type NoMethod RegionInstanceGroupManagerListWarning
27304	raw := NoMethod(*s)
27305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27306}
27307
27308type RegionInstanceGroupManagerListWarningData struct {
27309	// Key: [Output Only] A key that provides more detail on the warning
27310	// being returned. For example, for warnings where there are no results
27311	// in a list request for a particular zone, this key might be scope and
27312	// the key value might be the zone name. Other examples might be a key
27313	// indicating a deprecated resource and a suggested replacement, or a
27314	// warning about invalid network settings (for example, if an instance
27315	// attempts to perform IP forwarding but is not enabled for IP
27316	// forwarding).
27317	Key string `json:"key,omitempty"`
27318
27319	// Value: [Output Only] A warning data value corresponding to the key.
27320	Value string `json:"value,omitempty"`
27321
27322	// ForceSendFields is a list of field names (e.g. "Key") to
27323	// unconditionally include in API requests. By default, fields with
27324	// empty values are omitted from API requests. However, any non-pointer,
27325	// non-interface field appearing in ForceSendFields will be sent to the
27326	// server regardless of whether the field is empty or not. This may be
27327	// used to include empty fields in Patch requests.
27328	ForceSendFields []string `json:"-"`
27329
27330	// NullFields is a list of field names (e.g. "Key") to include in API
27331	// requests with the JSON null value. By default, fields with empty
27332	// values are omitted from API requests. However, any field with an
27333	// empty value appearing in NullFields will be sent to the server as
27334	// null. It is an error if a field in this list has a non-empty value.
27335	// This may be used to include null fields in Patch requests.
27336	NullFields []string `json:"-"`
27337}
27338
27339func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
27340	type NoMethod RegionInstanceGroupManagerListWarningData
27341	raw := NoMethod(*s)
27342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27343}
27344
27345type RegionInstanceGroupManagersAbandonInstancesRequest struct {
27346	// Instances: The URLs of one or more instances to abandon. This can be
27347	// a full URL or a partial URL, such as
27348	// zones/[ZONE]/instances/[INSTANCE_NAME].
27349	Instances []string `json:"instances,omitempty"`
27350
27351	// ForceSendFields is a list of field names (e.g. "Instances") to
27352	// unconditionally include in API requests. By default, fields with
27353	// empty values are omitted from API requests. However, any non-pointer,
27354	// non-interface field appearing in ForceSendFields will be sent to the
27355	// server regardless of whether the field is empty or not. This may be
27356	// used to include empty fields in Patch requests.
27357	ForceSendFields []string `json:"-"`
27358
27359	// NullFields is a list of field names (e.g. "Instances") to include in
27360	// API requests with the JSON null value. By default, fields with empty
27361	// values are omitted from API requests. However, any field with an
27362	// empty value appearing in NullFields will be sent to the server as
27363	// null. It is an error if a field in this list has a non-empty value.
27364	// This may be used to include null fields in Patch requests.
27365	NullFields []string `json:"-"`
27366}
27367
27368func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
27369	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
27370	raw := NoMethod(*s)
27371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27372}
27373
27374// RegionInstanceGroupManagersApplyUpdatesRequest:
27375// InstanceGroupManagers.applyUpdatesToInstances
27376type RegionInstanceGroupManagersApplyUpdatesRequest struct {
27377	// Instances: The list of URLs of one or more instances for which you
27378	// want to apply updates. Each URL can be a full URL or a partial URL,
27379	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
27380	Instances []string `json:"instances,omitempty"`
27381
27382	// MinimalAction: The minimal action that you want to perform on each
27383	// instance during the update:
27384	// - REPLACE: At minimum, delete the instance and create it again.
27385	// - RESTART: Stop the instance and start it again.
27386	// - REFRESH: Do not stop the instance.
27387	// - NONE: Do not disrupt the instance at all.  By default, the minimum
27388	// action is NONE. If your update requires a more disruptive action than
27389	// you set with this flag, the necessary action is performed to execute
27390	// the update.
27391	//
27392	// Possible values:
27393	//   "NONE"
27394	//   "REFRESH"
27395	//   "REPLACE"
27396	//   "RESTART"
27397	MinimalAction string `json:"minimalAction,omitempty"`
27398
27399	// MostDisruptiveAllowedAction: The most disruptive action that you want
27400	// to perform on each instance during the update:
27401	// - REPLACE: Delete the instance and create it again.
27402	// - RESTART: Stop the instance and start it again.
27403	// - REFRESH: Do not stop the instance.
27404	// - NONE: Do not disrupt the instance at all.  By default, the most
27405	// disruptive allowed action is REPLACE. If your update requires a more
27406	// disruptive action than you set with this flag, the update request
27407	// will fail.
27408	//
27409	// Possible values:
27410	//   "NONE"
27411	//   "REFRESH"
27412	//   "REPLACE"
27413	//   "RESTART"
27414	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
27415
27416	// ForceSendFields is a list of field names (e.g. "Instances") to
27417	// unconditionally include in API requests. By default, fields with
27418	// empty values are omitted from API requests. However, any non-pointer,
27419	// non-interface field appearing in ForceSendFields will be sent to the
27420	// server regardless of whether the field is empty or not. This may be
27421	// used to include empty fields in Patch requests.
27422	ForceSendFields []string `json:"-"`
27423
27424	// NullFields is a list of field names (e.g. "Instances") to include in
27425	// API requests with the JSON null value. By default, fields with empty
27426	// values are omitted from API requests. However, any field with an
27427	// empty value appearing in NullFields will be sent to the server as
27428	// null. It is an error if a field in this list has a non-empty value.
27429	// This may be used to include null fields in Patch requests.
27430	NullFields []string `json:"-"`
27431}
27432
27433func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
27434	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
27435	raw := NoMethod(*s)
27436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27437}
27438
27439// RegionInstanceGroupManagersCreateInstancesRequest:
27440// RegionInstanceGroupManagers.createInstances
27441type RegionInstanceGroupManagersCreateInstancesRequest struct {
27442	// Instances: [Required] List of specifications of per-instance configs.
27443	Instances []*PerInstanceConfig `json:"instances,omitempty"`
27444
27445	// ForceSendFields is a list of field names (e.g. "Instances") to
27446	// unconditionally include in API requests. By default, fields with
27447	// empty values are omitted from API requests. However, any non-pointer,
27448	// non-interface field appearing in ForceSendFields will be sent to the
27449	// server regardless of whether the field is empty or not. This may be
27450	// used to include empty fields in Patch requests.
27451	ForceSendFields []string `json:"-"`
27452
27453	// NullFields is a list of field names (e.g. "Instances") to include in
27454	// API requests with the JSON null value. By default, fields with empty
27455	// values are omitted from API requests. However, any field with an
27456	// empty value appearing in NullFields will be sent to the server as
27457	// null. It is an error if a field in this list has a non-empty value.
27458	// This may be used to include null fields in Patch requests.
27459	NullFields []string `json:"-"`
27460}
27461
27462func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
27463	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
27464	raw := NoMethod(*s)
27465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27466}
27467
27468type RegionInstanceGroupManagersDeleteInstancesRequest struct {
27469	// Instances: The URLs of one or more instances to delete. This can be a
27470	// full URL or a partial URL, such as
27471	// zones/[ZONE]/instances/[INSTANCE_NAME].
27472	Instances []string `json:"instances,omitempty"`
27473
27474	// ForceSendFields is a list of field names (e.g. "Instances") to
27475	// unconditionally include in API requests. By default, fields with
27476	// empty values are omitted from API requests. However, any non-pointer,
27477	// non-interface field appearing in ForceSendFields will be sent to the
27478	// server regardless of whether the field is empty or not. This may be
27479	// used to include empty fields in Patch requests.
27480	ForceSendFields []string `json:"-"`
27481
27482	// NullFields is a list of field names (e.g. "Instances") to include in
27483	// API requests with the JSON null value. By default, fields with empty
27484	// values are omitted from API requests. However, any field with an
27485	// empty value appearing in NullFields will be sent to the server as
27486	// null. It is an error if a field in this list has a non-empty value.
27487	// This may be used to include null fields in Patch requests.
27488	NullFields []string `json:"-"`
27489}
27490
27491func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
27492	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
27493	raw := NoMethod(*s)
27494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27495}
27496
27497type RegionInstanceGroupManagersListErrorsResponse struct {
27498	// Items: [Output Only] The list of errors of the managed instance
27499	// group.
27500	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
27501
27502	// NextPageToken: [Output Only] This token allows you to get the next
27503	// page of results for list requests. If the number of results is larger
27504	// than maxResults, use the nextPageToken as a value for the query
27505	// parameter pageToken in the next list request. Subsequent list
27506	// requests will have their own nextPageToken to continue paging through
27507	// the results.
27508	NextPageToken string `json:"nextPageToken,omitempty"`
27509
27510	// ServerResponse contains the HTTP response code and headers from the
27511	// server.
27512	googleapi.ServerResponse `json:"-"`
27513
27514	// ForceSendFields is a list of field names (e.g. "Items") to
27515	// unconditionally include in API requests. By default, fields with
27516	// empty values are omitted from API requests. However, any non-pointer,
27517	// non-interface field appearing in ForceSendFields will be sent to the
27518	// server regardless of whether the field is empty or not. This may be
27519	// used to include empty fields in Patch requests.
27520	ForceSendFields []string `json:"-"`
27521
27522	// NullFields is a list of field names (e.g. "Items") to include in API
27523	// requests with the JSON null value. By default, fields with empty
27524	// values are omitted from API requests. However, any field with an
27525	// empty value appearing in NullFields will be sent to the server as
27526	// null. It is an error if a field in this list has a non-empty value.
27527	// This may be used to include null fields in Patch requests.
27528	NullFields []string `json:"-"`
27529}
27530
27531func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
27532	type NoMethod RegionInstanceGroupManagersListErrorsResponse
27533	raw := NoMethod(*s)
27534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27535}
27536
27537type RegionInstanceGroupManagersListInstancesResponse struct {
27538	// ManagedInstances: A list of managed instances.
27539	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
27540
27541	// NextPageToken: [Output Only] This token allows you to get the next
27542	// page of results for list requests. If the number of results is larger
27543	// than maxResults, use the nextPageToken as a value for the query
27544	// parameter pageToken in the next list request. Subsequent list
27545	// requests will have their own nextPageToken to continue paging through
27546	// the results.
27547	NextPageToken string `json:"nextPageToken,omitempty"`
27548
27549	// ServerResponse contains the HTTP response code and headers from the
27550	// server.
27551	googleapi.ServerResponse `json:"-"`
27552
27553	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
27554	// unconditionally include in API requests. By default, fields with
27555	// empty values are omitted from API requests. However, any non-pointer,
27556	// non-interface field appearing in ForceSendFields will be sent to the
27557	// server regardless of whether the field is empty or not. This may be
27558	// used to include empty fields in Patch requests.
27559	ForceSendFields []string `json:"-"`
27560
27561	// NullFields is a list of field names (e.g. "ManagedInstances") to
27562	// include in API requests with the JSON null value. By default, fields
27563	// with empty values are omitted from API requests. However, any field
27564	// with an empty value appearing in NullFields will be sent to the
27565	// server as null. It is an error if a field in this list has a
27566	// non-empty value. This may be used to include null fields in Patch
27567	// requests.
27568	NullFields []string `json:"-"`
27569}
27570
27571func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
27572	type NoMethod RegionInstanceGroupManagersListInstancesResponse
27573	raw := NoMethod(*s)
27574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27575}
27576
27577type RegionInstanceGroupManagersRecreateRequest struct {
27578	// Instances: The URLs of one or more instances to recreate. This can be
27579	// a full URL or a partial URL, such as
27580	// zones/[ZONE]/instances/[INSTANCE_NAME].
27581	Instances []string `json:"instances,omitempty"`
27582
27583	// ForceSendFields is a list of field names (e.g. "Instances") 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. "Instances") to include in
27592	// API requests with the JSON null value. By default, fields with empty
27593	// values are omitted from API requests. However, any field with an
27594	// empty value appearing in NullFields will be sent to the server as
27595	// null. It is an error if a field in this list has a non-empty value.
27596	// This may be used to include null fields in Patch requests.
27597	NullFields []string `json:"-"`
27598}
27599
27600func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
27601	type NoMethod RegionInstanceGroupManagersRecreateRequest
27602	raw := NoMethod(*s)
27603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27604}
27605
27606type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
27607	// Fingerprint: Fingerprint of the target pools information, which is a
27608	// hash of the contents. This field is used for optimistic locking when
27609	// you update the target pool entries. This field is optional.
27610	Fingerprint string `json:"fingerprint,omitempty"`
27611
27612	// TargetPools: The URL of all TargetPool resources to which instances
27613	// in the instanceGroup field are added. The target pools automatically
27614	// apply to all of the instances in the managed instance group.
27615	TargetPools []string `json:"targetPools,omitempty"`
27616
27617	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
27618	// unconditionally include in API requests. By default, fields with
27619	// empty values are omitted from API requests. However, any non-pointer,
27620	// non-interface field appearing in ForceSendFields will be sent to the
27621	// server regardless of whether the field is empty or not. This may be
27622	// used to include empty fields in Patch requests.
27623	ForceSendFields []string `json:"-"`
27624
27625	// NullFields is a list of field names (e.g. "Fingerprint") to include
27626	// in API requests with the JSON null value. By default, fields with
27627	// empty values are omitted from API requests. However, any field with
27628	// an empty value appearing in NullFields will be sent to the server as
27629	// null. It is an error if a field in this list has a non-empty value.
27630	// This may be used to include null fields in Patch requests.
27631	NullFields []string `json:"-"`
27632}
27633
27634func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
27635	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
27636	raw := NoMethod(*s)
27637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27638}
27639
27640type RegionInstanceGroupManagersSetTemplateRequest struct {
27641	// InstanceTemplate: URL of the InstanceTemplate resource from which all
27642	// new instances will be created.
27643	InstanceTemplate string `json:"instanceTemplate,omitempty"`
27644
27645	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
27646	// unconditionally include in API requests. By default, fields with
27647	// empty values are omitted from API requests. However, any non-pointer,
27648	// non-interface field appearing in ForceSendFields will be sent to the
27649	// server regardless of whether the field is empty or not. This may be
27650	// used to include empty fields in Patch requests.
27651	ForceSendFields []string `json:"-"`
27652
27653	// NullFields is a list of field names (e.g. "InstanceTemplate") to
27654	// include in API requests with the JSON null value. By default, fields
27655	// with empty values are omitted from API requests. However, any field
27656	// with an empty value appearing in NullFields will be sent to the
27657	// server as null. It is an error if a field in this list has a
27658	// non-empty value. This may be used to include null fields in Patch
27659	// requests.
27660	NullFields []string `json:"-"`
27661}
27662
27663func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
27664	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
27665	raw := NoMethod(*s)
27666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27667}
27668
27669type RegionInstanceGroupsListInstances struct {
27670	// Id: [Output Only] Unique identifier for the resource; defined by the
27671	// server.
27672	Id string `json:"id,omitempty"`
27673
27674	// Items: A list of InstanceWithNamedPorts resources.
27675	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
27676
27677	// Kind: The resource type.
27678	Kind string `json:"kind,omitempty"`
27679
27680	// NextPageToken: [Output Only] This token allows you to get the next
27681	// page of results for list requests. If the number of results is larger
27682	// than maxResults, use the nextPageToken as a value for the query
27683	// parameter pageToken in the next list request. Subsequent list
27684	// requests will have their own nextPageToken to continue paging through
27685	// the results.
27686	NextPageToken string `json:"nextPageToken,omitempty"`
27687
27688	// SelfLink: [Output Only] Server-defined URL for this resource.
27689	SelfLink string `json:"selfLink,omitempty"`
27690
27691	// Warning: [Output Only] Informational warning message.
27692	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
27693
27694	// ServerResponse contains the HTTP response code and headers from the
27695	// server.
27696	googleapi.ServerResponse `json:"-"`
27697
27698	// ForceSendFields is a list of field names (e.g. "Id") to
27699	// unconditionally include in API requests. By default, fields with
27700	// empty values are omitted from API requests. However, any non-pointer,
27701	// non-interface field appearing in ForceSendFields will be sent to the
27702	// server regardless of whether the field is empty or not. This may be
27703	// used to include empty fields in Patch requests.
27704	ForceSendFields []string `json:"-"`
27705
27706	// NullFields is a list of field names (e.g. "Id") to include in API
27707	// requests with the JSON null value. By default, fields with empty
27708	// values are omitted from API requests. However, any field with an
27709	// empty value appearing in NullFields will be sent to the server as
27710	// null. It is an error if a field in this list has a non-empty value.
27711	// This may be used to include null fields in Patch requests.
27712	NullFields []string `json:"-"`
27713}
27714
27715func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
27716	type NoMethod RegionInstanceGroupsListInstances
27717	raw := NoMethod(*s)
27718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27719}
27720
27721// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
27722// warning message.
27723type RegionInstanceGroupsListInstancesWarning struct {
27724	// Code: [Output Only] A warning code, if applicable. For example,
27725	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27726	// the response.
27727	//
27728	// Possible values:
27729	//   "CLEANUP_FAILED"
27730	//   "DEPRECATED_RESOURCE_USED"
27731	//   "DEPRECATED_TYPE_USED"
27732	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27733	//   "EXPERIMENTAL_TYPE_USED"
27734	//   "EXTERNAL_API_WARNING"
27735	//   "FIELD_VALUE_OVERRIDEN"
27736	//   "INJECTED_KERNELS_DEPRECATED"
27737	//   "MISSING_TYPE_DEPENDENCY"
27738	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27739	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27740	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27741	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27742	//   "NEXT_HOP_NOT_RUNNING"
27743	//   "NOT_CRITICAL_ERROR"
27744	//   "NO_RESULTS_ON_PAGE"
27745	//   "REQUIRED_TOS_AGREEMENT"
27746	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27747	//   "RESOURCE_NOT_DELETED"
27748	//   "SCHEMA_VALIDATION_IGNORED"
27749	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27750	//   "UNDECLARED_PROPERTIES"
27751	//   "UNREACHABLE"
27752	Code string `json:"code,omitempty"`
27753
27754	// Data: [Output Only] Metadata about this warning in key: value format.
27755	// For example:
27756	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27757	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
27758
27759	// Message: [Output Only] A human-readable description of the warning
27760	// code.
27761	Message string `json:"message,omitempty"`
27762
27763	// ForceSendFields is a list of field names (e.g. "Code") to
27764	// unconditionally include in API requests. By default, fields with
27765	// empty values are omitted from API requests. However, any non-pointer,
27766	// non-interface field appearing in ForceSendFields will be sent to the
27767	// server regardless of whether the field is empty or not. This may be
27768	// used to include empty fields in Patch requests.
27769	ForceSendFields []string `json:"-"`
27770
27771	// NullFields is a list of field names (e.g. "Code") to include in API
27772	// requests with the JSON null value. By default, fields with empty
27773	// values are omitted from API requests. However, any field with an
27774	// empty value appearing in NullFields will be sent to the server as
27775	// null. It is an error if a field in this list has a non-empty value.
27776	// This may be used to include null fields in Patch requests.
27777	NullFields []string `json:"-"`
27778}
27779
27780func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
27781	type NoMethod RegionInstanceGroupsListInstancesWarning
27782	raw := NoMethod(*s)
27783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27784}
27785
27786type RegionInstanceGroupsListInstancesWarningData struct {
27787	// Key: [Output Only] A key that provides more detail on the warning
27788	// being returned. For example, for warnings where there are no results
27789	// in a list request for a particular zone, this key might be scope and
27790	// the key value might be the zone name. Other examples might be a key
27791	// indicating a deprecated resource and a suggested replacement, or a
27792	// warning about invalid network settings (for example, if an instance
27793	// attempts to perform IP forwarding but is not enabled for IP
27794	// forwarding).
27795	Key string `json:"key,omitempty"`
27796
27797	// Value: [Output Only] A warning data value corresponding to the key.
27798	Value string `json:"value,omitempty"`
27799
27800	// ForceSendFields is a list of field names (e.g. "Key") to
27801	// unconditionally include in API requests. By default, fields with
27802	// empty values are omitted from API requests. However, any non-pointer,
27803	// non-interface field appearing in ForceSendFields will be sent to the
27804	// server regardless of whether the field is empty or not. This may be
27805	// used to include empty fields in Patch requests.
27806	ForceSendFields []string `json:"-"`
27807
27808	// NullFields is a list of field names (e.g. "Key") to include in API
27809	// requests with the JSON null value. By default, fields with empty
27810	// values are omitted from API requests. However, any field with an
27811	// empty value appearing in NullFields will be sent to the server as
27812	// null. It is an error if a field in this list has a non-empty value.
27813	// This may be used to include null fields in Patch requests.
27814	NullFields []string `json:"-"`
27815}
27816
27817func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
27818	type NoMethod RegionInstanceGroupsListInstancesWarningData
27819	raw := NoMethod(*s)
27820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27821}
27822
27823type RegionInstanceGroupsListInstancesRequest struct {
27824	// InstanceState: Instances in which state should be returned. Valid
27825	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
27826	//
27827	// Possible values:
27828	//   "ALL"
27829	//   "RUNNING"
27830	InstanceState string `json:"instanceState,omitempty"`
27831
27832	// PortName: Name of port user is interested in. It is optional. If it
27833	// is set, only information about this ports will be returned. If it is
27834	// not set, all the named ports will be returned. Always lists all
27835	// instances.
27836	PortName string `json:"portName,omitempty"`
27837
27838	// ForceSendFields is a list of field names (e.g. "InstanceState") to
27839	// unconditionally include in API requests. By default, fields with
27840	// empty values are omitted from API requests. However, any non-pointer,
27841	// non-interface field appearing in ForceSendFields will be sent to the
27842	// server regardless of whether the field is empty or not. This may be
27843	// used to include empty fields in Patch requests.
27844	ForceSendFields []string `json:"-"`
27845
27846	// NullFields is a list of field names (e.g. "InstanceState") to include
27847	// in API requests with the JSON null value. By default, fields with
27848	// empty values are omitted from API requests. However, any field with
27849	// an empty value appearing in NullFields will be sent to the server as
27850	// null. It is an error if a field in this list has a non-empty value.
27851	// This may be used to include null fields in Patch requests.
27852	NullFields []string `json:"-"`
27853}
27854
27855func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
27856	type NoMethod RegionInstanceGroupsListInstancesRequest
27857	raw := NoMethod(*s)
27858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27859}
27860
27861type RegionInstanceGroupsSetNamedPortsRequest struct {
27862	// Fingerprint: The fingerprint of the named ports information for this
27863	// instance group. Use this optional property to prevent conflicts when
27864	// multiple users change the named ports settings concurrently. Obtain
27865	// the fingerprint with the instanceGroups.get method. Then, include the
27866	// fingerprint in your request to ensure that you do not overwrite
27867	// changes that were applied from another concurrent request.
27868	Fingerprint string `json:"fingerprint,omitempty"`
27869
27870	// NamedPorts: The list of named ports to set for this instance group.
27871	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
27872
27873	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
27874	// unconditionally include in API requests. By default, fields with
27875	// empty values are omitted from API requests. However, any non-pointer,
27876	// non-interface field appearing in ForceSendFields will be sent to the
27877	// server regardless of whether the field is empty or not. This may be
27878	// used to include empty fields in Patch requests.
27879	ForceSendFields []string `json:"-"`
27880
27881	// NullFields is a list of field names (e.g. "Fingerprint") to include
27882	// in API requests with the JSON null value. By default, fields with
27883	// empty values are omitted from API requests. However, any field with
27884	// an empty value appearing in NullFields will be sent to the server as
27885	// null. It is an error if a field in this list has a non-empty value.
27886	// This may be used to include null fields in Patch requests.
27887	NullFields []string `json:"-"`
27888}
27889
27890func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
27891	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
27892	raw := NoMethod(*s)
27893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27894}
27895
27896// RegionList: Contains a list of region resources.
27897type RegionList struct {
27898	// Id: [Output Only] Unique identifier for the resource; defined by the
27899	// server.
27900	Id string `json:"id,omitempty"`
27901
27902	// Items: A list of Region resources.
27903	Items []*Region `json:"items,omitempty"`
27904
27905	// Kind: [Output Only] Type of resource. Always compute#regionList for
27906	// lists of regions.
27907	Kind string `json:"kind,omitempty"`
27908
27909	// NextPageToken: [Output Only] This token allows you to get the next
27910	// page of results for list requests. If the number of results is larger
27911	// than maxResults, use the nextPageToken as a value for the query
27912	// parameter pageToken in the next list request. Subsequent list
27913	// requests will have their own nextPageToken to continue paging through
27914	// the results.
27915	NextPageToken string `json:"nextPageToken,omitempty"`
27916
27917	// SelfLink: [Output Only] Server-defined URL for this resource.
27918	SelfLink string `json:"selfLink,omitempty"`
27919
27920	// Warning: [Output Only] Informational warning message.
27921	Warning *RegionListWarning `json:"warning,omitempty"`
27922
27923	// ServerResponse contains the HTTP response code and headers from the
27924	// server.
27925	googleapi.ServerResponse `json:"-"`
27926
27927	// ForceSendFields is a list of field names (e.g. "Id") to
27928	// unconditionally include in API requests. By default, fields with
27929	// empty values are omitted from API requests. However, any non-pointer,
27930	// non-interface field appearing in ForceSendFields will be sent to the
27931	// server regardless of whether the field is empty or not. This may be
27932	// used to include empty fields in Patch requests.
27933	ForceSendFields []string `json:"-"`
27934
27935	// NullFields is a list of field names (e.g. "Id") to include in API
27936	// requests with the JSON null value. By default, fields with empty
27937	// values are omitted from API requests. However, any field with an
27938	// empty value appearing in NullFields will be sent to the server as
27939	// null. It is an error if a field in this list has a non-empty value.
27940	// This may be used to include null fields in Patch requests.
27941	NullFields []string `json:"-"`
27942}
27943
27944func (s *RegionList) MarshalJSON() ([]byte, error) {
27945	type NoMethod RegionList
27946	raw := NoMethod(*s)
27947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27948}
27949
27950// RegionListWarning: [Output Only] Informational warning message.
27951type RegionListWarning struct {
27952	// Code: [Output Only] A warning code, if applicable. For example,
27953	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27954	// the response.
27955	//
27956	// Possible values:
27957	//   "CLEANUP_FAILED"
27958	//   "DEPRECATED_RESOURCE_USED"
27959	//   "DEPRECATED_TYPE_USED"
27960	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27961	//   "EXPERIMENTAL_TYPE_USED"
27962	//   "EXTERNAL_API_WARNING"
27963	//   "FIELD_VALUE_OVERRIDEN"
27964	//   "INJECTED_KERNELS_DEPRECATED"
27965	//   "MISSING_TYPE_DEPENDENCY"
27966	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27967	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27968	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27969	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27970	//   "NEXT_HOP_NOT_RUNNING"
27971	//   "NOT_CRITICAL_ERROR"
27972	//   "NO_RESULTS_ON_PAGE"
27973	//   "REQUIRED_TOS_AGREEMENT"
27974	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27975	//   "RESOURCE_NOT_DELETED"
27976	//   "SCHEMA_VALIDATION_IGNORED"
27977	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27978	//   "UNDECLARED_PROPERTIES"
27979	//   "UNREACHABLE"
27980	Code string `json:"code,omitempty"`
27981
27982	// Data: [Output Only] Metadata about this warning in key: value format.
27983	// For example:
27984	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27985	Data []*RegionListWarningData `json:"data,omitempty"`
27986
27987	// Message: [Output Only] A human-readable description of the warning
27988	// code.
27989	Message string `json:"message,omitempty"`
27990
27991	// ForceSendFields is a list of field names (e.g. "Code") to
27992	// unconditionally include in API requests. By default, fields with
27993	// empty values are omitted from API requests. However, any non-pointer,
27994	// non-interface field appearing in ForceSendFields will be sent to the
27995	// server regardless of whether the field is empty or not. This may be
27996	// used to include empty fields in Patch requests.
27997	ForceSendFields []string `json:"-"`
27998
27999	// NullFields is a list of field names (e.g. "Code") to include in API
28000	// requests with the JSON null value. By default, fields with empty
28001	// values are omitted from API requests. However, any field with an
28002	// empty value appearing in NullFields will be sent to the server as
28003	// null. It is an error if a field in this list has a non-empty value.
28004	// This may be used to include null fields in Patch requests.
28005	NullFields []string `json:"-"`
28006}
28007
28008func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
28009	type NoMethod RegionListWarning
28010	raw := NoMethod(*s)
28011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28012}
28013
28014type RegionListWarningData struct {
28015	// Key: [Output Only] A key that provides more detail on the warning
28016	// being returned. For example, for warnings where there are no results
28017	// in a list request for a particular zone, this key might be scope and
28018	// the key value might be the zone name. Other examples might be a key
28019	// indicating a deprecated resource and a suggested replacement, or a
28020	// warning about invalid network settings (for example, if an instance
28021	// attempts to perform IP forwarding but is not enabled for IP
28022	// forwarding).
28023	Key string `json:"key,omitempty"`
28024
28025	// Value: [Output Only] A warning data value corresponding to the key.
28026	Value string `json:"value,omitempty"`
28027
28028	// ForceSendFields is a list of field names (e.g. "Key") to
28029	// unconditionally include in API requests. By default, fields with
28030	// empty values are omitted from API requests. However, any non-pointer,
28031	// non-interface field appearing in ForceSendFields will be sent to the
28032	// server regardless of whether the field is empty or not. This may be
28033	// used to include empty fields in Patch requests.
28034	ForceSendFields []string `json:"-"`
28035
28036	// NullFields is a list of field names (e.g. "Key") to include in API
28037	// requests with the JSON null value. By default, fields with empty
28038	// values are omitted from API requests. However, any field with an
28039	// empty value appearing in NullFields will be sent to the server as
28040	// null. It is an error if a field in this list has a non-empty value.
28041	// This may be used to include null fields in Patch requests.
28042	NullFields []string `json:"-"`
28043}
28044
28045func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
28046	type NoMethod RegionListWarningData
28047	raw := NoMethod(*s)
28048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28049}
28050
28051type RegionSetLabelsRequest struct {
28052	// LabelFingerprint: The fingerprint of the previous set of labels for
28053	// this resource, used to detect conflicts. The fingerprint is initially
28054	// generated by Compute Engine and changes after every request to modify
28055	// or update labels. You must always provide an up-to-date fingerprint
28056	// hash in order to update or change labels. Make a get() request to the
28057	// resource to get the latest fingerprint.
28058	LabelFingerprint string `json:"labelFingerprint,omitempty"`
28059
28060	// Labels: The labels to set for this resource.
28061	Labels map[string]string `json:"labels,omitempty"`
28062
28063	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
28064	// unconditionally include in API requests. By default, fields with
28065	// empty values are omitted from API requests. However, any non-pointer,
28066	// non-interface field appearing in ForceSendFields will be sent to the
28067	// server regardless of whether the field is empty or not. This may be
28068	// used to include empty fields in Patch requests.
28069	ForceSendFields []string `json:"-"`
28070
28071	// NullFields is a list of field names (e.g. "LabelFingerprint") to
28072	// include in API requests with the JSON null value. By default, fields
28073	// with empty values are omitted from API requests. However, any field
28074	// with an empty value appearing in NullFields will be sent to the
28075	// server as null. It is an error if a field in this list has a
28076	// non-empty value. This may be used to include null fields in Patch
28077	// requests.
28078	NullFields []string `json:"-"`
28079}
28080
28081func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
28082	type NoMethod RegionSetLabelsRequest
28083	raw := NoMethod(*s)
28084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28085}
28086
28087type RegionSetPolicyRequest struct {
28088	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
28089	// Deprecated. Use 'policy' to specify bindings.
28090	Bindings []*Binding `json:"bindings,omitempty"`
28091
28092	// Etag: Flatten Policy to create a backward compatible wire-format.
28093	// Deprecated. Use 'policy' to specify the etag.
28094	Etag string `json:"etag,omitempty"`
28095
28096	// Policy: REQUIRED: The complete policy to be applied to the
28097	// 'resource'. The size of the policy is limited to a few 10s of KB. An
28098	// empty policy is in general a valid policy but certain services (like
28099	// Projects) might reject them.
28100	Policy *Policy `json:"policy,omitempty"`
28101
28102	// ForceSendFields is a list of field names (e.g. "Bindings") to
28103	// unconditionally include in API requests. By default, fields with
28104	// empty values are omitted from API requests. However, any non-pointer,
28105	// non-interface field appearing in ForceSendFields will be sent to the
28106	// server regardless of whether the field is empty or not. This may be
28107	// used to include empty fields in Patch requests.
28108	ForceSendFields []string `json:"-"`
28109
28110	// NullFields is a list of field names (e.g. "Bindings") to include in
28111	// API requests with the JSON null value. By default, fields with empty
28112	// values are omitted from API requests. However, any field with an
28113	// empty value appearing in NullFields will be sent to the server as
28114	// null. It is an error if a field in this list has a non-empty value.
28115	// This may be used to include null fields in Patch requests.
28116	NullFields []string `json:"-"`
28117}
28118
28119func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
28120	type NoMethod RegionSetPolicyRequest
28121	raw := NoMethod(*s)
28122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28123}
28124
28125type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
28126	// SslCertificates: New set of SslCertificate resources to associate
28127	// with this TargetHttpsProxy resource. Currently exactly one
28128	// SslCertificate resource must be specified.
28129	SslCertificates []string `json:"sslCertificates,omitempty"`
28130
28131	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
28132	// unconditionally include in API requests. By default, fields with
28133	// empty values are omitted from API requests. However, any non-pointer,
28134	// non-interface field appearing in ForceSendFields will be sent to the
28135	// server regardless of whether the field is empty or not. This may be
28136	// used to include empty fields in Patch requests.
28137	ForceSendFields []string `json:"-"`
28138
28139	// NullFields is a list of field names (e.g. "SslCertificates") to
28140	// include in API requests with the JSON null value. By default, fields
28141	// with empty values are omitted from API requests. However, any field
28142	// with an empty value appearing in NullFields will be sent to the
28143	// server as null. It is an error if a field in this list has a
28144	// non-empty value. This may be used to include null fields in Patch
28145	// requests.
28146	NullFields []string `json:"-"`
28147}
28148
28149func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
28150	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
28151	raw := NoMethod(*s)
28152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28153}
28154
28155type RegionUrlMapsValidateRequest struct {
28156	// Resource: Content of the UrlMap to be validated.
28157	Resource *UrlMap `json:"resource,omitempty"`
28158
28159	// ForceSendFields is a list of field names (e.g. "Resource") to
28160	// unconditionally include in API requests. By default, fields with
28161	// empty values are omitted from API requests. However, any non-pointer,
28162	// non-interface field appearing in ForceSendFields will be sent to the
28163	// server regardless of whether the field is empty or not. This may be
28164	// used to include empty fields in Patch requests.
28165	ForceSendFields []string `json:"-"`
28166
28167	// NullFields is a list of field names (e.g. "Resource") to include in
28168	// API requests with the JSON null value. By default, fields with empty
28169	// values are omitted from API requests. However, any field with an
28170	// empty value appearing in NullFields will be sent to the server as
28171	// null. It is an error if a field in this list has a non-empty value.
28172	// This may be used to include null fields in Patch requests.
28173	NullFields []string `json:"-"`
28174}
28175
28176func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
28177	type NoMethod RegionUrlMapsValidateRequest
28178	raw := NoMethod(*s)
28179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28180}
28181
28182// RequestMirrorPolicy: A policy that specifies how requests intended
28183// for the route's backends are shadowed to a separate mirrored backend
28184// service. Loadbalancer does not wait for responses from the shadow
28185// service. Prior to sending traffic to the shadow service, the host /
28186// authority header is suffixed with -shadow.
28187type RequestMirrorPolicy struct {
28188	// BackendService: The full or partial URL to the BackendService
28189	// resource being mirrored to.
28190	BackendService string `json:"backendService,omitempty"`
28191
28192	// ForceSendFields is a list of field names (e.g. "BackendService") to
28193	// unconditionally include in API requests. By default, fields with
28194	// empty values are omitted from API requests. However, any non-pointer,
28195	// non-interface field appearing in ForceSendFields will be sent to the
28196	// server regardless of whether the field is empty or not. This may be
28197	// used to include empty fields in Patch requests.
28198	ForceSendFields []string `json:"-"`
28199
28200	// NullFields is a list of field names (e.g. "BackendService") to
28201	// include in API requests with the JSON null value. By default, fields
28202	// with empty values are omitted from API requests. However, any field
28203	// with an empty value appearing in NullFields will be sent to the
28204	// server as null. It is an error if a field in this list has a
28205	// non-empty value. This may be used to include null fields in Patch
28206	// requests.
28207	NullFields []string `json:"-"`
28208}
28209
28210func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
28211	type NoMethod RequestMirrorPolicy
28212	raw := NoMethod(*s)
28213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28214}
28215
28216// Reservation: Represents a reservation resource. A reservation ensures
28217// that capacity is held in a specific zone even if the reserved VMs are
28218// not running. For more information, read  Reserving zonal resources.
28219// (== resource_for {$api_version}.reservations ==)
28220type Reservation struct {
28221	// Commitment: [Output Only] Full or partial URL to a parent commitment.
28222	// This field displays for reservations that are tied to a commitment.
28223	Commitment string `json:"commitment,omitempty"`
28224
28225	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28226	// format.
28227	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28228
28229	// Description: An optional description of this resource. Provide this
28230	// property when you create the resource.
28231	Description string `json:"description,omitempty"`
28232
28233	// Id: [Output Only] The unique identifier for the resource. This
28234	// identifier is defined by the server.
28235	Id uint64 `json:"id,omitempty,string"`
28236
28237	// Kind: [Output Only] Type of the resource. Always compute#reservations
28238	// for reservations.
28239	Kind string `json:"kind,omitempty"`
28240
28241	// Name: The name of the resource, provided by the client when initially
28242	// creating the resource. The resource name must be 1-63 characters
28243	// long, and comply with RFC1035. Specifically, the name must be 1-63
28244	// characters long and match the regular expression
28245	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
28246	// a lowercase letter, and all following characters must be a dash,
28247	// lowercase letter, or digit, except the last character, which cannot
28248	// be a dash.
28249	Name string `json:"name,omitempty"`
28250
28251	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
28252	// resource.
28253	SelfLink string `json:"selfLink,omitempty"`
28254
28255	// SpecificReservation: Reservation for instances with specific machine
28256	// shapes.
28257	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
28258
28259	// SpecificReservationRequired: Indicates whether the reservation can be
28260	// consumed by VMs with affinity for "any" reservation. If the field is
28261	// set, then only VMs that target the reservation by name can consume
28262	// from this reservation.
28263	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
28264
28265	// Status: [Output Only] The status of the reservation.
28266	//
28267	// Possible values:
28268	//   "CREATING"
28269	//   "DELETING"
28270	//   "INVALID"
28271	//   "READY"
28272	//   "UPDATING"
28273	Status string `json:"status,omitempty"`
28274
28275	// Zone: Zone in which the reservation resides. A zone must be provided
28276	// if the reservation is created within a commitment.
28277	Zone string `json:"zone,omitempty"`
28278
28279	// ServerResponse contains the HTTP response code and headers from the
28280	// server.
28281	googleapi.ServerResponse `json:"-"`
28282
28283	// ForceSendFields is a list of field names (e.g. "Commitment") to
28284	// unconditionally include in API requests. By default, fields with
28285	// empty values are omitted from API requests. However, any non-pointer,
28286	// non-interface field appearing in ForceSendFields will be sent to the
28287	// server regardless of whether the field is empty or not. This may be
28288	// used to include empty fields in Patch requests.
28289	ForceSendFields []string `json:"-"`
28290
28291	// NullFields is a list of field names (e.g. "Commitment") to include in
28292	// API requests with the JSON null value. By default, fields with empty
28293	// values are omitted from API requests. However, any field with an
28294	// empty value appearing in NullFields will be sent to the server as
28295	// null. It is an error if a field in this list has a non-empty value.
28296	// This may be used to include null fields in Patch requests.
28297	NullFields []string `json:"-"`
28298}
28299
28300func (s *Reservation) MarshalJSON() ([]byte, error) {
28301	type NoMethod Reservation
28302	raw := NoMethod(*s)
28303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28304}
28305
28306// ReservationAffinity: Specifies the reservations that this instance
28307// can consume from.
28308type ReservationAffinity struct {
28309	// ConsumeReservationType: Specifies the type of reservation from which
28310	// this instance can consume resources: ANY_RESERVATION (default),
28311	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
28312	// instances for examples.
28313	//
28314	// Possible values:
28315	//   "ANY_RESERVATION"
28316	//   "NO_RESERVATION"
28317	//   "SPECIFIC_RESERVATION"
28318	//   "UNSPECIFIED"
28319	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
28320
28321	// Key: Corresponds to the label key of a reservation resource. To
28322	// target a SPECIFIC_RESERVATION by name, specify
28323	// googleapis.com/reservation-name as the key and specify the name of
28324	// your reservation as its value.
28325	Key string `json:"key,omitempty"`
28326
28327	// Values: Corresponds to the label values of a reservation resource.
28328	Values []string `json:"values,omitempty"`
28329
28330	// ForceSendFields is a list of field names (e.g.
28331	// "ConsumeReservationType") to unconditionally include in API requests.
28332	// By default, fields with empty values are omitted from API requests.
28333	// However, any non-pointer, non-interface field appearing in
28334	// ForceSendFields will be sent to the server regardless of whether the
28335	// field is empty or not. This may be used to include empty fields in
28336	// Patch requests.
28337	ForceSendFields []string `json:"-"`
28338
28339	// NullFields is a list of field names (e.g. "ConsumeReservationType")
28340	// to include in API requests with the JSON null value. By default,
28341	// fields with empty values are omitted from API requests. However, any
28342	// field with an empty value appearing in NullFields will be sent to the
28343	// server as null. It is an error if a field in this list has a
28344	// non-empty value. This may be used to include null fields in Patch
28345	// requests.
28346	NullFields []string `json:"-"`
28347}
28348
28349func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
28350	type NoMethod ReservationAffinity
28351	raw := NoMethod(*s)
28352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28353}
28354
28355// ReservationAggregatedList: Contains a list of reservations.
28356type ReservationAggregatedList struct {
28357	// Id: [Output Only] Unique identifier for the resource; defined by the
28358	// server.
28359	Id string `json:"id,omitempty"`
28360
28361	// Items: A list of Allocation resources.
28362	Items map[string]ReservationsScopedList `json:"items,omitempty"`
28363
28364	// Kind: Type of resource.
28365	Kind string `json:"kind,omitempty"`
28366
28367	// NextPageToken: [Output Only] This token allows you to get the next
28368	// page of results for list requests. If the number of results is larger
28369	// than maxResults, use the nextPageToken as a value for the query
28370	// parameter pageToken in the next list request. Subsequent list
28371	// requests will have their own nextPageToken to continue paging through
28372	// the results.
28373	NextPageToken string `json:"nextPageToken,omitempty"`
28374
28375	// SelfLink: [Output Only] Server-defined URL for this resource.
28376	SelfLink string `json:"selfLink,omitempty"`
28377
28378	// Warning: [Output Only] Informational warning message.
28379	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
28380
28381	// ServerResponse contains the HTTP response code and headers from the
28382	// server.
28383	googleapi.ServerResponse `json:"-"`
28384
28385	// ForceSendFields is a list of field names (e.g. "Id") to
28386	// unconditionally include in API requests. By default, fields with
28387	// empty values are omitted from API requests. However, any non-pointer,
28388	// non-interface field appearing in ForceSendFields will be sent to the
28389	// server regardless of whether the field is empty or not. This may be
28390	// used to include empty fields in Patch requests.
28391	ForceSendFields []string `json:"-"`
28392
28393	// NullFields is a list of field names (e.g. "Id") to include in API
28394	// requests with the JSON null value. By default, fields with empty
28395	// values are omitted from API requests. However, any field with an
28396	// empty value appearing in NullFields will be sent to the server as
28397	// null. It is an error if a field in this list has a non-empty value.
28398	// This may be used to include null fields in Patch requests.
28399	NullFields []string `json:"-"`
28400}
28401
28402func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
28403	type NoMethod ReservationAggregatedList
28404	raw := NoMethod(*s)
28405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28406}
28407
28408// ReservationAggregatedListWarning: [Output Only] Informational warning
28409// message.
28410type ReservationAggregatedListWarning struct {
28411	// Code: [Output Only] A warning code, if applicable. For example,
28412	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28413	// the response.
28414	//
28415	// Possible values:
28416	//   "CLEANUP_FAILED"
28417	//   "DEPRECATED_RESOURCE_USED"
28418	//   "DEPRECATED_TYPE_USED"
28419	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28420	//   "EXPERIMENTAL_TYPE_USED"
28421	//   "EXTERNAL_API_WARNING"
28422	//   "FIELD_VALUE_OVERRIDEN"
28423	//   "INJECTED_KERNELS_DEPRECATED"
28424	//   "MISSING_TYPE_DEPENDENCY"
28425	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28426	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28427	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28428	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28429	//   "NEXT_HOP_NOT_RUNNING"
28430	//   "NOT_CRITICAL_ERROR"
28431	//   "NO_RESULTS_ON_PAGE"
28432	//   "REQUIRED_TOS_AGREEMENT"
28433	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28434	//   "RESOURCE_NOT_DELETED"
28435	//   "SCHEMA_VALIDATION_IGNORED"
28436	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28437	//   "UNDECLARED_PROPERTIES"
28438	//   "UNREACHABLE"
28439	Code string `json:"code,omitempty"`
28440
28441	// Data: [Output Only] Metadata about this warning in key: value format.
28442	// For example:
28443	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28444	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
28445
28446	// Message: [Output Only] A human-readable description of the warning
28447	// code.
28448	Message string `json:"message,omitempty"`
28449
28450	// ForceSendFields is a list of field names (e.g. "Code") to
28451	// unconditionally include in API requests. By default, fields with
28452	// empty values are omitted from API requests. However, any non-pointer,
28453	// non-interface field appearing in ForceSendFields will be sent to the
28454	// server regardless of whether the field is empty or not. This may be
28455	// used to include empty fields in Patch requests.
28456	ForceSendFields []string `json:"-"`
28457
28458	// NullFields is a list of field names (e.g. "Code") to include in API
28459	// requests with the JSON null value. By default, fields with empty
28460	// values are omitted from API requests. However, any field with an
28461	// empty value appearing in NullFields will be sent to the server as
28462	// null. It is an error if a field in this list has a non-empty value.
28463	// This may be used to include null fields in Patch requests.
28464	NullFields []string `json:"-"`
28465}
28466
28467func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
28468	type NoMethod ReservationAggregatedListWarning
28469	raw := NoMethod(*s)
28470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28471}
28472
28473type ReservationAggregatedListWarningData struct {
28474	// Key: [Output Only] A key that provides more detail on the warning
28475	// being returned. For example, for warnings where there are no results
28476	// in a list request for a particular zone, this key might be scope and
28477	// the key value might be the zone name. Other examples might be a key
28478	// indicating a deprecated resource and a suggested replacement, or a
28479	// warning about invalid network settings (for example, if an instance
28480	// attempts to perform IP forwarding but is not enabled for IP
28481	// forwarding).
28482	Key string `json:"key,omitempty"`
28483
28484	// Value: [Output Only] A warning data value corresponding to the key.
28485	Value string `json:"value,omitempty"`
28486
28487	// ForceSendFields is a list of field names (e.g. "Key") to
28488	// unconditionally include in API requests. By default, fields with
28489	// empty values are omitted from API requests. However, any non-pointer,
28490	// non-interface field appearing in ForceSendFields will be sent to the
28491	// server regardless of whether the field is empty or not. This may be
28492	// used to include empty fields in Patch requests.
28493	ForceSendFields []string `json:"-"`
28494
28495	// NullFields is a list of field names (e.g. "Key") to include in API
28496	// requests with the JSON null value. By default, fields with empty
28497	// values are omitted from API requests. However, any field with an
28498	// empty value appearing in NullFields will be sent to the server as
28499	// null. It is an error if a field in this list has a non-empty value.
28500	// This may be used to include null fields in Patch requests.
28501	NullFields []string `json:"-"`
28502}
28503
28504func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28505	type NoMethod ReservationAggregatedListWarningData
28506	raw := NoMethod(*s)
28507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28508}
28509
28510type ReservationList struct {
28511	// Id: [Output Only] The unique identifier for the resource. This
28512	// identifier is defined by the server.
28513	Id string `json:"id,omitempty"`
28514
28515	// Items: [Output Only] A list of Allocation resources.
28516	Items []*Reservation `json:"items,omitempty"`
28517
28518	// Kind: [Output Only] Type of resource.Always compute#reservationsList
28519	// for listsof reservations
28520	Kind string `json:"kind,omitempty"`
28521
28522	// NextPageToken: [Output Only] This token allows you to get the next
28523	// page of results for list requests. If the number of results is larger
28524	// than maxResults, use the nextPageToken as a value for the query
28525	// parameter pageToken in the next list request. Subsequent list
28526	// requests will have their own nextPageToken to continue paging through
28527	// the results.
28528	NextPageToken string `json:"nextPageToken,omitempty"`
28529
28530	// SelfLink: [Output Only] Server-defined URL for this resource.
28531	SelfLink string `json:"selfLink,omitempty"`
28532
28533	// Warning: [Output Only] Informational warning message.
28534	Warning *ReservationListWarning `json:"warning,omitempty"`
28535
28536	// ServerResponse contains the HTTP response code and headers from the
28537	// server.
28538	googleapi.ServerResponse `json:"-"`
28539
28540	// ForceSendFields is a list of field names (e.g. "Id") to
28541	// unconditionally include in API requests. By default, fields with
28542	// empty values are omitted from API requests. However, any non-pointer,
28543	// non-interface field appearing in ForceSendFields will be sent to the
28544	// server regardless of whether the field is empty or not. This may be
28545	// used to include empty fields in Patch requests.
28546	ForceSendFields []string `json:"-"`
28547
28548	// NullFields is a list of field names (e.g. "Id") to include in API
28549	// requests with the JSON null value. By default, fields with empty
28550	// values are omitted from API requests. However, any field with an
28551	// empty value appearing in NullFields will be sent to the server as
28552	// null. It is an error if a field in this list has a non-empty value.
28553	// This may be used to include null fields in Patch requests.
28554	NullFields []string `json:"-"`
28555}
28556
28557func (s *ReservationList) MarshalJSON() ([]byte, error) {
28558	type NoMethod ReservationList
28559	raw := NoMethod(*s)
28560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28561}
28562
28563// ReservationListWarning: [Output Only] Informational warning message.
28564type ReservationListWarning struct {
28565	// Code: [Output Only] A warning code, if applicable. For example,
28566	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28567	// the response.
28568	//
28569	// Possible values:
28570	//   "CLEANUP_FAILED"
28571	//   "DEPRECATED_RESOURCE_USED"
28572	//   "DEPRECATED_TYPE_USED"
28573	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28574	//   "EXPERIMENTAL_TYPE_USED"
28575	//   "EXTERNAL_API_WARNING"
28576	//   "FIELD_VALUE_OVERRIDEN"
28577	//   "INJECTED_KERNELS_DEPRECATED"
28578	//   "MISSING_TYPE_DEPENDENCY"
28579	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28580	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28581	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28582	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28583	//   "NEXT_HOP_NOT_RUNNING"
28584	//   "NOT_CRITICAL_ERROR"
28585	//   "NO_RESULTS_ON_PAGE"
28586	//   "REQUIRED_TOS_AGREEMENT"
28587	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28588	//   "RESOURCE_NOT_DELETED"
28589	//   "SCHEMA_VALIDATION_IGNORED"
28590	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28591	//   "UNDECLARED_PROPERTIES"
28592	//   "UNREACHABLE"
28593	Code string `json:"code,omitempty"`
28594
28595	// Data: [Output Only] Metadata about this warning in key: value format.
28596	// For example:
28597	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28598	Data []*ReservationListWarningData `json:"data,omitempty"`
28599
28600	// Message: [Output Only] A human-readable description of the warning
28601	// code.
28602	Message string `json:"message,omitempty"`
28603
28604	// ForceSendFields is a list of field names (e.g. "Code") to
28605	// unconditionally include in API requests. By default, fields with
28606	// empty values are omitted from API requests. However, any non-pointer,
28607	// non-interface field appearing in ForceSendFields will be sent to the
28608	// server regardless of whether the field is empty or not. This may be
28609	// used to include empty fields in Patch requests.
28610	ForceSendFields []string `json:"-"`
28611
28612	// NullFields is a list of field names (e.g. "Code") to include in API
28613	// requests with the JSON null value. By default, fields with empty
28614	// values are omitted from API requests. However, any field with an
28615	// empty value appearing in NullFields will be sent to the server as
28616	// null. It is an error if a field in this list has a non-empty value.
28617	// This may be used to include null fields in Patch requests.
28618	NullFields []string `json:"-"`
28619}
28620
28621func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
28622	type NoMethod ReservationListWarning
28623	raw := NoMethod(*s)
28624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28625}
28626
28627type ReservationListWarningData struct {
28628	// Key: [Output Only] A key that provides more detail on the warning
28629	// being returned. For example, for warnings where there are no results
28630	// in a list request for a particular zone, this key might be scope and
28631	// the key value might be the zone name. Other examples might be a key
28632	// indicating a deprecated resource and a suggested replacement, or a
28633	// warning about invalid network settings (for example, if an instance
28634	// attempts to perform IP forwarding but is not enabled for IP
28635	// forwarding).
28636	Key string `json:"key,omitempty"`
28637
28638	// Value: [Output Only] A warning data value corresponding to the key.
28639	Value string `json:"value,omitempty"`
28640
28641	// ForceSendFields is a list of field names (e.g. "Key") to
28642	// unconditionally include in API requests. By default, fields with
28643	// empty values are omitted from API requests. However, any non-pointer,
28644	// non-interface field appearing in ForceSendFields will be sent to the
28645	// server regardless of whether the field is empty or not. This may be
28646	// used to include empty fields in Patch requests.
28647	ForceSendFields []string `json:"-"`
28648
28649	// NullFields is a list of field names (e.g. "Key") to include in API
28650	// requests with the JSON null value. By default, fields with empty
28651	// values are omitted from API requests. However, any field with an
28652	// empty value appearing in NullFields will be sent to the server as
28653	// null. It is an error if a field in this list has a non-empty value.
28654	// This may be used to include null fields in Patch requests.
28655	NullFields []string `json:"-"`
28656}
28657
28658func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
28659	type NoMethod ReservationListWarningData
28660	raw := NoMethod(*s)
28661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28662}
28663
28664type ReservationsResizeRequest struct {
28665	// SpecificSkuCount: Number of allocated resources can be resized with
28666	// minimum = 1 and maximum = 1000.
28667	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
28668
28669	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
28670	// unconditionally include in API requests. By default, fields with
28671	// empty values are omitted from API requests. However, any non-pointer,
28672	// non-interface field appearing in ForceSendFields will be sent to the
28673	// server regardless of whether the field is empty or not. This may be
28674	// used to include empty fields in Patch requests.
28675	ForceSendFields []string `json:"-"`
28676
28677	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
28678	// include in API requests with the JSON null value. By default, fields
28679	// with empty values are omitted from API requests. However, any field
28680	// with an empty value appearing in NullFields will be sent to the
28681	// server as null. It is an error if a field in this list has a
28682	// non-empty value. This may be used to include null fields in Patch
28683	// requests.
28684	NullFields []string `json:"-"`
28685}
28686
28687func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
28688	type NoMethod ReservationsResizeRequest
28689	raw := NoMethod(*s)
28690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28691}
28692
28693type ReservationsScopedList struct {
28694	// Reservations: A list of reservations contained in this scope.
28695	Reservations []*Reservation `json:"reservations,omitempty"`
28696
28697	// Warning: Informational warning which replaces the list of
28698	// reservations when the list is empty.
28699	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
28700
28701	// ForceSendFields is a list of field names (e.g. "Reservations") to
28702	// unconditionally include in API requests. By default, fields with
28703	// empty values are omitted from API requests. However, any non-pointer,
28704	// non-interface field appearing in ForceSendFields will be sent to the
28705	// server regardless of whether the field is empty or not. This may be
28706	// used to include empty fields in Patch requests.
28707	ForceSendFields []string `json:"-"`
28708
28709	// NullFields is a list of field names (e.g. "Reservations") to include
28710	// in API requests with the JSON null value. By default, fields with
28711	// empty values are omitted from API requests. However, any field with
28712	// an empty value appearing in NullFields will be sent to the server as
28713	// null. It is an error if a field in this list has a non-empty value.
28714	// This may be used to include null fields in Patch requests.
28715	NullFields []string `json:"-"`
28716}
28717
28718func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
28719	type NoMethod ReservationsScopedList
28720	raw := NoMethod(*s)
28721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28722}
28723
28724// ReservationsScopedListWarning: Informational warning which replaces
28725// the list of reservations when the list is empty.
28726type ReservationsScopedListWarning struct {
28727	// Code: [Output Only] A warning code, if applicable. For example,
28728	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28729	// the response.
28730	//
28731	// Possible values:
28732	//   "CLEANUP_FAILED"
28733	//   "DEPRECATED_RESOURCE_USED"
28734	//   "DEPRECATED_TYPE_USED"
28735	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28736	//   "EXPERIMENTAL_TYPE_USED"
28737	//   "EXTERNAL_API_WARNING"
28738	//   "FIELD_VALUE_OVERRIDEN"
28739	//   "INJECTED_KERNELS_DEPRECATED"
28740	//   "MISSING_TYPE_DEPENDENCY"
28741	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28742	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28743	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28744	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28745	//   "NEXT_HOP_NOT_RUNNING"
28746	//   "NOT_CRITICAL_ERROR"
28747	//   "NO_RESULTS_ON_PAGE"
28748	//   "REQUIRED_TOS_AGREEMENT"
28749	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28750	//   "RESOURCE_NOT_DELETED"
28751	//   "SCHEMA_VALIDATION_IGNORED"
28752	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28753	//   "UNDECLARED_PROPERTIES"
28754	//   "UNREACHABLE"
28755	Code string `json:"code,omitempty"`
28756
28757	// Data: [Output Only] Metadata about this warning in key: value format.
28758	// For example:
28759	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28760	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
28761
28762	// Message: [Output Only] A human-readable description of the warning
28763	// code.
28764	Message string `json:"message,omitempty"`
28765
28766	// ForceSendFields is a list of field names (e.g. "Code") to
28767	// unconditionally include in API requests. By default, fields with
28768	// empty values are omitted from API requests. However, any non-pointer,
28769	// non-interface field appearing in ForceSendFields will be sent to the
28770	// server regardless of whether the field is empty or not. This may be
28771	// used to include empty fields in Patch requests.
28772	ForceSendFields []string `json:"-"`
28773
28774	// NullFields is a list of field names (e.g. "Code") to include in API
28775	// requests with the JSON null value. By default, fields with empty
28776	// values are omitted from API requests. However, any field with an
28777	// empty value appearing in NullFields will be sent to the server as
28778	// null. It is an error if a field in this list has a non-empty value.
28779	// This may be used to include null fields in Patch requests.
28780	NullFields []string `json:"-"`
28781}
28782
28783func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
28784	type NoMethod ReservationsScopedListWarning
28785	raw := NoMethod(*s)
28786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28787}
28788
28789type ReservationsScopedListWarningData struct {
28790	// Key: [Output Only] A key that provides more detail on the warning
28791	// being returned. For example, for warnings where there are no results
28792	// in a list request for a particular zone, this key might be scope and
28793	// the key value might be the zone name. Other examples might be a key
28794	// indicating a deprecated resource and a suggested replacement, or a
28795	// warning about invalid network settings (for example, if an instance
28796	// attempts to perform IP forwarding but is not enabled for IP
28797	// forwarding).
28798	Key string `json:"key,omitempty"`
28799
28800	// Value: [Output Only] A warning data value corresponding to the key.
28801	Value string `json:"value,omitempty"`
28802
28803	// ForceSendFields is a list of field names (e.g. "Key") to
28804	// unconditionally include in API requests. By default, fields with
28805	// empty values are omitted from API requests. However, any non-pointer,
28806	// non-interface field appearing in ForceSendFields will be sent to the
28807	// server regardless of whether the field is empty or not. This may be
28808	// used to include empty fields in Patch requests.
28809	ForceSendFields []string `json:"-"`
28810
28811	// NullFields is a list of field names (e.g. "Key") to include in API
28812	// requests with the JSON null value. By default, fields with empty
28813	// values are omitted from API requests. However, any field with an
28814	// empty value appearing in NullFields will be sent to the server as
28815	// null. It is an error if a field in this list has a non-empty value.
28816	// This may be used to include null fields in Patch requests.
28817	NullFields []string `json:"-"`
28818}
28819
28820func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
28821	type NoMethod ReservationsScopedListWarningData
28822	raw := NoMethod(*s)
28823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28824}
28825
28826// ResourceCommitment: Commitment for a particular resource (a
28827// Commitment is composed of one or more of these).
28828type ResourceCommitment struct {
28829	// AcceleratorType: Name of the accelerator type resource. Applicable
28830	// only when the type is ACCELERATOR.
28831	AcceleratorType string `json:"acceleratorType,omitempty"`
28832
28833	// Amount: The amount of the resource purchased (in a type-dependent
28834	// unit, such as bytes). For vCPUs, this can just be an integer. For
28835	// memory, this must be provided in MB. Memory must be a multiple of 256
28836	// MB, with up to 6.5GB of memory per every vCPU.
28837	Amount int64 `json:"amount,omitempty,string"`
28838
28839	// Type: Type of resource for which this commitment applies. Possible
28840	// values are VCPU and MEMORY
28841	//
28842	// Possible values:
28843	//   "ACCELERATOR"
28844	//   "LOCAL_SSD"
28845	//   "MEMORY"
28846	//   "UNSPECIFIED"
28847	//   "VCPU"
28848	Type string `json:"type,omitempty"`
28849
28850	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
28851	// unconditionally include in API requests. By default, fields with
28852	// empty values are omitted from API requests. However, any non-pointer,
28853	// non-interface field appearing in ForceSendFields will be sent to the
28854	// server regardless of whether the field is empty or not. This may be
28855	// used to include empty fields in Patch requests.
28856	ForceSendFields []string `json:"-"`
28857
28858	// NullFields is a list of field names (e.g. "AcceleratorType") to
28859	// include in API requests with the JSON null value. By default, fields
28860	// with empty values are omitted from API requests. However, any field
28861	// with an empty value appearing in NullFields will be sent to the
28862	// server as null. It is an error if a field in this list has a
28863	// non-empty value. This may be used to include null fields in Patch
28864	// requests.
28865	NullFields []string `json:"-"`
28866}
28867
28868func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
28869	type NoMethod ResourceCommitment
28870	raw := NoMethod(*s)
28871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28872}
28873
28874type ResourceGroupReference struct {
28875	// Group: A URI referencing one of the instance groups or network
28876	// endpoint groups listed in the backend service.
28877	Group string `json:"group,omitempty"`
28878
28879	// ForceSendFields is a list of field names (e.g. "Group") to
28880	// unconditionally include in API requests. By default, fields with
28881	// empty values are omitted from API requests. However, any non-pointer,
28882	// non-interface field appearing in ForceSendFields will be sent to the
28883	// server regardless of whether the field is empty or not. This may be
28884	// used to include empty fields in Patch requests.
28885	ForceSendFields []string `json:"-"`
28886
28887	// NullFields is a list of field names (e.g. "Group") to include in API
28888	// requests with the JSON null value. By default, fields with empty
28889	// values are omitted from API requests. However, any field with an
28890	// empty value appearing in NullFields will be sent to the server as
28891	// null. It is an error if a field in this list has a non-empty value.
28892	// This may be used to include null fields in Patch requests.
28893	NullFields []string `json:"-"`
28894}
28895
28896func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
28897	type NoMethod ResourceGroupReference
28898	raw := NoMethod(*s)
28899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28900}
28901
28902type ResourcePoliciesScopedList struct {
28903	// ResourcePolicies: A list of resourcePolicies contained in this scope.
28904	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
28905
28906	// Warning: Informational warning which replaces the list of
28907	// resourcePolicies when the list is empty.
28908	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
28909
28910	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
28911	// unconditionally include in API requests. By default, fields with
28912	// empty values are omitted from API requests. However, any non-pointer,
28913	// non-interface field appearing in ForceSendFields will be sent to the
28914	// server regardless of whether the field is empty or not. This may be
28915	// used to include empty fields in Patch requests.
28916	ForceSendFields []string `json:"-"`
28917
28918	// NullFields is a list of field names (e.g. "ResourcePolicies") to
28919	// include in API requests with the JSON null value. By default, fields
28920	// with empty values are omitted from API requests. However, any field
28921	// with an empty value appearing in NullFields will be sent to the
28922	// server as null. It is an error if a field in this list has a
28923	// non-empty value. This may be used to include null fields in Patch
28924	// requests.
28925	NullFields []string `json:"-"`
28926}
28927
28928func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
28929	type NoMethod ResourcePoliciesScopedList
28930	raw := NoMethod(*s)
28931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28932}
28933
28934// ResourcePoliciesScopedListWarning: Informational warning which
28935// replaces the list of resourcePolicies when the list is empty.
28936type ResourcePoliciesScopedListWarning struct {
28937	// Code: [Output Only] A warning code, if applicable. For example,
28938	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28939	// the response.
28940	//
28941	// Possible values:
28942	//   "CLEANUP_FAILED"
28943	//   "DEPRECATED_RESOURCE_USED"
28944	//   "DEPRECATED_TYPE_USED"
28945	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28946	//   "EXPERIMENTAL_TYPE_USED"
28947	//   "EXTERNAL_API_WARNING"
28948	//   "FIELD_VALUE_OVERRIDEN"
28949	//   "INJECTED_KERNELS_DEPRECATED"
28950	//   "MISSING_TYPE_DEPENDENCY"
28951	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28952	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28953	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28954	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28955	//   "NEXT_HOP_NOT_RUNNING"
28956	//   "NOT_CRITICAL_ERROR"
28957	//   "NO_RESULTS_ON_PAGE"
28958	//   "REQUIRED_TOS_AGREEMENT"
28959	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28960	//   "RESOURCE_NOT_DELETED"
28961	//   "SCHEMA_VALIDATION_IGNORED"
28962	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28963	//   "UNDECLARED_PROPERTIES"
28964	//   "UNREACHABLE"
28965	Code string `json:"code,omitempty"`
28966
28967	// Data: [Output Only] Metadata about this warning in key: value format.
28968	// For example:
28969	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28970	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
28971
28972	// Message: [Output Only] A human-readable description of the warning
28973	// code.
28974	Message string `json:"message,omitempty"`
28975
28976	// ForceSendFields is a list of field names (e.g. "Code") to
28977	// unconditionally include in API requests. By default, fields with
28978	// empty values are omitted from API requests. However, any non-pointer,
28979	// non-interface field appearing in ForceSendFields will be sent to the
28980	// server regardless of whether the field is empty or not. This may be
28981	// used to include empty fields in Patch requests.
28982	ForceSendFields []string `json:"-"`
28983
28984	// NullFields is a list of field names (e.g. "Code") to include in API
28985	// requests with the JSON null value. By default, fields with empty
28986	// values are omitted from API requests. However, any field with an
28987	// empty value appearing in NullFields will be sent to the server as
28988	// null. It is an error if a field in this list has a non-empty value.
28989	// This may be used to include null fields in Patch requests.
28990	NullFields []string `json:"-"`
28991}
28992
28993func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
28994	type NoMethod ResourcePoliciesScopedListWarning
28995	raw := NoMethod(*s)
28996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28997}
28998
28999type ResourcePoliciesScopedListWarningData struct {
29000	// Key: [Output Only] A key that provides more detail on the warning
29001	// being returned. For example, for warnings where there are no results
29002	// in a list request for a particular zone, this key might be scope and
29003	// the key value might be the zone name. Other examples might be a key
29004	// indicating a deprecated resource and a suggested replacement, or a
29005	// warning about invalid network settings (for example, if an instance
29006	// attempts to perform IP forwarding but is not enabled for IP
29007	// forwarding).
29008	Key string `json:"key,omitempty"`
29009
29010	// Value: [Output Only] A warning data value corresponding to the key.
29011	Value string `json:"value,omitempty"`
29012
29013	// ForceSendFields is a list of field names (e.g. "Key") to
29014	// unconditionally include in API requests. By default, fields with
29015	// empty values are omitted from API requests. However, any non-pointer,
29016	// non-interface field appearing in ForceSendFields will be sent to the
29017	// server regardless of whether the field is empty or not. This may be
29018	// used to include empty fields in Patch requests.
29019	ForceSendFields []string `json:"-"`
29020
29021	// NullFields is a list of field names (e.g. "Key") to include in API
29022	// requests with the JSON null value. By default, fields with empty
29023	// values are omitted from API requests. However, any field with an
29024	// empty value appearing in NullFields will be sent to the server as
29025	// null. It is an error if a field in this list has a non-empty value.
29026	// This may be used to include null fields in Patch requests.
29027	NullFields []string `json:"-"`
29028}
29029
29030func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
29031	type NoMethod ResourcePoliciesScopedListWarningData
29032	raw := NoMethod(*s)
29033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29034}
29035
29036// ResourcePolicy: Represents a Resource Policy resource. You can use
29037// resource policies to schedule actions for some Compute Engine
29038// resources. For example, you can use them to schedule persistent disk
29039// snapshots.
29040//
29041// (== resource_for {$api_version}.resourcePolicies ==)
29042type ResourcePolicy struct {
29043	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29044	// format.
29045	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29046
29047	Description string `json:"description,omitempty"`
29048
29049	// GroupPlacementPolicy: Resource policy for instacnes for placement
29050	// configuration.
29051	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
29052
29053	// Id: [Output Only] The unique identifier for the resource. This
29054	// identifier is defined by the server.
29055	Id uint64 `json:"id,omitempty,string"`
29056
29057	// Kind: [Output Only] Type of the resource. Always
29058	// compute#resource_policies for resource policies.
29059	Kind string `json:"kind,omitempty"`
29060
29061	// Name: The name of the resource, provided by the client when initially
29062	// creating the resource. The resource name must be 1-63 characters
29063	// long, and comply with RFC1035. Specifically, the name must be 1-63
29064	// characters long and match the regular expression
29065	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
29066	// a lowercase letter, and all following characters must be a dash,
29067	// lowercase letter, or digit, except the last character, which cannot
29068	// be a dash.
29069	Name string `json:"name,omitempty"`
29070
29071	Region string `json:"region,omitempty"`
29072
29073	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
29074	// resource.
29075	SelfLink string `json:"selfLink,omitempty"`
29076
29077	// SnapshotSchedulePolicy: Resource policy for persistent disks for
29078	// creating snapshots.
29079	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
29080
29081	// Status: [Output Only] The status of resource policy creation.
29082	//
29083	// Possible values:
29084	//   "CREATING"
29085	//   "DELETING"
29086	//   "INVALID"
29087	//   "READY"
29088	Status string `json:"status,omitempty"`
29089
29090	// ServerResponse contains the HTTP response code and headers from the
29091	// server.
29092	googleapi.ServerResponse `json:"-"`
29093
29094	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
29095	// to unconditionally include in API requests. By default, fields with
29096	// empty values are omitted from API requests. However, any non-pointer,
29097	// non-interface field appearing in ForceSendFields will be sent to the
29098	// server regardless of whether the field is empty or not. This may be
29099	// used to include empty fields in Patch requests.
29100	ForceSendFields []string `json:"-"`
29101
29102	// NullFields is a list of field names (e.g. "CreationTimestamp") to
29103	// include in API requests with the JSON null value. By default, fields
29104	// with empty values are omitted from API requests. However, any field
29105	// with an empty value appearing in NullFields will be sent to the
29106	// server as null. It is an error if a field in this list has a
29107	// non-empty value. This may be used to include null fields in Patch
29108	// requests.
29109	NullFields []string `json:"-"`
29110}
29111
29112func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
29113	type NoMethod ResourcePolicy
29114	raw := NoMethod(*s)
29115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29116}
29117
29118// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
29119type ResourcePolicyAggregatedList struct {
29120	Etag string `json:"etag,omitempty"`
29121
29122	// Id: [Output Only] Unique identifier for the resource; defined by the
29123	// server.
29124	Id string `json:"id,omitempty"`
29125
29126	// Items: A list of ResourcePolicy resources.
29127	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
29128
29129	// Kind: Type of resource.
29130	Kind string `json:"kind,omitempty"`
29131
29132	// NextPageToken: [Output Only] This token allows you to get the next
29133	// page of results for list requests. If the number of results is larger
29134	// than maxResults, use the nextPageToken as a value for the query
29135	// parameter pageToken in the next list request. Subsequent list
29136	// requests will have their own nextPageToken to continue paging through
29137	// the results.
29138	NextPageToken string `json:"nextPageToken,omitempty"`
29139
29140	// SelfLink: [Output Only] Server-defined URL for this resource.
29141	SelfLink string `json:"selfLink,omitempty"`
29142
29143	// Warning: [Output Only] Informational warning message.
29144	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
29145
29146	// ServerResponse contains the HTTP response code and headers from the
29147	// server.
29148	googleapi.ServerResponse `json:"-"`
29149
29150	// ForceSendFields is a list of field names (e.g. "Etag") to
29151	// unconditionally include in API requests. By default, fields with
29152	// empty values are omitted from API requests. However, any non-pointer,
29153	// non-interface field appearing in ForceSendFields will be sent to the
29154	// server regardless of whether the field is empty or not. This may be
29155	// used to include empty fields in Patch requests.
29156	ForceSendFields []string `json:"-"`
29157
29158	// NullFields is a list of field names (e.g. "Etag") to include in API
29159	// requests with the JSON null value. By default, fields with empty
29160	// values are omitted from API requests. However, any field with an
29161	// empty value appearing in NullFields will be sent to the server as
29162	// null. It is an error if a field in this list has a non-empty value.
29163	// This may be used to include null fields in Patch requests.
29164	NullFields []string `json:"-"`
29165}
29166
29167func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
29168	type NoMethod ResourcePolicyAggregatedList
29169	raw := NoMethod(*s)
29170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29171}
29172
29173// ResourcePolicyAggregatedListWarning: [Output Only] Informational
29174// warning message.
29175type ResourcePolicyAggregatedListWarning struct {
29176	// Code: [Output Only] A warning code, if applicable. For example,
29177	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29178	// the response.
29179	//
29180	// Possible values:
29181	//   "CLEANUP_FAILED"
29182	//   "DEPRECATED_RESOURCE_USED"
29183	//   "DEPRECATED_TYPE_USED"
29184	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29185	//   "EXPERIMENTAL_TYPE_USED"
29186	//   "EXTERNAL_API_WARNING"
29187	//   "FIELD_VALUE_OVERRIDEN"
29188	//   "INJECTED_KERNELS_DEPRECATED"
29189	//   "MISSING_TYPE_DEPENDENCY"
29190	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29191	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29192	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29193	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29194	//   "NEXT_HOP_NOT_RUNNING"
29195	//   "NOT_CRITICAL_ERROR"
29196	//   "NO_RESULTS_ON_PAGE"
29197	//   "REQUIRED_TOS_AGREEMENT"
29198	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29199	//   "RESOURCE_NOT_DELETED"
29200	//   "SCHEMA_VALIDATION_IGNORED"
29201	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29202	//   "UNDECLARED_PROPERTIES"
29203	//   "UNREACHABLE"
29204	Code string `json:"code,omitempty"`
29205
29206	// Data: [Output Only] Metadata about this warning in key: value format.
29207	// For example:
29208	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29209	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
29210
29211	// Message: [Output Only] A human-readable description of the warning
29212	// code.
29213	Message string `json:"message,omitempty"`
29214
29215	// ForceSendFields is a list of field names (e.g. "Code") to
29216	// unconditionally include in API requests. By default, fields with
29217	// empty values are omitted from API requests. However, any non-pointer,
29218	// non-interface field appearing in ForceSendFields will be sent to the
29219	// server regardless of whether the field is empty or not. This may be
29220	// used to include empty fields in Patch requests.
29221	ForceSendFields []string `json:"-"`
29222
29223	// NullFields is a list of field names (e.g. "Code") to include in API
29224	// requests with the JSON null value. By default, fields with empty
29225	// values are omitted from API requests. However, any field with an
29226	// empty value appearing in NullFields will be sent to the server as
29227	// null. It is an error if a field in this list has a non-empty value.
29228	// This may be used to include null fields in Patch requests.
29229	NullFields []string `json:"-"`
29230}
29231
29232func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
29233	type NoMethod ResourcePolicyAggregatedListWarning
29234	raw := NoMethod(*s)
29235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29236}
29237
29238type ResourcePolicyAggregatedListWarningData struct {
29239	// Key: [Output Only] A key that provides more detail on the warning
29240	// being returned. For example, for warnings where there are no results
29241	// in a list request for a particular zone, this key might be scope and
29242	// the key value might be the zone name. Other examples might be a key
29243	// indicating a deprecated resource and a suggested replacement, or a
29244	// warning about invalid network settings (for example, if an instance
29245	// attempts to perform IP forwarding but is not enabled for IP
29246	// forwarding).
29247	Key string `json:"key,omitempty"`
29248
29249	// Value: [Output Only] A warning data value corresponding to the key.
29250	Value string `json:"value,omitempty"`
29251
29252	// ForceSendFields is a list of field names (e.g. "Key") to
29253	// unconditionally include in API requests. By default, fields with
29254	// empty values are omitted from API requests. However, any non-pointer,
29255	// non-interface field appearing in ForceSendFields will be sent to the
29256	// server regardless of whether the field is empty or not. This may be
29257	// used to include empty fields in Patch requests.
29258	ForceSendFields []string `json:"-"`
29259
29260	// NullFields is a list of field names (e.g. "Key") to include in API
29261	// requests with the JSON null value. By default, fields with empty
29262	// values are omitted from API requests. However, any field with an
29263	// empty value appearing in NullFields will be sent to the server as
29264	// null. It is an error if a field in this list has a non-empty value.
29265	// This may be used to include null fields in Patch requests.
29266	NullFields []string `json:"-"`
29267}
29268
29269func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29270	type NoMethod ResourcePolicyAggregatedListWarningData
29271	raw := NoMethod(*s)
29272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29273}
29274
29275// ResourcePolicyDailyCycle: Time window specified for daily operations.
29276type ResourcePolicyDailyCycle struct {
29277	// DaysInCycle: Defines a schedule with units measured in months. The
29278	// value determines how many months pass between the start of each
29279	// cycle.
29280	DaysInCycle int64 `json:"daysInCycle,omitempty"`
29281
29282	// Duration: [Output only] A predetermined duration for the window,
29283	// automatically chosen to be the smallest possible in the given
29284	// scenario.
29285	Duration string `json:"duration,omitempty"`
29286
29287	// StartTime: Start time of the window. This must be in UTC format that
29288	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
29289	// example, both 13:00-5 and 08:00 are valid.
29290	StartTime string `json:"startTime,omitempty"`
29291
29292	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
29293	// unconditionally include in API requests. By default, fields with
29294	// empty values are omitted from API requests. However, any non-pointer,
29295	// non-interface field appearing in ForceSendFields will be sent to the
29296	// server regardless of whether the field is empty or not. This may be
29297	// used to include empty fields in Patch requests.
29298	ForceSendFields []string `json:"-"`
29299
29300	// NullFields is a list of field names (e.g. "DaysInCycle") to include
29301	// in API requests with the JSON null value. By default, fields with
29302	// empty values are omitted from API requests. However, any field with
29303	// an empty value appearing in NullFields will be sent to the server as
29304	// null. It is an error if a field in this list has a non-empty value.
29305	// This may be used to include null fields in Patch requests.
29306	NullFields []string `json:"-"`
29307}
29308
29309func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
29310	type NoMethod ResourcePolicyDailyCycle
29311	raw := NoMethod(*s)
29312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29313}
29314
29315// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
29316// resource placement configuration. It specifies the failure bucket
29317// separation as well as network locality
29318type ResourcePolicyGroupPlacementPolicy struct {
29319	// AvailabilityDomainCount: The number of availability domains instances
29320	// will be spread across. If two instances are in different availability
29321	// domain, they will not be put in the same low latency network
29322	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
29323
29324	// Collocation: Specifies network collocation
29325	//
29326	// Possible values:
29327	//   "COLLOCATED"
29328	//   "UNSPECIFIED_COLLOCATION"
29329	Collocation string `json:"collocation,omitempty"`
29330
29331	// VmCount: Number of vms in this placement group
29332	VmCount int64 `json:"vmCount,omitempty"`
29333
29334	// ForceSendFields is a list of field names (e.g.
29335	// "AvailabilityDomainCount") to unconditionally include in API
29336	// requests. By default, fields with empty values are omitted from API
29337	// requests. However, any non-pointer, non-interface field appearing in
29338	// ForceSendFields will be sent to the server regardless of whether the
29339	// field is empty or not. This may be used to include empty fields in
29340	// Patch requests.
29341	ForceSendFields []string `json:"-"`
29342
29343	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
29344	// to include in API requests with the JSON null value. By default,
29345	// fields with empty values are omitted from API requests. However, any
29346	// field with an empty value appearing in NullFields will be sent to the
29347	// server as null. It is an error if a field in this list has a
29348	// non-empty value. This may be used to include null fields in Patch
29349	// requests.
29350	NullFields []string `json:"-"`
29351}
29352
29353func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
29354	type NoMethod ResourcePolicyGroupPlacementPolicy
29355	raw := NoMethod(*s)
29356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29357}
29358
29359// ResourcePolicyHourlyCycle: Time window specified for hourly
29360// operations.
29361type ResourcePolicyHourlyCycle struct {
29362	// Duration: [Output only] Duration of the time window, automatically
29363	// chosen to be smallest possible in the given scenario.
29364	Duration string `json:"duration,omitempty"`
29365
29366	// HoursInCycle: Defines a schedule with units measured in hours. The
29367	// value determines how many hours pass between the start of each cycle.
29368	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
29369
29370	// StartTime: Time within the window to start the operations. It must be
29371	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
29372	StartTime string `json:"startTime,omitempty"`
29373
29374	// ForceSendFields is a list of field names (e.g. "Duration") to
29375	// unconditionally include in API requests. By default, fields with
29376	// empty values are omitted from API requests. However, any non-pointer,
29377	// non-interface field appearing in ForceSendFields will be sent to the
29378	// server regardless of whether the field is empty or not. This may be
29379	// used to include empty fields in Patch requests.
29380	ForceSendFields []string `json:"-"`
29381
29382	// NullFields is a list of field names (e.g. "Duration") to include in
29383	// API requests with the JSON null value. By default, fields with empty
29384	// values are omitted from API requests. However, any field with an
29385	// empty value appearing in NullFields will be sent to the server as
29386	// null. It is an error if a field in this list has a non-empty value.
29387	// This may be used to include null fields in Patch requests.
29388	NullFields []string `json:"-"`
29389}
29390
29391func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
29392	type NoMethod ResourcePolicyHourlyCycle
29393	raw := NoMethod(*s)
29394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29395}
29396
29397type ResourcePolicyList struct {
29398	Etag string `json:"etag,omitempty"`
29399
29400	// Id: [Output Only] The unique identifier for the resource. This
29401	// identifier is defined by the server.
29402	Id string `json:"id,omitempty"`
29403
29404	// Items: [Output Only] A list of ResourcePolicy resources.
29405	Items []*ResourcePolicy `json:"items,omitempty"`
29406
29407	// Kind: [Output Only] Type of resource.Always
29408	// compute#resourcePoliciesList for listsof resourcePolicies
29409	Kind string `json:"kind,omitempty"`
29410
29411	// NextPageToken: [Output Only] This token allows you to get the next
29412	// page of results for list requests. If the number of results is larger
29413	// than maxResults, use the nextPageToken as a value for the query
29414	// parameter pageToken in the next list request. Subsequent list
29415	// requests will have their own nextPageToken to continue paging through
29416	// the results.
29417	NextPageToken string `json:"nextPageToken,omitempty"`
29418
29419	// SelfLink: [Output Only] Server-defined URL for this resource.
29420	SelfLink string `json:"selfLink,omitempty"`
29421
29422	// Warning: [Output Only] Informational warning message.
29423	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
29424
29425	// ServerResponse contains the HTTP response code and headers from the
29426	// server.
29427	googleapi.ServerResponse `json:"-"`
29428
29429	// ForceSendFields is a list of field names (e.g. "Etag") to
29430	// unconditionally include in API requests. By default, fields with
29431	// empty values are omitted from API requests. However, any non-pointer,
29432	// non-interface field appearing in ForceSendFields will be sent to the
29433	// server regardless of whether the field is empty or not. This may be
29434	// used to include empty fields in Patch requests.
29435	ForceSendFields []string `json:"-"`
29436
29437	// NullFields is a list of field names (e.g. "Etag") to include in API
29438	// requests with the JSON null value. By default, fields with empty
29439	// values are omitted from API requests. However, any field with an
29440	// empty value appearing in NullFields will be sent to the server as
29441	// null. It is an error if a field in this list has a non-empty value.
29442	// This may be used to include null fields in Patch requests.
29443	NullFields []string `json:"-"`
29444}
29445
29446func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
29447	type NoMethod ResourcePolicyList
29448	raw := NoMethod(*s)
29449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29450}
29451
29452// ResourcePolicyListWarning: [Output Only] Informational warning
29453// message.
29454type ResourcePolicyListWarning struct {
29455	// Code: [Output Only] A warning code, if applicable. For example,
29456	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29457	// the response.
29458	//
29459	// Possible values:
29460	//   "CLEANUP_FAILED"
29461	//   "DEPRECATED_RESOURCE_USED"
29462	//   "DEPRECATED_TYPE_USED"
29463	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29464	//   "EXPERIMENTAL_TYPE_USED"
29465	//   "EXTERNAL_API_WARNING"
29466	//   "FIELD_VALUE_OVERRIDEN"
29467	//   "INJECTED_KERNELS_DEPRECATED"
29468	//   "MISSING_TYPE_DEPENDENCY"
29469	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29470	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29471	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29472	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29473	//   "NEXT_HOP_NOT_RUNNING"
29474	//   "NOT_CRITICAL_ERROR"
29475	//   "NO_RESULTS_ON_PAGE"
29476	//   "REQUIRED_TOS_AGREEMENT"
29477	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29478	//   "RESOURCE_NOT_DELETED"
29479	//   "SCHEMA_VALIDATION_IGNORED"
29480	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29481	//   "UNDECLARED_PROPERTIES"
29482	//   "UNREACHABLE"
29483	Code string `json:"code,omitempty"`
29484
29485	// Data: [Output Only] Metadata about this warning in key: value format.
29486	// For example:
29487	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29488	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
29489
29490	// Message: [Output Only] A human-readable description of the warning
29491	// code.
29492	Message string `json:"message,omitempty"`
29493
29494	// ForceSendFields is a list of field names (e.g. "Code") to
29495	// unconditionally include in API requests. By default, fields with
29496	// empty values are omitted from API requests. However, any non-pointer,
29497	// non-interface field appearing in ForceSendFields will be sent to the
29498	// server regardless of whether the field is empty or not. This may be
29499	// used to include empty fields in Patch requests.
29500	ForceSendFields []string `json:"-"`
29501
29502	// NullFields is a list of field names (e.g. "Code") to include in API
29503	// requests with the JSON null value. By default, fields with empty
29504	// values are omitted from API requests. However, any field with an
29505	// empty value appearing in NullFields will be sent to the server as
29506	// null. It is an error if a field in this list has a non-empty value.
29507	// This may be used to include null fields in Patch requests.
29508	NullFields []string `json:"-"`
29509}
29510
29511func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
29512	type NoMethod ResourcePolicyListWarning
29513	raw := NoMethod(*s)
29514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29515}
29516
29517type ResourcePolicyListWarningData struct {
29518	// Key: [Output Only] A key that provides more detail on the warning
29519	// being returned. For example, for warnings where there are no results
29520	// in a list request for a particular zone, this key might be scope and
29521	// the key value might be the zone name. Other examples might be a key
29522	// indicating a deprecated resource and a suggested replacement, or a
29523	// warning about invalid network settings (for example, if an instance
29524	// attempts to perform IP forwarding but is not enabled for IP
29525	// forwarding).
29526	Key string `json:"key,omitempty"`
29527
29528	// Value: [Output Only] A warning data value corresponding to the key.
29529	Value string `json:"value,omitempty"`
29530
29531	// ForceSendFields is a list of field names (e.g. "Key") to
29532	// unconditionally include in API requests. By default, fields with
29533	// empty values are omitted from API requests. However, any non-pointer,
29534	// non-interface field appearing in ForceSendFields will be sent to the
29535	// server regardless of whether the field is empty or not. This may be
29536	// used to include empty fields in Patch requests.
29537	ForceSendFields []string `json:"-"`
29538
29539	// NullFields is a list of field names (e.g. "Key") to include in API
29540	// requests with the JSON null value. By default, fields with empty
29541	// values are omitted from API requests. However, any field with an
29542	// empty value appearing in NullFields will be sent to the server as
29543	// null. It is an error if a field in this list has a non-empty value.
29544	// This may be used to include null fields in Patch requests.
29545	NullFields []string `json:"-"`
29546}
29547
29548func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
29549	type NoMethod ResourcePolicyListWarningData
29550	raw := NoMethod(*s)
29551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29552}
29553
29554// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
29555// specifies when and how frequently snapshots are to be created for the
29556// target disk. Also specifies how many and how long these scheduled
29557// snapshots should be retained.
29558type ResourcePolicySnapshotSchedulePolicy struct {
29559	// RetentionPolicy: Retention policy applied to snapshots created by
29560	// this resource policy.
29561	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
29562
29563	// Schedule: A Vm Maintenance Policy specifies what kind of
29564	// infrastructure maintenance we are allowed to perform on this VM and
29565	// when. Schedule that is applied to disks covered by this policy.
29566	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
29567
29568	// SnapshotProperties: Properties with which snapshots are created such
29569	// as labels, encryption keys.
29570	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
29571
29572	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
29573	// unconditionally include in API requests. By default, fields with
29574	// empty values are omitted from API requests. However, any non-pointer,
29575	// non-interface field appearing in ForceSendFields will be sent to the
29576	// server regardless of whether the field is empty or not. This may be
29577	// used to include empty fields in Patch requests.
29578	ForceSendFields []string `json:"-"`
29579
29580	// NullFields is a list of field names (e.g. "RetentionPolicy") to
29581	// include in API requests with the JSON null value. By default, fields
29582	// with empty values are omitted from API requests. However, any field
29583	// with an empty value appearing in NullFields will be sent to the
29584	// server as null. It is an error if a field in this list has a
29585	// non-empty value. This may be used to include null fields in Patch
29586	// requests.
29587	NullFields []string `json:"-"`
29588}
29589
29590func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
29591	type NoMethod ResourcePolicySnapshotSchedulePolicy
29592	raw := NoMethod(*s)
29593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29594}
29595
29596// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
29597// retention of scheduled snapshots.
29598type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
29599	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
29600	// kept.
29601	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
29602
29603	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
29604	// snapshots when the source disk is deleted.
29605	//
29606	// Possible values:
29607	//   "APPLY_RETENTION_POLICY"
29608	//   "KEEP_AUTO_SNAPSHOTS"
29609	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
29610	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
29611
29612	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
29613	// unconditionally include in API requests. By default, fields with
29614	// empty values are omitted from API requests. However, any non-pointer,
29615	// non-interface field appearing in ForceSendFields will be sent to the
29616	// server regardless of whether the field is empty or not. This may be
29617	// used to include empty fields in Patch requests.
29618	ForceSendFields []string `json:"-"`
29619
29620	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
29621	// include in API requests with the JSON null value. By default, fields
29622	// with empty values are omitted from API requests. However, any field
29623	// with an empty value appearing in NullFields will be sent to the
29624	// server as null. It is an error if a field in this list has a
29625	// non-empty value. This may be used to include null fields in Patch
29626	// requests.
29627	NullFields []string `json:"-"`
29628}
29629
29630func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
29631	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
29632	raw := NoMethod(*s)
29633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29634}
29635
29636// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
29637// where the schedueled operations are performed.
29638type ResourcePolicySnapshotSchedulePolicySchedule struct {
29639	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
29640
29641	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
29642
29643	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
29644
29645	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
29646	// unconditionally include in API requests. By default, fields with
29647	// empty values are omitted from API requests. However, any non-pointer,
29648	// non-interface field appearing in ForceSendFields will be sent to the
29649	// server regardless of whether the field is empty or not. This may be
29650	// used to include empty fields in Patch requests.
29651	ForceSendFields []string `json:"-"`
29652
29653	// NullFields is a list of field names (e.g. "DailySchedule") to include
29654	// in API requests with the JSON null value. By default, fields with
29655	// empty values are omitted from API requests. However, any field with
29656	// an empty value appearing in NullFields will be sent to the server as
29657	// null. It is an error if a field in this list has a non-empty value.
29658	// This may be used to include null fields in Patch requests.
29659	NullFields []string `json:"-"`
29660}
29661
29662func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
29663	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
29664	raw := NoMethod(*s)
29665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29666}
29667
29668// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
29669// snapshot properties for scheduled snapshots created by this policy.
29670type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
29671	// GuestFlush: Indication to perform a 'guest aware' snapshot.
29672	GuestFlush bool `json:"guestFlush,omitempty"`
29673
29674	// Labels: Labels to apply to scheduled snapshots. These can be later
29675	// modified by the setLabels method. Label values may be empty.
29676	Labels map[string]string `json:"labels,omitempty"`
29677
29678	// StorageLocations: Cloud Storage bucket storage location of the auto
29679	// snapshot (regional or multi-regional).
29680	StorageLocations []string `json:"storageLocations,omitempty"`
29681
29682	// ForceSendFields is a list of field names (e.g. "GuestFlush") to
29683	// unconditionally include in API requests. By default, fields with
29684	// empty values are omitted from API requests. However, any non-pointer,
29685	// non-interface field appearing in ForceSendFields will be sent to the
29686	// server regardless of whether the field is empty or not. This may be
29687	// used to include empty fields in Patch requests.
29688	ForceSendFields []string `json:"-"`
29689
29690	// NullFields is a list of field names (e.g. "GuestFlush") to include in
29691	// API requests with the JSON null value. By default, fields with empty
29692	// values are omitted from API requests. However, any field with an
29693	// empty value appearing in NullFields will be sent to the server as
29694	// null. It is an error if a field in this list has a non-empty value.
29695	// This may be used to include null fields in Patch requests.
29696	NullFields []string `json:"-"`
29697}
29698
29699func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
29700	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
29701	raw := NoMethod(*s)
29702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29703}
29704
29705// ResourcePolicyWeeklyCycle: Time window specified for weekly
29706// operations.
29707type ResourcePolicyWeeklyCycle struct {
29708	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
29709	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
29710
29711	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
29712	// unconditionally include in API requests. By default, fields with
29713	// empty values are omitted from API requests. However, any non-pointer,
29714	// non-interface field appearing in ForceSendFields will be sent to the
29715	// server regardless of whether the field is empty or not. This may be
29716	// used to include empty fields in Patch requests.
29717	ForceSendFields []string `json:"-"`
29718
29719	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
29720	// API requests with the JSON null value. By default, fields with empty
29721	// values are omitted from API requests. However, any field with an
29722	// empty value appearing in NullFields will be sent to the server as
29723	// null. It is an error if a field in this list has a non-empty value.
29724	// This may be used to include null fields in Patch requests.
29725	NullFields []string `json:"-"`
29726}
29727
29728func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
29729	type NoMethod ResourcePolicyWeeklyCycle
29730	raw := NoMethod(*s)
29731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29732}
29733
29734type ResourcePolicyWeeklyCycleDayOfWeek struct {
29735	// Day: Defines a schedule that runs on specific days of the week.
29736	// Specify one or more days. The following options are available:
29737	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
29738	//
29739	// Possible values:
29740	//   "FRIDAY"
29741	//   "INVALID"
29742	//   "MONDAY"
29743	//   "SATURDAY"
29744	//   "SUNDAY"
29745	//   "THURSDAY"
29746	//   "TUESDAY"
29747	//   "WEDNESDAY"
29748	Day string `json:"day,omitempty"`
29749
29750	// Duration: [Output only] Duration of the time window, automatically
29751	// chosen to be smallest possible in the given scenario.
29752	Duration string `json:"duration,omitempty"`
29753
29754	// StartTime: Time within the window to start the operations. It must be
29755	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
29756	StartTime string `json:"startTime,omitempty"`
29757
29758	// ForceSendFields is a list of field names (e.g. "Day") to
29759	// unconditionally include in API requests. By default, fields with
29760	// empty values are omitted from API requests. However, any non-pointer,
29761	// non-interface field appearing in ForceSendFields will be sent to the
29762	// server regardless of whether the field is empty or not. This may be
29763	// used to include empty fields in Patch requests.
29764	ForceSendFields []string `json:"-"`
29765
29766	// NullFields is a list of field names (e.g. "Day") to include in API
29767	// requests with the JSON null value. By default, fields with empty
29768	// values are omitted from API requests. However, any field with an
29769	// empty value appearing in NullFields will be sent to the server as
29770	// null. It is an error if a field in this list has a non-empty value.
29771	// This may be used to include null fields in Patch requests.
29772	NullFields []string `json:"-"`
29773}
29774
29775func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
29776	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
29777	raw := NoMethod(*s)
29778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29779}
29780
29781// Route: Represents a Route resource.
29782//
29783// A route defines a path from VM instances in the VPC network to a
29784// specific destination. This destination can be inside or outside the
29785// VPC network. For more information, read the Routes overview. (==
29786// resource_for {$api_version}.routes ==)
29787type Route struct {
29788	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29789	// format.
29790	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29791
29792	// Description: An optional description of this resource. Provide this
29793	// field when you create the resource.
29794	Description string `json:"description,omitempty"`
29795
29796	// DestRange: The destination range of outgoing packets that this route
29797	// applies to. Only IPv4 is supported.
29798	DestRange string `json:"destRange,omitempty"`
29799
29800	// Id: [Output Only] The unique identifier for the resource. This
29801	// identifier is defined by the server.
29802	Id uint64 `json:"id,omitempty,string"`
29803
29804	// Kind: [Output Only] Type of this resource. Always compute#routes for
29805	// Route resources.
29806	Kind string `json:"kind,omitempty"`
29807
29808	// Name: Name of the resource. Provided by the client when the resource
29809	// is created. The name must be 1-63 characters long, and comply with
29810	// RFC1035. Specifically, the name must be 1-63 characters long and
29811	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
29812	// character must be a lowercase letter, and all following characters
29813	// (except for the last character) must be a dash, lowercase letter, or
29814	// digit. The last character must be a lowercase letter or digit.
29815	Name string `json:"name,omitempty"`
29816
29817	// Network: Fully-qualified URL of the network that this route applies
29818	// to.
29819	Network string `json:"network,omitempty"`
29820
29821	// NextHopGateway: The URL to a gateway that should handle matching
29822	// packets. You can only specify the internet gateway using a full or
29823	// partial valid URL:
29824	// projects/project/global/gateways/default-internet-gateway
29825	NextHopGateway string `json:"nextHopGateway,omitempty"`
29826
29827	// NextHopIlb: The URL to a forwarding rule of type
29828	// loadBalancingScheme=INTERNAL that should handle matching packets. You
29829	// can only specify the forwarding rule as a partial or full URL. For
29830	// example, the following are all valid URLs:
29831	// -
29832	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
29833	// - regions/region/forwardingRules/forwardingRule
29834	NextHopIlb string `json:"nextHopIlb,omitempty"`
29835
29836	// NextHopInstance: The URL to an instance that should handle matching
29837	// packets. You can specify this as a full or partial URL. For
29838	// example:
29839	// https://www.googleapis.com/compute/v1/projects/project/zones/
29840	// zone/instances/
29841	NextHopInstance string `json:"nextHopInstance,omitempty"`
29842
29843	// NextHopIp: The network IP address of an instance that should handle
29844	// matching packets. Only IPv4 is supported.
29845	NextHopIp string `json:"nextHopIp,omitempty"`
29846
29847	// NextHopNetwork: The URL of the local network if it should handle
29848	// matching packets.
29849	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
29850
29851	// NextHopPeering: [Output Only] The network peering name that should
29852	// handle matching packets, which should conform to RFC1035.
29853	NextHopPeering string `json:"nextHopPeering,omitempty"`
29854
29855	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
29856	// packets.
29857	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
29858
29859	// Priority: The priority of this route. Priority is used to break ties
29860	// in cases where there is more than one matching route of equal prefix
29861	// length. In cases where multiple routes have equal prefix length, the
29862	// one with the lowest-numbered priority value wins. The default value
29863	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
29864	Priority int64 `json:"priority,omitempty"`
29865
29866	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
29867	// resource.
29868	SelfLink string `json:"selfLink,omitempty"`
29869
29870	// Tags: A list of instance tags to which this route applies.
29871	Tags []string `json:"tags,omitempty"`
29872
29873	// Warnings: [Output Only] If potential misconfigurations are detected
29874	// for this route, this field will be populated with warning messages.
29875	Warnings []*RouteWarnings `json:"warnings,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. "CreationTimestamp")
29882	// to 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. "CreationTimestamp") 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 *Route) MarshalJSON() ([]byte, error) {
29900	type NoMethod Route
29901	raw := NoMethod(*s)
29902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29903}
29904
29905type RouteWarnings struct {
29906	// Code: [Output Only] A warning code, if applicable. For example,
29907	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29908	// the response.
29909	//
29910	// Possible values:
29911	//   "CLEANUP_FAILED"
29912	//   "DEPRECATED_RESOURCE_USED"
29913	//   "DEPRECATED_TYPE_USED"
29914	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29915	//   "EXPERIMENTAL_TYPE_USED"
29916	//   "EXTERNAL_API_WARNING"
29917	//   "FIELD_VALUE_OVERRIDEN"
29918	//   "INJECTED_KERNELS_DEPRECATED"
29919	//   "MISSING_TYPE_DEPENDENCY"
29920	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29921	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29922	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29923	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29924	//   "NEXT_HOP_NOT_RUNNING"
29925	//   "NOT_CRITICAL_ERROR"
29926	//   "NO_RESULTS_ON_PAGE"
29927	//   "REQUIRED_TOS_AGREEMENT"
29928	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29929	//   "RESOURCE_NOT_DELETED"
29930	//   "SCHEMA_VALIDATION_IGNORED"
29931	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29932	//   "UNDECLARED_PROPERTIES"
29933	//   "UNREACHABLE"
29934	Code string `json:"code,omitempty"`
29935
29936	// Data: [Output Only] Metadata about this warning in key: value format.
29937	// For example:
29938	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29939	Data []*RouteWarningsData `json:"data,omitempty"`
29940
29941	// Message: [Output Only] A human-readable description of the warning
29942	// code.
29943	Message string `json:"message,omitempty"`
29944
29945	// ForceSendFields is a list of field names (e.g. "Code") to
29946	// unconditionally include in API requests. By default, fields with
29947	// empty values are omitted from API requests. However, any non-pointer,
29948	// non-interface field appearing in ForceSendFields will be sent to the
29949	// server regardless of whether the field is empty or not. This may be
29950	// used to include empty fields in Patch requests.
29951	ForceSendFields []string `json:"-"`
29952
29953	// NullFields is a list of field names (e.g. "Code") to include in API
29954	// requests with the JSON null value. By default, fields with empty
29955	// values are omitted from API requests. However, any field with an
29956	// empty value appearing in NullFields will be sent to the server as
29957	// null. It is an error if a field in this list has a non-empty value.
29958	// This may be used to include null fields in Patch requests.
29959	NullFields []string `json:"-"`
29960}
29961
29962func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
29963	type NoMethod RouteWarnings
29964	raw := NoMethod(*s)
29965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29966}
29967
29968type RouteWarningsData struct {
29969	// Key: [Output Only] A key that provides more detail on the warning
29970	// being returned. For example, for warnings where there are no results
29971	// in a list request for a particular zone, this key might be scope and
29972	// the key value might be the zone name. Other examples might be a key
29973	// indicating a deprecated resource and a suggested replacement, or a
29974	// warning about invalid network settings (for example, if an instance
29975	// attempts to perform IP forwarding but is not enabled for IP
29976	// forwarding).
29977	Key string `json:"key,omitempty"`
29978
29979	// Value: [Output Only] A warning data value corresponding to the key.
29980	Value string `json:"value,omitempty"`
29981
29982	// ForceSendFields is a list of field names (e.g. "Key") to
29983	// unconditionally include in API requests. By default, fields with
29984	// empty values are omitted from API requests. However, any non-pointer,
29985	// non-interface field appearing in ForceSendFields will be sent to the
29986	// server regardless of whether the field is empty or not. This may be
29987	// used to include empty fields in Patch requests.
29988	ForceSendFields []string `json:"-"`
29989
29990	// NullFields is a list of field names (e.g. "Key") to include in API
29991	// requests with the JSON null value. By default, fields with empty
29992	// values are omitted from API requests. However, any field with an
29993	// empty value appearing in NullFields will be sent to the server as
29994	// null. It is an error if a field in this list has a non-empty value.
29995	// This may be used to include null fields in Patch requests.
29996	NullFields []string `json:"-"`
29997}
29998
29999func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
30000	type NoMethod RouteWarningsData
30001	raw := NoMethod(*s)
30002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30003}
30004
30005// RouteList: Contains a list of Route resources.
30006type RouteList struct {
30007	// Id: [Output Only] Unique identifier for the resource; defined by the
30008	// server.
30009	Id string `json:"id,omitempty"`
30010
30011	// Items: A list of Route resources.
30012	Items []*Route `json:"items,omitempty"`
30013
30014	// Kind: Type of resource.
30015	Kind string `json:"kind,omitempty"`
30016
30017	// NextPageToken: [Output Only] This token allows you to get the next
30018	// page of results for list requests. If the number of results is larger
30019	// than maxResults, use the nextPageToken as a value for the query
30020	// parameter pageToken in the next list request. Subsequent list
30021	// requests will have their own nextPageToken to continue paging through
30022	// the results.
30023	NextPageToken string `json:"nextPageToken,omitempty"`
30024
30025	// SelfLink: [Output Only] Server-defined URL for this resource.
30026	SelfLink string `json:"selfLink,omitempty"`
30027
30028	// Warning: [Output Only] Informational warning message.
30029	Warning *RouteListWarning `json:"warning,omitempty"`
30030
30031	// ServerResponse contains the HTTP response code and headers from the
30032	// server.
30033	googleapi.ServerResponse `json:"-"`
30034
30035	// ForceSendFields is a list of field names (e.g. "Id") to
30036	// unconditionally include in API requests. By default, fields with
30037	// empty values are omitted from API requests. However, any non-pointer,
30038	// non-interface field appearing in ForceSendFields will be sent to the
30039	// server regardless of whether the field is empty or not. This may be
30040	// used to include empty fields in Patch requests.
30041	ForceSendFields []string `json:"-"`
30042
30043	// NullFields is a list of field names (e.g. "Id") to include in API
30044	// requests with the JSON null value. By default, fields with empty
30045	// values are omitted from API requests. However, any field with an
30046	// empty value appearing in NullFields will be sent to the server as
30047	// null. It is an error if a field in this list has a non-empty value.
30048	// This may be used to include null fields in Patch requests.
30049	NullFields []string `json:"-"`
30050}
30051
30052func (s *RouteList) MarshalJSON() ([]byte, error) {
30053	type NoMethod RouteList
30054	raw := NoMethod(*s)
30055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30056}
30057
30058// RouteListWarning: [Output Only] Informational warning message.
30059type RouteListWarning struct {
30060	// Code: [Output Only] A warning code, if applicable. For example,
30061	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30062	// the response.
30063	//
30064	// Possible values:
30065	//   "CLEANUP_FAILED"
30066	//   "DEPRECATED_RESOURCE_USED"
30067	//   "DEPRECATED_TYPE_USED"
30068	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30069	//   "EXPERIMENTAL_TYPE_USED"
30070	//   "EXTERNAL_API_WARNING"
30071	//   "FIELD_VALUE_OVERRIDEN"
30072	//   "INJECTED_KERNELS_DEPRECATED"
30073	//   "MISSING_TYPE_DEPENDENCY"
30074	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30075	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30076	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30077	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30078	//   "NEXT_HOP_NOT_RUNNING"
30079	//   "NOT_CRITICAL_ERROR"
30080	//   "NO_RESULTS_ON_PAGE"
30081	//   "REQUIRED_TOS_AGREEMENT"
30082	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30083	//   "RESOURCE_NOT_DELETED"
30084	//   "SCHEMA_VALIDATION_IGNORED"
30085	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30086	//   "UNDECLARED_PROPERTIES"
30087	//   "UNREACHABLE"
30088	Code string `json:"code,omitempty"`
30089
30090	// Data: [Output Only] Metadata about this warning in key: value format.
30091	// For example:
30092	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30093	Data []*RouteListWarningData `json:"data,omitempty"`
30094
30095	// Message: [Output Only] A human-readable description of the warning
30096	// code.
30097	Message string `json:"message,omitempty"`
30098
30099	// ForceSendFields is a list of field names (e.g. "Code") to
30100	// unconditionally include in API requests. By default, fields with
30101	// empty values are omitted from API requests. However, any non-pointer,
30102	// non-interface field appearing in ForceSendFields will be sent to the
30103	// server regardless of whether the field is empty or not. This may be
30104	// used to include empty fields in Patch requests.
30105	ForceSendFields []string `json:"-"`
30106
30107	// NullFields is a list of field names (e.g. "Code") to include in API
30108	// requests with the JSON null value. By default, fields with empty
30109	// values are omitted from API requests. However, any field with an
30110	// empty value appearing in NullFields will be sent to the server as
30111	// null. It is an error if a field in this list has a non-empty value.
30112	// This may be used to include null fields in Patch requests.
30113	NullFields []string `json:"-"`
30114}
30115
30116func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
30117	type NoMethod RouteListWarning
30118	raw := NoMethod(*s)
30119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30120}
30121
30122type RouteListWarningData struct {
30123	// Key: [Output Only] A key that provides more detail on the warning
30124	// being returned. For example, for warnings where there are no results
30125	// in a list request for a particular zone, this key might be scope and
30126	// the key value might be the zone name. Other examples might be a key
30127	// indicating a deprecated resource and a suggested replacement, or a
30128	// warning about invalid network settings (for example, if an instance
30129	// attempts to perform IP forwarding but is not enabled for IP
30130	// forwarding).
30131	Key string `json:"key,omitempty"`
30132
30133	// Value: [Output Only] A warning data value corresponding to the key.
30134	Value string `json:"value,omitempty"`
30135
30136	// ForceSendFields is a list of field names (e.g. "Key") to
30137	// unconditionally include in API requests. By default, fields with
30138	// empty values are omitted from API requests. However, any non-pointer,
30139	// non-interface field appearing in ForceSendFields will be sent to the
30140	// server regardless of whether the field is empty or not. This may be
30141	// used to include empty fields in Patch requests.
30142	ForceSendFields []string `json:"-"`
30143
30144	// NullFields is a list of field names (e.g. "Key") to include in API
30145	// requests with the JSON null value. By default, fields with empty
30146	// values are omitted from API requests. However, any field with an
30147	// empty value appearing in NullFields will be sent to the server as
30148	// null. It is an error if a field in this list has a non-empty value.
30149	// This may be used to include null fields in Patch requests.
30150	NullFields []string `json:"-"`
30151}
30152
30153func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
30154	type NoMethod RouteListWarningData
30155	raw := NoMethod(*s)
30156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30157}
30158
30159// Router: Represents a Cloud Router resource.
30160//
30161// For more information about Cloud Router, read the Cloud Router
30162// overview.
30163type Router struct {
30164	// Bgp: BGP information specific to this router.
30165	Bgp *RouterBgp `json:"bgp,omitempty"`
30166
30167	// BgpPeers: BGP information that must be configured into the routing
30168	// stack to establish BGP peering. This information must specify the
30169	// peer ASN and either the interface name, IP address, or peer IP
30170	// address. Please refer to RFC4273.
30171	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
30172
30173	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30174	// format.
30175	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30176
30177	// Description: An optional description of this resource. Provide this
30178	// property when you create the resource.
30179	Description string `json:"description,omitempty"`
30180
30181	// Id: [Output Only] The unique identifier for the resource. This
30182	// identifier is defined by the server.
30183	Id uint64 `json:"id,omitempty,string"`
30184
30185	// Interfaces: Router interfaces. Each interface requires either one
30186	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
30187	// address range (for example, ipRange), or both.
30188	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
30189
30190	// Kind: [Output Only] Type of resource. Always compute#router for
30191	// routers.
30192	Kind string `json:"kind,omitempty"`
30193
30194	// Name: Name of the resource. Provided by the client when the resource
30195	// is created. The name must be 1-63 characters long, and comply with
30196	// RFC1035. Specifically, the name must be 1-63 characters long and
30197	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
30198	// the first character must be a lowercase letter, and all following
30199	// characters must be a dash, lowercase letter, or digit, except the
30200	// last character, which cannot be a dash.
30201	Name string `json:"name,omitempty"`
30202
30203	// Nats: A list of NAT services created in this router.
30204	Nats []*RouterNat `json:"nats,omitempty"`
30205
30206	// Network: URI of the network to which this router belongs.
30207	Network string `json:"network,omitempty"`
30208
30209	// Region: [Output Only] URI of the region where the router resides. You
30210	// must specify this field as part of the HTTP request URL. It is not
30211	// settable as a field in the request body.
30212	Region string `json:"region,omitempty"`
30213
30214	// SelfLink: [Output Only] Server-defined URL for the resource.
30215	SelfLink string `json:"selfLink,omitempty"`
30216
30217	// ServerResponse contains the HTTP response code and headers from the
30218	// server.
30219	googleapi.ServerResponse `json:"-"`
30220
30221	// ForceSendFields is a list of field names (e.g. "Bgp") to
30222	// unconditionally include in API requests. By default, fields with
30223	// empty values are omitted from API requests. However, any non-pointer,
30224	// non-interface field appearing in ForceSendFields will be sent to the
30225	// server regardless of whether the field is empty or not. This may be
30226	// used to include empty fields in Patch requests.
30227	ForceSendFields []string `json:"-"`
30228
30229	// NullFields is a list of field names (e.g. "Bgp") to include in API
30230	// requests with the JSON null value. By default, fields with empty
30231	// values are omitted from API requests. However, any field with an
30232	// empty value appearing in NullFields will be sent to the server as
30233	// null. It is an error if a field in this list has a non-empty value.
30234	// This may be used to include null fields in Patch requests.
30235	NullFields []string `json:"-"`
30236}
30237
30238func (s *Router) MarshalJSON() ([]byte, error) {
30239	type NoMethod Router
30240	raw := NoMethod(*s)
30241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30242}
30243
30244// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
30245// to advertise.
30246type RouterAdvertisedIpRange struct {
30247	// Description: User-specified description for the IP range.
30248	Description string `json:"description,omitempty"`
30249
30250	// Range: The IP range to advertise. The value must be a CIDR-formatted
30251	// string.
30252	Range string `json:"range,omitempty"`
30253
30254	// ForceSendFields is a list of field names (e.g. "Description") to
30255	// unconditionally include in API requests. By default, fields with
30256	// empty values are omitted from API requests. However, any non-pointer,
30257	// non-interface field appearing in ForceSendFields will be sent to the
30258	// server regardless of whether the field is empty or not. This may be
30259	// used to include empty fields in Patch requests.
30260	ForceSendFields []string `json:"-"`
30261
30262	// NullFields is a list of field names (e.g. "Description") to include
30263	// in API requests with the JSON null value. By default, fields with
30264	// empty values are omitted from API requests. However, any field with
30265	// an empty value appearing in NullFields will be sent to the server as
30266	// null. It is an error if a field in this list has a non-empty value.
30267	// This may be used to include null fields in Patch requests.
30268	NullFields []string `json:"-"`
30269}
30270
30271func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
30272	type NoMethod RouterAdvertisedIpRange
30273	raw := NoMethod(*s)
30274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30275}
30276
30277// RouterAggregatedList: Contains a list of routers.
30278type RouterAggregatedList struct {
30279	// Id: [Output Only] Unique identifier for the resource; defined by the
30280	// server.
30281	Id string `json:"id,omitempty"`
30282
30283	// Items: A list of Router resources.
30284	Items map[string]RoutersScopedList `json:"items,omitempty"`
30285
30286	// Kind: Type of resource.
30287	Kind string `json:"kind,omitempty"`
30288
30289	// NextPageToken: [Output Only] This token allows you to get the next
30290	// page of results for list requests. If the number of results is larger
30291	// than maxResults, use the nextPageToken as a value for the query
30292	// parameter pageToken in the next list request. Subsequent list
30293	// requests will have their own nextPageToken to continue paging through
30294	// the results.
30295	NextPageToken string `json:"nextPageToken,omitempty"`
30296
30297	// SelfLink: [Output Only] Server-defined URL for this resource.
30298	SelfLink string `json:"selfLink,omitempty"`
30299
30300	// Warning: [Output Only] Informational warning message.
30301	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
30302
30303	// ServerResponse contains the HTTP response code and headers from the
30304	// server.
30305	googleapi.ServerResponse `json:"-"`
30306
30307	// ForceSendFields is a list of field names (e.g. "Id") to
30308	// unconditionally include in API requests. By default, fields with
30309	// empty values are omitted from API requests. However, any non-pointer,
30310	// non-interface field appearing in ForceSendFields will be sent to the
30311	// server regardless of whether the field is empty or not. This may be
30312	// used to include empty fields in Patch requests.
30313	ForceSendFields []string `json:"-"`
30314
30315	// NullFields is a list of field names (e.g. "Id") to include in API
30316	// requests with the JSON null value. By default, fields with empty
30317	// values are omitted from API requests. However, any field with an
30318	// empty value appearing in NullFields will be sent to the server as
30319	// null. It is an error if a field in this list has a non-empty value.
30320	// This may be used to include null fields in Patch requests.
30321	NullFields []string `json:"-"`
30322}
30323
30324func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
30325	type NoMethod RouterAggregatedList
30326	raw := NoMethod(*s)
30327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30328}
30329
30330// RouterAggregatedListWarning: [Output Only] Informational warning
30331// message.
30332type RouterAggregatedListWarning struct {
30333	// Code: [Output Only] A warning code, if applicable. For example,
30334	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30335	// the response.
30336	//
30337	// Possible values:
30338	//   "CLEANUP_FAILED"
30339	//   "DEPRECATED_RESOURCE_USED"
30340	//   "DEPRECATED_TYPE_USED"
30341	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30342	//   "EXPERIMENTAL_TYPE_USED"
30343	//   "EXTERNAL_API_WARNING"
30344	//   "FIELD_VALUE_OVERRIDEN"
30345	//   "INJECTED_KERNELS_DEPRECATED"
30346	//   "MISSING_TYPE_DEPENDENCY"
30347	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30348	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30349	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30350	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30351	//   "NEXT_HOP_NOT_RUNNING"
30352	//   "NOT_CRITICAL_ERROR"
30353	//   "NO_RESULTS_ON_PAGE"
30354	//   "REQUIRED_TOS_AGREEMENT"
30355	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30356	//   "RESOURCE_NOT_DELETED"
30357	//   "SCHEMA_VALIDATION_IGNORED"
30358	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30359	//   "UNDECLARED_PROPERTIES"
30360	//   "UNREACHABLE"
30361	Code string `json:"code,omitempty"`
30362
30363	// Data: [Output Only] Metadata about this warning in key: value format.
30364	// For example:
30365	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30366	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
30367
30368	// Message: [Output Only] A human-readable description of the warning
30369	// code.
30370	Message string `json:"message,omitempty"`
30371
30372	// ForceSendFields is a list of field names (e.g. "Code") to
30373	// unconditionally include in API requests. By default, fields with
30374	// empty values are omitted from API requests. However, any non-pointer,
30375	// non-interface field appearing in ForceSendFields will be sent to the
30376	// server regardless of whether the field is empty or not. This may be
30377	// used to include empty fields in Patch requests.
30378	ForceSendFields []string `json:"-"`
30379
30380	// NullFields is a list of field names (e.g. "Code") to include in API
30381	// requests with the JSON null value. By default, fields with empty
30382	// values are omitted from API requests. However, any field with an
30383	// empty value appearing in NullFields will be sent to the server as
30384	// null. It is an error if a field in this list has a non-empty value.
30385	// This may be used to include null fields in Patch requests.
30386	NullFields []string `json:"-"`
30387}
30388
30389func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
30390	type NoMethod RouterAggregatedListWarning
30391	raw := NoMethod(*s)
30392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30393}
30394
30395type RouterAggregatedListWarningData struct {
30396	// Key: [Output Only] A key that provides more detail on the warning
30397	// being returned. For example, for warnings where there are no results
30398	// in a list request for a particular zone, this key might be scope and
30399	// the key value might be the zone name. Other examples might be a key
30400	// indicating a deprecated resource and a suggested replacement, or a
30401	// warning about invalid network settings (for example, if an instance
30402	// attempts to perform IP forwarding but is not enabled for IP
30403	// forwarding).
30404	Key string `json:"key,omitempty"`
30405
30406	// Value: [Output Only] A warning data value corresponding to the key.
30407	Value string `json:"value,omitempty"`
30408
30409	// ForceSendFields is a list of field names (e.g. "Key") to
30410	// unconditionally include in API requests. By default, fields with
30411	// empty values are omitted from API requests. However, any non-pointer,
30412	// non-interface field appearing in ForceSendFields will be sent to the
30413	// server regardless of whether the field is empty or not. This may be
30414	// used to include empty fields in Patch requests.
30415	ForceSendFields []string `json:"-"`
30416
30417	// NullFields is a list of field names (e.g. "Key") to include in API
30418	// requests with the JSON null value. By default, fields with empty
30419	// values are omitted from API requests. However, any field with an
30420	// empty value appearing in NullFields will be sent to the server as
30421	// null. It is an error if a field in this list has a non-empty value.
30422	// This may be used to include null fields in Patch requests.
30423	NullFields []string `json:"-"`
30424}
30425
30426func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30427	type NoMethod RouterAggregatedListWarningData
30428	raw := NoMethod(*s)
30429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30430}
30431
30432type RouterBgp struct {
30433	// AdvertiseMode: User-specified flag to indicate which mode to use for
30434	// advertisement. The options are DEFAULT or CUSTOM.
30435	//
30436	// Possible values:
30437	//   "CUSTOM"
30438	//   "DEFAULT"
30439	AdvertiseMode string `json:"advertiseMode,omitempty"`
30440
30441	// AdvertisedGroups: User-specified list of prefix groups to advertise
30442	// in custom mode. This field can only be populated if advertise_mode is
30443	// CUSTOM and is advertised to all peers of the router. These groups
30444	// will be advertised in addition to any specified prefixes. Leave this
30445	// field blank to advertise no custom groups.
30446	//
30447	// Possible values:
30448	//   "ALL_SUBNETS"
30449	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
30450
30451	// AdvertisedIpRanges: User-specified list of individual IP ranges to
30452	// advertise in custom mode. This field can only be populated if
30453	// advertise_mode is CUSTOM and is advertised to all peers of the
30454	// router. These IP ranges will be advertised in addition to any
30455	// specified groups. Leave this field blank to advertise no custom IP
30456	// ranges.
30457	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
30458
30459	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
30460	// private ASN, either 16-bit or 32-bit. The value will be fixed for
30461	// this router resource. All VPN tunnels that link to this router will
30462	// have the same local ASN.
30463	Asn int64 `json:"asn,omitempty"`
30464
30465	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
30466	// unconditionally include in API requests. By default, fields with
30467	// empty values are omitted from API requests. However, any non-pointer,
30468	// non-interface field appearing in ForceSendFields will be sent to the
30469	// server regardless of whether the field is empty or not. This may be
30470	// used to include empty fields in Patch requests.
30471	ForceSendFields []string `json:"-"`
30472
30473	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
30474	// in API requests with the JSON null value. By default, fields with
30475	// empty values are omitted from API requests. However, any field with
30476	// an empty value appearing in NullFields will be sent to the server as
30477	// null. It is an error if a field in this list has a non-empty value.
30478	// This may be used to include null fields in Patch requests.
30479	NullFields []string `json:"-"`
30480}
30481
30482func (s *RouterBgp) MarshalJSON() ([]byte, error) {
30483	type NoMethod RouterBgp
30484	raw := NoMethod(*s)
30485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30486}
30487
30488type RouterBgpPeer struct {
30489	// AdvertiseMode: User-specified flag to indicate which mode to use for
30490	// advertisement.
30491	//
30492	// Possible values:
30493	//   "CUSTOM"
30494	//   "DEFAULT"
30495	AdvertiseMode string `json:"advertiseMode,omitempty"`
30496
30497	// AdvertisedGroups: User-specified list of prefix groups to advertise
30498	// in custom mode, which can take one of the following options:
30499	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
30500	// subnets.
30501	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
30502	// - ALL_PEER_VPC_SUBNETS: Advertises peer subnets of the router's VPC
30503	// network. Note that this field can only be populated if advertise_mode
30504	// is CUSTOM and overrides the list defined for the router (in the "bgp"
30505	// message). These groups are advertised in addition to any specified
30506	// prefixes. Leave this field blank to advertise no custom groups.
30507	//
30508	// Possible values:
30509	//   "ALL_SUBNETS"
30510	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
30511
30512	// AdvertisedIpRanges: User-specified list of individual IP ranges to
30513	// advertise in custom mode. This field can only be populated if
30514	// advertise_mode is CUSTOM and overrides the list defined for the
30515	// router (in the "bgp" message). These IP ranges are advertised in
30516	// addition to any specified groups. Leave this field blank to advertise
30517	// no custom IP ranges.
30518	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
30519
30520	// AdvertisedRoutePriority: The priority of routes advertised to this
30521	// BGP peer. Where there is more than one matching route of maximum
30522	// length, the routes with the lowest priority value win.
30523	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
30524
30525	// InterfaceName: Name of the interface the BGP peer is associated with.
30526	InterfaceName string `json:"interfaceName,omitempty"`
30527
30528	// IpAddress: IP address of the interface inside Google Cloud Platform.
30529	// Only IPv4 is supported.
30530	IpAddress string `json:"ipAddress,omitempty"`
30531
30532	// ManagementType: [Output Only] The resource that configures and
30533	// manages this BGP peer.
30534	// - MANAGED_BY_USER is the default value and can be managed by you or
30535	// other users
30536	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
30537	// by Cloud Interconnect, specifically by an InterconnectAttachment of
30538	// type PARTNER. Google automatically creates, updates, and deletes this
30539	// type of BGP peer when the PARTNER InterconnectAttachment is created,
30540	// updated, or deleted.
30541	//
30542	// Possible values:
30543	//   "MANAGED_BY_ATTACHMENT"
30544	//   "MANAGED_BY_USER"
30545	ManagementType string `json:"managementType,omitempty"`
30546
30547	// Name: Name of this BGP peer. The name must be 1-63 characters long,
30548	// and comply with RFC1035. Specifically, the name must be 1-63
30549	// characters long and match the regular expression
30550	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
30551	// a lowercase letter, and all following characters must be a dash,
30552	// lowercase letter, or digit, except the last character, which cannot
30553	// be a dash.
30554	Name string `json:"name,omitempty"`
30555
30556	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
30557	// may use a different value.
30558	PeerAsn int64 `json:"peerAsn,omitempty"`
30559
30560	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
30561	// Platform. Only IPv4 is supported.
30562	PeerIpAddress string `json:"peerIpAddress,omitempty"`
30563
30564	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
30565	// unconditionally include in API requests. By default, fields with
30566	// empty values are omitted from API requests. However, any non-pointer,
30567	// non-interface field appearing in ForceSendFields will be sent to the
30568	// server regardless of whether the field is empty or not. This may be
30569	// used to include empty fields in Patch requests.
30570	ForceSendFields []string `json:"-"`
30571
30572	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
30573	// in API requests with the JSON null value. By default, fields with
30574	// empty values are omitted from API requests. However, any field with
30575	// an empty value appearing in NullFields will be sent to the server as
30576	// null. It is an error if a field in this list has a non-empty value.
30577	// This may be used to include null fields in Patch requests.
30578	NullFields []string `json:"-"`
30579}
30580
30581func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
30582	type NoMethod RouterBgpPeer
30583	raw := NoMethod(*s)
30584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30585}
30586
30587type RouterInterface struct {
30588	// IpRange: IP address and range of the interface. The IP range must be
30589	// in the RFC3927 link-local IP address space. The value must be a
30590	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
30591	// truncate the address as it represents the IP address of the
30592	// interface.
30593	IpRange string `json:"ipRange,omitempty"`
30594
30595	// LinkedInterconnectAttachment: URI of the linked Interconnect
30596	// attachment. It must be in the same region as the router. Each
30597	// interface can have one linked resource, which can be a VPN tunnel, an
30598	// Interconnect attachment, or a virtual machine instance.
30599	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
30600
30601	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
30602	// same region as the router. Each interface can have one linked
30603	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
30604	// virtual machine instance.
30605	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
30606
30607	// ManagementType: [Output Only] The resource that configures and
30608	// manages this interface.
30609	// - MANAGED_BY_USER is the default value and can be managed directly by
30610	// users.
30611	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
30612	// managed by Cloud Interconnect, specifically, by an
30613	// InterconnectAttachment of type PARTNER. Google automatically creates,
30614	// updates, and deletes this type of interface when the PARTNER
30615	// InterconnectAttachment is created, updated, or deleted.
30616	//
30617	// Possible values:
30618	//   "MANAGED_BY_ATTACHMENT"
30619	//   "MANAGED_BY_USER"
30620	ManagementType string `json:"managementType,omitempty"`
30621
30622	// Name: Name of this interface entry. The name must be 1-63 characters
30623	// long, and comply with RFC1035. Specifically, the name must be 1-63
30624	// characters long and match the regular expression
30625	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
30626	// a lowercase letter, and all following characters must be a dash,
30627	// lowercase letter, or digit, except the last character, which cannot
30628	// be a dash.
30629	Name string `json:"name,omitempty"`
30630
30631	// ForceSendFields is a list of field names (e.g. "IpRange") to
30632	// unconditionally include in API requests. By default, fields with
30633	// empty values are omitted from API requests. However, any non-pointer,
30634	// non-interface field appearing in ForceSendFields will be sent to the
30635	// server regardless of whether the field is empty or not. This may be
30636	// used to include empty fields in Patch requests.
30637	ForceSendFields []string `json:"-"`
30638
30639	// NullFields is a list of field names (e.g. "IpRange") to include in
30640	// API requests with the JSON null value. By default, fields with empty
30641	// values are omitted from API requests. However, any field with an
30642	// empty value appearing in NullFields will be sent to the server as
30643	// null. It is an error if a field in this list has a non-empty value.
30644	// This may be used to include null fields in Patch requests.
30645	NullFields []string `json:"-"`
30646}
30647
30648func (s *RouterInterface) MarshalJSON() ([]byte, error) {
30649	type NoMethod RouterInterface
30650	raw := NoMethod(*s)
30651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30652}
30653
30654// RouterList: Contains a list of Router resources.
30655type RouterList struct {
30656	// Id: [Output Only] Unique identifier for the resource; defined by the
30657	// server.
30658	Id string `json:"id,omitempty"`
30659
30660	// Items: A list of Router resources.
30661	Items []*Router `json:"items,omitempty"`
30662
30663	// Kind: [Output Only] Type of resource. Always compute#router for
30664	// routers.
30665	Kind string `json:"kind,omitempty"`
30666
30667	// NextPageToken: [Output Only] This token allows you to get the next
30668	// page of results for list requests. If the number of results is larger
30669	// than maxResults, use the nextPageToken as a value for the query
30670	// parameter pageToken in the next list request. Subsequent list
30671	// requests will have their own nextPageToken to continue paging through
30672	// the results.
30673	NextPageToken string `json:"nextPageToken,omitempty"`
30674
30675	// SelfLink: [Output Only] Server-defined URL for this resource.
30676	SelfLink string `json:"selfLink,omitempty"`
30677
30678	// Warning: [Output Only] Informational warning message.
30679	Warning *RouterListWarning `json:"warning,omitempty"`
30680
30681	// ServerResponse contains the HTTP response code and headers from the
30682	// server.
30683	googleapi.ServerResponse `json:"-"`
30684
30685	// ForceSendFields is a list of field names (e.g. "Id") to
30686	// unconditionally include in API requests. By default, fields with
30687	// empty values are omitted from API requests. However, any non-pointer,
30688	// non-interface field appearing in ForceSendFields will be sent to the
30689	// server regardless of whether the field is empty or not. This may be
30690	// used to include empty fields in Patch requests.
30691	ForceSendFields []string `json:"-"`
30692
30693	// NullFields is a list of field names (e.g. "Id") to include in API
30694	// requests with the JSON null value. By default, fields with empty
30695	// values are omitted from API requests. However, any field with an
30696	// empty value appearing in NullFields will be sent to the server as
30697	// null. It is an error if a field in this list has a non-empty value.
30698	// This may be used to include null fields in Patch requests.
30699	NullFields []string `json:"-"`
30700}
30701
30702func (s *RouterList) MarshalJSON() ([]byte, error) {
30703	type NoMethod RouterList
30704	raw := NoMethod(*s)
30705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30706}
30707
30708// RouterListWarning: [Output Only] Informational warning message.
30709type RouterListWarning struct {
30710	// Code: [Output Only] A warning code, if applicable. For example,
30711	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30712	// the response.
30713	//
30714	// Possible values:
30715	//   "CLEANUP_FAILED"
30716	//   "DEPRECATED_RESOURCE_USED"
30717	//   "DEPRECATED_TYPE_USED"
30718	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30719	//   "EXPERIMENTAL_TYPE_USED"
30720	//   "EXTERNAL_API_WARNING"
30721	//   "FIELD_VALUE_OVERRIDEN"
30722	//   "INJECTED_KERNELS_DEPRECATED"
30723	//   "MISSING_TYPE_DEPENDENCY"
30724	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30725	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30726	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30727	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30728	//   "NEXT_HOP_NOT_RUNNING"
30729	//   "NOT_CRITICAL_ERROR"
30730	//   "NO_RESULTS_ON_PAGE"
30731	//   "REQUIRED_TOS_AGREEMENT"
30732	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30733	//   "RESOURCE_NOT_DELETED"
30734	//   "SCHEMA_VALIDATION_IGNORED"
30735	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30736	//   "UNDECLARED_PROPERTIES"
30737	//   "UNREACHABLE"
30738	Code string `json:"code,omitempty"`
30739
30740	// Data: [Output Only] Metadata about this warning in key: value format.
30741	// For example:
30742	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30743	Data []*RouterListWarningData `json:"data,omitempty"`
30744
30745	// Message: [Output Only] A human-readable description of the warning
30746	// code.
30747	Message string `json:"message,omitempty"`
30748
30749	// ForceSendFields is a list of field names (e.g. "Code") to
30750	// unconditionally include in API requests. By default, fields with
30751	// empty values are omitted from API requests. However, any non-pointer,
30752	// non-interface field appearing in ForceSendFields will be sent to the
30753	// server regardless of whether the field is empty or not. This may be
30754	// used to include empty fields in Patch requests.
30755	ForceSendFields []string `json:"-"`
30756
30757	// NullFields is a list of field names (e.g. "Code") to include in API
30758	// requests with the JSON null value. By default, fields with empty
30759	// values are omitted from API requests. However, any field with an
30760	// empty value appearing in NullFields will be sent to the server as
30761	// null. It is an error if a field in this list has a non-empty value.
30762	// This may be used to include null fields in Patch requests.
30763	NullFields []string `json:"-"`
30764}
30765
30766func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
30767	type NoMethod RouterListWarning
30768	raw := NoMethod(*s)
30769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30770}
30771
30772type RouterListWarningData struct {
30773	// Key: [Output Only] A key that provides more detail on the warning
30774	// being returned. For example, for warnings where there are no results
30775	// in a list request for a particular zone, this key might be scope and
30776	// the key value might be the zone name. Other examples might be a key
30777	// indicating a deprecated resource and a suggested replacement, or a
30778	// warning about invalid network settings (for example, if an instance
30779	// attempts to perform IP forwarding but is not enabled for IP
30780	// forwarding).
30781	Key string `json:"key,omitempty"`
30782
30783	// Value: [Output Only] A warning data value corresponding to the key.
30784	Value string `json:"value,omitempty"`
30785
30786	// ForceSendFields is a list of field names (e.g. "Key") to
30787	// unconditionally include in API requests. By default, fields with
30788	// empty values are omitted from API requests. However, any non-pointer,
30789	// non-interface field appearing in ForceSendFields will be sent to the
30790	// server regardless of whether the field is empty or not. This may be
30791	// used to include empty fields in Patch requests.
30792	ForceSendFields []string `json:"-"`
30793
30794	// NullFields is a list of field names (e.g. "Key") to include in API
30795	// requests with the JSON null value. By default, fields with empty
30796	// values are omitted from API requests. However, any field with an
30797	// empty value appearing in NullFields will be sent to the server as
30798	// null. It is an error if a field in this list has a non-empty value.
30799	// This may be used to include null fields in Patch requests.
30800	NullFields []string `json:"-"`
30801}
30802
30803func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
30804	type NoMethod RouterListWarningData
30805	raw := NoMethod(*s)
30806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30807}
30808
30809// RouterNat: Represents a Nat resource. It enables the VMs within the
30810// specified subnetworks to access Internet without external IP
30811// addresses. It specifies a list of subnetworks (and the ranges within)
30812// that want to use NAT. Customers can also provide the external IPs
30813// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
30814// no external IPs are provided.
30815type RouterNat struct {
30816	// DrainNatIps: A list of URLs of the IP resources to be drained. These
30817	// IPs must be valid static external IPs that have been assigned to the
30818	// NAT. These IPs should be used for updating/patching a NAT only.
30819	DrainNatIps []string `json:"drainNatIps,omitempty"`
30820
30821	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
30822	// Defaults to 30s if not set.
30823	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
30824
30825	// LogConfig: Configure logging on this NAT.
30826	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
30827
30828	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
30829	// NAT config. If not set, a default number of ports is allocated to a
30830	// VM. This is rounded up to the nearest power of 2. For example, if the
30831	// value of this field is 50, at least 64 ports are allocated to a VM.
30832	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
30833
30834	// Name: Unique name of this Nat service. The name must be 1-63
30835	// characters long and comply with RFC1035.
30836	Name string `json:"name,omitempty"`
30837
30838	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
30839	// one of the following values:
30840	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
30841	// there are not enough specified Nat IPs, the Nat service fails for new
30842	// VMs.
30843	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
30844	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
30845	// nat_ip should be empty.
30846	//
30847	// Possible values:
30848	//   "AUTO_ONLY"
30849	//   "MANUAL_ONLY"
30850	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
30851
30852	// NatIps: A list of URLs of the IP resources used for this Nat service.
30853	// These IP addresses must be valid static external IP addresses
30854	// assigned to the project.
30855	NatIps []string `json:"natIps,omitempty"`
30856
30857	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
30858	// one of the following values:
30859	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
30860	// Subnetwork are allowed to Nat.
30861	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
30862	// in every Subnetwork are allowed to Nat.
30863	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
30864	// (specified in the field subnetwork below) The default is
30865	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
30866	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
30867	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
30868	// other Router.Nat section in any Router for this network in this
30869	// region.
30870	//
30871	// Possible values:
30872	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
30873	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
30874	//   "LIST_OF_SUBNETWORKS"
30875	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
30876
30877	// Subnetworks: A list of Subnetwork resources whose traffic should be
30878	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
30879	// is selected for the SubnetworkIpRangeToNatOption above.
30880	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
30881
30882	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
30883	// established connections. Defaults to 1200s if not set.
30884	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
30885
30886	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
30887	// connections. Defaults to 30s if not set.
30888	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
30889
30890	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
30891	// to 30s if not set.
30892	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
30893
30894	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
30895	// unconditionally include in API requests. By default, fields with
30896	// empty values are omitted from API requests. However, any non-pointer,
30897	// non-interface field appearing in ForceSendFields will be sent to the
30898	// server regardless of whether the field is empty or not. This may be
30899	// used to include empty fields in Patch requests.
30900	ForceSendFields []string `json:"-"`
30901
30902	// NullFields is a list of field names (e.g. "DrainNatIps") to include
30903	// in API requests with the JSON null value. By default, fields with
30904	// empty values are omitted from API requests. However, any field with
30905	// an empty value appearing in NullFields will be sent to the server as
30906	// null. It is an error if a field in this list has a non-empty value.
30907	// This may be used to include null fields in Patch requests.
30908	NullFields []string `json:"-"`
30909}
30910
30911func (s *RouterNat) MarshalJSON() ([]byte, error) {
30912	type NoMethod RouterNat
30913	raw := NoMethod(*s)
30914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30915}
30916
30917// RouterNatLogConfig: Configuration of logging on a NAT.
30918type RouterNatLogConfig struct {
30919	// Enable: Indicates whether or not to export logs. This is false by
30920	// default.
30921	Enable bool `json:"enable,omitempty"`
30922
30923	// Filter: Specify the desired filtering of logs on this NAT. If
30924	// unspecified, logs are exported for all connections handled by this
30925	// NAT. This option can take one of the following values:
30926	// - ERRORS_ONLY: Export logs only for connection failures.
30927	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
30928	// - ALL: Export logs for all connections, successful and unsuccessful.
30929	//
30930	// Possible values:
30931	//   "ALL"
30932	//   "ERRORS_ONLY"
30933	//   "TRANSLATIONS_ONLY"
30934	Filter string `json:"filter,omitempty"`
30935
30936	// ForceSendFields is a list of field names (e.g. "Enable") to
30937	// unconditionally include in API requests. By default, fields with
30938	// empty values are omitted from API requests. However, any non-pointer,
30939	// non-interface field appearing in ForceSendFields will be sent to the
30940	// server regardless of whether the field is empty or not. This may be
30941	// used to include empty fields in Patch requests.
30942	ForceSendFields []string `json:"-"`
30943
30944	// NullFields is a list of field names (e.g. "Enable") to include in API
30945	// requests with the JSON null value. By default, fields with empty
30946	// values are omitted from API requests. However, any field with an
30947	// empty value appearing in NullFields will be sent to the server as
30948	// null. It is an error if a field in this list has a non-empty value.
30949	// This may be used to include null fields in Patch requests.
30950	NullFields []string `json:"-"`
30951}
30952
30953func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
30954	type NoMethod RouterNatLogConfig
30955	raw := NoMethod(*s)
30956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30957}
30958
30959// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
30960// for a subnetwork.
30961type RouterNatSubnetworkToNat struct {
30962	// Name: URL for the subnetwork resource that will use NAT.
30963	Name string `json:"name,omitempty"`
30964
30965	// SecondaryIpRangeNames: A list of the secondary ranges of the
30966	// Subnetwork that are allowed to use NAT. This can be populated only if
30967	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
30968	// source_ip_ranges_to_nat.
30969	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
30970
30971	// SourceIpRangesToNat: Specify the options for NAT ranges in the
30972	// Subnetwork. All options of a single value are valid except
30973	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
30974	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
30975	// Default: [ALL_IP_RANGES]
30976	//
30977	// Possible values:
30978	//   "ALL_IP_RANGES"
30979	//   "LIST_OF_SECONDARY_IP_RANGES"
30980	//   "PRIMARY_IP_RANGE"
30981	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
30982
30983	// ForceSendFields is a list of field names (e.g. "Name") to
30984	// unconditionally include in API requests. By default, fields with
30985	// empty values are omitted from API requests. However, any non-pointer,
30986	// non-interface field appearing in ForceSendFields will be sent to the
30987	// server regardless of whether the field is empty or not. This may be
30988	// used to include empty fields in Patch requests.
30989	ForceSendFields []string `json:"-"`
30990
30991	// NullFields is a list of field names (e.g. "Name") to include in API
30992	// requests with the JSON null value. By default, fields with empty
30993	// values are omitted from API requests. However, any field with an
30994	// empty value appearing in NullFields will be sent to the server as
30995	// null. It is an error if a field in this list has a non-empty value.
30996	// This may be used to include null fields in Patch requests.
30997	NullFields []string `json:"-"`
30998}
30999
31000func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
31001	type NoMethod RouterNatSubnetworkToNat
31002	raw := NoMethod(*s)
31003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31004}
31005
31006type RouterStatus struct {
31007	// BestRoutes: Best routes for this router's network.
31008	BestRoutes []*Route `json:"bestRoutes,omitempty"`
31009
31010	// BestRoutesForRouter: Best routes learned by this router.
31011	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
31012
31013	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
31014
31015	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
31016
31017	// Network: URI of the network to which this router belongs.
31018	Network string `json:"network,omitempty"`
31019
31020	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
31021	// unconditionally include in API requests. By default, fields with
31022	// empty values are omitted from API requests. However, any non-pointer,
31023	// non-interface field appearing in ForceSendFields will be sent to the
31024	// server regardless of whether the field is empty or not. This may be
31025	// used to include empty fields in Patch requests.
31026	ForceSendFields []string `json:"-"`
31027
31028	// NullFields is a list of field names (e.g. "BestRoutes") to include in
31029	// API requests with the JSON null value. By default, fields with empty
31030	// values are omitted from API requests. However, any field with an
31031	// empty value appearing in NullFields will be sent to the server as
31032	// null. It is an error if a field in this list has a non-empty value.
31033	// This may be used to include null fields in Patch requests.
31034	NullFields []string `json:"-"`
31035}
31036
31037func (s *RouterStatus) MarshalJSON() ([]byte, error) {
31038	type NoMethod RouterStatus
31039	raw := NoMethod(*s)
31040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31041}
31042
31043type RouterStatusBgpPeerStatus struct {
31044	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
31045	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
31046
31047	// IpAddress: IP address of the local BGP interface.
31048	IpAddress string `json:"ipAddress,omitempty"`
31049
31050	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
31051	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
31052
31053	// Name: Name of this BGP peer. Unique within the Routers resource.
31054	Name string `json:"name,omitempty"`
31055
31056	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
31057	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
31058
31059	// PeerIpAddress: IP address of the remote BGP interface.
31060	PeerIpAddress string `json:"peerIpAddress,omitempty"`
31061
31062	// State: BGP state as specified in RFC1771.
31063	State string `json:"state,omitempty"`
31064
31065	// Status: Status of the BGP peer: {UP, DOWN}
31066	//
31067	// Possible values:
31068	//   "DOWN"
31069	//   "UNKNOWN"
31070	//   "UP"
31071	Status string `json:"status,omitempty"`
31072
31073	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
31074	// days, 23 hours, 59 minutes, 59 seconds
31075	Uptime string `json:"uptime,omitempty"`
31076
31077	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
31078	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
31079
31080	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
31081	// unconditionally include in API requests. By default, fields with
31082	// empty values are omitted from API requests. However, any non-pointer,
31083	// non-interface field appearing in ForceSendFields will be sent to the
31084	// server regardless of whether the field is empty or not. This may be
31085	// used to include empty fields in Patch requests.
31086	ForceSendFields []string `json:"-"`
31087
31088	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
31089	// include in API requests with the JSON null value. By default, fields
31090	// with empty values are omitted from API requests. However, any field
31091	// with an empty value appearing in NullFields will be sent to the
31092	// server as null. It is an error if a field in this list has a
31093	// non-empty value. This may be used to include null fields in Patch
31094	// requests.
31095	NullFields []string `json:"-"`
31096}
31097
31098func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
31099	type NoMethod RouterStatusBgpPeerStatus
31100	raw := NoMethod(*s)
31101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31102}
31103
31104// RouterStatusNatStatus: Status of a NAT contained in this router.
31105type RouterStatusNatStatus struct {
31106	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
31107	// ["1.1.1.1", "129.2.16.89"]
31108	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
31109
31110	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
31111	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
31112	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
31113
31114	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
31115	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
31116	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
31117
31118	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
31119	// be greater than 0 only if user-specified IPs are NOT enough to allow
31120	// all configured VMs to use NAT. This value is meaningful only when
31121	// auto-allocation of NAT IPs is *not* used.
31122	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
31123
31124	// Name: Unique name of this NAT.
31125	Name string `json:"name,omitempty"`
31126
31127	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
31128	// that can use NAT.
31129	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
31130
31131	// UserAllocatedNatIpResources: A list of fully qualified URLs of
31132	// reserved IP address resources.
31133	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
31134
31135	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
31136	// be raw IP strings like "179.12.26.133".
31137	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
31138
31139	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
31140	// to unconditionally include in API requests. By default, fields with
31141	// empty values are omitted from API requests. However, any non-pointer,
31142	// non-interface field appearing in ForceSendFields will be sent to the
31143	// server regardless of whether the field is empty or not. This may be
31144	// used to include empty fields in Patch requests.
31145	ForceSendFields []string `json:"-"`
31146
31147	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
31148	// include in API requests with the JSON null value. By default, fields
31149	// with empty values are omitted from API requests. However, any field
31150	// with an empty value appearing in NullFields will be sent to the
31151	// server as null. It is an error if a field in this list has a
31152	// non-empty value. This may be used to include null fields in Patch
31153	// requests.
31154	NullFields []string `json:"-"`
31155}
31156
31157func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
31158	type NoMethod RouterStatusNatStatus
31159	raw := NoMethod(*s)
31160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31161}
31162
31163type RouterStatusResponse struct {
31164	// Kind: Type of resource.
31165	Kind string `json:"kind,omitempty"`
31166
31167	Result *RouterStatus `json:"result,omitempty"`
31168
31169	// ServerResponse contains the HTTP response code and headers from the
31170	// server.
31171	googleapi.ServerResponse `json:"-"`
31172
31173	// ForceSendFields is a list of field names (e.g. "Kind") to
31174	// unconditionally include in API requests. By default, fields with
31175	// empty values are omitted from API requests. However, any non-pointer,
31176	// non-interface field appearing in ForceSendFields will be sent to the
31177	// server regardless of whether the field is empty or not. This may be
31178	// used to include empty fields in Patch requests.
31179	ForceSendFields []string `json:"-"`
31180
31181	// NullFields is a list of field names (e.g. "Kind") to include in API
31182	// requests with the JSON null value. By default, fields with empty
31183	// values are omitted from API requests. However, any field with an
31184	// empty value appearing in NullFields will be sent to the server as
31185	// null. It is an error if a field in this list has a non-empty value.
31186	// This may be used to include null fields in Patch requests.
31187	NullFields []string `json:"-"`
31188}
31189
31190func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
31191	type NoMethod RouterStatusResponse
31192	raw := NoMethod(*s)
31193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31194}
31195
31196type RoutersPreviewResponse struct {
31197	// Resource: Preview of given router.
31198	Resource *Router `json:"resource,omitempty"`
31199
31200	// ServerResponse contains the HTTP response code and headers from the
31201	// server.
31202	googleapi.ServerResponse `json:"-"`
31203
31204	// ForceSendFields is a list of field names (e.g. "Resource") to
31205	// unconditionally include in API requests. By default, fields with
31206	// empty values are omitted from API requests. However, any non-pointer,
31207	// non-interface field appearing in ForceSendFields will be sent to the
31208	// server regardless of whether the field is empty or not. This may be
31209	// used to include empty fields in Patch requests.
31210	ForceSendFields []string `json:"-"`
31211
31212	// NullFields is a list of field names (e.g. "Resource") to include in
31213	// API requests with the JSON null value. By default, fields with empty
31214	// values are omitted from API requests. However, any field with an
31215	// empty value appearing in NullFields will be sent to the server as
31216	// null. It is an error if a field in this list has a non-empty value.
31217	// This may be used to include null fields in Patch requests.
31218	NullFields []string `json:"-"`
31219}
31220
31221func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
31222	type NoMethod RoutersPreviewResponse
31223	raw := NoMethod(*s)
31224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31225}
31226
31227type RoutersScopedList struct {
31228	// Routers: A list of routers contained in this scope.
31229	Routers []*Router `json:"routers,omitempty"`
31230
31231	// Warning: Informational warning which replaces the list of routers
31232	// when the list is empty.
31233	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
31234
31235	// ForceSendFields is a list of field names (e.g. "Routers") 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. "Routers") to include in
31244	// API 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 *RoutersScopedList) MarshalJSON() ([]byte, error) {
31253	type NoMethod RoutersScopedList
31254	raw := NoMethod(*s)
31255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31256}
31257
31258// RoutersScopedListWarning: Informational warning which replaces the
31259// list of routers when the list is empty.
31260type RoutersScopedListWarning struct {
31261	// Code: [Output Only] A warning code, if applicable. For example,
31262	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31263	// the response.
31264	//
31265	// Possible values:
31266	//   "CLEANUP_FAILED"
31267	//   "DEPRECATED_RESOURCE_USED"
31268	//   "DEPRECATED_TYPE_USED"
31269	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31270	//   "EXPERIMENTAL_TYPE_USED"
31271	//   "EXTERNAL_API_WARNING"
31272	//   "FIELD_VALUE_OVERRIDEN"
31273	//   "INJECTED_KERNELS_DEPRECATED"
31274	//   "MISSING_TYPE_DEPENDENCY"
31275	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31276	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31277	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31278	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31279	//   "NEXT_HOP_NOT_RUNNING"
31280	//   "NOT_CRITICAL_ERROR"
31281	//   "NO_RESULTS_ON_PAGE"
31282	//   "REQUIRED_TOS_AGREEMENT"
31283	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31284	//   "RESOURCE_NOT_DELETED"
31285	//   "SCHEMA_VALIDATION_IGNORED"
31286	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31287	//   "UNDECLARED_PROPERTIES"
31288	//   "UNREACHABLE"
31289	Code string `json:"code,omitempty"`
31290
31291	// Data: [Output Only] Metadata about this warning in key: value format.
31292	// For example:
31293	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31294	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
31295
31296	// Message: [Output Only] A human-readable description of the warning
31297	// code.
31298	Message string `json:"message,omitempty"`
31299
31300	// ForceSendFields is a list of field names (e.g. "Code") to
31301	// unconditionally include in API requests. By default, fields with
31302	// empty values are omitted from API requests. However, any non-pointer,
31303	// non-interface field appearing in ForceSendFields will be sent to the
31304	// server regardless of whether the field is empty or not. This may be
31305	// used to include empty fields in Patch requests.
31306	ForceSendFields []string `json:"-"`
31307
31308	// NullFields is a list of field names (e.g. "Code") to include in API
31309	// requests with the JSON null value. By default, fields with empty
31310	// values are omitted from API requests. However, any field with an
31311	// empty value appearing in NullFields will be sent to the server as
31312	// null. It is an error if a field in this list has a non-empty value.
31313	// This may be used to include null fields in Patch requests.
31314	NullFields []string `json:"-"`
31315}
31316
31317func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
31318	type NoMethod RoutersScopedListWarning
31319	raw := NoMethod(*s)
31320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31321}
31322
31323type RoutersScopedListWarningData struct {
31324	// Key: [Output Only] A key that provides more detail on the warning
31325	// being returned. For example, for warnings where there are no results
31326	// in a list request for a particular zone, this key might be scope and
31327	// the key value might be the zone name. Other examples might be a key
31328	// indicating a deprecated resource and a suggested replacement, or a
31329	// warning about invalid network settings (for example, if an instance
31330	// attempts to perform IP forwarding but is not enabled for IP
31331	// forwarding).
31332	Key string `json:"key,omitempty"`
31333
31334	// Value: [Output Only] A warning data value corresponding to the key.
31335	Value string `json:"value,omitempty"`
31336
31337	// ForceSendFields is a list of field names (e.g. "Key") to
31338	// unconditionally include in API requests. By default, fields with
31339	// empty values are omitted from API requests. However, any non-pointer,
31340	// non-interface field appearing in ForceSendFields will be sent to the
31341	// server regardless of whether the field is empty or not. This may be
31342	// used to include empty fields in Patch requests.
31343	ForceSendFields []string `json:"-"`
31344
31345	// NullFields is a list of field names (e.g. "Key") to include in API
31346	// requests with the JSON null value. By default, fields with empty
31347	// values are omitted from API requests. However, any field with an
31348	// empty value appearing in NullFields will be sent to the server as
31349	// null. It is an error if a field in this list has a non-empty value.
31350	// This may be used to include null fields in Patch requests.
31351	NullFields []string `json:"-"`
31352}
31353
31354func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
31355	type NoMethod RoutersScopedListWarningData
31356	raw := NoMethod(*s)
31357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31358}
31359
31360// Rule: A rule to be applied in a Policy.
31361type Rule struct {
31362	// Action: Required
31363	//
31364	// Possible values:
31365	//   "ALLOW"
31366	//   "ALLOW_WITH_LOG"
31367	//   "DENY"
31368	//   "DENY_WITH_LOG"
31369	//   "LOG"
31370	//   "NO_ACTION"
31371	Action string `json:"action,omitempty"`
31372
31373	// Conditions: Additional restrictions that must be met. All conditions
31374	// must pass for the rule to match.
31375	Conditions []*Condition `json:"conditions,omitempty"`
31376
31377	// Description: Human-readable description of the rule.
31378	Description string `json:"description,omitempty"`
31379
31380	// Ins: If one or more 'in' clauses are specified, the rule matches if
31381	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
31382	Ins []string `json:"ins,omitempty"`
31383
31384	// LogConfigs: The config returned to callers of
31385	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
31386	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
31387
31388	// NotIns: If one or more 'not_in' clauses are specified, the rule
31389	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
31390	// entries.
31391	NotIns []string `json:"notIns,omitempty"`
31392
31393	// Permissions: A permission is a string of form '..' (e.g.,
31394	// 'storage.buckets.list'). A value of '*' matches all permissions, and
31395	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
31396	Permissions []string `json:"permissions,omitempty"`
31397
31398	// ForceSendFields is a list of field names (e.g. "Action") to
31399	// unconditionally include in API requests. By default, fields with
31400	// empty values are omitted from API requests. However, any non-pointer,
31401	// non-interface field appearing in ForceSendFields will be sent to the
31402	// server regardless of whether the field is empty or not. This may be
31403	// used to include empty fields in Patch requests.
31404	ForceSendFields []string `json:"-"`
31405
31406	// NullFields is a list of field names (e.g. "Action") to include in API
31407	// requests with the JSON null value. By default, fields with empty
31408	// values are omitted from API requests. However, any field with an
31409	// empty value appearing in NullFields will be sent to the server as
31410	// null. It is an error if a field in this list has a non-empty value.
31411	// This may be used to include null fields in Patch requests.
31412	NullFields []string `json:"-"`
31413}
31414
31415func (s *Rule) MarshalJSON() ([]byte, error) {
31416	type NoMethod Rule
31417	raw := NoMethod(*s)
31418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31419}
31420
31421type SSLHealthCheck struct {
31422	// Port: The TCP port number for the health check request. The default
31423	// value is 443. Valid values are 1 through 65535.
31424	Port int64 `json:"port,omitempty"`
31425
31426	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
31427	// both port and port_name are defined, port takes precedence.
31428	PortName string `json:"portName,omitempty"`
31429
31430	// PortSpecification: Specifies how port is selected for health
31431	// checking, can be one of following values:
31432	// USE_FIXED_PORT: The port number in port is used for health
31433	// checking.
31434	// USE_NAMED_PORT: The portName is used for health
31435	// checking.
31436	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
31437	// each network endpoint is used for health checking. For other
31438	// backends, the port or named port specified in the Backend Service is
31439	// used for health checking.
31440	//
31441	//
31442	// If not specified, SSL health check follows behavior specified in port
31443	// and portName fields.
31444	//
31445	// Possible values:
31446	//   "USE_FIXED_PORT"
31447	//   "USE_NAMED_PORT"
31448	//   "USE_SERVING_PORT"
31449	PortSpecification string `json:"portSpecification,omitempty"`
31450
31451	// ProxyHeader: Specifies the type of proxy header to append before
31452	// sending data to the backend, either NONE or PROXY_V1. The default is
31453	// NONE.
31454	//
31455	// Possible values:
31456	//   "NONE"
31457	//   "PROXY_V1"
31458	ProxyHeader string `json:"proxyHeader,omitempty"`
31459
31460	// Request: The application data to send once the SSL connection has
31461	// been established (default value is empty). If both request and
31462	// response are empty, the connection establishment alone will indicate
31463	// health. The request data can only be ASCII.
31464	Request string `json:"request,omitempty"`
31465
31466	// Response: The bytes to match against the beginning of the response
31467	// data. If left empty (the default value), any response will indicate
31468	// health. The response data can only be ASCII.
31469	Response string `json:"response,omitempty"`
31470
31471	// ForceSendFields is a list of field names (e.g. "Port") to
31472	// unconditionally include in API requests. By default, fields with
31473	// empty values are omitted from API requests. However, any non-pointer,
31474	// non-interface field appearing in ForceSendFields will be sent to the
31475	// server regardless of whether the field is empty or not. This may be
31476	// used to include empty fields in Patch requests.
31477	ForceSendFields []string `json:"-"`
31478
31479	// NullFields is a list of field names (e.g. "Port") to include in API
31480	// requests with the JSON null value. By default, fields with empty
31481	// values are omitted from API requests. However, any field with an
31482	// empty value appearing in NullFields will be sent to the server as
31483	// null. It is an error if a field in this list has a non-empty value.
31484	// This may be used to include null fields in Patch requests.
31485	NullFields []string `json:"-"`
31486}
31487
31488func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
31489	type NoMethod SSLHealthCheck
31490	raw := NoMethod(*s)
31491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31492}
31493
31494// Scheduling: Sets the scheduling options for an Instance. NextID: 12
31495type Scheduling struct {
31496	// AutomaticRestart: Specifies whether the instance should be
31497	// automatically restarted if it is terminated by Compute Engine (not
31498	// terminated by a user). You can only set the automatic restart option
31499	// for standard instances. Preemptible instances cannot be automatically
31500	// restarted.
31501	//
31502	// By default, this is set to true so an instance is automatically
31503	// restarted if it is terminated by Compute Engine.
31504	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
31505
31506	// NodeAffinities: A set of node affinity and anti-affinity
31507	// configurations. Refer to Configuring node affinity for more
31508	// information. Overrides reservationAffinity.
31509	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
31510
31511	// OnHostMaintenance: Defines the maintenance behavior for this
31512	// instance. For standard instances, the default behavior is MIGRATE.
31513	// For preemptible instances, the default and only possible behavior is
31514	// TERMINATE. For more information, see Setting Instance Scheduling
31515	// Options.
31516	//
31517	// Possible values:
31518	//   "MIGRATE"
31519	//   "TERMINATE"
31520	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
31521
31522	// Preemptible: Defines whether the instance is preemptible. This can
31523	// only be set during instance creation or while the instance is stopped
31524	// and therefore, in a `TERMINATED` state. See Instance Life Cycle for
31525	// more information on the possible instance states.
31526	Preemptible bool `json:"preemptible,omitempty"`
31527
31528	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
31529	// unconditionally include in API requests. By default, fields with
31530	// empty values are omitted from API requests. However, any non-pointer,
31531	// non-interface field appearing in ForceSendFields will be sent to the
31532	// server regardless of whether the field is empty or not. This may be
31533	// used to include empty fields in Patch requests.
31534	ForceSendFields []string `json:"-"`
31535
31536	// NullFields is a list of field names (e.g. "AutomaticRestart") to
31537	// include in API requests with the JSON null value. By default, fields
31538	// with empty values are omitted from API requests. However, any field
31539	// with an empty value appearing in NullFields will be sent to the
31540	// server as null. It is an error if a field in this list has a
31541	// non-empty value. This may be used to include null fields in Patch
31542	// requests.
31543	NullFields []string `json:"-"`
31544}
31545
31546func (s *Scheduling) MarshalJSON() ([]byte, error) {
31547	type NoMethod Scheduling
31548	raw := NoMethod(*s)
31549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31550}
31551
31552// SchedulingNodeAffinity: Node Affinity: the configuration of desired
31553// nodes onto which this Instance could be scheduled.
31554type SchedulingNodeAffinity struct {
31555	// Key: Corresponds to the label key of Node resource.
31556	Key string `json:"key,omitempty"`
31557
31558	// Operator: Defines the operation of node selection. Valid operators
31559	// are IN for affinity and NOT_IN for anti-affinity.
31560	//
31561	// Possible values:
31562	//   "IN"
31563	//   "NOT_IN"
31564	//   "OPERATOR_UNSPECIFIED"
31565	Operator string `json:"operator,omitempty"`
31566
31567	// Values: Corresponds to the label values of Node resource.
31568	Values []string `json:"values,omitempty"`
31569
31570	// ForceSendFields is a list of field names (e.g. "Key") to
31571	// unconditionally include in API requests. By default, fields with
31572	// empty values are omitted from API requests. However, any non-pointer,
31573	// non-interface field appearing in ForceSendFields will be sent to the
31574	// server regardless of whether the field is empty or not. This may be
31575	// used to include empty fields in Patch requests.
31576	ForceSendFields []string `json:"-"`
31577
31578	// NullFields is a list of field names (e.g. "Key") to include in API
31579	// requests with the JSON null value. By default, fields with empty
31580	// values are omitted from API requests. However, any field with an
31581	// empty value appearing in NullFields will be sent to the server as
31582	// null. It is an error if a field in this list has a non-empty value.
31583	// This may be used to include null fields in Patch requests.
31584	NullFields []string `json:"-"`
31585}
31586
31587func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
31588	type NoMethod SchedulingNodeAffinity
31589	raw := NoMethod(*s)
31590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31591}
31592
31593type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
31594	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
31595
31596	// ServerResponse contains the HTTP response code and headers from the
31597	// server.
31598	googleapi.ServerResponse `json:"-"`
31599
31600	// ForceSendFields is a list of field names (e.g.
31601	// "PreconfiguredExpressionSets") to unconditionally include in API
31602	// requests. By default, fields with empty values are omitted from API
31603	// requests. However, any non-pointer, non-interface field appearing in
31604	// ForceSendFields will be sent to the server regardless of whether the
31605	// field is empty or not. This may be used to include empty fields in
31606	// Patch requests.
31607	ForceSendFields []string `json:"-"`
31608
31609	// NullFields is a list of field names (e.g.
31610	// "PreconfiguredExpressionSets") to include in API requests with the
31611	// JSON null value. By default, fields with empty values are omitted
31612	// from API requests. However, any field with an empty value appearing
31613	// in NullFields will be sent to the server as null. It is an error if a
31614	// field in this list has a non-empty value. This may be used to include
31615	// null fields in Patch requests.
31616	NullFields []string `json:"-"`
31617}
31618
31619func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
31620	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
31621	raw := NoMethod(*s)
31622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31623}
31624
31625type SecurityPoliciesWafConfig struct {
31626	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
31627
31628	// ForceSendFields is a list of field names (e.g. "WafRules") to
31629	// unconditionally include in API requests. By default, fields with
31630	// empty values are omitted from API requests. However, any non-pointer,
31631	// non-interface field appearing in ForceSendFields will be sent to the
31632	// server regardless of whether the field is empty or not. This may be
31633	// used to include empty fields in Patch requests.
31634	ForceSendFields []string `json:"-"`
31635
31636	// NullFields is a list of field names (e.g. "WafRules") to include in
31637	// API requests with the JSON null value. By default, fields with empty
31638	// values are omitted from API requests. However, any field with an
31639	// empty value appearing in NullFields will be sent to the server as
31640	// null. It is an error if a field in this list has a non-empty value.
31641	// This may be used to include null fields in Patch requests.
31642	NullFields []string `json:"-"`
31643}
31644
31645func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
31646	type NoMethod SecurityPoliciesWafConfig
31647	raw := NoMethod(*s)
31648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31649}
31650
31651// SecurityPolicy: Represents a Cloud Armor Security Policy
31652// resource.
31653//
31654// Only external backend services that use load balancers can reference
31655// a Security Policy. For more information, read  Cloud Armor Security
31656// Policy Concepts. (== resource_for {$api_version}.securityPolicies ==)
31657type SecurityPolicy struct {
31658	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31659	// format.
31660	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31661
31662	// Description: An optional description of this resource. Provide this
31663	// property when you create the resource.
31664	Description string `json:"description,omitempty"`
31665
31666	// Fingerprint: Specifies a fingerprint for this resource, which is
31667	// essentially a hash of the metadata's contents and used for optimistic
31668	// locking. The fingerprint is initially generated by Compute Engine and
31669	// changes after every request to modify or update metadata. You must
31670	// always provide an up-to-date fingerprint hash in order to update or
31671	// change metadata, otherwise the request will fail with error 412
31672	// conditionNotMet.
31673	//
31674	// To see the latest fingerprint, make get() request to the security
31675	// policy.
31676	Fingerprint string `json:"fingerprint,omitempty"`
31677
31678	// Id: [Output Only] The unique identifier for the resource. This
31679	// identifier is defined by the server.
31680	Id uint64 `json:"id,omitempty,string"`
31681
31682	// Kind: [Output only] Type of the resource. Always
31683	// compute#securityPolicyfor security policies
31684	Kind string `json:"kind,omitempty"`
31685
31686	// Name: Name of the resource. Provided by the client when the resource
31687	// is created. The name must be 1-63 characters long, and comply with
31688	// RFC1035. Specifically, the name must be 1-63 characters long and
31689	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31690	// the first character must be a lowercase letter, and all following
31691	// characters must be a dash, lowercase letter, or digit, except the
31692	// last character, which cannot be a dash.
31693	Name string `json:"name,omitempty"`
31694
31695	// Rules: A list of rules that belong to this policy. There must always
31696	// be a default rule (rule with priority 2147483647 and match "*"). If
31697	// no rules are provided when creating a security policy, a default rule
31698	// with action "allow" will be added.
31699	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
31700
31701	// SelfLink: [Output Only] Server-defined URL for the resource.
31702	SelfLink string `json:"selfLink,omitempty"`
31703
31704	// ServerResponse contains the HTTP response code and headers from the
31705	// server.
31706	googleapi.ServerResponse `json:"-"`
31707
31708	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31709	// to unconditionally include in API requests. By default, fields with
31710	// empty values are omitted from API requests. However, any non-pointer,
31711	// non-interface field appearing in ForceSendFields will be sent to the
31712	// server regardless of whether the field is empty or not. This may be
31713	// used to include empty fields in Patch requests.
31714	ForceSendFields []string `json:"-"`
31715
31716	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31717	// include in API requests with the JSON null value. By default, fields
31718	// with empty values are omitted from API requests. However, any field
31719	// with an empty value appearing in NullFields will be sent to the
31720	// server as null. It is an error if a field in this list has a
31721	// non-empty value. This may be used to include null fields in Patch
31722	// requests.
31723	NullFields []string `json:"-"`
31724}
31725
31726func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
31727	type NoMethod SecurityPolicy
31728	raw := NoMethod(*s)
31729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31730}
31731
31732type SecurityPolicyList struct {
31733	// Id: [Output Only] Unique identifier for the resource; defined by the
31734	// server.
31735	Id string `json:"id,omitempty"`
31736
31737	// Items: A list of SecurityPolicy resources.
31738	Items []*SecurityPolicy `json:"items,omitempty"`
31739
31740	// Kind: [Output Only] Type of resource. Always
31741	// compute#securityPolicyList for listsof securityPolicies
31742	Kind string `json:"kind,omitempty"`
31743
31744	// NextPageToken: [Output Only] This token allows you to get the next
31745	// page of results for list requests. If the number of results is larger
31746	// than maxResults, use the nextPageToken as a value for the query
31747	// parameter pageToken in the next list request. Subsequent list
31748	// requests will have their own nextPageToken to continue paging through
31749	// the results.
31750	NextPageToken string `json:"nextPageToken,omitempty"`
31751
31752	// Warning: [Output Only] Informational warning message.
31753	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
31754
31755	// ServerResponse contains the HTTP response code and headers from the
31756	// server.
31757	googleapi.ServerResponse `json:"-"`
31758
31759	// ForceSendFields is a list of field names (e.g. "Id") to
31760	// unconditionally include in API requests. By default, fields with
31761	// empty values are omitted from API requests. However, any non-pointer,
31762	// non-interface field appearing in ForceSendFields will be sent to the
31763	// server regardless of whether the field is empty or not. This may be
31764	// used to include empty fields in Patch requests.
31765	ForceSendFields []string `json:"-"`
31766
31767	// NullFields is a list of field names (e.g. "Id") to include in API
31768	// requests with the JSON null value. By default, fields with empty
31769	// values are omitted from API requests. However, any field with an
31770	// empty value appearing in NullFields will be sent to the server as
31771	// null. It is an error if a field in this list has a non-empty value.
31772	// This may be used to include null fields in Patch requests.
31773	NullFields []string `json:"-"`
31774}
31775
31776func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
31777	type NoMethod SecurityPolicyList
31778	raw := NoMethod(*s)
31779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31780}
31781
31782// SecurityPolicyListWarning: [Output Only] Informational warning
31783// message.
31784type SecurityPolicyListWarning struct {
31785	// Code: [Output Only] A warning code, if applicable. For example,
31786	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31787	// the response.
31788	//
31789	// Possible values:
31790	//   "CLEANUP_FAILED"
31791	//   "DEPRECATED_RESOURCE_USED"
31792	//   "DEPRECATED_TYPE_USED"
31793	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31794	//   "EXPERIMENTAL_TYPE_USED"
31795	//   "EXTERNAL_API_WARNING"
31796	//   "FIELD_VALUE_OVERRIDEN"
31797	//   "INJECTED_KERNELS_DEPRECATED"
31798	//   "MISSING_TYPE_DEPENDENCY"
31799	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31800	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31801	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31802	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31803	//   "NEXT_HOP_NOT_RUNNING"
31804	//   "NOT_CRITICAL_ERROR"
31805	//   "NO_RESULTS_ON_PAGE"
31806	//   "REQUIRED_TOS_AGREEMENT"
31807	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31808	//   "RESOURCE_NOT_DELETED"
31809	//   "SCHEMA_VALIDATION_IGNORED"
31810	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31811	//   "UNDECLARED_PROPERTIES"
31812	//   "UNREACHABLE"
31813	Code string `json:"code,omitempty"`
31814
31815	// Data: [Output Only] Metadata about this warning in key: value format.
31816	// For example:
31817	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31818	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
31819
31820	// Message: [Output Only] A human-readable description of the warning
31821	// code.
31822	Message string `json:"message,omitempty"`
31823
31824	// ForceSendFields is a list of field names (e.g. "Code") to
31825	// unconditionally include in API requests. By default, fields with
31826	// empty values are omitted from API requests. However, any non-pointer,
31827	// non-interface field appearing in ForceSendFields will be sent to the
31828	// server regardless of whether the field is empty or not. This may be
31829	// used to include empty fields in Patch requests.
31830	ForceSendFields []string `json:"-"`
31831
31832	// NullFields is a list of field names (e.g. "Code") to include in API
31833	// requests with the JSON null value. By default, fields with empty
31834	// values are omitted from API requests. However, any field with an
31835	// empty value appearing in NullFields will be sent to the server as
31836	// null. It is an error if a field in this list has a non-empty value.
31837	// This may be used to include null fields in Patch requests.
31838	NullFields []string `json:"-"`
31839}
31840
31841func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
31842	type NoMethod SecurityPolicyListWarning
31843	raw := NoMethod(*s)
31844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31845}
31846
31847type SecurityPolicyListWarningData struct {
31848	// Key: [Output Only] A key that provides more detail on the warning
31849	// being returned. For example, for warnings where there are no results
31850	// in a list request for a particular zone, this key might be scope and
31851	// the key value might be the zone name. Other examples might be a key
31852	// indicating a deprecated resource and a suggested replacement, or a
31853	// warning about invalid network settings (for example, if an instance
31854	// attempts to perform IP forwarding but is not enabled for IP
31855	// forwarding).
31856	Key string `json:"key,omitempty"`
31857
31858	// Value: [Output Only] A warning data value corresponding to the key.
31859	Value string `json:"value,omitempty"`
31860
31861	// ForceSendFields is a list of field names (e.g. "Key") to
31862	// unconditionally include in API requests. By default, fields with
31863	// empty values are omitted from API requests. However, any non-pointer,
31864	// non-interface field appearing in ForceSendFields will be sent to the
31865	// server regardless of whether the field is empty or not. This may be
31866	// used to include empty fields in Patch requests.
31867	ForceSendFields []string `json:"-"`
31868
31869	// NullFields is a list of field names (e.g. "Key") to include in API
31870	// requests with the JSON null value. By default, fields with empty
31871	// values are omitted from API requests. However, any field with an
31872	// empty value appearing in NullFields will be sent to the server as
31873	// null. It is an error if a field in this list has a non-empty value.
31874	// This may be used to include null fields in Patch requests.
31875	NullFields []string `json:"-"`
31876}
31877
31878func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
31879	type NoMethod SecurityPolicyListWarningData
31880	raw := NoMethod(*s)
31881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31882}
31883
31884type SecurityPolicyReference struct {
31885	SecurityPolicy string `json:"securityPolicy,omitempty"`
31886
31887	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") 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. "SecurityPolicy") to
31896	// include in API requests with the JSON null value. By default, fields
31897	// with empty values are omitted from API requests. However, any field
31898	// with an empty value appearing in NullFields will be sent to the
31899	// server as null. It is an error if a field in this list has a
31900	// non-empty value. This may be used to include null fields in Patch
31901	// requests.
31902	NullFields []string `json:"-"`
31903}
31904
31905func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
31906	type NoMethod SecurityPolicyReference
31907	raw := NoMethod(*s)
31908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31909}
31910
31911// SecurityPolicyRule: Represents a rule that describes one or more
31912// match conditions along with the action to be taken when traffic
31913// matches this condition (allow or deny).
31914type SecurityPolicyRule struct {
31915	// Action: The Action to preform when the client connection triggers the
31916	// rule. Can currently be either "allow" or "deny()" where valid values
31917	// for status are 403, 404, and 502.
31918	Action string `json:"action,omitempty"`
31919
31920	// Description: An optional description of this resource. Provide this
31921	// property when you create the resource.
31922	Description string `json:"description,omitempty"`
31923
31924	// Kind: [Output only] Type of the resource. Always
31925	// compute#securityPolicyRule for security policy rules
31926	Kind string `json:"kind,omitempty"`
31927
31928	// Match: A match condition that incoming traffic is evaluated against.
31929	// If it evaluates to true, the corresponding 'action' is enforced.
31930	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
31931
31932	// Preview: If set to true, the specified action is not enforced.
31933	Preview bool `json:"preview,omitempty"`
31934
31935	// Priority: An integer indicating the priority of a rule in the list.
31936	// The priority must be a positive value between 0 and 2147483647. Rules
31937	// are evaluated from highest to lowest priority where 0 is the highest
31938	// priority and 2147483647 is the lowest prority.
31939	Priority int64 `json:"priority,omitempty"`
31940
31941	// ServerResponse contains the HTTP response code and headers from the
31942	// server.
31943	googleapi.ServerResponse `json:"-"`
31944
31945	// ForceSendFields is a list of field names (e.g. "Action") to
31946	// unconditionally include in API requests. By default, fields with
31947	// empty values are omitted from API requests. However, any non-pointer,
31948	// non-interface field appearing in ForceSendFields will be sent to the
31949	// server regardless of whether the field is empty or not. This may be
31950	// used to include empty fields in Patch requests.
31951	ForceSendFields []string `json:"-"`
31952
31953	// NullFields is a list of field names (e.g. "Action") to include in API
31954	// requests with the JSON null value. By default, fields with empty
31955	// values are omitted from API requests. However, any field with an
31956	// empty value appearing in NullFields will be sent to the server as
31957	// null. It is an error if a field in this list has a non-empty value.
31958	// This may be used to include null fields in Patch requests.
31959	NullFields []string `json:"-"`
31960}
31961
31962func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
31963	type NoMethod SecurityPolicyRule
31964	raw := NoMethod(*s)
31965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31966}
31967
31968// SecurityPolicyRuleMatcher: Represents a match condition that incoming
31969// traffic is evaluated against. Exactly one field must be specified.
31970type SecurityPolicyRuleMatcher struct {
31971	// Config: The configuration options available when specifying
31972	// versioned_expr. This field must be specified if versioned_expr is
31973	// specified and cannot be specified if versioned_expr is not specified.
31974	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
31975
31976	// Expr: User defined CEVAL expression. A CEVAL expression is used to
31977	// specify match criteria such as origin.ip, source.region_code and
31978	// contents in the request header.
31979	Expr *Expr `json:"expr,omitempty"`
31980
31981	// VersionedExpr: Preconfigured versioned expression. If this field is
31982	// specified, config must also be specified. Available preconfigured
31983	// expressions along with their requirements are: SRC_IPS_V1 - must
31984	// specify the corresponding src_ip_range field in config.
31985	//
31986	// Possible values:
31987	//   "SRC_IPS_V1"
31988	VersionedExpr string `json:"versionedExpr,omitempty"`
31989
31990	// ForceSendFields is a list of field names (e.g. "Config") to
31991	// unconditionally include in API requests. By default, fields with
31992	// empty values are omitted from API requests. However, any non-pointer,
31993	// non-interface field appearing in ForceSendFields will be sent to the
31994	// server regardless of whether the field is empty or not. This may be
31995	// used to include empty fields in Patch requests.
31996	ForceSendFields []string `json:"-"`
31997
31998	// NullFields is a list of field names (e.g. "Config") to include in API
31999	// requests with the JSON null value. By default, fields with empty
32000	// values are omitted from API requests. However, any field with an
32001	// empty value appearing in NullFields will be sent to the server as
32002	// null. It is an error if a field in this list has a non-empty value.
32003	// This may be used to include null fields in Patch requests.
32004	NullFields []string `json:"-"`
32005}
32006
32007func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
32008	type NoMethod SecurityPolicyRuleMatcher
32009	raw := NoMethod(*s)
32010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32011}
32012
32013type SecurityPolicyRuleMatcherConfig struct {
32014	// SrcIpRanges: CIDR IP address range.
32015	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
32016
32017	// ForceSendFields is a list of field names (e.g. "SrcIpRanges") to
32018	// unconditionally include in API requests. By default, fields with
32019	// empty values are omitted from API requests. However, any non-pointer,
32020	// non-interface field appearing in ForceSendFields will be sent to the
32021	// server regardless of whether the field is empty or not. This may be
32022	// used to include empty fields in Patch requests.
32023	ForceSendFields []string `json:"-"`
32024
32025	// NullFields is a list of field names (e.g. "SrcIpRanges") to include
32026	// in API requests with the JSON null value. By default, fields with
32027	// empty values are omitted from API requests. However, any field with
32028	// an empty value appearing in NullFields will be sent to the server as
32029	// null. It is an error if a field in this list has a non-empty value.
32030	// This may be used to include null fields in Patch requests.
32031	NullFields []string `json:"-"`
32032}
32033
32034func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
32035	type NoMethod SecurityPolicyRuleMatcherConfig
32036	raw := NoMethod(*s)
32037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32038}
32039
32040// SerialPortOutput: An instance's serial console output.
32041type SerialPortOutput struct {
32042	// Contents: [Output Only] The contents of the console output.
32043	Contents string `json:"contents,omitempty"`
32044
32045	// Kind: [Output Only] Type of the resource. Always
32046	// compute#serialPortOutput for serial port output.
32047	Kind string `json:"kind,omitempty"`
32048
32049	// Next: [Output Only] The position of the next byte of content from the
32050	// serial console output. Use this value in the next request as the
32051	// start parameter.
32052	Next int64 `json:"next,omitempty,string"`
32053
32054	// SelfLink: [Output Only] Server-defined URL for this resource.
32055	SelfLink string `json:"selfLink,omitempty"`
32056
32057	// Start: The starting byte position of the output that was returned.
32058	// This should match the start parameter sent with the request. If the
32059	// serial console output exceeds the size of the buffer, older output
32060	// will be overwritten by newer content and the start values will be
32061	// mismatched.
32062	Start int64 `json:"start,omitempty,string"`
32063
32064	// ServerResponse contains the HTTP response code and headers from the
32065	// server.
32066	googleapi.ServerResponse `json:"-"`
32067
32068	// ForceSendFields is a list of field names (e.g. "Contents") to
32069	// unconditionally include in API requests. By default, fields with
32070	// empty values are omitted from API requests. However, any non-pointer,
32071	// non-interface field appearing in ForceSendFields will be sent to the
32072	// server regardless of whether the field is empty or not. This may be
32073	// used to include empty fields in Patch requests.
32074	ForceSendFields []string `json:"-"`
32075
32076	// NullFields is a list of field names (e.g. "Contents") to include in
32077	// API requests with the JSON null value. By default, fields with empty
32078	// values are omitted from API requests. However, any field with an
32079	// empty value appearing in NullFields will be sent to the server as
32080	// null. It is an error if a field in this list has a non-empty value.
32081	// This may be used to include null fields in Patch requests.
32082	NullFields []string `json:"-"`
32083}
32084
32085func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
32086	type NoMethod SerialPortOutput
32087	raw := NoMethod(*s)
32088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32089}
32090
32091type ServerBinding struct {
32092	// Possible values:
32093	//   "RESTART_NODE_ON_ANY_SERVER"
32094	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
32095	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
32096	Type string `json:"type,omitempty"`
32097
32098	// ForceSendFields is a list of field names (e.g. "Type") to
32099	// unconditionally include in API requests. By default, fields with
32100	// empty values are omitted from API requests. However, any non-pointer,
32101	// non-interface field appearing in ForceSendFields will be sent to the
32102	// server regardless of whether the field is empty or not. This may be
32103	// used to include empty fields in Patch requests.
32104	ForceSendFields []string `json:"-"`
32105
32106	// NullFields is a list of field names (e.g. "Type") to include in API
32107	// requests with the JSON null value. By default, fields with empty
32108	// values are omitted from API requests. However, any field with an
32109	// empty value appearing in NullFields will be sent to the server as
32110	// null. It is an error if a field in this list has a non-empty value.
32111	// This may be used to include null fields in Patch requests.
32112	NullFields []string `json:"-"`
32113}
32114
32115func (s *ServerBinding) MarshalJSON() ([]byte, error) {
32116	type NoMethod ServerBinding
32117	raw := NoMethod(*s)
32118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32119}
32120
32121// ServiceAccount: A service account.
32122type ServiceAccount struct {
32123	// Email: Email address of the service account.
32124	Email string `json:"email,omitempty"`
32125
32126	// Scopes: The list of scopes to be made available for this service
32127	// account.
32128	Scopes []string `json:"scopes,omitempty"`
32129
32130	// ForceSendFields is a list of field names (e.g. "Email") to
32131	// unconditionally include in API requests. By default, fields with
32132	// empty values are omitted from API requests. However, any non-pointer,
32133	// non-interface field appearing in ForceSendFields will be sent to the
32134	// server regardless of whether the field is empty or not. This may be
32135	// used to include empty fields in Patch requests.
32136	ForceSendFields []string `json:"-"`
32137
32138	// NullFields is a list of field names (e.g. "Email") to include in API
32139	// requests with the JSON null value. By default, fields with empty
32140	// values are omitted from API requests. However, any field with an
32141	// empty value appearing in NullFields will be sent to the server as
32142	// null. It is an error if a field in this list has a non-empty value.
32143	// This may be used to include null fields in Patch requests.
32144	NullFields []string `json:"-"`
32145}
32146
32147func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
32148	type NoMethod ServiceAccount
32149	raw := NoMethod(*s)
32150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32151}
32152
32153// ShieldedInstanceConfig: A set of Shielded Instance options.
32154type ShieldedInstanceConfig struct {
32155	// EnableIntegrityMonitoring: Defines whether the instance has integrity
32156	// monitoring enabled. Enabled by default.
32157	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
32158
32159	// EnableSecureBoot: Defines whether the instance has Secure Boot
32160	// enabled. Disabled by default.
32161	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
32162
32163	// EnableVtpm: Defines whether the instance has the vTPM enabled.
32164	// Enabled by default.
32165	EnableVtpm bool `json:"enableVtpm,omitempty"`
32166
32167	// ForceSendFields is a list of field names (e.g.
32168	// "EnableIntegrityMonitoring") to unconditionally include in API
32169	// requests. By default, fields with empty values are omitted from API
32170	// requests. However, any non-pointer, non-interface field appearing in
32171	// ForceSendFields will be sent to the server regardless of whether the
32172	// field is empty or not. This may be used to include empty fields in
32173	// Patch requests.
32174	ForceSendFields []string `json:"-"`
32175
32176	// NullFields is a list of field names (e.g.
32177	// "EnableIntegrityMonitoring") to include in API requests with the JSON
32178	// null value. By default, fields with empty values are omitted from API
32179	// requests. However, any field with an empty value appearing in
32180	// NullFields will be sent to the server as null. It is an error if a
32181	// field in this list has a non-empty value. This may be used to include
32182	// null fields in Patch requests.
32183	NullFields []string `json:"-"`
32184}
32185
32186func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
32187	type NoMethod ShieldedInstanceConfig
32188	raw := NoMethod(*s)
32189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32190}
32191
32192// ShieldedInstanceIdentity: A shielded Instance identity entry.
32193type ShieldedInstanceIdentity struct {
32194	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
32195	// issued to the Shielded Instance's vTPM.
32196	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
32197
32198	// Kind: [Output Only] Type of the resource. Always
32199	// compute#shieldedInstanceIdentity for shielded Instance identity
32200	// entry.
32201	Kind string `json:"kind,omitempty"`
32202
32203	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
32204	// issued to the Shielded Instance's vTPM.
32205	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
32206
32207	// ServerResponse contains the HTTP response code and headers from the
32208	// server.
32209	googleapi.ServerResponse `json:"-"`
32210
32211	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
32212	// unconditionally include in API requests. By default, fields with
32213	// empty values are omitted from API requests. However, any non-pointer,
32214	// non-interface field appearing in ForceSendFields will be sent to the
32215	// server regardless of whether the field is empty or not. This may be
32216	// used to include empty fields in Patch requests.
32217	ForceSendFields []string `json:"-"`
32218
32219	// NullFields is a list of field names (e.g. "EncryptionKey") to include
32220	// in API requests with the JSON null value. By default, fields with
32221	// empty values are omitted from API requests. However, any field with
32222	// an empty value appearing in NullFields will be sent to the server as
32223	// null. It is an error if a field in this list has a non-empty value.
32224	// This may be used to include null fields in Patch requests.
32225	NullFields []string `json:"-"`
32226}
32227
32228func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
32229	type NoMethod ShieldedInstanceIdentity
32230	raw := NoMethod(*s)
32231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32232}
32233
32234// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
32235type ShieldedInstanceIdentityEntry struct {
32236	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
32237	EkCert string `json:"ekCert,omitempty"`
32238
32239	// EkPub: A PEM-encoded public key.
32240	EkPub string `json:"ekPub,omitempty"`
32241
32242	// ForceSendFields is a list of field names (e.g. "EkCert") to
32243	// unconditionally include in API requests. By default, fields with
32244	// empty values are omitted from API requests. However, any non-pointer,
32245	// non-interface field appearing in ForceSendFields will be sent to the
32246	// server regardless of whether the field is empty or not. This may be
32247	// used to include empty fields in Patch requests.
32248	ForceSendFields []string `json:"-"`
32249
32250	// NullFields is a list of field names (e.g. "EkCert") to include in API
32251	// requests with the JSON null value. By default, fields with empty
32252	// values are omitted from API requests. However, any field with an
32253	// empty value appearing in NullFields will be sent to the server as
32254	// null. It is an error if a field in this list has a non-empty value.
32255	// This may be used to include null fields in Patch requests.
32256	NullFields []string `json:"-"`
32257}
32258
32259func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
32260	type NoMethod ShieldedInstanceIdentityEntry
32261	raw := NoMethod(*s)
32262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32263}
32264
32265// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
32266// against which Instance boot integrity is measured.
32267type ShieldedInstanceIntegrityPolicy struct {
32268	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
32269	// the measurements from the VM instance's most recent boot.
32270	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
32271
32272	// ForceSendFields is a list of field names (e.g.
32273	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
32274	// By default, fields with empty values are omitted from API requests.
32275	// However, any non-pointer, non-interface field appearing in
32276	// ForceSendFields will be sent to the server regardless of whether the
32277	// field is empty or not. This may be used to include empty fields in
32278	// Patch requests.
32279	ForceSendFields []string `json:"-"`
32280
32281	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
32282	// include in API requests with the JSON null value. By default, fields
32283	// with empty values are omitted from API requests. However, any field
32284	// with an empty value appearing in NullFields will be sent to the
32285	// server as null. It is an error if a field in this list has a
32286	// non-empty value. This may be used to include null fields in Patch
32287	// requests.
32288	NullFields []string `json:"-"`
32289}
32290
32291func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
32292	type NoMethod ShieldedInstanceIntegrityPolicy
32293	raw := NoMethod(*s)
32294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32295}
32296
32297// SignedUrlKey: Represents a customer-supplied Signing Key used by
32298// Cloud CDN Signed URLs
32299type SignedUrlKey struct {
32300	// KeyName: Name of the key. The name must be 1-63 characters long, and
32301	// comply with RFC1035. Specifically, the name must be 1-63 characters
32302	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
32303	// which means the first character must be a lowercase letter, and all
32304	// following characters must be a dash, lowercase letter, or digit,
32305	// except the last character, which cannot be a dash.
32306	KeyName string `json:"keyName,omitempty"`
32307
32308	// KeyValue: 128-bit key value used for signing the URL. The key value
32309	// must be a valid RFC 4648 Section 5 base64url encoded string.
32310	KeyValue string `json:"keyValue,omitempty"`
32311
32312	// ForceSendFields is a list of field names (e.g. "KeyName") to
32313	// unconditionally include in API requests. By default, fields with
32314	// empty values are omitted from API requests. However, any non-pointer,
32315	// non-interface field appearing in ForceSendFields will be sent to the
32316	// server regardless of whether the field is empty or not. This may be
32317	// used to include empty fields in Patch requests.
32318	ForceSendFields []string `json:"-"`
32319
32320	// NullFields is a list of field names (e.g. "KeyName") to include in
32321	// API requests with the JSON null value. By default, fields with empty
32322	// values are omitted from API requests. However, any field with an
32323	// empty value appearing in NullFields will be sent to the server as
32324	// null. It is an error if a field in this list has a non-empty value.
32325	// This may be used to include null fields in Patch requests.
32326	NullFields []string `json:"-"`
32327}
32328
32329func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
32330	type NoMethod SignedUrlKey
32331	raw := NoMethod(*s)
32332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32333}
32334
32335// Snapshot: Represents a Persistent Disk Snapshot resource.
32336//
32337// You can use snapshots to back up data on a regular interval. For more
32338// information, read  Creating persistent disk snapshots. (==
32339// resource_for {$api_version}.snapshots ==)
32340type Snapshot struct {
32341	// AutoCreated: [Output Only] Set to true if snapshots are automatically
32342	// created by applying resource policy on the target disk.
32343	AutoCreated bool `json:"autoCreated,omitempty"`
32344
32345	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32346	// format.
32347	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32348
32349	// Description: An optional description of this resource. Provide this
32350	// property when you create the resource.
32351	Description string `json:"description,omitempty"`
32352
32353	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
32354	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
32355
32356	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
32357	// snapshot to a disk.
32358	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
32359
32360	// Id: [Output Only] The unique identifier for the resource. This
32361	// identifier is defined by the server.
32362	Id uint64 `json:"id,omitempty,string"`
32363
32364	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
32365	// Snapshot resources.
32366	Kind string `json:"kind,omitempty"`
32367
32368	// LabelFingerprint: A fingerprint for the labels being applied to this
32369	// snapshot, which is essentially a hash of the labels set used for
32370	// optimistic locking. The fingerprint is initially generated by Compute
32371	// Engine and changes after every request to modify or update labels.
32372	// You must always provide an up-to-date fingerprint hash in order to
32373	// update or change labels, otherwise the request will fail with error
32374	// 412 conditionNotMet.
32375	//
32376	// To see the latest fingerprint, make a get() request to retrieve a
32377	// snapshot.
32378	LabelFingerprint string `json:"labelFingerprint,omitempty"`
32379
32380	// Labels: Labels to apply to this snapshot. These can be later modified
32381	// by the setLabels method. Label values may be empty.
32382	Labels map[string]string `json:"labels,omitempty"`
32383
32384	// LicenseCodes: [Output Only] Integer license codes indicating which
32385	// licenses are attached to this snapshot.
32386	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
32387
32388	// Licenses: [Output Only] A list of public visible licenses that apply
32389	// to this snapshot. This can be because the original image had licenses
32390	// attached (such as a Windows image).
32391	Licenses []string `json:"licenses,omitempty"`
32392
32393	// Name: Name of the resource; provided by the client when the resource
32394	// is created. The name must be 1-63 characters long, and comply with
32395	// RFC1035. Specifically, the name must be 1-63 characters long and
32396	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
32397	// the first character must be a lowercase letter, and all following
32398	// characters must be a dash, lowercase letter, or digit, except the
32399	// last character, which cannot be a dash.
32400	Name string `json:"name,omitempty"`
32401
32402	// SelfLink: [Output Only] Server-defined URL for the resource.
32403	SelfLink string `json:"selfLink,omitempty"`
32404
32405	// SnapshotEncryptionKey: Encrypts the snapshot using a
32406	// customer-supplied encryption key.
32407	//
32408	// After you encrypt a snapshot using a customer-supplied key, you must
32409	// provide the same key if you use the snapshot later. For example, you
32410	// must provide the encryption key when you create a disk from the
32411	// encrypted snapshot in a future request.
32412	//
32413	// Customer-supplied encryption keys do not protect access to metadata
32414	// of the snapshot.
32415	//
32416	// If you do not provide an encryption key when creating the snapshot,
32417	// then the snapshot will be encrypted using an automatically generated
32418	// key and you do not need to provide a key to use the snapshot later.
32419	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
32420
32421	// SourceDisk: [Output Only] The source disk used to create this
32422	// snapshot.
32423	SourceDisk string `json:"sourceDisk,omitempty"`
32424
32425	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
32426	// source disk. Required if the source disk is protected by a
32427	// customer-supplied encryption key.
32428	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
32429
32430	// SourceDiskId: [Output Only] The ID value of the disk used to create
32431	// this snapshot. This value may be used to determine whether the
32432	// snapshot was taken from the current or a previous instance of a given
32433	// disk name.
32434	SourceDiskId string `json:"sourceDiskId,omitempty"`
32435
32436	// Status: [Output Only] The status of the snapshot. This can be
32437	// CREATING, DELETING, FAILED, READY, or UPLOADING.
32438	//
32439	// Possible values:
32440	//   "CREATING"
32441	//   "DELETING"
32442	//   "FAILED"
32443	//   "READY"
32444	//   "UPLOADING"
32445	Status string `json:"status,omitempty"`
32446
32447	// StorageBytes: [Output Only] A size of the storage used by the
32448	// snapshot. As snapshots share storage, this number is expected to
32449	// change with snapshot creation/deletion.
32450	StorageBytes int64 `json:"storageBytes,omitempty,string"`
32451
32452	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
32453	// is in a stable state or it is being adjusted as a result of shared
32454	// storage reallocation. This status can either be UPDATING, meaning the
32455	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
32456	// size of the snapshot is up-to-date.
32457	//
32458	// Possible values:
32459	//   "UPDATING"
32460	//   "UP_TO_DATE"
32461	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
32462
32463	// StorageLocations: Cloud Storage bucket storage location of the
32464	// snapshot (regional or multi-regional).
32465	StorageLocations []string `json:"storageLocations,omitempty"`
32466
32467	// ServerResponse contains the HTTP response code and headers from the
32468	// server.
32469	googleapi.ServerResponse `json:"-"`
32470
32471	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
32472	// unconditionally include in API requests. By default, fields with
32473	// empty values are omitted from API requests. However, any non-pointer,
32474	// non-interface field appearing in ForceSendFields will be sent to the
32475	// server regardless of whether the field is empty or not. This may be
32476	// used to include empty fields in Patch requests.
32477	ForceSendFields []string `json:"-"`
32478
32479	// NullFields is a list of field names (e.g. "AutoCreated") to include
32480	// in API requests with the JSON null value. By default, fields with
32481	// empty values are omitted from API requests. However, any field with
32482	// an empty value appearing in NullFields will be sent to the server as
32483	// null. It is an error if a field in this list has a non-empty value.
32484	// This may be used to include null fields in Patch requests.
32485	NullFields []string `json:"-"`
32486}
32487
32488func (s *Snapshot) MarshalJSON() ([]byte, error) {
32489	type NoMethod Snapshot
32490	raw := NoMethod(*s)
32491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32492}
32493
32494// SnapshotList: Contains a list of Snapshot resources.
32495type SnapshotList struct {
32496	// Id: [Output Only] Unique identifier for the resource; defined by the
32497	// server.
32498	Id string `json:"id,omitempty"`
32499
32500	// Items: A list of Snapshot resources.
32501	Items []*Snapshot `json:"items,omitempty"`
32502
32503	// Kind: Type of resource.
32504	Kind string `json:"kind,omitempty"`
32505
32506	// NextPageToken: [Output Only] This token allows you to get the next
32507	// page of results for list requests. If the number of results is larger
32508	// than maxResults, use the nextPageToken as a value for the query
32509	// parameter pageToken in the next list request. Subsequent list
32510	// requests will have their own nextPageToken to continue paging through
32511	// the results.
32512	NextPageToken string `json:"nextPageToken,omitempty"`
32513
32514	// SelfLink: [Output Only] Server-defined URL for this resource.
32515	SelfLink string `json:"selfLink,omitempty"`
32516
32517	// Warning: [Output Only] Informational warning message.
32518	Warning *SnapshotListWarning `json:"warning,omitempty"`
32519
32520	// ServerResponse contains the HTTP response code and headers from the
32521	// server.
32522	googleapi.ServerResponse `json:"-"`
32523
32524	// ForceSendFields is a list of field names (e.g. "Id") to
32525	// unconditionally include in API requests. By default, fields with
32526	// empty values are omitted from API requests. However, any non-pointer,
32527	// non-interface field appearing in ForceSendFields will be sent to the
32528	// server regardless of whether the field is empty or not. This may be
32529	// used to include empty fields in Patch requests.
32530	ForceSendFields []string `json:"-"`
32531
32532	// NullFields is a list of field names (e.g. "Id") to include in API
32533	// requests with the JSON null value. By default, fields with empty
32534	// values are omitted from API requests. However, any field with an
32535	// empty value appearing in NullFields will be sent to the server as
32536	// null. It is an error if a field in this list has a non-empty value.
32537	// This may be used to include null fields in Patch requests.
32538	NullFields []string `json:"-"`
32539}
32540
32541func (s *SnapshotList) MarshalJSON() ([]byte, error) {
32542	type NoMethod SnapshotList
32543	raw := NoMethod(*s)
32544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32545}
32546
32547// SnapshotListWarning: [Output Only] Informational warning message.
32548type SnapshotListWarning struct {
32549	// Code: [Output Only] A warning code, if applicable. For example,
32550	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32551	// the response.
32552	//
32553	// Possible values:
32554	//   "CLEANUP_FAILED"
32555	//   "DEPRECATED_RESOURCE_USED"
32556	//   "DEPRECATED_TYPE_USED"
32557	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32558	//   "EXPERIMENTAL_TYPE_USED"
32559	//   "EXTERNAL_API_WARNING"
32560	//   "FIELD_VALUE_OVERRIDEN"
32561	//   "INJECTED_KERNELS_DEPRECATED"
32562	//   "MISSING_TYPE_DEPENDENCY"
32563	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32564	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32565	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32566	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32567	//   "NEXT_HOP_NOT_RUNNING"
32568	//   "NOT_CRITICAL_ERROR"
32569	//   "NO_RESULTS_ON_PAGE"
32570	//   "REQUIRED_TOS_AGREEMENT"
32571	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32572	//   "RESOURCE_NOT_DELETED"
32573	//   "SCHEMA_VALIDATION_IGNORED"
32574	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32575	//   "UNDECLARED_PROPERTIES"
32576	//   "UNREACHABLE"
32577	Code string `json:"code,omitempty"`
32578
32579	// Data: [Output Only] Metadata about this warning in key: value format.
32580	// For example:
32581	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32582	Data []*SnapshotListWarningData `json:"data,omitempty"`
32583
32584	// Message: [Output Only] A human-readable description of the warning
32585	// code.
32586	Message string `json:"message,omitempty"`
32587
32588	// ForceSendFields is a list of field names (e.g. "Code") to
32589	// unconditionally include in API requests. By default, fields with
32590	// empty values are omitted from API requests. However, any non-pointer,
32591	// non-interface field appearing in ForceSendFields will be sent to the
32592	// server regardless of whether the field is empty or not. This may be
32593	// used to include empty fields in Patch requests.
32594	ForceSendFields []string `json:"-"`
32595
32596	// NullFields is a list of field names (e.g. "Code") to include in API
32597	// requests with the JSON null value. By default, fields with empty
32598	// values are omitted from API requests. However, any field with an
32599	// empty value appearing in NullFields will be sent to the server as
32600	// null. It is an error if a field in this list has a non-empty value.
32601	// This may be used to include null fields in Patch requests.
32602	NullFields []string `json:"-"`
32603}
32604
32605func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
32606	type NoMethod SnapshotListWarning
32607	raw := NoMethod(*s)
32608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32609}
32610
32611type SnapshotListWarningData struct {
32612	// Key: [Output Only] A key that provides more detail on the warning
32613	// being returned. For example, for warnings where there are no results
32614	// in a list request for a particular zone, this key might be scope and
32615	// the key value might be the zone name. Other examples might be a key
32616	// indicating a deprecated resource and a suggested replacement, or a
32617	// warning about invalid network settings (for example, if an instance
32618	// attempts to perform IP forwarding but is not enabled for IP
32619	// forwarding).
32620	Key string `json:"key,omitempty"`
32621
32622	// Value: [Output Only] A warning data value corresponding to the key.
32623	Value string `json:"value,omitempty"`
32624
32625	// ForceSendFields is a list of field names (e.g. "Key") to
32626	// unconditionally include in API requests. By default, fields with
32627	// empty values are omitted from API requests. However, any non-pointer,
32628	// non-interface field appearing in ForceSendFields will be sent to the
32629	// server regardless of whether the field is empty or not. This may be
32630	// used to include empty fields in Patch requests.
32631	ForceSendFields []string `json:"-"`
32632
32633	// NullFields is a list of field names (e.g. "Key") to include in API
32634	// requests with the JSON null value. By default, fields with empty
32635	// values are omitted from API requests. However, any field with an
32636	// empty value appearing in NullFields will be sent to the server as
32637	// null. It is an error if a field in this list has a non-empty value.
32638	// This may be used to include null fields in Patch requests.
32639	NullFields []string `json:"-"`
32640}
32641
32642func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
32643	type NoMethod SnapshotListWarningData
32644	raw := NoMethod(*s)
32645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32646}
32647
32648// SourceInstanceParams: A specification of the parameters to use when
32649// creating the instance template from a source instance.
32650type SourceInstanceParams struct {
32651	// DiskConfigs: Attached disks configuration. If not provided, defaults
32652	// are applied: For boot disk and any other R/W disks, new custom images
32653	// will be created from each disk. For read-only disks, they will be
32654	// attached in read-only mode. Local SSD disks will be created as blank
32655	// volumes.
32656	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
32657
32658	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
32659	// unconditionally include in API requests. By default, fields with
32660	// empty values are omitted from API requests. However, any non-pointer,
32661	// non-interface field appearing in ForceSendFields will be sent to the
32662	// server regardless of whether the field is empty or not. This may be
32663	// used to include empty fields in Patch requests.
32664	ForceSendFields []string `json:"-"`
32665
32666	// NullFields is a list of field names (e.g. "DiskConfigs") to include
32667	// in API requests with the JSON null value. By default, fields with
32668	// empty values are omitted from API requests. However, any field with
32669	// an empty value appearing in NullFields will be sent to the server as
32670	// null. It is an error if a field in this list has a non-empty value.
32671	// This may be used to include null fields in Patch requests.
32672	NullFields []string `json:"-"`
32673}
32674
32675func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
32676	type NoMethod SourceInstanceParams
32677	raw := NoMethod(*s)
32678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32679}
32680
32681// SslCertificate: Represents an SSL Certificate resource.
32682//
32683// Google Compute Engine has two SSL Certificate resources:
32684//
32685// *
32686// [Global](/compute/docs/reference/rest/{$api_version}/sslCertificates)
32687// *
32688// [Regional](/compute/docs/reference/rest/{$api_version}/regionSslCertif
32689// icates)
32690//
32691//
32692//
32693// The sslCertificates are used by:
32694// - external HTTPS load balancers
32695// - SSL proxy load balancers
32696//
32697// The regionSslCertificates are used by internal HTTPS load
32698// balancers.
32699//
32700// Optionally, certificate file contents that you upload can contain a
32701// set of up to five PEM-encoded certificates. The API call creates an
32702// object (sslCertificate) that holds this data. You can use SSL keys
32703// and certificates to secure connections to a load balancer. For more
32704// information, read  Creating and using SSL certificates, SSL
32705// certificates quotas and limits, and  Troubleshooting SSL
32706// certificates. (== resource_for {$api_version}.sslCertificates ==) (==
32707// resource_for {$api_version}.regionSslCertificates ==)
32708type SslCertificate struct {
32709	// Certificate: A local certificate file. The certificate must be in PEM
32710	// format. The certificate chain must be no greater than 5 certs long.
32711	// The chain must include at least one intermediate cert.
32712	Certificate string `json:"certificate,omitempty"`
32713
32714	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32715	// format.
32716	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32717
32718	// Description: An optional description of this resource. Provide this
32719	// property when you create the resource.
32720	Description string `json:"description,omitempty"`
32721
32722	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
32723	ExpireTime string `json:"expireTime,omitempty"`
32724
32725	// Id: [Output Only] The unique identifier for the resource. This
32726	// identifier is defined by the server.
32727	Id uint64 `json:"id,omitempty,string"`
32728
32729	// Kind: [Output Only] Type of the resource. Always
32730	// compute#sslCertificate for SSL certificates.
32731	Kind string `json:"kind,omitempty"`
32732
32733	// Managed: Configuration and status of a managed SSL certificate.
32734	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
32735
32736	// Name: Name of the resource. Provided by the client when the resource
32737	// is created. The name must be 1-63 characters long, and comply with
32738	// RFC1035. Specifically, the name must be 1-63 characters long and
32739	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
32740	// the first character must be a lowercase letter, and all following
32741	// characters must be a dash, lowercase letter, or digit, except the
32742	// last character, which cannot be a dash.
32743	Name string `json:"name,omitempty"`
32744
32745	// PrivateKey: A write-only private key in PEM format. Only insert
32746	// requests will include this field.
32747	PrivateKey string `json:"privateKey,omitempty"`
32748
32749	// Region: [Output Only] URL of the region where the regional SSL
32750	// Certificate resides. This field is not applicable to global SSL
32751	// Certificate.
32752	Region string `json:"region,omitempty"`
32753
32754	// SelfLink: [Output only] Server-defined URL for the resource.
32755	SelfLink string `json:"selfLink,omitempty"`
32756
32757	// SelfManaged: Configuration and status of a self-managed SSL
32758	// certificate.
32759	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
32760
32761	// SubjectAlternativeNames: [Output Only] Domains associated with the
32762	// certificate via Subject Alternative Name.
32763	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
32764
32765	// Type: (Optional) Specifies the type of SSL certificate, either
32766	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
32767	// self-managed and the fields certificate and private_key are used.
32768	//
32769	// Possible values:
32770	//   "MANAGED"
32771	//   "SELF_MANAGED"
32772	//   "TYPE_UNSPECIFIED"
32773	Type string `json:"type,omitempty"`
32774
32775	// ServerResponse contains the HTTP response code and headers from the
32776	// server.
32777	googleapi.ServerResponse `json:"-"`
32778
32779	// ForceSendFields is a list of field names (e.g. "Certificate") to
32780	// unconditionally include in API requests. By default, fields with
32781	// empty values are omitted from API requests. However, any non-pointer,
32782	// non-interface field appearing in ForceSendFields will be sent to the
32783	// server regardless of whether the field is empty or not. This may be
32784	// used to include empty fields in Patch requests.
32785	ForceSendFields []string `json:"-"`
32786
32787	// NullFields is a list of field names (e.g. "Certificate") to include
32788	// in API requests with the JSON null value. By default, fields with
32789	// empty values are omitted from API requests. However, any field with
32790	// an empty value appearing in NullFields will be sent to the server as
32791	// null. It is an error if a field in this list has a non-empty value.
32792	// This may be used to include null fields in Patch requests.
32793	NullFields []string `json:"-"`
32794}
32795
32796func (s *SslCertificate) MarshalJSON() ([]byte, error) {
32797	type NoMethod SslCertificate
32798	raw := NoMethod(*s)
32799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32800}
32801
32802type SslCertificateAggregatedList struct {
32803	// Id: [Output Only] Unique identifier for the resource; defined by the
32804	// server.
32805	Id string `json:"id,omitempty"`
32806
32807	// Items: A list of SslCertificatesScopedList resources.
32808	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
32809
32810	// Kind: [Output Only] Type of resource. Always
32811	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
32812	Kind string `json:"kind,omitempty"`
32813
32814	// NextPageToken: [Output Only] This token allows you to get the next
32815	// page of results for list requests. If the number of results is larger
32816	// than maxResults, use the nextPageToken as a value for the query
32817	// parameter pageToken in the next list request. Subsequent list
32818	// requests will have their own nextPageToken to continue paging through
32819	// the results.
32820	NextPageToken string `json:"nextPageToken,omitempty"`
32821
32822	// SelfLink: [Output Only] Server-defined URL for this resource.
32823	SelfLink string `json:"selfLink,omitempty"`
32824
32825	// Warning: [Output Only] Informational warning message.
32826	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
32827
32828	// ServerResponse contains the HTTP response code and headers from the
32829	// server.
32830	googleapi.ServerResponse `json:"-"`
32831
32832	// ForceSendFields is a list of field names (e.g. "Id") to
32833	// unconditionally include in API requests. By default, fields with
32834	// empty values are omitted from API requests. However, any non-pointer,
32835	// non-interface field appearing in ForceSendFields will be sent to the
32836	// server regardless of whether the field is empty or not. This may be
32837	// used to include empty fields in Patch requests.
32838	ForceSendFields []string `json:"-"`
32839
32840	// NullFields is a list of field names (e.g. "Id") to include in API
32841	// requests with the JSON null value. By default, fields with empty
32842	// values are omitted from API requests. However, any field with an
32843	// empty value appearing in NullFields will be sent to the server as
32844	// null. It is an error if a field in this list has a non-empty value.
32845	// This may be used to include null fields in Patch requests.
32846	NullFields []string `json:"-"`
32847}
32848
32849func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
32850	type NoMethod SslCertificateAggregatedList
32851	raw := NoMethod(*s)
32852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32853}
32854
32855// SslCertificateAggregatedListWarning: [Output Only] Informational
32856// warning message.
32857type SslCertificateAggregatedListWarning struct {
32858	// Code: [Output Only] A warning code, if applicable. For example,
32859	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32860	// the response.
32861	//
32862	// Possible values:
32863	//   "CLEANUP_FAILED"
32864	//   "DEPRECATED_RESOURCE_USED"
32865	//   "DEPRECATED_TYPE_USED"
32866	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32867	//   "EXPERIMENTAL_TYPE_USED"
32868	//   "EXTERNAL_API_WARNING"
32869	//   "FIELD_VALUE_OVERRIDEN"
32870	//   "INJECTED_KERNELS_DEPRECATED"
32871	//   "MISSING_TYPE_DEPENDENCY"
32872	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32873	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32874	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32875	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32876	//   "NEXT_HOP_NOT_RUNNING"
32877	//   "NOT_CRITICAL_ERROR"
32878	//   "NO_RESULTS_ON_PAGE"
32879	//   "REQUIRED_TOS_AGREEMENT"
32880	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32881	//   "RESOURCE_NOT_DELETED"
32882	//   "SCHEMA_VALIDATION_IGNORED"
32883	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32884	//   "UNDECLARED_PROPERTIES"
32885	//   "UNREACHABLE"
32886	Code string `json:"code,omitempty"`
32887
32888	// Data: [Output Only] Metadata about this warning in key: value format.
32889	// For example:
32890	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32891	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
32892
32893	// Message: [Output Only] A human-readable description of the warning
32894	// code.
32895	Message string `json:"message,omitempty"`
32896
32897	// ForceSendFields is a list of field names (e.g. "Code") to
32898	// unconditionally include in API requests. By default, fields with
32899	// empty values are omitted from API requests. However, any non-pointer,
32900	// non-interface field appearing in ForceSendFields will be sent to the
32901	// server regardless of whether the field is empty or not. This may be
32902	// used to include empty fields in Patch requests.
32903	ForceSendFields []string `json:"-"`
32904
32905	// NullFields is a list of field names (e.g. "Code") to include in API
32906	// requests with the JSON null value. By default, fields with empty
32907	// values are omitted from API requests. However, any field with an
32908	// empty value appearing in NullFields will be sent to the server as
32909	// null. It is an error if a field in this list has a non-empty value.
32910	// This may be used to include null fields in Patch requests.
32911	NullFields []string `json:"-"`
32912}
32913
32914func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
32915	type NoMethod SslCertificateAggregatedListWarning
32916	raw := NoMethod(*s)
32917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32918}
32919
32920type SslCertificateAggregatedListWarningData struct {
32921	// Key: [Output Only] A key that provides more detail on the warning
32922	// being returned. For example, for warnings where there are no results
32923	// in a list request for a particular zone, this key might be scope and
32924	// the key value might be the zone name. Other examples might be a key
32925	// indicating a deprecated resource and a suggested replacement, or a
32926	// warning about invalid network settings (for example, if an instance
32927	// attempts to perform IP forwarding but is not enabled for IP
32928	// forwarding).
32929	Key string `json:"key,omitempty"`
32930
32931	// Value: [Output Only] A warning data value corresponding to the key.
32932	Value string `json:"value,omitempty"`
32933
32934	// ForceSendFields is a list of field names (e.g. "Key") to
32935	// unconditionally include in API requests. By default, fields with
32936	// empty values are omitted from API requests. However, any non-pointer,
32937	// non-interface field appearing in ForceSendFields will be sent to the
32938	// server regardless of whether the field is empty or not. This may be
32939	// used to include empty fields in Patch requests.
32940	ForceSendFields []string `json:"-"`
32941
32942	// NullFields is a list of field names (e.g. "Key") to include in API
32943	// requests with the JSON null value. By default, fields with empty
32944	// values are omitted from API requests. However, any field with an
32945	// empty value appearing in NullFields will be sent to the server as
32946	// null. It is an error if a field in this list has a non-empty value.
32947	// This may be used to include null fields in Patch requests.
32948	NullFields []string `json:"-"`
32949}
32950
32951func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
32952	type NoMethod SslCertificateAggregatedListWarningData
32953	raw := NoMethod(*s)
32954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32955}
32956
32957// SslCertificateList: Contains a list of SslCertificate resources.
32958type SslCertificateList struct {
32959	// Id: [Output Only] Unique identifier for the resource; defined by the
32960	// server.
32961	Id string `json:"id,omitempty"`
32962
32963	// Items: A list of SslCertificate resources.
32964	Items []*SslCertificate `json:"items,omitempty"`
32965
32966	// Kind: Type of resource.
32967	Kind string `json:"kind,omitempty"`
32968
32969	// NextPageToken: [Output Only] This token allows you to get the next
32970	// page of results for list requests. If the number of results is larger
32971	// than maxResults, use the nextPageToken as a value for the query
32972	// parameter pageToken in the next list request. Subsequent list
32973	// requests will have their own nextPageToken to continue paging through
32974	// the results.
32975	NextPageToken string `json:"nextPageToken,omitempty"`
32976
32977	// SelfLink: [Output Only] Server-defined URL for this resource.
32978	SelfLink string `json:"selfLink,omitempty"`
32979
32980	// Warning: [Output Only] Informational warning message.
32981	Warning *SslCertificateListWarning `json:"warning,omitempty"`
32982
32983	// ServerResponse contains the HTTP response code and headers from the
32984	// server.
32985	googleapi.ServerResponse `json:"-"`
32986
32987	// ForceSendFields is a list of field names (e.g. "Id") to
32988	// unconditionally include in API requests. By default, fields with
32989	// empty values are omitted from API requests. However, any non-pointer,
32990	// non-interface field appearing in ForceSendFields will be sent to the
32991	// server regardless of whether the field is empty or not. This may be
32992	// used to include empty fields in Patch requests.
32993	ForceSendFields []string `json:"-"`
32994
32995	// NullFields is a list of field names (e.g. "Id") to include in API
32996	// requests with the JSON null value. By default, fields with empty
32997	// values are omitted from API requests. However, any field with an
32998	// empty value appearing in NullFields will be sent to the server as
32999	// null. It is an error if a field in this list has a non-empty value.
33000	// This may be used to include null fields in Patch requests.
33001	NullFields []string `json:"-"`
33002}
33003
33004func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
33005	type NoMethod SslCertificateList
33006	raw := NoMethod(*s)
33007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33008}
33009
33010// SslCertificateListWarning: [Output Only] Informational warning
33011// message.
33012type SslCertificateListWarning struct {
33013	// Code: [Output Only] A warning code, if applicable. For example,
33014	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33015	// the response.
33016	//
33017	// Possible values:
33018	//   "CLEANUP_FAILED"
33019	//   "DEPRECATED_RESOURCE_USED"
33020	//   "DEPRECATED_TYPE_USED"
33021	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33022	//   "EXPERIMENTAL_TYPE_USED"
33023	//   "EXTERNAL_API_WARNING"
33024	//   "FIELD_VALUE_OVERRIDEN"
33025	//   "INJECTED_KERNELS_DEPRECATED"
33026	//   "MISSING_TYPE_DEPENDENCY"
33027	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33028	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33029	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33030	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33031	//   "NEXT_HOP_NOT_RUNNING"
33032	//   "NOT_CRITICAL_ERROR"
33033	//   "NO_RESULTS_ON_PAGE"
33034	//   "REQUIRED_TOS_AGREEMENT"
33035	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33036	//   "RESOURCE_NOT_DELETED"
33037	//   "SCHEMA_VALIDATION_IGNORED"
33038	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33039	//   "UNDECLARED_PROPERTIES"
33040	//   "UNREACHABLE"
33041	Code string `json:"code,omitempty"`
33042
33043	// Data: [Output Only] Metadata about this warning in key: value format.
33044	// For example:
33045	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33046	Data []*SslCertificateListWarningData `json:"data,omitempty"`
33047
33048	// Message: [Output Only] A human-readable description of the warning
33049	// code.
33050	Message string `json:"message,omitempty"`
33051
33052	// ForceSendFields is a list of field names (e.g. "Code") to
33053	// unconditionally include in API requests. By default, fields with
33054	// empty values are omitted from API requests. However, any non-pointer,
33055	// non-interface field appearing in ForceSendFields will be sent to the
33056	// server regardless of whether the field is empty or not. This may be
33057	// used to include empty fields in Patch requests.
33058	ForceSendFields []string `json:"-"`
33059
33060	// NullFields is a list of field names (e.g. "Code") to include in API
33061	// requests with the JSON null value. By default, fields with empty
33062	// values are omitted from API requests. However, any field with an
33063	// empty value appearing in NullFields will be sent to the server as
33064	// null. It is an error if a field in this list has a non-empty value.
33065	// This may be used to include null fields in Patch requests.
33066	NullFields []string `json:"-"`
33067}
33068
33069func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
33070	type NoMethod SslCertificateListWarning
33071	raw := NoMethod(*s)
33072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33073}
33074
33075type SslCertificateListWarningData struct {
33076	// Key: [Output Only] A key that provides more detail on the warning
33077	// being returned. For example, for warnings where there are no results
33078	// in a list request for a particular zone, this key might be scope and
33079	// the key value might be the zone name. Other examples might be a key
33080	// indicating a deprecated resource and a suggested replacement, or a
33081	// warning about invalid network settings (for example, if an instance
33082	// attempts to perform IP forwarding but is not enabled for IP
33083	// forwarding).
33084	Key string `json:"key,omitempty"`
33085
33086	// Value: [Output Only] A warning data value corresponding to the key.
33087	Value string `json:"value,omitempty"`
33088
33089	// ForceSendFields is a list of field names (e.g. "Key") to
33090	// unconditionally include in API requests. By default, fields with
33091	// empty values are omitted from API requests. However, any non-pointer,
33092	// non-interface field appearing in ForceSendFields will be sent to the
33093	// server regardless of whether the field is empty or not. This may be
33094	// used to include empty fields in Patch requests.
33095	ForceSendFields []string `json:"-"`
33096
33097	// NullFields is a list of field names (e.g. "Key") to include in API
33098	// requests with the JSON null value. By default, fields with empty
33099	// values are omitted from API requests. However, any field with an
33100	// empty value appearing in NullFields will be sent to the server as
33101	// null. It is an error if a field in this list has a non-empty value.
33102	// This may be used to include null fields in Patch requests.
33103	NullFields []string `json:"-"`
33104}
33105
33106func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
33107	type NoMethod SslCertificateListWarningData
33108	raw := NoMethod(*s)
33109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33110}
33111
33112// SslCertificateManagedSslCertificate: Configuration and status of a
33113// managed SSL certificate.
33114type SslCertificateManagedSslCertificate struct {
33115	// DomainStatus: [Output only] Detailed statuses of the domains
33116	// specified for managed certificate resource.
33117	DomainStatus map[string]string `json:"domainStatus,omitempty"`
33118
33119	// Domains: The domains for which a managed SSL certificate will be
33120	// generated. Currently only single-domain certs are supported.
33121	Domains []string `json:"domains,omitempty"`
33122
33123	// Status: [Output only] Status of the managed certificate resource.
33124	//
33125	// Possible values:
33126	//   "ACTIVE"
33127	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
33128	//   "PROVISIONING"
33129	//   "PROVISIONING_FAILED"
33130	//   "PROVISIONING_FAILED_PERMANENTLY"
33131	//   "RENEWAL_FAILED"
33132	Status string `json:"status,omitempty"`
33133
33134	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
33135	// unconditionally include in API requests. By default, fields with
33136	// empty values are omitted from API requests. However, any non-pointer,
33137	// non-interface field appearing in ForceSendFields will be sent to the
33138	// server regardless of whether the field is empty or not. This may be
33139	// used to include empty fields in Patch requests.
33140	ForceSendFields []string `json:"-"`
33141
33142	// NullFields is a list of field names (e.g. "DomainStatus") to include
33143	// in API requests with the JSON null value. By default, fields with
33144	// empty values are omitted from API requests. However, any field with
33145	// an empty value appearing in NullFields will be sent to the server as
33146	// null. It is an error if a field in this list has a non-empty value.
33147	// This may be used to include null fields in Patch requests.
33148	NullFields []string `json:"-"`
33149}
33150
33151func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
33152	type NoMethod SslCertificateManagedSslCertificate
33153	raw := NoMethod(*s)
33154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33155}
33156
33157// SslCertificateSelfManagedSslCertificate: Configuration and status of
33158// a self-managed SSL certificate.
33159type SslCertificateSelfManagedSslCertificate struct {
33160	// Certificate: A local certificate file. The certificate must be in PEM
33161	// format. The certificate chain must be no greater than 5 certs long.
33162	// The chain must include at least one intermediate cert.
33163	Certificate string `json:"certificate,omitempty"`
33164
33165	// PrivateKey: A write-only private key in PEM format. Only insert
33166	// requests will include this field.
33167	PrivateKey string `json:"privateKey,omitempty"`
33168
33169	// ForceSendFields is a list of field names (e.g. "Certificate") to
33170	// unconditionally include in API requests. By default, fields with
33171	// empty values are omitted from API requests. However, any non-pointer,
33172	// non-interface field appearing in ForceSendFields will be sent to the
33173	// server regardless of whether the field is empty or not. This may be
33174	// used to include empty fields in Patch requests.
33175	ForceSendFields []string `json:"-"`
33176
33177	// NullFields is a list of field names (e.g. "Certificate") to include
33178	// in API requests with the JSON null value. By default, fields with
33179	// empty values are omitted from API requests. However, any field with
33180	// an empty value appearing in NullFields will be sent to the server as
33181	// null. It is an error if a field in this list has a non-empty value.
33182	// This may be used to include null fields in Patch requests.
33183	NullFields []string `json:"-"`
33184}
33185
33186func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
33187	type NoMethod SslCertificateSelfManagedSslCertificate
33188	raw := NoMethod(*s)
33189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33190}
33191
33192type SslCertificatesScopedList struct {
33193	// SslCertificates: List of SslCertificates contained in this scope.
33194	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
33195
33196	// Warning: Informational warning which replaces the list of backend
33197	// services when the list is empty.
33198	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
33199
33200	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
33201	// unconditionally include in API requests. By default, fields with
33202	// empty values are omitted from API requests. However, any non-pointer,
33203	// non-interface field appearing in ForceSendFields will be sent to the
33204	// server regardless of whether the field is empty or not. This may be
33205	// used to include empty fields in Patch requests.
33206	ForceSendFields []string `json:"-"`
33207
33208	// NullFields is a list of field names (e.g. "SslCertificates") to
33209	// include in API requests with the JSON null value. By default, fields
33210	// with empty values are omitted from API requests. However, any field
33211	// with an empty value appearing in NullFields will be sent to the
33212	// server as null. It is an error if a field in this list has a
33213	// non-empty value. This may be used to include null fields in Patch
33214	// requests.
33215	NullFields []string `json:"-"`
33216}
33217
33218func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
33219	type NoMethod SslCertificatesScopedList
33220	raw := NoMethod(*s)
33221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33222}
33223
33224// SslCertificatesScopedListWarning: Informational warning which
33225// replaces the list of backend services when the list is empty.
33226type SslCertificatesScopedListWarning struct {
33227	// Code: [Output Only] A warning code, if applicable. For example,
33228	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33229	// the response.
33230	//
33231	// Possible values:
33232	//   "CLEANUP_FAILED"
33233	//   "DEPRECATED_RESOURCE_USED"
33234	//   "DEPRECATED_TYPE_USED"
33235	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33236	//   "EXPERIMENTAL_TYPE_USED"
33237	//   "EXTERNAL_API_WARNING"
33238	//   "FIELD_VALUE_OVERRIDEN"
33239	//   "INJECTED_KERNELS_DEPRECATED"
33240	//   "MISSING_TYPE_DEPENDENCY"
33241	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33242	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33243	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33244	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33245	//   "NEXT_HOP_NOT_RUNNING"
33246	//   "NOT_CRITICAL_ERROR"
33247	//   "NO_RESULTS_ON_PAGE"
33248	//   "REQUIRED_TOS_AGREEMENT"
33249	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33250	//   "RESOURCE_NOT_DELETED"
33251	//   "SCHEMA_VALIDATION_IGNORED"
33252	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33253	//   "UNDECLARED_PROPERTIES"
33254	//   "UNREACHABLE"
33255	Code string `json:"code,omitempty"`
33256
33257	// Data: [Output Only] Metadata about this warning in key: value format.
33258	// For example:
33259	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33260	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
33261
33262	// Message: [Output Only] A human-readable description of the warning
33263	// code.
33264	Message string `json:"message,omitempty"`
33265
33266	// ForceSendFields is a list of field names (e.g. "Code") to
33267	// unconditionally include in API requests. By default, fields with
33268	// empty values are omitted from API requests. However, any non-pointer,
33269	// non-interface field appearing in ForceSendFields will be sent to the
33270	// server regardless of whether the field is empty or not. This may be
33271	// used to include empty fields in Patch requests.
33272	ForceSendFields []string `json:"-"`
33273
33274	// NullFields is a list of field names (e.g. "Code") to include in API
33275	// requests with the JSON null value. By default, fields with empty
33276	// values are omitted from API requests. However, any field with an
33277	// empty value appearing in NullFields will be sent to the server as
33278	// null. It is an error if a field in this list has a non-empty value.
33279	// This may be used to include null fields in Patch requests.
33280	NullFields []string `json:"-"`
33281}
33282
33283func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
33284	type NoMethod SslCertificatesScopedListWarning
33285	raw := NoMethod(*s)
33286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33287}
33288
33289type SslCertificatesScopedListWarningData struct {
33290	// Key: [Output Only] A key that provides more detail on the warning
33291	// being returned. For example, for warnings where there are no results
33292	// in a list request for a particular zone, this key might be scope and
33293	// the key value might be the zone name. Other examples might be a key
33294	// indicating a deprecated resource and a suggested replacement, or a
33295	// warning about invalid network settings (for example, if an instance
33296	// attempts to perform IP forwarding but is not enabled for IP
33297	// forwarding).
33298	Key string `json:"key,omitempty"`
33299
33300	// Value: [Output Only] A warning data value corresponding to the key.
33301	Value string `json:"value,omitempty"`
33302
33303	// ForceSendFields is a list of field names (e.g. "Key") to
33304	// unconditionally include in API requests. By default, fields with
33305	// empty values are omitted from API requests. However, any non-pointer,
33306	// non-interface field appearing in ForceSendFields will be sent to the
33307	// server regardless of whether the field is empty or not. This may be
33308	// used to include empty fields in Patch requests.
33309	ForceSendFields []string `json:"-"`
33310
33311	// NullFields is a list of field names (e.g. "Key") to include in API
33312	// requests with the JSON null value. By default, fields with empty
33313	// values are omitted from API requests. However, any field with an
33314	// empty value appearing in NullFields will be sent to the server as
33315	// null. It is an error if a field in this list has a non-empty value.
33316	// This may be used to include null fields in Patch requests.
33317	NullFields []string `json:"-"`
33318}
33319
33320func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
33321	type NoMethod SslCertificatesScopedListWarningData
33322	raw := NoMethod(*s)
33323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33324}
33325
33326type SslPoliciesList struct {
33327	// Id: [Output Only] Unique identifier for the resource; defined by the
33328	// server.
33329	Id string `json:"id,omitempty"`
33330
33331	// Items: A list of SslPolicy resources.
33332	Items []*SslPolicy `json:"items,omitempty"`
33333
33334	// Kind: [Output Only] Type of the resource. Always
33335	// compute#sslPoliciesList for lists of sslPolicies.
33336	Kind string `json:"kind,omitempty"`
33337
33338	// NextPageToken: [Output Only] This token allows you to get the next
33339	// page of results for list requests. If the number of results is larger
33340	// than maxResults, use the nextPageToken as a value for the query
33341	// parameter pageToken in the next list request. Subsequent list
33342	// requests will have their own nextPageToken to continue paging through
33343	// the results.
33344	NextPageToken string `json:"nextPageToken,omitempty"`
33345
33346	// SelfLink: [Output Only] Server-defined URL for this resource.
33347	SelfLink string `json:"selfLink,omitempty"`
33348
33349	// Warning: [Output Only] Informational warning message.
33350	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
33351
33352	// ServerResponse contains the HTTP response code and headers from the
33353	// server.
33354	googleapi.ServerResponse `json:"-"`
33355
33356	// ForceSendFields is a list of field names (e.g. "Id") to
33357	// unconditionally include in API requests. By default, fields with
33358	// empty values are omitted from API requests. However, any non-pointer,
33359	// non-interface field appearing in ForceSendFields will be sent to the
33360	// server regardless of whether the field is empty or not. This may be
33361	// used to include empty fields in Patch requests.
33362	ForceSendFields []string `json:"-"`
33363
33364	// NullFields is a list of field names (e.g. "Id") to include in API
33365	// requests with the JSON null value. By default, fields with empty
33366	// values are omitted from API requests. However, any field with an
33367	// empty value appearing in NullFields will be sent to the server as
33368	// null. It is an error if a field in this list has a non-empty value.
33369	// This may be used to include null fields in Patch requests.
33370	NullFields []string `json:"-"`
33371}
33372
33373func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
33374	type NoMethod SslPoliciesList
33375	raw := NoMethod(*s)
33376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33377}
33378
33379// SslPoliciesListWarning: [Output Only] Informational warning message.
33380type SslPoliciesListWarning struct {
33381	// Code: [Output Only] A warning code, if applicable. For example,
33382	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33383	// the response.
33384	//
33385	// Possible values:
33386	//   "CLEANUP_FAILED"
33387	//   "DEPRECATED_RESOURCE_USED"
33388	//   "DEPRECATED_TYPE_USED"
33389	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33390	//   "EXPERIMENTAL_TYPE_USED"
33391	//   "EXTERNAL_API_WARNING"
33392	//   "FIELD_VALUE_OVERRIDEN"
33393	//   "INJECTED_KERNELS_DEPRECATED"
33394	//   "MISSING_TYPE_DEPENDENCY"
33395	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33396	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33397	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33398	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33399	//   "NEXT_HOP_NOT_RUNNING"
33400	//   "NOT_CRITICAL_ERROR"
33401	//   "NO_RESULTS_ON_PAGE"
33402	//   "REQUIRED_TOS_AGREEMENT"
33403	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33404	//   "RESOURCE_NOT_DELETED"
33405	//   "SCHEMA_VALIDATION_IGNORED"
33406	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33407	//   "UNDECLARED_PROPERTIES"
33408	//   "UNREACHABLE"
33409	Code string `json:"code,omitempty"`
33410
33411	// Data: [Output Only] Metadata about this warning in key: value format.
33412	// For example:
33413	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33414	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
33415
33416	// Message: [Output Only] A human-readable description of the warning
33417	// code.
33418	Message string `json:"message,omitempty"`
33419
33420	// ForceSendFields is a list of field names (e.g. "Code") to
33421	// unconditionally include in API requests. By default, fields with
33422	// empty values are omitted from API requests. However, any non-pointer,
33423	// non-interface field appearing in ForceSendFields will be sent to the
33424	// server regardless of whether the field is empty or not. This may be
33425	// used to include empty fields in Patch requests.
33426	ForceSendFields []string `json:"-"`
33427
33428	// NullFields is a list of field names (e.g. "Code") to include in API
33429	// requests with the JSON null value. By default, fields with empty
33430	// values are omitted from API requests. However, any field with an
33431	// empty value appearing in NullFields will be sent to the server as
33432	// null. It is an error if a field in this list has a non-empty value.
33433	// This may be used to include null fields in Patch requests.
33434	NullFields []string `json:"-"`
33435}
33436
33437func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
33438	type NoMethod SslPoliciesListWarning
33439	raw := NoMethod(*s)
33440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33441}
33442
33443type SslPoliciesListWarningData struct {
33444	// Key: [Output Only] A key that provides more detail on the warning
33445	// being returned. For example, for warnings where there are no results
33446	// in a list request for a particular zone, this key might be scope and
33447	// the key value might be the zone name. Other examples might be a key
33448	// indicating a deprecated resource and a suggested replacement, or a
33449	// warning about invalid network settings (for example, if an instance
33450	// attempts to perform IP forwarding but is not enabled for IP
33451	// forwarding).
33452	Key string `json:"key,omitempty"`
33453
33454	// Value: [Output Only] A warning data value corresponding to the key.
33455	Value string `json:"value,omitempty"`
33456
33457	// ForceSendFields is a list of field names (e.g. "Key") to
33458	// unconditionally include in API requests. By default, fields with
33459	// empty values are omitted from API requests. However, any non-pointer,
33460	// non-interface field appearing in ForceSendFields will be sent to the
33461	// server regardless of whether the field is empty or not. This may be
33462	// used to include empty fields in Patch requests.
33463	ForceSendFields []string `json:"-"`
33464
33465	// NullFields is a list of field names (e.g. "Key") to include in API
33466	// requests with the JSON null value. By default, fields with empty
33467	// values are omitted from API requests. However, any field with an
33468	// empty value appearing in NullFields will be sent to the server as
33469	// null. It is an error if a field in this list has a non-empty value.
33470	// This may be used to include null fields in Patch requests.
33471	NullFields []string `json:"-"`
33472}
33473
33474func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
33475	type NoMethod SslPoliciesListWarningData
33476	raw := NoMethod(*s)
33477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33478}
33479
33480type SslPoliciesListAvailableFeaturesResponse struct {
33481	Features []string `json:"features,omitempty"`
33482
33483	// ServerResponse contains the HTTP response code and headers from the
33484	// server.
33485	googleapi.ServerResponse `json:"-"`
33486
33487	// ForceSendFields is a list of field names (e.g. "Features") to
33488	// unconditionally include in API requests. By default, fields with
33489	// empty values are omitted from API requests. However, any non-pointer,
33490	// non-interface field appearing in ForceSendFields will be sent to the
33491	// server regardless of whether the field is empty or not. This may be
33492	// used to include empty fields in Patch requests.
33493	ForceSendFields []string `json:"-"`
33494
33495	// NullFields is a list of field names (e.g. "Features") to include in
33496	// API requests with the JSON null value. By default, fields with empty
33497	// values are omitted from API requests. However, any field with an
33498	// empty value appearing in NullFields will be sent to the server as
33499	// null. It is an error if a field in this list has a non-empty value.
33500	// This may be used to include null fields in Patch requests.
33501	NullFields []string `json:"-"`
33502}
33503
33504func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
33505	type NoMethod SslPoliciesListAvailableFeaturesResponse
33506	raw := NoMethod(*s)
33507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33508}
33509
33510// SslPolicy: Represents a Cloud Armor Security Policy resource.
33511//
33512// Only external backend services used by HTTP or HTTPS load balancers
33513// can reference a Security Policy. For more information, read read
33514// Cloud Armor Security Policy Concepts. (== resource_for
33515// {$api_version}.sslPolicies ==)
33516type SslPolicy struct {
33517	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33518	// format.
33519	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33520
33521	// CustomFeatures: A list of features enabled when the selected profile
33522	// is CUSTOM. The
33523	// - method returns the set of features that can be specified in this
33524	// list. This field must be empty if the profile is not CUSTOM.
33525	CustomFeatures []string `json:"customFeatures,omitempty"`
33526
33527	// Description: An optional description of this resource. Provide this
33528	// property when you create the resource.
33529	Description string `json:"description,omitempty"`
33530
33531	// EnabledFeatures: [Output Only] The list of features enabled in the
33532	// SSL policy.
33533	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
33534
33535	// Fingerprint: Fingerprint of this resource. A hash of the contents
33536	// stored in this object. This field is used in optimistic locking. This
33537	// field will be ignored when inserting a SslPolicy. An up-to-date
33538	// fingerprint must be provided in order to update the SslPolicy,
33539	// otherwise the request will fail with error 412 conditionNotMet.
33540	//
33541	// To see the latest fingerprint, make a get() request to retrieve an
33542	// SslPolicy.
33543	Fingerprint string `json:"fingerprint,omitempty"`
33544
33545	// Id: [Output Only] The unique identifier for the resource. This
33546	// identifier is defined by the server.
33547	Id uint64 `json:"id,omitempty,string"`
33548
33549	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
33550	// SSL policies.
33551	Kind string `json:"kind,omitempty"`
33552
33553	// MinTlsVersion: The minimum version of SSL protocol that can be used
33554	// by the clients to establish a connection with the load balancer. This
33555	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
33556	//
33557	// Possible values:
33558	//   "TLS_1_0"
33559	//   "TLS_1_1"
33560	//   "TLS_1_2"
33561	MinTlsVersion string `json:"minTlsVersion,omitempty"`
33562
33563	// Name: Name of the resource. The name must be 1-63 characters long,
33564	// and comply with RFC1035. Specifically, the name must be 1-63
33565	// characters long and match the regular expression
33566	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33567	// a lowercase letter, and all following characters must be a dash,
33568	// lowercase letter, or digit, except the last character, which cannot
33569	// be a dash.
33570	Name string `json:"name,omitempty"`
33571
33572	// Profile: Profile specifies the set of SSL features that can be used
33573	// by the load balancer when negotiating SSL with clients. This can be
33574	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
33575	// the set of SSL features to enable must be specified in the
33576	// customFeatures field.
33577	//
33578	// Possible values:
33579	//   "COMPATIBLE"
33580	//   "CUSTOM"
33581	//   "MODERN"
33582	//   "RESTRICTED"
33583	Profile string `json:"profile,omitempty"`
33584
33585	// SelfLink: [Output Only] Server-defined URL for the resource.
33586	SelfLink string `json:"selfLink,omitempty"`
33587
33588	// Warnings: [Output Only] If potential misconfigurations are detected
33589	// for this SSL policy, this field will be populated with warning
33590	// messages.
33591	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
33592
33593	// ServerResponse contains the HTTP response code and headers from the
33594	// server.
33595	googleapi.ServerResponse `json:"-"`
33596
33597	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
33598	// to unconditionally include in API requests. By default, fields with
33599	// empty values are omitted from API requests. However, any non-pointer,
33600	// non-interface field appearing in ForceSendFields will be sent to the
33601	// server regardless of whether the field is empty or not. This may be
33602	// used to include empty fields in Patch requests.
33603	ForceSendFields []string `json:"-"`
33604
33605	// NullFields is a list of field names (e.g. "CreationTimestamp") to
33606	// include in API requests with the JSON null value. By default, fields
33607	// with empty values are omitted from API requests. However, any field
33608	// with an empty value appearing in NullFields will be sent to the
33609	// server as null. It is an error if a field in this list has a
33610	// non-empty value. This may be used to include null fields in Patch
33611	// requests.
33612	NullFields []string `json:"-"`
33613}
33614
33615func (s *SslPolicy) MarshalJSON() ([]byte, error) {
33616	type NoMethod SslPolicy
33617	raw := NoMethod(*s)
33618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33619}
33620
33621type SslPolicyWarnings struct {
33622	// Code: [Output Only] A warning code, if applicable. For example,
33623	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33624	// the response.
33625	//
33626	// Possible values:
33627	//   "CLEANUP_FAILED"
33628	//   "DEPRECATED_RESOURCE_USED"
33629	//   "DEPRECATED_TYPE_USED"
33630	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33631	//   "EXPERIMENTAL_TYPE_USED"
33632	//   "EXTERNAL_API_WARNING"
33633	//   "FIELD_VALUE_OVERRIDEN"
33634	//   "INJECTED_KERNELS_DEPRECATED"
33635	//   "MISSING_TYPE_DEPENDENCY"
33636	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33637	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33638	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33639	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33640	//   "NEXT_HOP_NOT_RUNNING"
33641	//   "NOT_CRITICAL_ERROR"
33642	//   "NO_RESULTS_ON_PAGE"
33643	//   "REQUIRED_TOS_AGREEMENT"
33644	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33645	//   "RESOURCE_NOT_DELETED"
33646	//   "SCHEMA_VALIDATION_IGNORED"
33647	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33648	//   "UNDECLARED_PROPERTIES"
33649	//   "UNREACHABLE"
33650	Code string `json:"code,omitempty"`
33651
33652	// Data: [Output Only] Metadata about this warning in key: value format.
33653	// For example:
33654	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33655	Data []*SslPolicyWarningsData `json:"data,omitempty"`
33656
33657	// Message: [Output Only] A human-readable description of the warning
33658	// code.
33659	Message string `json:"message,omitempty"`
33660
33661	// ForceSendFields is a list of field names (e.g. "Code") to
33662	// unconditionally include in API requests. By default, fields with
33663	// empty values are omitted from API requests. However, any non-pointer,
33664	// non-interface field appearing in ForceSendFields will be sent to the
33665	// server regardless of whether the field is empty or not. This may be
33666	// used to include empty fields in Patch requests.
33667	ForceSendFields []string `json:"-"`
33668
33669	// NullFields is a list of field names (e.g. "Code") to include in API
33670	// requests with the JSON null value. By default, fields with empty
33671	// values are omitted from API requests. However, any field with an
33672	// empty value appearing in NullFields will be sent to the server as
33673	// null. It is an error if a field in this list has a non-empty value.
33674	// This may be used to include null fields in Patch requests.
33675	NullFields []string `json:"-"`
33676}
33677
33678func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
33679	type NoMethod SslPolicyWarnings
33680	raw := NoMethod(*s)
33681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33682}
33683
33684type SslPolicyWarningsData struct {
33685	// Key: [Output Only] A key that provides more detail on the warning
33686	// being returned. For example, for warnings where there are no results
33687	// in a list request for a particular zone, this key might be scope and
33688	// the key value might be the zone name. Other examples might be a key
33689	// indicating a deprecated resource and a suggested replacement, or a
33690	// warning about invalid network settings (for example, if an instance
33691	// attempts to perform IP forwarding but is not enabled for IP
33692	// forwarding).
33693	Key string `json:"key,omitempty"`
33694
33695	// Value: [Output Only] A warning data value corresponding to the key.
33696	Value string `json:"value,omitempty"`
33697
33698	// ForceSendFields is a list of field names (e.g. "Key") to
33699	// unconditionally include in API requests. By default, fields with
33700	// empty values are omitted from API requests. However, any non-pointer,
33701	// non-interface field appearing in ForceSendFields will be sent to the
33702	// server regardless of whether the field is empty or not. This may be
33703	// used to include empty fields in Patch requests.
33704	ForceSendFields []string `json:"-"`
33705
33706	// NullFields is a list of field names (e.g. "Key") to include in API
33707	// requests with the JSON null value. By default, fields with empty
33708	// values are omitted from API requests. However, any field with an
33709	// empty value appearing in NullFields will be sent to the server as
33710	// null. It is an error if a field in this list has a non-empty value.
33711	// This may be used to include null fields in Patch requests.
33712	NullFields []string `json:"-"`
33713}
33714
33715func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
33716	type NoMethod SslPolicyWarningsData
33717	raw := NoMethod(*s)
33718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33719}
33720
33721type SslPolicyReference struct {
33722	// SslPolicy: URL of the SSL policy resource. Set this to empty string
33723	// to clear any existing SSL policy associated with the target proxy
33724	// resource.
33725	SslPolicy string `json:"sslPolicy,omitempty"`
33726
33727	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
33728	// unconditionally include in API requests. By default, fields with
33729	// empty values are omitted from API requests. However, any non-pointer,
33730	// non-interface field appearing in ForceSendFields will be sent to the
33731	// server regardless of whether the field is empty or not. This may be
33732	// used to include empty fields in Patch requests.
33733	ForceSendFields []string `json:"-"`
33734
33735	// NullFields is a list of field names (e.g. "SslPolicy") to include in
33736	// API requests with the JSON null value. By default, fields with empty
33737	// values are omitted from API requests. However, any field with an
33738	// empty value appearing in NullFields will be sent to the server as
33739	// null. It is an error if a field in this list has a non-empty value.
33740	// This may be used to include null fields in Patch requests.
33741	NullFields []string `json:"-"`
33742}
33743
33744func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
33745	type NoMethod SslPolicyReference
33746	raw := NoMethod(*s)
33747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33748}
33749
33750// Subnetwork: Represents a Subnetwork resource.
33751//
33752// A subnetwork (also known as a subnet) is a logical partition of a
33753// Virtual Private Cloud network with one primary IP range and zero or
33754// more secondary IP ranges. For more information, read  Virtual Private
33755// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
33756type Subnetwork struct {
33757	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33758	// format.
33759	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33760
33761	// Description: An optional description of this resource. Provide this
33762	// property when you create the resource. This field can be set only at
33763	// resource creation time.
33764	Description string `json:"description,omitempty"`
33765
33766	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
33767	// If this field is not explicitly set, it will not appear in get
33768	// listings. If not set the default behavior is to disable flow logging.
33769	// This field isn't supported with the purpose field set to
33770	// INTERNAL_HTTPS_LOAD_BALANCER.
33771	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
33772
33773	// Fingerprint: Fingerprint of this resource. A hash of the contents
33774	// stored in this object. This field is used in optimistic locking. This
33775	// field will be ignored when inserting a Subnetwork. An up-to-date
33776	// fingerprint must be provided in order to update the Subnetwork,
33777	// otherwise the request will fail with error 412 conditionNotMet.
33778	//
33779	// To see the latest fingerprint, make a get() request to retrieve a
33780	// Subnetwork.
33781	Fingerprint string `json:"fingerprint,omitempty"`
33782
33783	// GatewayAddress: [Output Only] The gateway address for default routes
33784	// to reach destination addresses outside this subnetwork.
33785	GatewayAddress string `json:"gatewayAddress,omitempty"`
33786
33787	// Id: [Output Only] The unique identifier for the resource. This
33788	// identifier is defined by the server.
33789	Id uint64 `json:"id,omitempty,string"`
33790
33791	// IpCidrRange: The range of internal addresses that are owned by this
33792	// subnetwork. Provide this property when you create the subnetwork. For
33793	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
33794	// non-overlapping within a network. Only IPv4 is supported. This field
33795	// is set at resource creation time. The range can be expanded after
33796	// creation using expandIpCidrRange.
33797	IpCidrRange string `json:"ipCidrRange,omitempty"`
33798
33799	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
33800	// that are owned by this subnetwork.
33801	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
33802
33803	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
33804	// for Subnetwork resources.
33805	Kind string `json:"kind,omitempty"`
33806
33807	// LogConfig: This field denotes the VPC flow logging options for this
33808	// subnetwork. If logging is enabled, logs are exported to Cloud
33809	// Logging.
33810	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
33811
33812	// Name: The name of the resource, provided by the client when initially
33813	// creating the resource. The name must be 1-63 characters long, and
33814	// comply with RFC1035. Specifically, the name must be 1-63 characters
33815	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
33816	// which means the first character must be a lowercase letter, and all
33817	// following characters must be a dash, lowercase letter, or digit,
33818	// except the last character, which cannot be a dash.
33819	Name string `json:"name,omitempty"`
33820
33821	// Network: The URL of the network to which this subnetwork belongs,
33822	// provided by the client when initially creating the subnetwork. Only
33823	// networks that are in the distributed mode can have subnetworks. This
33824	// field can be set only at resource creation time.
33825	Network string `json:"network,omitempty"`
33826
33827	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
33828	// Google services without assigned external IP addresses. This field
33829	// can be both set at resource creation time and updated using
33830	// setPrivateIpGoogleAccess.
33831	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
33832
33833	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
33834	// VMs in this subnet. This is an expanded field of
33835	// enablePrivateV6Access. If both fields are set,
33836	// privateIpv6GoogleAccess will take priority.
33837	//
33838	// This field can be both set at resource creation time and updated
33839	// using patch.
33840	//
33841	// Possible values:
33842	//   "DISABLE_GOOGLE_ACCESS"
33843	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
33844	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
33845	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
33846
33847	// Purpose: The purpose of the resource. This field can be either
33848	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
33849	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
33850	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
33851	// unspecified, the purpose defaults to PRIVATE_RFC_1918. The
33852	// enableFlowLogs field isn't supported with the purpose field set to
33853	// INTERNAL_HTTPS_LOAD_BALANCER.
33854	//
33855	// Possible values:
33856	//   "INTERNAL_HTTPS_LOAD_BALANCER"
33857	//   "PRIVATE"
33858	//   "PRIVATE_RFC_1918"
33859	Purpose string `json:"purpose,omitempty"`
33860
33861	// Region: URL of the region where the Subnetwork resides. This field
33862	// can be set only at resource creation time.
33863	Region string `json:"region,omitempty"`
33864
33865	// Role: The role of subnetwork. Currently, this field is only used when
33866	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
33867	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
33868	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
33869	// that is ready to be promoted to ACTIVE or is currently draining. This
33870	// field can be updated with a patch request.
33871	//
33872	// Possible values:
33873	//   "ACTIVE"
33874	//   "BACKUP"
33875	Role string `json:"role,omitempty"`
33876
33877	// SecondaryIpRanges: An array of configurations for secondary IP ranges
33878	// for VM instances contained in this subnetwork. The primary IP of such
33879	// VM must belong to the primary ipCidrRange of the subnetwork. The
33880	// alias IPs may belong to either primary or secondary ranges. This
33881	// field can be updated with a patch request.
33882	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
33883
33884	// SelfLink: [Output Only] Server-defined URL for the resource.
33885	SelfLink string `json:"selfLink,omitempty"`
33886
33887	// State: [Output Only] The state of the subnetwork, which can be one of
33888	// READY or DRAINING. A subnetwork that is READY is ready to be used.
33889	// The state of DRAINING is only applicable to subnetworks that have the
33890	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that
33891	// connections to the load balancer are being drained. A subnetwork that
33892	// is draining cannot be used or modified until it reaches a status of
33893	// READY.
33894	//
33895	// Possible values:
33896	//   "DRAINING"
33897	//   "READY"
33898	State string `json:"state,omitempty"`
33899
33900	// ServerResponse contains the HTTP response code and headers from the
33901	// server.
33902	googleapi.ServerResponse `json:"-"`
33903
33904	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
33905	// to unconditionally include in API requests. By default, fields with
33906	// empty values are omitted from API requests. However, any non-pointer,
33907	// non-interface field appearing in ForceSendFields will be sent to the
33908	// server regardless of whether the field is empty or not. This may be
33909	// used to include empty fields in Patch requests.
33910	ForceSendFields []string `json:"-"`
33911
33912	// NullFields is a list of field names (e.g. "CreationTimestamp") to
33913	// include in API requests with the JSON null value. By default, fields
33914	// with empty values are omitted from API requests. However, any field
33915	// with an empty value appearing in NullFields will be sent to the
33916	// server as null. It is an error if a field in this list has a
33917	// non-empty value. This may be used to include null fields in Patch
33918	// requests.
33919	NullFields []string `json:"-"`
33920}
33921
33922func (s *Subnetwork) MarshalJSON() ([]byte, error) {
33923	type NoMethod Subnetwork
33924	raw := NoMethod(*s)
33925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33926}
33927
33928type SubnetworkAggregatedList struct {
33929	// Id: [Output Only] Unique identifier for the resource; defined by the
33930	// server.
33931	Id string `json:"id,omitempty"`
33932
33933	// Items: A list of SubnetworksScopedList resources.
33934	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
33935
33936	// Kind: [Output Only] Type of resource. Always
33937	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
33938	Kind string `json:"kind,omitempty"`
33939
33940	// NextPageToken: [Output Only] This token allows you to get the next
33941	// page of results for list requests. If the number of results is larger
33942	// than maxResults, use the nextPageToken as a value for the query
33943	// parameter pageToken in the next list request. Subsequent list
33944	// requests will have their own nextPageToken to continue paging through
33945	// the results.
33946	NextPageToken string `json:"nextPageToken,omitempty"`
33947
33948	// SelfLink: [Output Only] Server-defined URL for this resource.
33949	SelfLink string `json:"selfLink,omitempty"`
33950
33951	// Warning: [Output Only] Informational warning message.
33952	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
33953
33954	// ServerResponse contains the HTTP response code and headers from the
33955	// server.
33956	googleapi.ServerResponse `json:"-"`
33957
33958	// ForceSendFields is a list of field names (e.g. "Id") to
33959	// unconditionally include in API requests. By default, fields with
33960	// empty values are omitted from API requests. However, any non-pointer,
33961	// non-interface field appearing in ForceSendFields will be sent to the
33962	// server regardless of whether the field is empty or not. This may be
33963	// used to include empty fields in Patch requests.
33964	ForceSendFields []string `json:"-"`
33965
33966	// NullFields is a list of field names (e.g. "Id") to include in API
33967	// requests with the JSON null value. By default, fields with empty
33968	// values are omitted from API requests. However, any field with an
33969	// empty value appearing in NullFields will be sent to the server as
33970	// null. It is an error if a field in this list has a non-empty value.
33971	// This may be used to include null fields in Patch requests.
33972	NullFields []string `json:"-"`
33973}
33974
33975func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
33976	type NoMethod SubnetworkAggregatedList
33977	raw := NoMethod(*s)
33978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33979}
33980
33981// SubnetworkAggregatedListWarning: [Output Only] Informational warning
33982// message.
33983type SubnetworkAggregatedListWarning struct {
33984	// Code: [Output Only] A warning code, if applicable. For example,
33985	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33986	// the response.
33987	//
33988	// Possible values:
33989	//   "CLEANUP_FAILED"
33990	//   "DEPRECATED_RESOURCE_USED"
33991	//   "DEPRECATED_TYPE_USED"
33992	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33993	//   "EXPERIMENTAL_TYPE_USED"
33994	//   "EXTERNAL_API_WARNING"
33995	//   "FIELD_VALUE_OVERRIDEN"
33996	//   "INJECTED_KERNELS_DEPRECATED"
33997	//   "MISSING_TYPE_DEPENDENCY"
33998	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33999	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34000	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34001	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34002	//   "NEXT_HOP_NOT_RUNNING"
34003	//   "NOT_CRITICAL_ERROR"
34004	//   "NO_RESULTS_ON_PAGE"
34005	//   "REQUIRED_TOS_AGREEMENT"
34006	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34007	//   "RESOURCE_NOT_DELETED"
34008	//   "SCHEMA_VALIDATION_IGNORED"
34009	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34010	//   "UNDECLARED_PROPERTIES"
34011	//   "UNREACHABLE"
34012	Code string `json:"code,omitempty"`
34013
34014	// Data: [Output Only] Metadata about this warning in key: value format.
34015	// For example:
34016	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34017	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
34018
34019	// Message: [Output Only] A human-readable description of the warning
34020	// code.
34021	Message string `json:"message,omitempty"`
34022
34023	// ForceSendFields is a list of field names (e.g. "Code") to
34024	// unconditionally include in API requests. By default, fields with
34025	// empty values are omitted from API requests. However, any non-pointer,
34026	// non-interface field appearing in ForceSendFields will be sent to the
34027	// server regardless of whether the field is empty or not. This may be
34028	// used to include empty fields in Patch requests.
34029	ForceSendFields []string `json:"-"`
34030
34031	// NullFields is a list of field names (e.g. "Code") to include in API
34032	// requests with the JSON null value. By default, fields with empty
34033	// values are omitted from API requests. However, any field with an
34034	// empty value appearing in NullFields will be sent to the server as
34035	// null. It is an error if a field in this list has a non-empty value.
34036	// This may be used to include null fields in Patch requests.
34037	NullFields []string `json:"-"`
34038}
34039
34040func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
34041	type NoMethod SubnetworkAggregatedListWarning
34042	raw := NoMethod(*s)
34043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34044}
34045
34046type SubnetworkAggregatedListWarningData struct {
34047	// Key: [Output Only] A key that provides more detail on the warning
34048	// being returned. For example, for warnings where there are no results
34049	// in a list request for a particular zone, this key might be scope and
34050	// the key value might be the zone name. Other examples might be a key
34051	// indicating a deprecated resource and a suggested replacement, or a
34052	// warning about invalid network settings (for example, if an instance
34053	// attempts to perform IP forwarding but is not enabled for IP
34054	// forwarding).
34055	Key string `json:"key,omitempty"`
34056
34057	// Value: [Output Only] A warning data value corresponding to the key.
34058	Value string `json:"value,omitempty"`
34059
34060	// ForceSendFields is a list of field names (e.g. "Key") to
34061	// unconditionally include in API requests. By default, fields with
34062	// empty values are omitted from API requests. However, any non-pointer,
34063	// non-interface field appearing in ForceSendFields will be sent to the
34064	// server regardless of whether the field is empty or not. This may be
34065	// used to include empty fields in Patch requests.
34066	ForceSendFields []string `json:"-"`
34067
34068	// NullFields is a list of field names (e.g. "Key") to include in API
34069	// requests with the JSON null value. By default, fields with empty
34070	// values are omitted from API requests. However, any field with an
34071	// empty value appearing in NullFields will be sent to the server as
34072	// null. It is an error if a field in this list has a non-empty value.
34073	// This may be used to include null fields in Patch requests.
34074	NullFields []string `json:"-"`
34075}
34076
34077func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34078	type NoMethod SubnetworkAggregatedListWarningData
34079	raw := NoMethod(*s)
34080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34081}
34082
34083// SubnetworkList: Contains a list of Subnetwork resources.
34084type SubnetworkList struct {
34085	// Id: [Output Only] Unique identifier for the resource; defined by the
34086	// server.
34087	Id string `json:"id,omitempty"`
34088
34089	// Items: A list of Subnetwork resources.
34090	Items []*Subnetwork `json:"items,omitempty"`
34091
34092	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
34093	// for lists of subnetworks.
34094	Kind string `json:"kind,omitempty"`
34095
34096	// NextPageToken: [Output Only] This token allows you to get the next
34097	// page of results for list requests. If the number of results is larger
34098	// than maxResults, use the nextPageToken as a value for the query
34099	// parameter pageToken in the next list request. Subsequent list
34100	// requests will have their own nextPageToken to continue paging through
34101	// the results.
34102	NextPageToken string `json:"nextPageToken,omitempty"`
34103
34104	// SelfLink: [Output Only] Server-defined URL for this resource.
34105	SelfLink string `json:"selfLink,omitempty"`
34106
34107	// Warning: [Output Only] Informational warning message.
34108	Warning *SubnetworkListWarning `json:"warning,omitempty"`
34109
34110	// ServerResponse contains the HTTP response code and headers from the
34111	// server.
34112	googleapi.ServerResponse `json:"-"`
34113
34114	// ForceSendFields is a list of field names (e.g. "Id") to
34115	// unconditionally include in API requests. By default, fields with
34116	// empty values are omitted from API requests. However, any non-pointer,
34117	// non-interface field appearing in ForceSendFields will be sent to the
34118	// server regardless of whether the field is empty or not. This may be
34119	// used to include empty fields in Patch requests.
34120	ForceSendFields []string `json:"-"`
34121
34122	// NullFields is a list of field names (e.g. "Id") to include in API
34123	// requests with the JSON null value. By default, fields with empty
34124	// values are omitted from API requests. However, any field with an
34125	// empty value appearing in NullFields will be sent to the server as
34126	// null. It is an error if a field in this list has a non-empty value.
34127	// This may be used to include null fields in Patch requests.
34128	NullFields []string `json:"-"`
34129}
34130
34131func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
34132	type NoMethod SubnetworkList
34133	raw := NoMethod(*s)
34134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34135}
34136
34137// SubnetworkListWarning: [Output Only] Informational warning message.
34138type SubnetworkListWarning struct {
34139	// Code: [Output Only] A warning code, if applicable. For example,
34140	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34141	// the response.
34142	//
34143	// Possible values:
34144	//   "CLEANUP_FAILED"
34145	//   "DEPRECATED_RESOURCE_USED"
34146	//   "DEPRECATED_TYPE_USED"
34147	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34148	//   "EXPERIMENTAL_TYPE_USED"
34149	//   "EXTERNAL_API_WARNING"
34150	//   "FIELD_VALUE_OVERRIDEN"
34151	//   "INJECTED_KERNELS_DEPRECATED"
34152	//   "MISSING_TYPE_DEPENDENCY"
34153	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34154	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34155	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34156	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34157	//   "NEXT_HOP_NOT_RUNNING"
34158	//   "NOT_CRITICAL_ERROR"
34159	//   "NO_RESULTS_ON_PAGE"
34160	//   "REQUIRED_TOS_AGREEMENT"
34161	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34162	//   "RESOURCE_NOT_DELETED"
34163	//   "SCHEMA_VALIDATION_IGNORED"
34164	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34165	//   "UNDECLARED_PROPERTIES"
34166	//   "UNREACHABLE"
34167	Code string `json:"code,omitempty"`
34168
34169	// Data: [Output Only] Metadata about this warning in key: value format.
34170	// For example:
34171	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34172	Data []*SubnetworkListWarningData `json:"data,omitempty"`
34173
34174	// Message: [Output Only] A human-readable description of the warning
34175	// code.
34176	Message string `json:"message,omitempty"`
34177
34178	// ForceSendFields is a list of field names (e.g. "Code") to
34179	// unconditionally include in API requests. By default, fields with
34180	// empty values are omitted from API requests. However, any non-pointer,
34181	// non-interface field appearing in ForceSendFields will be sent to the
34182	// server regardless of whether the field is empty or not. This may be
34183	// used to include empty fields in Patch requests.
34184	ForceSendFields []string `json:"-"`
34185
34186	// NullFields is a list of field names (e.g. "Code") to include in API
34187	// requests with the JSON null value. By default, fields with empty
34188	// values are omitted from API requests. However, any field with an
34189	// empty value appearing in NullFields will be sent to the server as
34190	// null. It is an error if a field in this list has a non-empty value.
34191	// This may be used to include null fields in Patch requests.
34192	NullFields []string `json:"-"`
34193}
34194
34195func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
34196	type NoMethod SubnetworkListWarning
34197	raw := NoMethod(*s)
34198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34199}
34200
34201type SubnetworkListWarningData struct {
34202	// Key: [Output Only] A key that provides more detail on the warning
34203	// being returned. For example, for warnings where there are no results
34204	// in a list request for a particular zone, this key might be scope and
34205	// the key value might be the zone name. Other examples might be a key
34206	// indicating a deprecated resource and a suggested replacement, or a
34207	// warning about invalid network settings (for example, if an instance
34208	// attempts to perform IP forwarding but is not enabled for IP
34209	// forwarding).
34210	Key string `json:"key,omitempty"`
34211
34212	// Value: [Output Only] A warning data value corresponding to the key.
34213	Value string `json:"value,omitempty"`
34214
34215	// ForceSendFields is a list of field names (e.g. "Key") to
34216	// unconditionally include in API requests. By default, fields with
34217	// empty values are omitted from API requests. However, any non-pointer,
34218	// non-interface field appearing in ForceSendFields will be sent to the
34219	// server regardless of whether the field is empty or not. This may be
34220	// used to include empty fields in Patch requests.
34221	ForceSendFields []string `json:"-"`
34222
34223	// NullFields is a list of field names (e.g. "Key") to include in API
34224	// requests with the JSON null value. By default, fields with empty
34225	// values are omitted from API requests. However, any field with an
34226	// empty value appearing in NullFields will be sent to the server as
34227	// null. It is an error if a field in this list has a non-empty value.
34228	// This may be used to include null fields in Patch requests.
34229	NullFields []string `json:"-"`
34230}
34231
34232func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
34233	type NoMethod SubnetworkListWarningData
34234	raw := NoMethod(*s)
34235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34236}
34237
34238// SubnetworkLogConfig: The available logging options for this
34239// subnetwork.
34240type SubnetworkLogConfig struct {
34241	// AggregationInterval: Can only be specified if VPC flow logging for
34242	// this subnetwork is enabled. Toggles the aggregation interval for
34243	// collecting flow logs. Increasing the interval time will reduce the
34244	// amount of generated flow logs for long lasting connections. Default
34245	// is an interval of 5 seconds per connection.
34246	//
34247	// Possible values:
34248	//   "INTERVAL_10_MIN"
34249	//   "INTERVAL_15_MIN"
34250	//   "INTERVAL_1_MIN"
34251	//   "INTERVAL_30_SEC"
34252	//   "INTERVAL_5_MIN"
34253	//   "INTERVAL_5_SEC"
34254	AggregationInterval string `json:"aggregationInterval,omitempty"`
34255
34256	// Enable: Whether to enable flow logging for this subnetwork. If this
34257	// field is not explicitly set, it will not appear in get listings. If
34258	// not set the default behavior is to disable flow logging.
34259	Enable bool `json:"enable,omitempty"`
34260
34261	// FilterExpr: Can only be specified if VPC flow logs for this
34262	// subnetwork is enabled. Export filter used to define which VPC flow
34263	// logs should be logged.
34264	FilterExpr string `json:"filterExpr,omitempty"`
34265
34266	// FlowSampling: Can only be specified if VPC flow logging for this
34267	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
34268	// the sampling rate of VPC flow logs within the subnetwork where 1.0
34269	// means all collected logs are reported and 0.0 means no logs are
34270	// reported. Default is 0.5, which means half of all collected logs are
34271	// reported.
34272	FlowSampling float64 `json:"flowSampling,omitempty"`
34273
34274	// Metadata: Can only be specified if VPC flow logs for this subnetwork
34275	// is enabled. Configures whether all, none or a subset of metadata
34276	// fields should be added to the reported VPC flow logs. Default is
34277	// INCLUDE_ALL_METADATA.
34278	//
34279	// Possible values:
34280	//   "CUSTOM_METADATA"
34281	//   "EXCLUDE_ALL_METADATA"
34282	//   "INCLUDE_ALL_METADATA"
34283	Metadata string `json:"metadata,omitempty"`
34284
34285	// MetadataFields: Can only be specified if VPC flow logs for this
34286	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
34287	MetadataFields []string `json:"metadataFields,omitempty"`
34288
34289	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
34290	// to unconditionally include in API requests. By default, fields with
34291	// empty values are omitted from API requests. However, any non-pointer,
34292	// non-interface field appearing in ForceSendFields will be sent to the
34293	// server regardless of whether the field is empty or not. This may be
34294	// used to include empty fields in Patch requests.
34295	ForceSendFields []string `json:"-"`
34296
34297	// NullFields is a list of field names (e.g. "AggregationInterval") to
34298	// include in API requests with the JSON null value. By default, fields
34299	// with empty values are omitted from API requests. However, any field
34300	// with an empty value appearing in NullFields will be sent to the
34301	// server as null. It is an error if a field in this list has a
34302	// non-empty value. This may be used to include null fields in Patch
34303	// requests.
34304	NullFields []string `json:"-"`
34305}
34306
34307func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
34308	type NoMethod SubnetworkLogConfig
34309	raw := NoMethod(*s)
34310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34311}
34312
34313func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
34314	type NoMethod SubnetworkLogConfig
34315	var s1 struct {
34316		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
34317		*NoMethod
34318	}
34319	s1.NoMethod = (*NoMethod)(s)
34320	if err := json.Unmarshal(data, &s1); err != nil {
34321		return err
34322	}
34323	s.FlowSampling = float64(s1.FlowSampling)
34324	return nil
34325}
34326
34327// SubnetworkSecondaryRange: Represents a secondary IP range of a
34328// subnetwork.
34329type SubnetworkSecondaryRange struct {
34330	// IpCidrRange: The range of IP addresses belonging to this subnetwork
34331	// secondary range. Provide this property when you create the
34332	// subnetwork. Ranges must be unique and non-overlapping with all
34333	// primary and secondary IP ranges within a network. Only IPv4 is
34334	// supported.
34335	IpCidrRange string `json:"ipCidrRange,omitempty"`
34336
34337	// RangeName: The name associated with this subnetwork secondary range,
34338	// used when adding an alias IP range to a VM instance. The name must be
34339	// 1-63 characters long, and comply with RFC1035. The name must be
34340	// unique within the subnetwork.
34341	RangeName string `json:"rangeName,omitempty"`
34342
34343	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
34344	// unconditionally include in API requests. By default, fields with
34345	// empty values are omitted from API requests. However, any non-pointer,
34346	// non-interface field appearing in ForceSendFields will be sent to the
34347	// server regardless of whether the field is empty or not. This may be
34348	// used to include empty fields in Patch requests.
34349	ForceSendFields []string `json:"-"`
34350
34351	// NullFields is a list of field names (e.g. "IpCidrRange") to include
34352	// in API requests with the JSON null value. By default, fields with
34353	// empty values are omitted from API requests. However, any field with
34354	// an empty value appearing in NullFields will be sent to the server as
34355	// null. It is an error if a field in this list has a non-empty value.
34356	// This may be used to include null fields in Patch requests.
34357	NullFields []string `json:"-"`
34358}
34359
34360func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
34361	type NoMethod SubnetworkSecondaryRange
34362	raw := NoMethod(*s)
34363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34364}
34365
34366type SubnetworksExpandIpCidrRangeRequest struct {
34367	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
34368	// that are legal on this Subnetwork. This range should be disjoint from
34369	// other subnetworks within this network. This range can only be larger
34370	// than (i.e. a superset of) the range previously defined before the
34371	// update.
34372	IpCidrRange string `json:"ipCidrRange,omitempty"`
34373
34374	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
34375	// unconditionally include in API requests. By default, fields with
34376	// empty values are omitted from API requests. However, any non-pointer,
34377	// non-interface field appearing in ForceSendFields will be sent to the
34378	// server regardless of whether the field is empty or not. This may be
34379	// used to include empty fields in Patch requests.
34380	ForceSendFields []string `json:"-"`
34381
34382	// NullFields is a list of field names (e.g. "IpCidrRange") to include
34383	// in API requests with the JSON null value. By default, fields with
34384	// empty values are omitted from API requests. However, any field with
34385	// an empty value appearing in NullFields will be sent to the server as
34386	// null. It is an error if a field in this list has a non-empty value.
34387	// This may be used to include null fields in Patch requests.
34388	NullFields []string `json:"-"`
34389}
34390
34391func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
34392	type NoMethod SubnetworksExpandIpCidrRangeRequest
34393	raw := NoMethod(*s)
34394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34395}
34396
34397type SubnetworksScopedList struct {
34398	// Subnetworks: A list of subnetworks contained in this scope.
34399	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
34400
34401	// Warning: An informational warning that appears when the list of
34402	// addresses is empty.
34403	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
34404
34405	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
34406	// unconditionally include in API requests. By default, fields with
34407	// empty values are omitted from API requests. However, any non-pointer,
34408	// non-interface field appearing in ForceSendFields will be sent to the
34409	// server regardless of whether the field is empty or not. This may be
34410	// used to include empty fields in Patch requests.
34411	ForceSendFields []string `json:"-"`
34412
34413	// NullFields is a list of field names (e.g. "Subnetworks") to include
34414	// in API requests with the JSON null value. By default, fields with
34415	// empty values are omitted from API requests. However, any field with
34416	// an empty value appearing in NullFields will be sent to the server as
34417	// null. It is an error if a field in this list has a non-empty value.
34418	// This may be used to include null fields in Patch requests.
34419	NullFields []string `json:"-"`
34420}
34421
34422func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
34423	type NoMethod SubnetworksScopedList
34424	raw := NoMethod(*s)
34425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34426}
34427
34428// SubnetworksScopedListWarning: An informational warning that appears
34429// when the list of addresses is empty.
34430type SubnetworksScopedListWarning struct {
34431	// Code: [Output Only] A warning code, if applicable. For example,
34432	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34433	// the response.
34434	//
34435	// Possible values:
34436	//   "CLEANUP_FAILED"
34437	//   "DEPRECATED_RESOURCE_USED"
34438	//   "DEPRECATED_TYPE_USED"
34439	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34440	//   "EXPERIMENTAL_TYPE_USED"
34441	//   "EXTERNAL_API_WARNING"
34442	//   "FIELD_VALUE_OVERRIDEN"
34443	//   "INJECTED_KERNELS_DEPRECATED"
34444	//   "MISSING_TYPE_DEPENDENCY"
34445	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34446	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34447	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34448	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34449	//   "NEXT_HOP_NOT_RUNNING"
34450	//   "NOT_CRITICAL_ERROR"
34451	//   "NO_RESULTS_ON_PAGE"
34452	//   "REQUIRED_TOS_AGREEMENT"
34453	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34454	//   "RESOURCE_NOT_DELETED"
34455	//   "SCHEMA_VALIDATION_IGNORED"
34456	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34457	//   "UNDECLARED_PROPERTIES"
34458	//   "UNREACHABLE"
34459	Code string `json:"code,omitempty"`
34460
34461	// Data: [Output Only] Metadata about this warning in key: value format.
34462	// For example:
34463	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34464	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
34465
34466	// Message: [Output Only] A human-readable description of the warning
34467	// code.
34468	Message string `json:"message,omitempty"`
34469
34470	// ForceSendFields is a list of field names (e.g. "Code") to
34471	// unconditionally include in API requests. By default, fields with
34472	// empty values are omitted from API requests. However, any non-pointer,
34473	// non-interface field appearing in ForceSendFields will be sent to the
34474	// server regardless of whether the field is empty or not. This may be
34475	// used to include empty fields in Patch requests.
34476	ForceSendFields []string `json:"-"`
34477
34478	// NullFields is a list of field names (e.g. "Code") to include in API
34479	// requests with the JSON null value. By default, fields with empty
34480	// values are omitted from API requests. However, any field with an
34481	// empty value appearing in NullFields will be sent to the server as
34482	// null. It is an error if a field in this list has a non-empty value.
34483	// This may be used to include null fields in Patch requests.
34484	NullFields []string `json:"-"`
34485}
34486
34487func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
34488	type NoMethod SubnetworksScopedListWarning
34489	raw := NoMethod(*s)
34490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34491}
34492
34493type SubnetworksScopedListWarningData struct {
34494	// Key: [Output Only] A key that provides more detail on the warning
34495	// being returned. For example, for warnings where there are no results
34496	// in a list request for a particular zone, this key might be scope and
34497	// the key value might be the zone name. Other examples might be a key
34498	// indicating a deprecated resource and a suggested replacement, or a
34499	// warning about invalid network settings (for example, if an instance
34500	// attempts to perform IP forwarding but is not enabled for IP
34501	// forwarding).
34502	Key string `json:"key,omitempty"`
34503
34504	// Value: [Output Only] A warning data value corresponding to the key.
34505	Value string `json:"value,omitempty"`
34506
34507	// ForceSendFields is a list of field names (e.g. "Key") to
34508	// unconditionally include in API requests. By default, fields with
34509	// empty values are omitted from API requests. However, any non-pointer,
34510	// non-interface field appearing in ForceSendFields will be sent to the
34511	// server regardless of whether the field is empty or not. This may be
34512	// used to include empty fields in Patch requests.
34513	ForceSendFields []string `json:"-"`
34514
34515	// NullFields is a list of field names (e.g. "Key") to include in API
34516	// requests with the JSON null value. By default, fields with empty
34517	// values are omitted from API requests. However, any field with an
34518	// empty value appearing in NullFields will be sent to the server as
34519	// null. It is an error if a field in this list has a non-empty value.
34520	// This may be used to include null fields in Patch requests.
34521	NullFields []string `json:"-"`
34522}
34523
34524func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
34525	type NoMethod SubnetworksScopedListWarningData
34526	raw := NoMethod(*s)
34527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34528}
34529
34530type SubnetworksSetPrivateIpGoogleAccessRequest struct {
34531	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
34532
34533	// ForceSendFields is a list of field names (e.g.
34534	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
34535	// By default, fields with empty values are omitted from API requests.
34536	// However, any non-pointer, non-interface field appearing in
34537	// ForceSendFields will be sent to the server regardless of whether the
34538	// field is empty or not. This may be used to include empty fields in
34539	// Patch requests.
34540	ForceSendFields []string `json:"-"`
34541
34542	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
34543	// include in API requests with the JSON null value. By default, fields
34544	// with empty values are omitted from API requests. However, any field
34545	// with an empty value appearing in NullFields will be sent to the
34546	// server as null. It is an error if a field in this list has a
34547	// non-empty value. This may be used to include null fields in Patch
34548	// requests.
34549	NullFields []string `json:"-"`
34550}
34551
34552func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
34553	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
34554	raw := NoMethod(*s)
34555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34556}
34557
34558type TCPHealthCheck struct {
34559	// Port: The TCP port number for the health check request. The default
34560	// value is 80. Valid values are 1 through 65535.
34561	Port int64 `json:"port,omitempty"`
34562
34563	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
34564	// both port and port_name are defined, port takes precedence.
34565	PortName string `json:"portName,omitempty"`
34566
34567	// PortSpecification: Specifies how port is selected for health
34568	// checking, can be one of following values:
34569	// USE_FIXED_PORT: The port number in port is used for health
34570	// checking.
34571	// USE_NAMED_PORT: The portName is used for health
34572	// checking.
34573	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
34574	// each network endpoint is used for health checking. For other
34575	// backends, the port or named port specified in the Backend Service is
34576	// used for health checking.
34577	//
34578	//
34579	// If not specified, TCP health check follows behavior specified in port
34580	// and portName fields.
34581	//
34582	// Possible values:
34583	//   "USE_FIXED_PORT"
34584	//   "USE_NAMED_PORT"
34585	//   "USE_SERVING_PORT"
34586	PortSpecification string `json:"portSpecification,omitempty"`
34587
34588	// ProxyHeader: Specifies the type of proxy header to append before
34589	// sending data to the backend, either NONE or PROXY_V1. The default is
34590	// NONE.
34591	//
34592	// Possible values:
34593	//   "NONE"
34594	//   "PROXY_V1"
34595	ProxyHeader string `json:"proxyHeader,omitempty"`
34596
34597	// Request: The application data to send once the TCP connection has
34598	// been established (default value is empty). If both request and
34599	// response are empty, the connection establishment alone will indicate
34600	// health. The request data can only be ASCII.
34601	Request string `json:"request,omitempty"`
34602
34603	// Response: The bytes to match against the beginning of the response
34604	// data. If left empty (the default value), any response will indicate
34605	// health. The response data can only be ASCII.
34606	Response string `json:"response,omitempty"`
34607
34608	// ForceSendFields is a list of field names (e.g. "Port") to
34609	// unconditionally include in API requests. By default, fields with
34610	// empty values are omitted from API requests. However, any non-pointer,
34611	// non-interface field appearing in ForceSendFields will be sent to the
34612	// server regardless of whether the field is empty or not. This may be
34613	// used to include empty fields in Patch requests.
34614	ForceSendFields []string `json:"-"`
34615
34616	// NullFields is a list of field names (e.g. "Port") to include in API
34617	// requests with the JSON null value. By default, fields with empty
34618	// values are omitted from API requests. However, any field with an
34619	// empty value appearing in NullFields will be sent to the server as
34620	// null. It is an error if a field in this list has a non-empty value.
34621	// This may be used to include null fields in Patch requests.
34622	NullFields []string `json:"-"`
34623}
34624
34625func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
34626	type NoMethod TCPHealthCheck
34627	raw := NoMethod(*s)
34628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34629}
34630
34631// Tags: A set of instance tags.
34632type Tags struct {
34633	// Fingerprint: Specifies a fingerprint for this request, which is
34634	// essentially a hash of the tags' contents and used for optimistic
34635	// locking. The fingerprint is initially generated by Compute Engine and
34636	// changes after every request to modify or update tags. You must always
34637	// provide an up-to-date fingerprint hash in order to update or change
34638	// tags.
34639	//
34640	// To see the latest fingerprint, make get() request to the instance.
34641	Fingerprint string `json:"fingerprint,omitempty"`
34642
34643	// Items: An array of tags. Each tag must be 1-63 characters long, and
34644	// comply with RFC1035.
34645	Items []string `json:"items,omitempty"`
34646
34647	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
34648	// unconditionally include in API requests. By default, fields with
34649	// empty values are omitted from API requests. However, any non-pointer,
34650	// non-interface field appearing in ForceSendFields will be sent to the
34651	// server regardless of whether the field is empty or not. This may be
34652	// used to include empty fields in Patch requests.
34653	ForceSendFields []string `json:"-"`
34654
34655	// NullFields is a list of field names (e.g. "Fingerprint") to include
34656	// in API requests with the JSON null value. By default, fields with
34657	// empty values are omitted from API requests. However, any field with
34658	// an empty value appearing in NullFields will be sent to the server as
34659	// null. It is an error if a field in this list has a non-empty value.
34660	// This may be used to include null fields in Patch requests.
34661	NullFields []string `json:"-"`
34662}
34663
34664func (s *Tags) MarshalJSON() ([]byte, error) {
34665	type NoMethod Tags
34666	raw := NoMethod(*s)
34667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34668}
34669
34670type TargetHttpProxiesScopedList struct {
34671	// TargetHttpProxies: A list of TargetHttpProxies contained in this
34672	// scope.
34673	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
34674
34675	// Warning: Informational warning which replaces the list of backend
34676	// services when the list is empty.
34677	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
34678
34679	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
34680	// to unconditionally include in API requests. By default, fields with
34681	// empty values are omitted from API requests. However, any non-pointer,
34682	// non-interface field appearing in ForceSendFields will be sent to the
34683	// server regardless of whether the field is empty or not. This may be
34684	// used to include empty fields in Patch requests.
34685	ForceSendFields []string `json:"-"`
34686
34687	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
34688	// include in API requests with the JSON null value. By default, fields
34689	// with empty values are omitted from API requests. However, any field
34690	// with an empty value appearing in NullFields will be sent to the
34691	// server as null. It is an error if a field in this list has a
34692	// non-empty value. This may be used to include null fields in Patch
34693	// requests.
34694	NullFields []string `json:"-"`
34695}
34696
34697func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
34698	type NoMethod TargetHttpProxiesScopedList
34699	raw := NoMethod(*s)
34700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34701}
34702
34703// TargetHttpProxiesScopedListWarning: Informational warning which
34704// replaces the list of backend services when the list is empty.
34705type TargetHttpProxiesScopedListWarning struct {
34706	// Code: [Output Only] A warning code, if applicable. For example,
34707	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34708	// the response.
34709	//
34710	// Possible values:
34711	//   "CLEANUP_FAILED"
34712	//   "DEPRECATED_RESOURCE_USED"
34713	//   "DEPRECATED_TYPE_USED"
34714	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34715	//   "EXPERIMENTAL_TYPE_USED"
34716	//   "EXTERNAL_API_WARNING"
34717	//   "FIELD_VALUE_OVERRIDEN"
34718	//   "INJECTED_KERNELS_DEPRECATED"
34719	//   "MISSING_TYPE_DEPENDENCY"
34720	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34721	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34722	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34723	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34724	//   "NEXT_HOP_NOT_RUNNING"
34725	//   "NOT_CRITICAL_ERROR"
34726	//   "NO_RESULTS_ON_PAGE"
34727	//   "REQUIRED_TOS_AGREEMENT"
34728	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34729	//   "RESOURCE_NOT_DELETED"
34730	//   "SCHEMA_VALIDATION_IGNORED"
34731	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34732	//   "UNDECLARED_PROPERTIES"
34733	//   "UNREACHABLE"
34734	Code string `json:"code,omitempty"`
34735
34736	// Data: [Output Only] Metadata about this warning in key: value format.
34737	// For example:
34738	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34739	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
34740
34741	// Message: [Output Only] A human-readable description of the warning
34742	// code.
34743	Message string `json:"message,omitempty"`
34744
34745	// ForceSendFields is a list of field names (e.g. "Code") to
34746	// unconditionally include in API requests. By default, fields with
34747	// empty values are omitted from API requests. However, any non-pointer,
34748	// non-interface field appearing in ForceSendFields will be sent to the
34749	// server regardless of whether the field is empty or not. This may be
34750	// used to include empty fields in Patch requests.
34751	ForceSendFields []string `json:"-"`
34752
34753	// NullFields is a list of field names (e.g. "Code") to include in API
34754	// requests with the JSON null value. By default, fields with empty
34755	// values are omitted from API requests. However, any field with an
34756	// empty value appearing in NullFields will be sent to the server as
34757	// null. It is an error if a field in this list has a non-empty value.
34758	// This may be used to include null fields in Patch requests.
34759	NullFields []string `json:"-"`
34760}
34761
34762func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
34763	type NoMethod TargetHttpProxiesScopedListWarning
34764	raw := NoMethod(*s)
34765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34766}
34767
34768type TargetHttpProxiesScopedListWarningData struct {
34769	// Key: [Output Only] A key that provides more detail on the warning
34770	// being returned. For example, for warnings where there are no results
34771	// in a list request for a particular zone, this key might be scope and
34772	// the key value might be the zone name. Other examples might be a key
34773	// indicating a deprecated resource and a suggested replacement, or a
34774	// warning about invalid network settings (for example, if an instance
34775	// attempts to perform IP forwarding but is not enabled for IP
34776	// forwarding).
34777	Key string `json:"key,omitempty"`
34778
34779	// Value: [Output Only] A warning data value corresponding to the key.
34780	Value string `json:"value,omitempty"`
34781
34782	// ForceSendFields is a list of field names (e.g. "Key") to
34783	// unconditionally include in API requests. By default, fields with
34784	// empty values are omitted from API requests. However, any non-pointer,
34785	// non-interface field appearing in ForceSendFields will be sent to the
34786	// server regardless of whether the field is empty or not. This may be
34787	// used to include empty fields in Patch requests.
34788	ForceSendFields []string `json:"-"`
34789
34790	// NullFields is a list of field names (e.g. "Key") to include in API
34791	// requests with the JSON null value. By default, fields with empty
34792	// values are omitted from API requests. However, any field with an
34793	// empty value appearing in NullFields will be sent to the server as
34794	// null. It is an error if a field in this list has a non-empty value.
34795	// This may be used to include null fields in Patch requests.
34796	NullFields []string `json:"-"`
34797}
34798
34799func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
34800	type NoMethod TargetHttpProxiesScopedListWarningData
34801	raw := NoMethod(*s)
34802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34803}
34804
34805// TargetHttpProxy: Represents a Target HTTP Proxy resource.
34806//
34807// Google Compute Engine has two Target HTTP Proxy resources:
34808//
34809// *
34810// [Global](/compute/docs/reference/rest/{$api_version}/targetHttpProxies
34811// ) *
34812// [Regional](/compute/docs/reference/rest/{$api_version}/regionTargetHtt
34813// pProxies)
34814//
34815// A target HTTP proxy is a component of GCP HTTP load balancers.
34816//
34817// * targetHttpProxies are used by external HTTP load balancers and
34818// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
34819// load balancers.
34820//
34821// Forwarding rules reference a target HTTP proxy, and the target proxy
34822// then references a URL map. For more information, read Using Target
34823// Proxies and  Forwarding rule concepts. (== resource_for
34824// {$api_version}.targetHttpProxies ==) (== resource_for
34825// {$api_version}.regionTargetHttpProxies ==)
34826type TargetHttpProxy struct {
34827	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34828	// format.
34829	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34830
34831	// Description: An optional description of this resource. Provide this
34832	// property when you create the resource.
34833	Description string `json:"description,omitempty"`
34834
34835	// Id: [Output Only] The unique identifier for the resource. This
34836	// identifier is defined by the server.
34837	Id uint64 `json:"id,omitempty,string"`
34838
34839	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
34840	// for target HTTP proxies.
34841	Kind string `json:"kind,omitempty"`
34842
34843	// Name: Name of the resource. Provided by the client when the resource
34844	// is created. The name must be 1-63 characters long, and comply with
34845	// RFC1035. Specifically, the name must be 1-63 characters long and
34846	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
34847	// the first character must be a lowercase letter, and all following
34848	// characters must be a dash, lowercase letter, or digit, except the
34849	// last character, which cannot be a dash.
34850	Name string `json:"name,omitempty"`
34851
34852	// Region: [Output Only] URL of the region where the regional Target
34853	// HTTP Proxy resides. This field is not applicable to global Target
34854	// HTTP Proxies.
34855	Region string `json:"region,omitempty"`
34856
34857	// SelfLink: [Output Only] Server-defined URL for the resource.
34858	SelfLink string `json:"selfLink,omitempty"`
34859
34860	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
34861	// to the BackendService.
34862	UrlMap string `json:"urlMap,omitempty"`
34863
34864	// ServerResponse contains the HTTP response code and headers from the
34865	// server.
34866	googleapi.ServerResponse `json:"-"`
34867
34868	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
34869	// to unconditionally include in API requests. By default, fields with
34870	// empty values are omitted from API requests. However, any non-pointer,
34871	// non-interface field appearing in ForceSendFields will be sent to the
34872	// server regardless of whether the field is empty or not. This may be
34873	// used to include empty fields in Patch requests.
34874	ForceSendFields []string `json:"-"`
34875
34876	// NullFields is a list of field names (e.g. "CreationTimestamp") to
34877	// include in API requests with the JSON null value. By default, fields
34878	// with empty values are omitted from API requests. However, any field
34879	// with an empty value appearing in NullFields will be sent to the
34880	// server as null. It is an error if a field in this list has a
34881	// non-empty value. This may be used to include null fields in Patch
34882	// requests.
34883	NullFields []string `json:"-"`
34884}
34885
34886func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
34887	type NoMethod TargetHttpProxy
34888	raw := NoMethod(*s)
34889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34890}
34891
34892type TargetHttpProxyAggregatedList struct {
34893	// Id: [Output Only] Unique identifier for the resource; defined by the
34894	// server.
34895	Id string `json:"id,omitempty"`
34896
34897	// Items: A list of TargetHttpProxiesScopedList resources.
34898	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
34899
34900	// Kind: [Output Only] Type of resource. Always
34901	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
34902	// Proxies.
34903	Kind string `json:"kind,omitempty"`
34904
34905	// NextPageToken: [Output Only] This token allows you to get the next
34906	// page of results for list requests. If the number of results is larger
34907	// than maxResults, use the nextPageToken as a value for the query
34908	// parameter pageToken in the next list request. Subsequent list
34909	// requests will have their own nextPageToken to continue paging through
34910	// the results.
34911	NextPageToken string `json:"nextPageToken,omitempty"`
34912
34913	// SelfLink: [Output Only] Server-defined URL for this resource.
34914	SelfLink string `json:"selfLink,omitempty"`
34915
34916	// ServerResponse contains the HTTP response code and headers from the
34917	// server.
34918	googleapi.ServerResponse `json:"-"`
34919
34920	// ForceSendFields is a list of field names (e.g. "Id") to
34921	// unconditionally include in API requests. By default, fields with
34922	// empty values are omitted from API requests. However, any non-pointer,
34923	// non-interface field appearing in ForceSendFields will be sent to the
34924	// server regardless of whether the field is empty or not. This may be
34925	// used to include empty fields in Patch requests.
34926	ForceSendFields []string `json:"-"`
34927
34928	// NullFields is a list of field names (e.g. "Id") to include in API
34929	// requests with the JSON null value. By default, fields with empty
34930	// values are omitted from API requests. However, any field with an
34931	// empty value appearing in NullFields will be sent to the server as
34932	// null. It is an error if a field in this list has a non-empty value.
34933	// This may be used to include null fields in Patch requests.
34934	NullFields []string `json:"-"`
34935}
34936
34937func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
34938	type NoMethod TargetHttpProxyAggregatedList
34939	raw := NoMethod(*s)
34940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34941}
34942
34943// TargetHttpProxyList: A list of TargetHttpProxy resources.
34944type TargetHttpProxyList struct {
34945	// Id: [Output Only] Unique identifier for the resource; defined by the
34946	// server.
34947	Id string `json:"id,omitempty"`
34948
34949	// Items: A list of TargetHttpProxy resources.
34950	Items []*TargetHttpProxy `json:"items,omitempty"`
34951
34952	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
34953	// of target HTTP proxies.
34954	Kind string `json:"kind,omitempty"`
34955
34956	// NextPageToken: [Output Only] This token allows you to get the next
34957	// page of results for list requests. If the number of results is larger
34958	// than maxResults, use the nextPageToken as a value for the query
34959	// parameter pageToken in the next list request. Subsequent list
34960	// requests will have their own nextPageToken to continue paging through
34961	// the results.
34962	NextPageToken string `json:"nextPageToken,omitempty"`
34963
34964	// SelfLink: [Output Only] Server-defined URL for this resource.
34965	SelfLink string `json:"selfLink,omitempty"`
34966
34967	// Warning: [Output Only] Informational warning message.
34968	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
34969
34970	// ServerResponse contains the HTTP response code and headers from the
34971	// server.
34972	googleapi.ServerResponse `json:"-"`
34973
34974	// ForceSendFields is a list of field names (e.g. "Id") to
34975	// unconditionally include in API requests. By default, fields with
34976	// empty values are omitted from API requests. However, any non-pointer,
34977	// non-interface field appearing in ForceSendFields will be sent to the
34978	// server regardless of whether the field is empty or not. This may be
34979	// used to include empty fields in Patch requests.
34980	ForceSendFields []string `json:"-"`
34981
34982	// NullFields is a list of field names (e.g. "Id") to include in API
34983	// requests with the JSON null value. By default, fields with empty
34984	// values are omitted from API requests. However, any field with an
34985	// empty value appearing in NullFields will be sent to the server as
34986	// null. It is an error if a field in this list has a non-empty value.
34987	// This may be used to include null fields in Patch requests.
34988	NullFields []string `json:"-"`
34989}
34990
34991func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
34992	type NoMethod TargetHttpProxyList
34993	raw := NoMethod(*s)
34994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34995}
34996
34997// TargetHttpProxyListWarning: [Output Only] Informational warning
34998// message.
34999type TargetHttpProxyListWarning struct {
35000	// Code: [Output Only] A warning code, if applicable. For example,
35001	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35002	// the response.
35003	//
35004	// Possible values:
35005	//   "CLEANUP_FAILED"
35006	//   "DEPRECATED_RESOURCE_USED"
35007	//   "DEPRECATED_TYPE_USED"
35008	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35009	//   "EXPERIMENTAL_TYPE_USED"
35010	//   "EXTERNAL_API_WARNING"
35011	//   "FIELD_VALUE_OVERRIDEN"
35012	//   "INJECTED_KERNELS_DEPRECATED"
35013	//   "MISSING_TYPE_DEPENDENCY"
35014	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35015	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35016	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35017	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35018	//   "NEXT_HOP_NOT_RUNNING"
35019	//   "NOT_CRITICAL_ERROR"
35020	//   "NO_RESULTS_ON_PAGE"
35021	//   "REQUIRED_TOS_AGREEMENT"
35022	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35023	//   "RESOURCE_NOT_DELETED"
35024	//   "SCHEMA_VALIDATION_IGNORED"
35025	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35026	//   "UNDECLARED_PROPERTIES"
35027	//   "UNREACHABLE"
35028	Code string `json:"code,omitempty"`
35029
35030	// Data: [Output Only] Metadata about this warning in key: value format.
35031	// For example:
35032	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35033	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
35034
35035	// Message: [Output Only] A human-readable description of the warning
35036	// code.
35037	Message string `json:"message,omitempty"`
35038
35039	// ForceSendFields is a list of field names (e.g. "Code") to
35040	// unconditionally include in API requests. By default, fields with
35041	// empty values are omitted from API requests. However, any non-pointer,
35042	// non-interface field appearing in ForceSendFields will be sent to the
35043	// server regardless of whether the field is empty or not. This may be
35044	// used to include empty fields in Patch requests.
35045	ForceSendFields []string `json:"-"`
35046
35047	// NullFields is a list of field names (e.g. "Code") to include in API
35048	// requests with the JSON null value. By default, fields with empty
35049	// values are omitted from API requests. However, any field with an
35050	// empty value appearing in NullFields will be sent to the server as
35051	// null. It is an error if a field in this list has a non-empty value.
35052	// This may be used to include null fields in Patch requests.
35053	NullFields []string `json:"-"`
35054}
35055
35056func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
35057	type NoMethod TargetHttpProxyListWarning
35058	raw := NoMethod(*s)
35059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35060}
35061
35062type TargetHttpProxyListWarningData struct {
35063	// Key: [Output Only] A key that provides more detail on the warning
35064	// being returned. For example, for warnings where there are no results
35065	// in a list request for a particular zone, this key might be scope and
35066	// the key value might be the zone name. Other examples might be a key
35067	// indicating a deprecated resource and a suggested replacement, or a
35068	// warning about invalid network settings (for example, if an instance
35069	// attempts to perform IP forwarding but is not enabled for IP
35070	// forwarding).
35071	Key string `json:"key,omitempty"`
35072
35073	// Value: [Output Only] A warning data value corresponding to the key.
35074	Value string `json:"value,omitempty"`
35075
35076	// ForceSendFields is a list of field names (e.g. "Key") to
35077	// unconditionally include in API requests. By default, fields with
35078	// empty values are omitted from API requests. However, any non-pointer,
35079	// non-interface field appearing in ForceSendFields will be sent to the
35080	// server regardless of whether the field is empty or not. This may be
35081	// used to include empty fields in Patch requests.
35082	ForceSendFields []string `json:"-"`
35083
35084	// NullFields is a list of field names (e.g. "Key") to include in API
35085	// requests with the JSON null value. By default, fields with empty
35086	// values are omitted from API requests. However, any field with an
35087	// empty value appearing in NullFields will be sent to the server as
35088	// null. It is an error if a field in this list has a non-empty value.
35089	// This may be used to include null fields in Patch requests.
35090	NullFields []string `json:"-"`
35091}
35092
35093func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
35094	type NoMethod TargetHttpProxyListWarningData
35095	raw := NoMethod(*s)
35096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35097}
35098
35099type TargetHttpsProxiesScopedList struct {
35100	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
35101	// scope.
35102	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
35103
35104	// Warning: Informational warning which replaces the list of backend
35105	// services when the list is empty.
35106	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
35107
35108	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
35109	// to unconditionally include in API requests. By default, fields with
35110	// empty values are omitted from API requests. However, any non-pointer,
35111	// non-interface field appearing in ForceSendFields will be sent to the
35112	// server regardless of whether the field is empty or not. This may be
35113	// used to include empty fields in Patch requests.
35114	ForceSendFields []string `json:"-"`
35115
35116	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
35117	// include in API requests with the JSON null value. By default, fields
35118	// with empty values are omitted from API requests. However, any field
35119	// with an empty value appearing in NullFields will be sent to the
35120	// server as null. It is an error if a field in this list has a
35121	// non-empty value. This may be used to include null fields in Patch
35122	// requests.
35123	NullFields []string `json:"-"`
35124}
35125
35126func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
35127	type NoMethod TargetHttpsProxiesScopedList
35128	raw := NoMethod(*s)
35129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35130}
35131
35132// TargetHttpsProxiesScopedListWarning: Informational warning which
35133// replaces the list of backend services when the list is empty.
35134type TargetHttpsProxiesScopedListWarning struct {
35135	// Code: [Output Only] A warning code, if applicable. For example,
35136	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35137	// the response.
35138	//
35139	// Possible values:
35140	//   "CLEANUP_FAILED"
35141	//   "DEPRECATED_RESOURCE_USED"
35142	//   "DEPRECATED_TYPE_USED"
35143	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35144	//   "EXPERIMENTAL_TYPE_USED"
35145	//   "EXTERNAL_API_WARNING"
35146	//   "FIELD_VALUE_OVERRIDEN"
35147	//   "INJECTED_KERNELS_DEPRECATED"
35148	//   "MISSING_TYPE_DEPENDENCY"
35149	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35150	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35151	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35152	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35153	//   "NEXT_HOP_NOT_RUNNING"
35154	//   "NOT_CRITICAL_ERROR"
35155	//   "NO_RESULTS_ON_PAGE"
35156	//   "REQUIRED_TOS_AGREEMENT"
35157	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35158	//   "RESOURCE_NOT_DELETED"
35159	//   "SCHEMA_VALIDATION_IGNORED"
35160	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35161	//   "UNDECLARED_PROPERTIES"
35162	//   "UNREACHABLE"
35163	Code string `json:"code,omitempty"`
35164
35165	// Data: [Output Only] Metadata about this warning in key: value format.
35166	// For example:
35167	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35168	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
35169
35170	// Message: [Output Only] A human-readable description of the warning
35171	// code.
35172	Message string `json:"message,omitempty"`
35173
35174	// ForceSendFields is a list of field names (e.g. "Code") to
35175	// unconditionally include in API requests. By default, fields with
35176	// empty values are omitted from API requests. However, any non-pointer,
35177	// non-interface field appearing in ForceSendFields will be sent to the
35178	// server regardless of whether the field is empty or not. This may be
35179	// used to include empty fields in Patch requests.
35180	ForceSendFields []string `json:"-"`
35181
35182	// NullFields is a list of field names (e.g. "Code") to include in API
35183	// requests with the JSON null value. By default, fields with empty
35184	// values are omitted from API requests. However, any field with an
35185	// empty value appearing in NullFields will be sent to the server as
35186	// null. It is an error if a field in this list has a non-empty value.
35187	// This may be used to include null fields in Patch requests.
35188	NullFields []string `json:"-"`
35189}
35190
35191func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
35192	type NoMethod TargetHttpsProxiesScopedListWarning
35193	raw := NoMethod(*s)
35194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35195}
35196
35197type TargetHttpsProxiesScopedListWarningData struct {
35198	// Key: [Output Only] A key that provides more detail on the warning
35199	// being returned. For example, for warnings where there are no results
35200	// in a list request for a particular zone, this key might be scope and
35201	// the key value might be the zone name. Other examples might be a key
35202	// indicating a deprecated resource and a suggested replacement, or a
35203	// warning about invalid network settings (for example, if an instance
35204	// attempts to perform IP forwarding but is not enabled for IP
35205	// forwarding).
35206	Key string `json:"key,omitempty"`
35207
35208	// Value: [Output Only] A warning data value corresponding to the key.
35209	Value string `json:"value,omitempty"`
35210
35211	// ForceSendFields is a list of field names (e.g. "Key") to
35212	// unconditionally include in API requests. By default, fields with
35213	// empty values are omitted from API requests. However, any non-pointer,
35214	// non-interface field appearing in ForceSendFields will be sent to the
35215	// server regardless of whether the field is empty or not. This may be
35216	// used to include empty fields in Patch requests.
35217	ForceSendFields []string `json:"-"`
35218
35219	// NullFields is a list of field names (e.g. "Key") to include in API
35220	// requests with the JSON null value. By default, fields with empty
35221	// values are omitted from API requests. However, any field with an
35222	// empty value appearing in NullFields will be sent to the server as
35223	// null. It is an error if a field in this list has a non-empty value.
35224	// This may be used to include null fields in Patch requests.
35225	NullFields []string `json:"-"`
35226}
35227
35228func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
35229	type NoMethod TargetHttpsProxiesScopedListWarningData
35230	raw := NoMethod(*s)
35231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35232}
35233
35234type TargetHttpsProxiesSetQuicOverrideRequest struct {
35235	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
35236	//
35237	// Possible values:
35238	//   "DISABLE"
35239	//   "ENABLE"
35240	//   "NONE"
35241	QuicOverride string `json:"quicOverride,omitempty"`
35242
35243	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
35244	// unconditionally include in API requests. By default, fields with
35245	// empty values are omitted from API requests. However, any non-pointer,
35246	// non-interface field appearing in ForceSendFields will be sent to the
35247	// server regardless of whether the field is empty or not. This may be
35248	// used to include empty fields in Patch requests.
35249	ForceSendFields []string `json:"-"`
35250
35251	// NullFields is a list of field names (e.g. "QuicOverride") to include
35252	// in API requests with the JSON null value. By default, fields with
35253	// empty values are omitted from API requests. However, any field with
35254	// an empty value appearing in NullFields will be sent to the server as
35255	// null. It is an error if a field in this list has a non-empty value.
35256	// This may be used to include null fields in Patch requests.
35257	NullFields []string `json:"-"`
35258}
35259
35260func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
35261	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
35262	raw := NoMethod(*s)
35263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35264}
35265
35266type TargetHttpsProxiesSetSslCertificatesRequest struct {
35267	// SslCertificates: New set of SslCertificate resources to associate
35268	// with this TargetHttpsProxy resource. Currently exactly one
35269	// SslCertificate resource must be specified.
35270	SslCertificates []string `json:"sslCertificates,omitempty"`
35271
35272	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
35273	// unconditionally include in API requests. By default, fields with
35274	// empty values are omitted from API requests. However, any non-pointer,
35275	// non-interface field appearing in ForceSendFields will be sent to the
35276	// server regardless of whether the field is empty or not. This may be
35277	// used to include empty fields in Patch requests.
35278	ForceSendFields []string `json:"-"`
35279
35280	// NullFields is a list of field names (e.g. "SslCertificates") to
35281	// include in API requests with the JSON null value. By default, fields
35282	// with empty values are omitted from API requests. However, any field
35283	// with an empty value appearing in NullFields will be sent to the
35284	// server as null. It is an error if a field in this list has a
35285	// non-empty value. This may be used to include null fields in Patch
35286	// requests.
35287	NullFields []string `json:"-"`
35288}
35289
35290func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
35291	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
35292	raw := NoMethod(*s)
35293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35294}
35295
35296// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
35297//
35298// Google Compute Engine has two Target HTTPS Proxy resources:
35299//
35300// *
35301// [Global](/compute/docs/reference/rest/{$api_version}/targetHttpsProxie
35302// s) *
35303// [Regional](/compute/docs/reference/rest/{$api_version}/regionTargetHtt
35304// psProxies)
35305//
35306// A target HTTPS proxy is a component of GCP HTTPS load balancers.
35307//
35308// * targetHttpsProxies are used by external HTTPS load balancers. *
35309// regionTargetHttpsProxies are used by internal HTTPS load
35310// balancers.
35311//
35312// Forwarding rules reference a target HTTPS proxy, and the target proxy
35313// then references a URL map. For more information, read Using Target
35314// Proxies and  Forwarding rule concepts. (== resource_for
35315// {$api_version}.targetHttpsProxies ==) (== resource_for
35316// {$api_version}.regionTargetHttpsProxies ==)
35317type TargetHttpsProxy struct {
35318	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35319	// format.
35320	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35321
35322	// Description: An optional description of this resource. Provide this
35323	// property when you create the resource.
35324	Description string `json:"description,omitempty"`
35325
35326	// Id: [Output Only] The unique identifier for the resource. This
35327	// identifier is defined by the server.
35328	Id uint64 `json:"id,omitempty,string"`
35329
35330	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
35331	// for target HTTPS proxies.
35332	Kind string `json:"kind,omitempty"`
35333
35334	// Name: Name of the resource. Provided by the client when the resource
35335	// is created. The name must be 1-63 characters long, and comply with
35336	// RFC1035. Specifically, the name must be 1-63 characters long and
35337	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
35338	// the first character must be a lowercase letter, and all following
35339	// characters must be a dash, lowercase letter, or digit, except the
35340	// last character, which cannot be a dash.
35341	Name string `json:"name,omitempty"`
35342
35343	// QuicOverride: Specifies the QUIC override policy for this
35344	// TargetHttpsProxy resource. This setting determines whether the load
35345	// balancer attempts to negotiate QUIC with clients. You can specify
35346	// NONE, ENABLE, or DISABLE.
35347	// - When quic-override is set to NONE, Google manages whether QUIC is
35348	// used.
35349	// - When quic-override is set to ENABLE, the load balancer uses QUIC
35350	// when possible.
35351	// - When quic-override is set to DISABLE, the load balancer doesn't use
35352	// QUIC.
35353	// - If the quic-override flag is not specified, NONE is implied.
35354	// -
35355	//
35356	// Possible values:
35357	//   "DISABLE"
35358	//   "ENABLE"
35359	//   "NONE"
35360	QuicOverride string `json:"quicOverride,omitempty"`
35361
35362	// Region: [Output Only] URL of the region where the regional
35363	// TargetHttpsProxy resides. This field is not applicable to global
35364	// TargetHttpsProxies.
35365	Region string `json:"region,omitempty"`
35366
35367	// SelfLink: [Output Only] Server-defined URL for the resource.
35368	SelfLink string `json:"selfLink,omitempty"`
35369
35370	// SslCertificates: URLs to SslCertificate resources that are used to
35371	// authenticate connections between users and the load balancer. At
35372	// least one SSL certificate must be specified. Currently, you may
35373	// specify up to 15 SSL certificates.
35374	SslCertificates []string `json:"sslCertificates,omitempty"`
35375
35376	// SslPolicy: URL of SslPolicy resource that will be associated with the
35377	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
35378	// has no SSL policy configured.
35379	SslPolicy string `json:"sslPolicy,omitempty"`
35380
35381	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
35382	// that defines the mapping from URL to the BackendService. For example,
35383	// the following are all valid URLs for specifying a URL map:
35384	// -
35385	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
35386	// - projects/project/global/urlMaps/url-map
35387	// - global/urlMaps/url-map
35388	UrlMap string `json:"urlMap,omitempty"`
35389
35390	// ServerResponse contains the HTTP response code and headers from the
35391	// server.
35392	googleapi.ServerResponse `json:"-"`
35393
35394	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35395	// to unconditionally include in API requests. By default, fields with
35396	// empty values are omitted from API requests. However, any non-pointer,
35397	// non-interface field appearing in ForceSendFields will be sent to the
35398	// server regardless of whether the field is empty or not. This may be
35399	// used to include empty fields in Patch requests.
35400	ForceSendFields []string `json:"-"`
35401
35402	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35403	// include in API requests with the JSON null value. By default, fields
35404	// with empty values are omitted from API requests. However, any field
35405	// with an empty value appearing in NullFields will be sent to the
35406	// server as null. It is an error if a field in this list has a
35407	// non-empty value. This may be used to include null fields in Patch
35408	// requests.
35409	NullFields []string `json:"-"`
35410}
35411
35412func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
35413	type NoMethod TargetHttpsProxy
35414	raw := NoMethod(*s)
35415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35416}
35417
35418type TargetHttpsProxyAggregatedList struct {
35419	// Id: [Output Only] Unique identifier for the resource; defined by the
35420	// server.
35421	Id string `json:"id,omitempty"`
35422
35423	// Items: A list of TargetHttpsProxiesScopedList resources.
35424	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
35425
35426	// Kind: [Output Only] Type of resource. Always
35427	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
35428	// Proxies.
35429	Kind string `json:"kind,omitempty"`
35430
35431	// NextPageToken: [Output Only] This token allows you to get the next
35432	// page of results for list requests. If the number of results is larger
35433	// than maxResults, use the nextPageToken as a value for the query
35434	// parameter pageToken in the next list request. Subsequent list
35435	// requests will have their own nextPageToken to continue paging through
35436	// the results.
35437	NextPageToken string `json:"nextPageToken,omitempty"`
35438
35439	// SelfLink: [Output Only] Server-defined URL for this resource.
35440	SelfLink string `json:"selfLink,omitempty"`
35441
35442	// Warning: [Output Only] Informational warning message.
35443	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
35444
35445	// ServerResponse contains the HTTP response code and headers from the
35446	// server.
35447	googleapi.ServerResponse `json:"-"`
35448
35449	// ForceSendFields is a list of field names (e.g. "Id") to
35450	// unconditionally include in API requests. By default, fields with
35451	// empty values are omitted from API requests. However, any non-pointer,
35452	// non-interface field appearing in ForceSendFields will be sent to the
35453	// server regardless of whether the field is empty or not. This may be
35454	// used to include empty fields in Patch requests.
35455	ForceSendFields []string `json:"-"`
35456
35457	// NullFields is a list of field names (e.g. "Id") to include in API
35458	// requests with the JSON null value. By default, fields with empty
35459	// values are omitted from API requests. However, any field with an
35460	// empty value appearing in NullFields will be sent to the server as
35461	// null. It is an error if a field in this list has a non-empty value.
35462	// This may be used to include null fields in Patch requests.
35463	NullFields []string `json:"-"`
35464}
35465
35466func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
35467	type NoMethod TargetHttpsProxyAggregatedList
35468	raw := NoMethod(*s)
35469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35470}
35471
35472// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
35473// warning message.
35474type TargetHttpsProxyAggregatedListWarning struct {
35475	// Code: [Output Only] A warning code, if applicable. For example,
35476	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35477	// the response.
35478	//
35479	// Possible values:
35480	//   "CLEANUP_FAILED"
35481	//   "DEPRECATED_RESOURCE_USED"
35482	//   "DEPRECATED_TYPE_USED"
35483	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35484	//   "EXPERIMENTAL_TYPE_USED"
35485	//   "EXTERNAL_API_WARNING"
35486	//   "FIELD_VALUE_OVERRIDEN"
35487	//   "INJECTED_KERNELS_DEPRECATED"
35488	//   "MISSING_TYPE_DEPENDENCY"
35489	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35490	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35491	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35492	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35493	//   "NEXT_HOP_NOT_RUNNING"
35494	//   "NOT_CRITICAL_ERROR"
35495	//   "NO_RESULTS_ON_PAGE"
35496	//   "REQUIRED_TOS_AGREEMENT"
35497	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35498	//   "RESOURCE_NOT_DELETED"
35499	//   "SCHEMA_VALIDATION_IGNORED"
35500	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35501	//   "UNDECLARED_PROPERTIES"
35502	//   "UNREACHABLE"
35503	Code string `json:"code,omitempty"`
35504
35505	// Data: [Output Only] Metadata about this warning in key: value format.
35506	// For example:
35507	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35508	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
35509
35510	// Message: [Output Only] A human-readable description of the warning
35511	// code.
35512	Message string `json:"message,omitempty"`
35513
35514	// ForceSendFields is a list of field names (e.g. "Code") to
35515	// unconditionally include in API requests. By default, fields with
35516	// empty values are omitted from API requests. However, any non-pointer,
35517	// non-interface field appearing in ForceSendFields will be sent to the
35518	// server regardless of whether the field is empty or not. This may be
35519	// used to include empty fields in Patch requests.
35520	ForceSendFields []string `json:"-"`
35521
35522	// NullFields is a list of field names (e.g. "Code") to include in API
35523	// requests with the JSON null value. By default, fields with empty
35524	// values are omitted from API requests. However, any field with an
35525	// empty value appearing in NullFields will be sent to the server as
35526	// null. It is an error if a field in this list has a non-empty value.
35527	// This may be used to include null fields in Patch requests.
35528	NullFields []string `json:"-"`
35529}
35530
35531func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
35532	type NoMethod TargetHttpsProxyAggregatedListWarning
35533	raw := NoMethod(*s)
35534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35535}
35536
35537type TargetHttpsProxyAggregatedListWarningData struct {
35538	// Key: [Output Only] A key that provides more detail on the warning
35539	// being returned. For example, for warnings where there are no results
35540	// in a list request for a particular zone, this key might be scope and
35541	// the key value might be the zone name. Other examples might be a key
35542	// indicating a deprecated resource and a suggested replacement, or a
35543	// warning about invalid network settings (for example, if an instance
35544	// attempts to perform IP forwarding but is not enabled for IP
35545	// forwarding).
35546	Key string `json:"key,omitempty"`
35547
35548	// Value: [Output Only] A warning data value corresponding to the key.
35549	Value string `json:"value,omitempty"`
35550
35551	// ForceSendFields is a list of field names (e.g. "Key") to
35552	// unconditionally include in API requests. By default, fields with
35553	// empty values are omitted from API requests. However, any non-pointer,
35554	// non-interface field appearing in ForceSendFields will be sent to the
35555	// server regardless of whether the field is empty or not. This may be
35556	// used to include empty fields in Patch requests.
35557	ForceSendFields []string `json:"-"`
35558
35559	// NullFields is a list of field names (e.g. "Key") to include in API
35560	// requests with the JSON null value. By default, fields with empty
35561	// values are omitted from API requests. However, any field with an
35562	// empty value appearing in NullFields will be sent to the server as
35563	// null. It is an error if a field in this list has a non-empty value.
35564	// This may be used to include null fields in Patch requests.
35565	NullFields []string `json:"-"`
35566}
35567
35568func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35569	type NoMethod TargetHttpsProxyAggregatedListWarningData
35570	raw := NoMethod(*s)
35571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35572}
35573
35574// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
35575type TargetHttpsProxyList struct {
35576	// Id: [Output Only] Unique identifier for the resource; defined by the
35577	// server.
35578	Id string `json:"id,omitempty"`
35579
35580	// Items: A list of TargetHttpsProxy resources.
35581	Items []*TargetHttpsProxy `json:"items,omitempty"`
35582
35583	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
35584	// of target HTTPS proxies.
35585	Kind string `json:"kind,omitempty"`
35586
35587	// NextPageToken: [Output Only] This token allows you to get the next
35588	// page of results for list requests. If the number of results is larger
35589	// than maxResults, use the nextPageToken as a value for the query
35590	// parameter pageToken in the next list request. Subsequent list
35591	// requests will have their own nextPageToken to continue paging through
35592	// the results.
35593	NextPageToken string `json:"nextPageToken,omitempty"`
35594
35595	// SelfLink: [Output Only] Server-defined URL for this resource.
35596	SelfLink string `json:"selfLink,omitempty"`
35597
35598	// Warning: [Output Only] Informational warning message.
35599	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
35600
35601	// ServerResponse contains the HTTP response code and headers from the
35602	// server.
35603	googleapi.ServerResponse `json:"-"`
35604
35605	// ForceSendFields is a list of field names (e.g. "Id") to
35606	// unconditionally include in API requests. By default, fields with
35607	// empty values are omitted from API requests. However, any non-pointer,
35608	// non-interface field appearing in ForceSendFields will be sent to the
35609	// server regardless of whether the field is empty or not. This may be
35610	// used to include empty fields in Patch requests.
35611	ForceSendFields []string `json:"-"`
35612
35613	// NullFields is a list of field names (e.g. "Id") to include in API
35614	// requests with the JSON null value. By default, fields with empty
35615	// values are omitted from API requests. However, any field with an
35616	// empty value appearing in NullFields will be sent to the server as
35617	// null. It is an error if a field in this list has a non-empty value.
35618	// This may be used to include null fields in Patch requests.
35619	NullFields []string `json:"-"`
35620}
35621
35622func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
35623	type NoMethod TargetHttpsProxyList
35624	raw := NoMethod(*s)
35625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35626}
35627
35628// TargetHttpsProxyListWarning: [Output Only] Informational warning
35629// message.
35630type TargetHttpsProxyListWarning struct {
35631	// Code: [Output Only] A warning code, if applicable. For example,
35632	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35633	// the response.
35634	//
35635	// Possible values:
35636	//   "CLEANUP_FAILED"
35637	//   "DEPRECATED_RESOURCE_USED"
35638	//   "DEPRECATED_TYPE_USED"
35639	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35640	//   "EXPERIMENTAL_TYPE_USED"
35641	//   "EXTERNAL_API_WARNING"
35642	//   "FIELD_VALUE_OVERRIDEN"
35643	//   "INJECTED_KERNELS_DEPRECATED"
35644	//   "MISSING_TYPE_DEPENDENCY"
35645	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35646	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35647	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35648	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35649	//   "NEXT_HOP_NOT_RUNNING"
35650	//   "NOT_CRITICAL_ERROR"
35651	//   "NO_RESULTS_ON_PAGE"
35652	//   "REQUIRED_TOS_AGREEMENT"
35653	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35654	//   "RESOURCE_NOT_DELETED"
35655	//   "SCHEMA_VALIDATION_IGNORED"
35656	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35657	//   "UNDECLARED_PROPERTIES"
35658	//   "UNREACHABLE"
35659	Code string `json:"code,omitempty"`
35660
35661	// Data: [Output Only] Metadata about this warning in key: value format.
35662	// For example:
35663	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35664	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
35665
35666	// Message: [Output Only] A human-readable description of the warning
35667	// code.
35668	Message string `json:"message,omitempty"`
35669
35670	// ForceSendFields is a list of field names (e.g. "Code") to
35671	// unconditionally include in API requests. By default, fields with
35672	// empty values are omitted from API requests. However, any non-pointer,
35673	// non-interface field appearing in ForceSendFields will be sent to the
35674	// server regardless of whether the field is empty or not. This may be
35675	// used to include empty fields in Patch requests.
35676	ForceSendFields []string `json:"-"`
35677
35678	// NullFields is a list of field names (e.g. "Code") to include in API
35679	// requests with the JSON null value. By default, fields with empty
35680	// values are omitted from API requests. However, any field with an
35681	// empty value appearing in NullFields will be sent to the server as
35682	// null. It is an error if a field in this list has a non-empty value.
35683	// This may be used to include null fields in Patch requests.
35684	NullFields []string `json:"-"`
35685}
35686
35687func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
35688	type NoMethod TargetHttpsProxyListWarning
35689	raw := NoMethod(*s)
35690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35691}
35692
35693type TargetHttpsProxyListWarningData struct {
35694	// Key: [Output Only] A key that provides more detail on the warning
35695	// being returned. For example, for warnings where there are no results
35696	// in a list request for a particular zone, this key might be scope and
35697	// the key value might be the zone name. Other examples might be a key
35698	// indicating a deprecated resource and a suggested replacement, or a
35699	// warning about invalid network settings (for example, if an instance
35700	// attempts to perform IP forwarding but is not enabled for IP
35701	// forwarding).
35702	Key string `json:"key,omitempty"`
35703
35704	// Value: [Output Only] A warning data value corresponding to the key.
35705	Value string `json:"value,omitempty"`
35706
35707	// ForceSendFields is a list of field names (e.g. "Key") to
35708	// unconditionally include in API requests. By default, fields with
35709	// empty values are omitted from API requests. However, any non-pointer,
35710	// non-interface field appearing in ForceSendFields will be sent to the
35711	// server regardless of whether the field is empty or not. This may be
35712	// used to include empty fields in Patch requests.
35713	ForceSendFields []string `json:"-"`
35714
35715	// NullFields is a list of field names (e.g. "Key") to include in API
35716	// requests with the JSON null value. By default, fields with empty
35717	// values are omitted from API requests. However, any field with an
35718	// empty value appearing in NullFields will be sent to the server as
35719	// null. It is an error if a field in this list has a non-empty value.
35720	// This may be used to include null fields in Patch requests.
35721	NullFields []string `json:"-"`
35722}
35723
35724func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
35725	type NoMethod TargetHttpsProxyListWarningData
35726	raw := NoMethod(*s)
35727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35728}
35729
35730// TargetInstance: Represents a Target Instance resource.
35731//
35732// You can use a target instance to handle traffic for one or more
35733// forwarding rules, which is ideal for forwarding protocol traffic that
35734// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
35735// more information, read Target instances. (== resource_for
35736// {$api_version}.targetInstances ==)
35737type TargetInstance struct {
35738	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35739	// format.
35740	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35741
35742	// Description: An optional description of this resource. Provide this
35743	// property when you create the resource.
35744	Description string `json:"description,omitempty"`
35745
35746	// Id: [Output Only] The unique identifier for the resource. This
35747	// identifier is defined by the server.
35748	Id uint64 `json:"id,omitempty,string"`
35749
35750	// Instance: A URL to the virtual machine instance that handles traffic
35751	// for this target instance. When creating a target instance, you can
35752	// provide the fully-qualified URL or a valid partial URL to the desired
35753	// virtual machine. For example, the following are all valid URLs:
35754	// -
35755	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
35756	// - projects/project/zones/zone/instances/instance
35757	// - zones/zone/instances/instance
35758	Instance string `json:"instance,omitempty"`
35759
35760	// Kind: [Output Only] The type of the resource. Always
35761	// compute#targetInstance for target instances.
35762	Kind string `json:"kind,omitempty"`
35763
35764	// Name: Name of the resource. Provided by the client when the resource
35765	// is created. The name must be 1-63 characters long, and comply with
35766	// RFC1035. Specifically, the name must be 1-63 characters long and
35767	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
35768	// the first character must be a lowercase letter, and all following
35769	// characters must be a dash, lowercase letter, or digit, except the
35770	// last character, which cannot be a dash.
35771	Name string `json:"name,omitempty"`
35772
35773	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
35774	// Currently only NO_NAT (default value) is supported.
35775	//
35776	// Possible values:
35777	//   "NO_NAT"
35778	NatPolicy string `json:"natPolicy,omitempty"`
35779
35780	// SelfLink: [Output Only] Server-defined URL for the resource.
35781	SelfLink string `json:"selfLink,omitempty"`
35782
35783	// Zone: [Output Only] URL of the zone where the target instance
35784	// resides. You must specify this field as part of the HTTP request URL.
35785	// It is not settable as a field in the request body.
35786	Zone string `json:"zone,omitempty"`
35787
35788	// ServerResponse contains the HTTP response code and headers from the
35789	// server.
35790	googleapi.ServerResponse `json:"-"`
35791
35792	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35793	// to unconditionally include in API requests. By default, fields with
35794	// empty values are omitted from API requests. However, any non-pointer,
35795	// non-interface field appearing in ForceSendFields will be sent to the
35796	// server regardless of whether the field is empty or not. This may be
35797	// used to include empty fields in Patch requests.
35798	ForceSendFields []string `json:"-"`
35799
35800	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35801	// include in API requests with the JSON null value. By default, fields
35802	// with empty values are omitted from API requests. However, any field
35803	// with an empty value appearing in NullFields will be sent to the
35804	// server as null. It is an error if a field in this list has a
35805	// non-empty value. This may be used to include null fields in Patch
35806	// requests.
35807	NullFields []string `json:"-"`
35808}
35809
35810func (s *TargetInstance) MarshalJSON() ([]byte, error) {
35811	type NoMethod TargetInstance
35812	raw := NoMethod(*s)
35813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35814}
35815
35816type TargetInstanceAggregatedList struct {
35817	// Id: [Output Only] Unique identifier for the resource; defined by the
35818	// server.
35819	Id string `json:"id,omitempty"`
35820
35821	// Items: A list of TargetInstance resources.
35822	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
35823
35824	// Kind: Type of resource.
35825	Kind string `json:"kind,omitempty"`
35826
35827	// NextPageToken: [Output Only] This token allows you to get the next
35828	// page of results for list requests. If the number of results is larger
35829	// than maxResults, use the nextPageToken as a value for the query
35830	// parameter pageToken in the next list request. Subsequent list
35831	// requests will have their own nextPageToken to continue paging through
35832	// the results.
35833	NextPageToken string `json:"nextPageToken,omitempty"`
35834
35835	// SelfLink: [Output Only] Server-defined URL for this resource.
35836	SelfLink string `json:"selfLink,omitempty"`
35837
35838	// Warning: [Output Only] Informational warning message.
35839	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
35840
35841	// ServerResponse contains the HTTP response code and headers from the
35842	// server.
35843	googleapi.ServerResponse `json:"-"`
35844
35845	// ForceSendFields is a list of field names (e.g. "Id") to
35846	// unconditionally include in API requests. By default, fields with
35847	// empty values are omitted from API requests. However, any non-pointer,
35848	// non-interface field appearing in ForceSendFields will be sent to the
35849	// server regardless of whether the field is empty or not. This may be
35850	// used to include empty fields in Patch requests.
35851	ForceSendFields []string `json:"-"`
35852
35853	// NullFields is a list of field names (e.g. "Id") to include in API
35854	// requests with the JSON null value. By default, fields with empty
35855	// values are omitted from API requests. However, any field with an
35856	// empty value appearing in NullFields will be sent to the server as
35857	// null. It is an error if a field in this list has a non-empty value.
35858	// This may be used to include null fields in Patch requests.
35859	NullFields []string `json:"-"`
35860}
35861
35862func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
35863	type NoMethod TargetInstanceAggregatedList
35864	raw := NoMethod(*s)
35865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35866}
35867
35868// TargetInstanceAggregatedListWarning: [Output Only] Informational
35869// warning message.
35870type TargetInstanceAggregatedListWarning struct {
35871	// Code: [Output Only] A warning code, if applicable. For example,
35872	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35873	// the response.
35874	//
35875	// Possible values:
35876	//   "CLEANUP_FAILED"
35877	//   "DEPRECATED_RESOURCE_USED"
35878	//   "DEPRECATED_TYPE_USED"
35879	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35880	//   "EXPERIMENTAL_TYPE_USED"
35881	//   "EXTERNAL_API_WARNING"
35882	//   "FIELD_VALUE_OVERRIDEN"
35883	//   "INJECTED_KERNELS_DEPRECATED"
35884	//   "MISSING_TYPE_DEPENDENCY"
35885	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35886	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35887	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35888	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35889	//   "NEXT_HOP_NOT_RUNNING"
35890	//   "NOT_CRITICAL_ERROR"
35891	//   "NO_RESULTS_ON_PAGE"
35892	//   "REQUIRED_TOS_AGREEMENT"
35893	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35894	//   "RESOURCE_NOT_DELETED"
35895	//   "SCHEMA_VALIDATION_IGNORED"
35896	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35897	//   "UNDECLARED_PROPERTIES"
35898	//   "UNREACHABLE"
35899	Code string `json:"code,omitempty"`
35900
35901	// Data: [Output Only] Metadata about this warning in key: value format.
35902	// For example:
35903	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35904	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
35905
35906	// Message: [Output Only] A human-readable description of the warning
35907	// code.
35908	Message string `json:"message,omitempty"`
35909
35910	// ForceSendFields is a list of field names (e.g. "Code") to
35911	// unconditionally include in API requests. By default, fields with
35912	// empty values are omitted from API requests. However, any non-pointer,
35913	// non-interface field appearing in ForceSendFields will be sent to the
35914	// server regardless of whether the field is empty or not. This may be
35915	// used to include empty fields in Patch requests.
35916	ForceSendFields []string `json:"-"`
35917
35918	// NullFields is a list of field names (e.g. "Code") to include in API
35919	// requests with the JSON null value. By default, fields with empty
35920	// values are omitted from API requests. However, any field with an
35921	// empty value appearing in NullFields will be sent to the server as
35922	// null. It is an error if a field in this list has a non-empty value.
35923	// This may be used to include null fields in Patch requests.
35924	NullFields []string `json:"-"`
35925}
35926
35927func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
35928	type NoMethod TargetInstanceAggregatedListWarning
35929	raw := NoMethod(*s)
35930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35931}
35932
35933type TargetInstanceAggregatedListWarningData struct {
35934	// Key: [Output Only] A key that provides more detail on the warning
35935	// being returned. For example, for warnings where there are no results
35936	// in a list request for a particular zone, this key might be scope and
35937	// the key value might be the zone name. Other examples might be a key
35938	// indicating a deprecated resource and a suggested replacement, or a
35939	// warning about invalid network settings (for example, if an instance
35940	// attempts to perform IP forwarding but is not enabled for IP
35941	// forwarding).
35942	Key string `json:"key,omitempty"`
35943
35944	// Value: [Output Only] A warning data value corresponding to the key.
35945	Value string `json:"value,omitempty"`
35946
35947	// ForceSendFields is a list of field names (e.g. "Key") to
35948	// unconditionally include in API requests. By default, fields with
35949	// empty values are omitted from API requests. However, any non-pointer,
35950	// non-interface field appearing in ForceSendFields will be sent to the
35951	// server regardless of whether the field is empty or not. This may be
35952	// used to include empty fields in Patch requests.
35953	ForceSendFields []string `json:"-"`
35954
35955	// NullFields is a list of field names (e.g. "Key") to include in API
35956	// requests with the JSON null value. By default, fields with empty
35957	// values are omitted from API requests. However, any field with an
35958	// empty value appearing in NullFields will be sent to the server as
35959	// null. It is an error if a field in this list has a non-empty value.
35960	// This may be used to include null fields in Patch requests.
35961	NullFields []string `json:"-"`
35962}
35963
35964func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35965	type NoMethod TargetInstanceAggregatedListWarningData
35966	raw := NoMethod(*s)
35967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35968}
35969
35970// TargetInstanceList: Contains a list of TargetInstance resources.
35971type TargetInstanceList struct {
35972	// Id: [Output Only] Unique identifier for the resource; defined by the
35973	// server.
35974	Id string `json:"id,omitempty"`
35975
35976	// Items: A list of TargetInstance resources.
35977	Items []*TargetInstance `json:"items,omitempty"`
35978
35979	// Kind: Type of resource.
35980	Kind string `json:"kind,omitempty"`
35981
35982	// NextPageToken: [Output Only] This token allows you to get the next
35983	// page of results for list requests. If the number of results is larger
35984	// than maxResults, use the nextPageToken as a value for the query
35985	// parameter pageToken in the next list request. Subsequent list
35986	// requests will have their own nextPageToken to continue paging through
35987	// the results.
35988	NextPageToken string `json:"nextPageToken,omitempty"`
35989
35990	// SelfLink: [Output Only] Server-defined URL for this resource.
35991	SelfLink string `json:"selfLink,omitempty"`
35992
35993	// Warning: [Output Only] Informational warning message.
35994	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
35995
35996	// ServerResponse contains the HTTP response code and headers from the
35997	// server.
35998	googleapi.ServerResponse `json:"-"`
35999
36000	// ForceSendFields is a list of field names (e.g. "Id") to
36001	// unconditionally include in API requests. By default, fields with
36002	// empty values are omitted from API requests. However, any non-pointer,
36003	// non-interface field appearing in ForceSendFields will be sent to the
36004	// server regardless of whether the field is empty or not. This may be
36005	// used to include empty fields in Patch requests.
36006	ForceSendFields []string `json:"-"`
36007
36008	// NullFields is a list of field names (e.g. "Id") to include in API
36009	// requests with the JSON null value. By default, fields with empty
36010	// values are omitted from API requests. However, any field with an
36011	// empty value appearing in NullFields will be sent to the server as
36012	// null. It is an error if a field in this list has a non-empty value.
36013	// This may be used to include null fields in Patch requests.
36014	NullFields []string `json:"-"`
36015}
36016
36017func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
36018	type NoMethod TargetInstanceList
36019	raw := NoMethod(*s)
36020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36021}
36022
36023// TargetInstanceListWarning: [Output Only] Informational warning
36024// message.
36025type TargetInstanceListWarning struct {
36026	// Code: [Output Only] A warning code, if applicable. For example,
36027	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36028	// the response.
36029	//
36030	// Possible values:
36031	//   "CLEANUP_FAILED"
36032	//   "DEPRECATED_RESOURCE_USED"
36033	//   "DEPRECATED_TYPE_USED"
36034	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36035	//   "EXPERIMENTAL_TYPE_USED"
36036	//   "EXTERNAL_API_WARNING"
36037	//   "FIELD_VALUE_OVERRIDEN"
36038	//   "INJECTED_KERNELS_DEPRECATED"
36039	//   "MISSING_TYPE_DEPENDENCY"
36040	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36041	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36042	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36043	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36044	//   "NEXT_HOP_NOT_RUNNING"
36045	//   "NOT_CRITICAL_ERROR"
36046	//   "NO_RESULTS_ON_PAGE"
36047	//   "REQUIRED_TOS_AGREEMENT"
36048	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36049	//   "RESOURCE_NOT_DELETED"
36050	//   "SCHEMA_VALIDATION_IGNORED"
36051	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36052	//   "UNDECLARED_PROPERTIES"
36053	//   "UNREACHABLE"
36054	Code string `json:"code,omitempty"`
36055
36056	// Data: [Output Only] Metadata about this warning in key: value format.
36057	// For example:
36058	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36059	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
36060
36061	// Message: [Output Only] A human-readable description of the warning
36062	// code.
36063	Message string `json:"message,omitempty"`
36064
36065	// ForceSendFields is a list of field names (e.g. "Code") to
36066	// unconditionally include in API requests. By default, fields with
36067	// empty values are omitted from API requests. However, any non-pointer,
36068	// non-interface field appearing in ForceSendFields will be sent to the
36069	// server regardless of whether the field is empty or not. This may be
36070	// used to include empty fields in Patch requests.
36071	ForceSendFields []string `json:"-"`
36072
36073	// NullFields is a list of field names (e.g. "Code") to include in API
36074	// requests with the JSON null value. By default, fields with empty
36075	// values are omitted from API requests. However, any field with an
36076	// empty value appearing in NullFields will be sent to the server as
36077	// null. It is an error if a field in this list has a non-empty value.
36078	// This may be used to include null fields in Patch requests.
36079	NullFields []string `json:"-"`
36080}
36081
36082func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
36083	type NoMethod TargetInstanceListWarning
36084	raw := NoMethod(*s)
36085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36086}
36087
36088type TargetInstanceListWarningData struct {
36089	// Key: [Output Only] A key that provides more detail on the warning
36090	// being returned. For example, for warnings where there are no results
36091	// in a list request for a particular zone, this key might be scope and
36092	// the key value might be the zone name. Other examples might be a key
36093	// indicating a deprecated resource and a suggested replacement, or a
36094	// warning about invalid network settings (for example, if an instance
36095	// attempts to perform IP forwarding but is not enabled for IP
36096	// forwarding).
36097	Key string `json:"key,omitempty"`
36098
36099	// Value: [Output Only] A warning data value corresponding to the key.
36100	Value string `json:"value,omitempty"`
36101
36102	// ForceSendFields is a list of field names (e.g. "Key") to
36103	// unconditionally include in API requests. By default, fields with
36104	// empty values are omitted from API requests. However, any non-pointer,
36105	// non-interface field appearing in ForceSendFields will be sent to the
36106	// server regardless of whether the field is empty or not. This may be
36107	// used to include empty fields in Patch requests.
36108	ForceSendFields []string `json:"-"`
36109
36110	// NullFields is a list of field names (e.g. "Key") to include in API
36111	// requests with the JSON null value. By default, fields with empty
36112	// values are omitted from API requests. However, any field with an
36113	// empty value appearing in NullFields will be sent to the server as
36114	// null. It is an error if a field in this list has a non-empty value.
36115	// This may be used to include null fields in Patch requests.
36116	NullFields []string `json:"-"`
36117}
36118
36119func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
36120	type NoMethod TargetInstanceListWarningData
36121	raw := NoMethod(*s)
36122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36123}
36124
36125type TargetInstancesScopedList struct {
36126	// TargetInstances: A list of target instances contained in this scope.
36127	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
36128
36129	// Warning: Informational warning which replaces the list of addresses
36130	// when the list is empty.
36131	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
36132
36133	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
36134	// unconditionally include in API requests. By default, fields with
36135	// empty values are omitted from API requests. However, any non-pointer,
36136	// non-interface field appearing in ForceSendFields will be sent to the
36137	// server regardless of whether the field is empty or not. This may be
36138	// used to include empty fields in Patch requests.
36139	ForceSendFields []string `json:"-"`
36140
36141	// NullFields is a list of field names (e.g. "TargetInstances") to
36142	// include in API requests with the JSON null value. By default, fields
36143	// with empty values are omitted from API requests. However, any field
36144	// with an empty value appearing in NullFields will be sent to the
36145	// server as null. It is an error if a field in this list has a
36146	// non-empty value. This may be used to include null fields in Patch
36147	// requests.
36148	NullFields []string `json:"-"`
36149}
36150
36151func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
36152	type NoMethod TargetInstancesScopedList
36153	raw := NoMethod(*s)
36154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36155}
36156
36157// TargetInstancesScopedListWarning: Informational warning which
36158// replaces the list of addresses when the list is empty.
36159type TargetInstancesScopedListWarning struct {
36160	// Code: [Output Only] A warning code, if applicable. For example,
36161	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36162	// the response.
36163	//
36164	// Possible values:
36165	//   "CLEANUP_FAILED"
36166	//   "DEPRECATED_RESOURCE_USED"
36167	//   "DEPRECATED_TYPE_USED"
36168	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36169	//   "EXPERIMENTAL_TYPE_USED"
36170	//   "EXTERNAL_API_WARNING"
36171	//   "FIELD_VALUE_OVERRIDEN"
36172	//   "INJECTED_KERNELS_DEPRECATED"
36173	//   "MISSING_TYPE_DEPENDENCY"
36174	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36175	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36176	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36177	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36178	//   "NEXT_HOP_NOT_RUNNING"
36179	//   "NOT_CRITICAL_ERROR"
36180	//   "NO_RESULTS_ON_PAGE"
36181	//   "REQUIRED_TOS_AGREEMENT"
36182	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36183	//   "RESOURCE_NOT_DELETED"
36184	//   "SCHEMA_VALIDATION_IGNORED"
36185	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36186	//   "UNDECLARED_PROPERTIES"
36187	//   "UNREACHABLE"
36188	Code string `json:"code,omitempty"`
36189
36190	// Data: [Output Only] Metadata about this warning in key: value format.
36191	// For example:
36192	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36193	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
36194
36195	// Message: [Output Only] A human-readable description of the warning
36196	// code.
36197	Message string `json:"message,omitempty"`
36198
36199	// ForceSendFields is a list of field names (e.g. "Code") to
36200	// unconditionally include in API requests. By default, fields with
36201	// empty values are omitted from API requests. However, any non-pointer,
36202	// non-interface field appearing in ForceSendFields will be sent to the
36203	// server regardless of whether the field is empty or not. This may be
36204	// used to include empty fields in Patch requests.
36205	ForceSendFields []string `json:"-"`
36206
36207	// NullFields is a list of field names (e.g. "Code") to include in API
36208	// requests with the JSON null value. By default, fields with empty
36209	// values are omitted from API requests. However, any field with an
36210	// empty value appearing in NullFields will be sent to the server as
36211	// null. It is an error if a field in this list has a non-empty value.
36212	// This may be used to include null fields in Patch requests.
36213	NullFields []string `json:"-"`
36214}
36215
36216func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
36217	type NoMethod TargetInstancesScopedListWarning
36218	raw := NoMethod(*s)
36219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36220}
36221
36222type TargetInstancesScopedListWarningData struct {
36223	// Key: [Output Only] A key that provides more detail on the warning
36224	// being returned. For example, for warnings where there are no results
36225	// in a list request for a particular zone, this key might be scope and
36226	// the key value might be the zone name. Other examples might be a key
36227	// indicating a deprecated resource and a suggested replacement, or a
36228	// warning about invalid network settings (for example, if an instance
36229	// attempts to perform IP forwarding but is not enabled for IP
36230	// forwarding).
36231	Key string `json:"key,omitempty"`
36232
36233	// Value: [Output Only] A warning data value corresponding to the key.
36234	Value string `json:"value,omitempty"`
36235
36236	// ForceSendFields is a list of field names (e.g. "Key") to
36237	// unconditionally include in API requests. By default, fields with
36238	// empty values are omitted from API requests. However, any non-pointer,
36239	// non-interface field appearing in ForceSendFields will be sent to the
36240	// server regardless of whether the field is empty or not. This may be
36241	// used to include empty fields in Patch requests.
36242	ForceSendFields []string `json:"-"`
36243
36244	// NullFields is a list of field names (e.g. "Key") to include in API
36245	// requests with the JSON null value. By default, fields with empty
36246	// values are omitted from API requests. However, any field with an
36247	// empty value appearing in NullFields will be sent to the server as
36248	// null. It is an error if a field in this list has a non-empty value.
36249	// This may be used to include null fields in Patch requests.
36250	NullFields []string `json:"-"`
36251}
36252
36253func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
36254	type NoMethod TargetInstancesScopedListWarningData
36255	raw := NoMethod(*s)
36256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36257}
36258
36259// TargetPool: Represents a Target Pool resource.
36260//
36261// Target pools are used for network TCP/UDP load balancing. A target
36262// pool references member instances, an associated legacy
36263// HttpHealthCheck resource, and, optionally, a backup target pool. For
36264// more information, read Using target pools. (== resource_for
36265// {$api_version}.targetPools ==)
36266type TargetPool struct {
36267	// BackupPool: This field is applicable only when the containing target
36268	// pool is serving a forwarding rule as the primary pool, and its
36269	// failoverRatio field is properly set to a value between [0,
36270	// 1].
36271	//
36272	// backupPool and failoverRatio together define the fallback behavior of
36273	// the primary target pool: if the ratio of the healthy instances in the
36274	// primary pool is at or below failoverRatio, traffic arriving at the
36275	// load-balanced IP will be directed to the backup pool.
36276	//
36277	// In case where failoverRatio and backupPool are not set, or all the
36278	// instances in the backup pool are unhealthy, the traffic will be
36279	// directed back to the primary pool in the "force" mode, where traffic
36280	// will be spread to the healthy instances with the best effort, or to
36281	// all instances when no instance is healthy.
36282	BackupPool string `json:"backupPool,omitempty"`
36283
36284	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36285	// format.
36286	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36287
36288	// Description: An optional description of this resource. Provide this
36289	// property when you create the resource.
36290	Description string `json:"description,omitempty"`
36291
36292	// FailoverRatio: This field is applicable only when the containing
36293	// target pool is serving a forwarding rule as the primary pool (i.e.,
36294	// not as a backup pool to some other target pool). The value of the
36295	// field must be in [0, 1].
36296	//
36297	// If set, backupPool must also be set. They together define the
36298	// fallback behavior of the primary target pool: if the ratio of the
36299	// healthy instances in the primary pool is at or below this number,
36300	// traffic arriving at the load-balanced IP will be directed to the
36301	// backup pool.
36302	//
36303	// In case where failoverRatio is not set or all the instances in the
36304	// backup pool are unhealthy, the traffic will be directed back to the
36305	// primary pool in the "force" mode, where traffic will be spread to the
36306	// healthy instances with the best effort, or to all instances when no
36307	// instance is healthy.
36308	FailoverRatio float64 `json:"failoverRatio,omitempty"`
36309
36310	// HealthChecks: The URL of the HttpHealthCheck resource. A member
36311	// instance in this pool is considered healthy if and only if the health
36312	// checks pass. An empty list means all member instances will be
36313	// considered healthy at all times. Only HttpHealthChecks are supported.
36314	// Only one health check may be specified.
36315	HealthChecks []string `json:"healthChecks,omitempty"`
36316
36317	// Id: [Output Only] The unique identifier for the resource. This
36318	// identifier is defined by the server.
36319	Id uint64 `json:"id,omitempty,string"`
36320
36321	// Instances: A list of resource URLs to the virtual machine instances
36322	// serving this pool. They must live in zones contained in the same
36323	// region as this pool.
36324	Instances []string `json:"instances,omitempty"`
36325
36326	// Kind: [Output Only] Type of the resource. Always compute#targetPool
36327	// for target pools.
36328	Kind string `json:"kind,omitempty"`
36329
36330	// Name: Name of the resource. Provided by the client when the resource
36331	// is created. The name must be 1-63 characters long, and comply with
36332	// RFC1035. Specifically, the name must be 1-63 characters long and
36333	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36334	// the first character must be a lowercase letter, and all following
36335	// characters must be a dash, lowercase letter, or digit, except the
36336	// last character, which cannot be a dash.
36337	Name string `json:"name,omitempty"`
36338
36339	// Region: [Output Only] URL of the region where the target pool
36340	// resides.
36341	Region string `json:"region,omitempty"`
36342
36343	// SelfLink: [Output Only] Server-defined URL for the resource.
36344	SelfLink string `json:"selfLink,omitempty"`
36345
36346	// SessionAffinity: Session affinity option, must be one of the
36347	// following values:
36348	// NONE: Connections from the same client IP may go to any instance in
36349	// the pool.
36350	// CLIENT_IP: Connections from the same client IP will go to the same
36351	// instance in the pool while that instance remains
36352	// healthy.
36353	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
36354	// protocol will go to the same instance in the pool while that instance
36355	// remains healthy.
36356	//
36357	// Possible values:
36358	//   "CLIENT_IP"
36359	//   "CLIENT_IP_PORT_PROTO"
36360	//   "CLIENT_IP_PROTO"
36361	//   "GENERATED_COOKIE"
36362	//   "HEADER_FIELD"
36363	//   "HTTP_COOKIE"
36364	//   "NONE"
36365	SessionAffinity string `json:"sessionAffinity,omitempty"`
36366
36367	// ServerResponse contains the HTTP response code and headers from the
36368	// server.
36369	googleapi.ServerResponse `json:"-"`
36370
36371	// ForceSendFields is a list of field names (e.g. "BackupPool") to
36372	// unconditionally include in API requests. By default, fields with
36373	// empty values are omitted from API requests. However, any non-pointer,
36374	// non-interface field appearing in ForceSendFields will be sent to the
36375	// server regardless of whether the field is empty or not. This may be
36376	// used to include empty fields in Patch requests.
36377	ForceSendFields []string `json:"-"`
36378
36379	// NullFields is a list of field names (e.g. "BackupPool") to include in
36380	// API requests with the JSON null value. By default, fields with empty
36381	// values are omitted from API requests. However, any field with an
36382	// empty value appearing in NullFields will be sent to the server as
36383	// null. It is an error if a field in this list has a non-empty value.
36384	// This may be used to include null fields in Patch requests.
36385	NullFields []string `json:"-"`
36386}
36387
36388func (s *TargetPool) MarshalJSON() ([]byte, error) {
36389	type NoMethod TargetPool
36390	raw := NoMethod(*s)
36391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36392}
36393
36394func (s *TargetPool) UnmarshalJSON(data []byte) error {
36395	type NoMethod TargetPool
36396	var s1 struct {
36397		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
36398		*NoMethod
36399	}
36400	s1.NoMethod = (*NoMethod)(s)
36401	if err := json.Unmarshal(data, &s1); err != nil {
36402		return err
36403	}
36404	s.FailoverRatio = float64(s1.FailoverRatio)
36405	return nil
36406}
36407
36408type TargetPoolAggregatedList struct {
36409	// Id: [Output Only] Unique identifier for the resource; defined by the
36410	// server.
36411	Id string `json:"id,omitempty"`
36412
36413	// Items: A list of TargetPool resources.
36414	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
36415
36416	// Kind: [Output Only] Type of resource. Always
36417	// compute#targetPoolAggregatedList for aggregated lists of target
36418	// pools.
36419	Kind string `json:"kind,omitempty"`
36420
36421	// NextPageToken: [Output Only] This token allows you to get the next
36422	// page of results for list requests. If the number of results is larger
36423	// than maxResults, use the nextPageToken as a value for the query
36424	// parameter pageToken in the next list request. Subsequent list
36425	// requests will have their own nextPageToken to continue paging through
36426	// the results.
36427	NextPageToken string `json:"nextPageToken,omitempty"`
36428
36429	// SelfLink: [Output Only] Server-defined URL for this resource.
36430	SelfLink string `json:"selfLink,omitempty"`
36431
36432	// Warning: [Output Only] Informational warning message.
36433	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
36434
36435	// ServerResponse contains the HTTP response code and headers from the
36436	// server.
36437	googleapi.ServerResponse `json:"-"`
36438
36439	// ForceSendFields is a list of field names (e.g. "Id") to
36440	// unconditionally include in API requests. By default, fields with
36441	// empty values are omitted from API requests. However, any non-pointer,
36442	// non-interface field appearing in ForceSendFields will be sent to the
36443	// server regardless of whether the field is empty or not. This may be
36444	// used to include empty fields in Patch requests.
36445	ForceSendFields []string `json:"-"`
36446
36447	// NullFields is a list of field names (e.g. "Id") to include in API
36448	// requests with the JSON null value. By default, fields with empty
36449	// values are omitted from API requests. However, any field with an
36450	// empty value appearing in NullFields will be sent to the server as
36451	// null. It is an error if a field in this list has a non-empty value.
36452	// This may be used to include null fields in Patch requests.
36453	NullFields []string `json:"-"`
36454}
36455
36456func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
36457	type NoMethod TargetPoolAggregatedList
36458	raw := NoMethod(*s)
36459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36460}
36461
36462// TargetPoolAggregatedListWarning: [Output Only] Informational warning
36463// message.
36464type TargetPoolAggregatedListWarning struct {
36465	// Code: [Output Only] A warning code, if applicable. For example,
36466	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36467	// the response.
36468	//
36469	// Possible values:
36470	//   "CLEANUP_FAILED"
36471	//   "DEPRECATED_RESOURCE_USED"
36472	//   "DEPRECATED_TYPE_USED"
36473	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36474	//   "EXPERIMENTAL_TYPE_USED"
36475	//   "EXTERNAL_API_WARNING"
36476	//   "FIELD_VALUE_OVERRIDEN"
36477	//   "INJECTED_KERNELS_DEPRECATED"
36478	//   "MISSING_TYPE_DEPENDENCY"
36479	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36480	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36481	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36482	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36483	//   "NEXT_HOP_NOT_RUNNING"
36484	//   "NOT_CRITICAL_ERROR"
36485	//   "NO_RESULTS_ON_PAGE"
36486	//   "REQUIRED_TOS_AGREEMENT"
36487	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36488	//   "RESOURCE_NOT_DELETED"
36489	//   "SCHEMA_VALIDATION_IGNORED"
36490	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36491	//   "UNDECLARED_PROPERTIES"
36492	//   "UNREACHABLE"
36493	Code string `json:"code,omitempty"`
36494
36495	// Data: [Output Only] Metadata about this warning in key: value format.
36496	// For example:
36497	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36498	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
36499
36500	// Message: [Output Only] A human-readable description of the warning
36501	// code.
36502	Message string `json:"message,omitempty"`
36503
36504	// ForceSendFields is a list of field names (e.g. "Code") to
36505	// unconditionally include in API requests. By default, fields with
36506	// empty values are omitted from API requests. However, any non-pointer,
36507	// non-interface field appearing in ForceSendFields will be sent to the
36508	// server regardless of whether the field is empty or not. This may be
36509	// used to include empty fields in Patch requests.
36510	ForceSendFields []string `json:"-"`
36511
36512	// NullFields is a list of field names (e.g. "Code") to include in API
36513	// requests with the JSON null value. By default, fields with empty
36514	// values are omitted from API requests. However, any field with an
36515	// empty value appearing in NullFields will be sent to the server as
36516	// null. It is an error if a field in this list has a non-empty value.
36517	// This may be used to include null fields in Patch requests.
36518	NullFields []string `json:"-"`
36519}
36520
36521func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
36522	type NoMethod TargetPoolAggregatedListWarning
36523	raw := NoMethod(*s)
36524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36525}
36526
36527type TargetPoolAggregatedListWarningData struct {
36528	// Key: [Output Only] A key that provides more detail on the warning
36529	// being returned. For example, for warnings where there are no results
36530	// in a list request for a particular zone, this key might be scope and
36531	// the key value might be the zone name. Other examples might be a key
36532	// indicating a deprecated resource and a suggested replacement, or a
36533	// warning about invalid network settings (for example, if an instance
36534	// attempts to perform IP forwarding but is not enabled for IP
36535	// forwarding).
36536	Key string `json:"key,omitempty"`
36537
36538	// Value: [Output Only] A warning data value corresponding to the key.
36539	Value string `json:"value,omitempty"`
36540
36541	// ForceSendFields is a list of field names (e.g. "Key") to
36542	// unconditionally include in API requests. By default, fields with
36543	// empty values are omitted from API requests. However, any non-pointer,
36544	// non-interface field appearing in ForceSendFields will be sent to the
36545	// server regardless of whether the field is empty or not. This may be
36546	// used to include empty fields in Patch requests.
36547	ForceSendFields []string `json:"-"`
36548
36549	// NullFields is a list of field names (e.g. "Key") to include in API
36550	// requests with the JSON null value. By default, fields with empty
36551	// values are omitted from API requests. However, any field with an
36552	// empty value appearing in NullFields will be sent to the server as
36553	// null. It is an error if a field in this list has a non-empty value.
36554	// This may be used to include null fields in Patch requests.
36555	NullFields []string `json:"-"`
36556}
36557
36558func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
36559	type NoMethod TargetPoolAggregatedListWarningData
36560	raw := NoMethod(*s)
36561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36562}
36563
36564type TargetPoolInstanceHealth struct {
36565	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
36566
36567	// Kind: [Output Only] Type of resource. Always
36568	// compute#targetPoolInstanceHealth when checking the health of an
36569	// instance.
36570	Kind string `json:"kind,omitempty"`
36571
36572	// ServerResponse contains the HTTP response code and headers from the
36573	// server.
36574	googleapi.ServerResponse `json:"-"`
36575
36576	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
36577	// unconditionally include in API requests. By default, fields with
36578	// empty values are omitted from API requests. However, any non-pointer,
36579	// non-interface field appearing in ForceSendFields will be sent to the
36580	// server regardless of whether the field is empty or not. This may be
36581	// used to include empty fields in Patch requests.
36582	ForceSendFields []string `json:"-"`
36583
36584	// NullFields is a list of field names (e.g. "HealthStatus") to include
36585	// in API requests with the JSON null value. By default, fields with
36586	// empty values are omitted from API requests. However, any field with
36587	// an empty value appearing in NullFields will be sent to the server as
36588	// null. It is an error if a field in this list has a non-empty value.
36589	// This may be used to include null fields in Patch requests.
36590	NullFields []string `json:"-"`
36591}
36592
36593func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
36594	type NoMethod TargetPoolInstanceHealth
36595	raw := NoMethod(*s)
36596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36597}
36598
36599// TargetPoolList: Contains a list of TargetPool resources.
36600type TargetPoolList struct {
36601	// Id: [Output Only] Unique identifier for the resource; defined by the
36602	// server.
36603	Id string `json:"id,omitempty"`
36604
36605	// Items: A list of TargetPool resources.
36606	Items []*TargetPool `json:"items,omitempty"`
36607
36608	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
36609	// for lists of target pools.
36610	Kind string `json:"kind,omitempty"`
36611
36612	// NextPageToken: [Output Only] This token allows you to get the next
36613	// page of results for list requests. If the number of results is larger
36614	// than maxResults, use the nextPageToken as a value for the query
36615	// parameter pageToken in the next list request. Subsequent list
36616	// requests will have their own nextPageToken to continue paging through
36617	// the results.
36618	NextPageToken string `json:"nextPageToken,omitempty"`
36619
36620	// SelfLink: [Output Only] Server-defined URL for this resource.
36621	SelfLink string `json:"selfLink,omitempty"`
36622
36623	// Warning: [Output Only] Informational warning message.
36624	Warning *TargetPoolListWarning `json:"warning,omitempty"`
36625
36626	// ServerResponse contains the HTTP response code and headers from the
36627	// server.
36628	googleapi.ServerResponse `json:"-"`
36629
36630	// ForceSendFields is a list of field names (e.g. "Id") to
36631	// unconditionally include in API requests. By default, fields with
36632	// empty values are omitted from API requests. However, any non-pointer,
36633	// non-interface field appearing in ForceSendFields will be sent to the
36634	// server regardless of whether the field is empty or not. This may be
36635	// used to include empty fields in Patch requests.
36636	ForceSendFields []string `json:"-"`
36637
36638	// NullFields is a list of field names (e.g. "Id") to include in API
36639	// requests with the JSON null value. By default, fields with empty
36640	// values are omitted from API requests. However, any field with an
36641	// empty value appearing in NullFields will be sent to the server as
36642	// null. It is an error if a field in this list has a non-empty value.
36643	// This may be used to include null fields in Patch requests.
36644	NullFields []string `json:"-"`
36645}
36646
36647func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
36648	type NoMethod TargetPoolList
36649	raw := NoMethod(*s)
36650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36651}
36652
36653// TargetPoolListWarning: [Output Only] Informational warning message.
36654type TargetPoolListWarning struct {
36655	// Code: [Output Only] A warning code, if applicable. For example,
36656	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36657	// the response.
36658	//
36659	// Possible values:
36660	//   "CLEANUP_FAILED"
36661	//   "DEPRECATED_RESOURCE_USED"
36662	//   "DEPRECATED_TYPE_USED"
36663	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36664	//   "EXPERIMENTAL_TYPE_USED"
36665	//   "EXTERNAL_API_WARNING"
36666	//   "FIELD_VALUE_OVERRIDEN"
36667	//   "INJECTED_KERNELS_DEPRECATED"
36668	//   "MISSING_TYPE_DEPENDENCY"
36669	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36670	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36671	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36672	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36673	//   "NEXT_HOP_NOT_RUNNING"
36674	//   "NOT_CRITICAL_ERROR"
36675	//   "NO_RESULTS_ON_PAGE"
36676	//   "REQUIRED_TOS_AGREEMENT"
36677	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36678	//   "RESOURCE_NOT_DELETED"
36679	//   "SCHEMA_VALIDATION_IGNORED"
36680	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36681	//   "UNDECLARED_PROPERTIES"
36682	//   "UNREACHABLE"
36683	Code string `json:"code,omitempty"`
36684
36685	// Data: [Output Only] Metadata about this warning in key: value format.
36686	// For example:
36687	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36688	Data []*TargetPoolListWarningData `json:"data,omitempty"`
36689
36690	// Message: [Output Only] A human-readable description of the warning
36691	// code.
36692	Message string `json:"message,omitempty"`
36693
36694	// ForceSendFields is a list of field names (e.g. "Code") to
36695	// unconditionally include in API requests. By default, fields with
36696	// empty values are omitted from API requests. However, any non-pointer,
36697	// non-interface field appearing in ForceSendFields will be sent to the
36698	// server regardless of whether the field is empty or not. This may be
36699	// used to include empty fields in Patch requests.
36700	ForceSendFields []string `json:"-"`
36701
36702	// NullFields is a list of field names (e.g. "Code") to include in API
36703	// requests with the JSON null value. By default, fields with empty
36704	// values are omitted from API requests. However, any field with an
36705	// empty value appearing in NullFields will be sent to the server as
36706	// null. It is an error if a field in this list has a non-empty value.
36707	// This may be used to include null fields in Patch requests.
36708	NullFields []string `json:"-"`
36709}
36710
36711func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
36712	type NoMethod TargetPoolListWarning
36713	raw := NoMethod(*s)
36714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36715}
36716
36717type TargetPoolListWarningData struct {
36718	// Key: [Output Only] A key that provides more detail on the warning
36719	// being returned. For example, for warnings where there are no results
36720	// in a list request for a particular zone, this key might be scope and
36721	// the key value might be the zone name. Other examples might be a key
36722	// indicating a deprecated resource and a suggested replacement, or a
36723	// warning about invalid network settings (for example, if an instance
36724	// attempts to perform IP forwarding but is not enabled for IP
36725	// forwarding).
36726	Key string `json:"key,omitempty"`
36727
36728	// Value: [Output Only] A warning data value corresponding to the key.
36729	Value string `json:"value,omitempty"`
36730
36731	// ForceSendFields is a list of field names (e.g. "Key") to
36732	// unconditionally include in API requests. By default, fields with
36733	// empty values are omitted from API requests. However, any non-pointer,
36734	// non-interface field appearing in ForceSendFields will be sent to the
36735	// server regardless of whether the field is empty or not. This may be
36736	// used to include empty fields in Patch requests.
36737	ForceSendFields []string `json:"-"`
36738
36739	// NullFields is a list of field names (e.g. "Key") to include in API
36740	// requests with the JSON null value. By default, fields with empty
36741	// values are omitted from API requests. However, any field with an
36742	// empty value appearing in NullFields will be sent to the server as
36743	// null. It is an error if a field in this list has a non-empty value.
36744	// This may be used to include null fields in Patch requests.
36745	NullFields []string `json:"-"`
36746}
36747
36748func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
36749	type NoMethod TargetPoolListWarningData
36750	raw := NoMethod(*s)
36751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36752}
36753
36754type TargetPoolsAddHealthCheckRequest struct {
36755	// HealthChecks: The HttpHealthCheck to add to the target pool.
36756	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
36757
36758	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
36759	// unconditionally include in API requests. By default, fields with
36760	// empty values are omitted from API requests. However, any non-pointer,
36761	// non-interface field appearing in ForceSendFields will be sent to the
36762	// server regardless of whether the field is empty or not. This may be
36763	// used to include empty fields in Patch requests.
36764	ForceSendFields []string `json:"-"`
36765
36766	// NullFields is a list of field names (e.g. "HealthChecks") to include
36767	// in API requests with the JSON null value. By default, fields with
36768	// empty values are omitted from API requests. However, any field with
36769	// an empty value appearing in NullFields will be sent to the server as
36770	// null. It is an error if a field in this list has a non-empty value.
36771	// This may be used to include null fields in Patch requests.
36772	NullFields []string `json:"-"`
36773}
36774
36775func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
36776	type NoMethod TargetPoolsAddHealthCheckRequest
36777	raw := NoMethod(*s)
36778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36779}
36780
36781type TargetPoolsAddInstanceRequest struct {
36782	// Instances: A full or partial URL to an instance to add to this target
36783	// pool. This can be a full or partial URL. For example, the following
36784	// are valid URLs:
36785	// -
36786	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
36787	// - projects/project-id/zones/zone/instances/instance-name
36788	// - zones/zone/instances/instance-name
36789	Instances []*InstanceReference `json:"instances,omitempty"`
36790
36791	// ForceSendFields is a list of field names (e.g. "Instances") to
36792	// unconditionally include in API requests. By default, fields with
36793	// empty values are omitted from API requests. However, any non-pointer,
36794	// non-interface field appearing in ForceSendFields will be sent to the
36795	// server regardless of whether the field is empty or not. This may be
36796	// used to include empty fields in Patch requests.
36797	ForceSendFields []string `json:"-"`
36798
36799	// NullFields is a list of field names (e.g. "Instances") to include in
36800	// API requests with the JSON null value. By default, fields with empty
36801	// values are omitted from API requests. However, any field with an
36802	// empty value appearing in NullFields will be sent to the server as
36803	// null. It is an error if a field in this list has a non-empty value.
36804	// This may be used to include null fields in Patch requests.
36805	NullFields []string `json:"-"`
36806}
36807
36808func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
36809	type NoMethod TargetPoolsAddInstanceRequest
36810	raw := NoMethod(*s)
36811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36812}
36813
36814type TargetPoolsRemoveHealthCheckRequest struct {
36815	// HealthChecks: Health check URL to be removed. This can be a full or
36816	// valid partial URL. For example, the following are valid URLs:
36817	// -
36818	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
36819	// - projects/project/global/httpHealthChecks/health-check
36820	// - global/httpHealthChecks/health-check
36821	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
36822
36823	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
36824	// unconditionally include in API requests. By default, fields with
36825	// empty values are omitted from API requests. However, any non-pointer,
36826	// non-interface field appearing in ForceSendFields will be sent to the
36827	// server regardless of whether the field is empty or not. This may be
36828	// used to include empty fields in Patch requests.
36829	ForceSendFields []string `json:"-"`
36830
36831	// NullFields is a list of field names (e.g. "HealthChecks") to include
36832	// in API requests with the JSON null value. By default, fields with
36833	// empty values are omitted from API requests. However, any field with
36834	// an empty value appearing in NullFields will be sent to the server as
36835	// null. It is an error if a field in this list has a non-empty value.
36836	// This may be used to include null fields in Patch requests.
36837	NullFields []string `json:"-"`
36838}
36839
36840func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
36841	type NoMethod TargetPoolsRemoveHealthCheckRequest
36842	raw := NoMethod(*s)
36843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36844}
36845
36846type TargetPoolsRemoveInstanceRequest struct {
36847	// Instances: URLs of the instances to be removed from target pool.
36848	Instances []*InstanceReference `json:"instances,omitempty"`
36849
36850	// ForceSendFields is a list of field names (e.g. "Instances") to
36851	// unconditionally include in API requests. By default, fields with
36852	// empty values are omitted from API requests. However, any non-pointer,
36853	// non-interface field appearing in ForceSendFields will be sent to the
36854	// server regardless of whether the field is empty or not. This may be
36855	// used to include empty fields in Patch requests.
36856	ForceSendFields []string `json:"-"`
36857
36858	// NullFields is a list of field names (e.g. "Instances") to include in
36859	// API requests with the JSON null value. By default, fields with empty
36860	// values are omitted from API requests. However, any field with an
36861	// empty value appearing in NullFields will be sent to the server as
36862	// null. It is an error if a field in this list has a non-empty value.
36863	// This may be used to include null fields in Patch requests.
36864	NullFields []string `json:"-"`
36865}
36866
36867func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
36868	type NoMethod TargetPoolsRemoveInstanceRequest
36869	raw := NoMethod(*s)
36870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36871}
36872
36873type TargetPoolsScopedList struct {
36874	// TargetPools: A list of target pools contained in this scope.
36875	TargetPools []*TargetPool `json:"targetPools,omitempty"`
36876
36877	// Warning: Informational warning which replaces the list of addresses
36878	// when the list is empty.
36879	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
36880
36881	// ForceSendFields is a list of field names (e.g. "TargetPools") to
36882	// unconditionally include in API requests. By default, fields with
36883	// empty values are omitted from API requests. However, any non-pointer,
36884	// non-interface field appearing in ForceSendFields will be sent to the
36885	// server regardless of whether the field is empty or not. This may be
36886	// used to include empty fields in Patch requests.
36887	ForceSendFields []string `json:"-"`
36888
36889	// NullFields is a list of field names (e.g. "TargetPools") to include
36890	// in API requests with the JSON null value. By default, fields with
36891	// empty values are omitted from API requests. However, any field with
36892	// an empty value appearing in NullFields will be sent to the server as
36893	// null. It is an error if a field in this list has a non-empty value.
36894	// This may be used to include null fields in Patch requests.
36895	NullFields []string `json:"-"`
36896}
36897
36898func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
36899	type NoMethod TargetPoolsScopedList
36900	raw := NoMethod(*s)
36901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36902}
36903
36904// TargetPoolsScopedListWarning: Informational warning which replaces
36905// the list of addresses when the list is empty.
36906type TargetPoolsScopedListWarning struct {
36907	// Code: [Output Only] A warning code, if applicable. For example,
36908	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36909	// the response.
36910	//
36911	// Possible values:
36912	//   "CLEANUP_FAILED"
36913	//   "DEPRECATED_RESOURCE_USED"
36914	//   "DEPRECATED_TYPE_USED"
36915	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36916	//   "EXPERIMENTAL_TYPE_USED"
36917	//   "EXTERNAL_API_WARNING"
36918	//   "FIELD_VALUE_OVERRIDEN"
36919	//   "INJECTED_KERNELS_DEPRECATED"
36920	//   "MISSING_TYPE_DEPENDENCY"
36921	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36922	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36923	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36924	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36925	//   "NEXT_HOP_NOT_RUNNING"
36926	//   "NOT_CRITICAL_ERROR"
36927	//   "NO_RESULTS_ON_PAGE"
36928	//   "REQUIRED_TOS_AGREEMENT"
36929	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36930	//   "RESOURCE_NOT_DELETED"
36931	//   "SCHEMA_VALIDATION_IGNORED"
36932	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36933	//   "UNDECLARED_PROPERTIES"
36934	//   "UNREACHABLE"
36935	Code string `json:"code,omitempty"`
36936
36937	// Data: [Output Only] Metadata about this warning in key: value format.
36938	// For example:
36939	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36940	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
36941
36942	// Message: [Output Only] A human-readable description of the warning
36943	// code.
36944	Message string `json:"message,omitempty"`
36945
36946	// ForceSendFields is a list of field names (e.g. "Code") to
36947	// unconditionally include in API requests. By default, fields with
36948	// empty values are omitted from API requests. However, any non-pointer,
36949	// non-interface field appearing in ForceSendFields will be sent to the
36950	// server regardless of whether the field is empty or not. This may be
36951	// used to include empty fields in Patch requests.
36952	ForceSendFields []string `json:"-"`
36953
36954	// NullFields is a list of field names (e.g. "Code") to include in API
36955	// requests with the JSON null value. By default, fields with empty
36956	// values are omitted from API requests. However, any field with an
36957	// empty value appearing in NullFields will be sent to the server as
36958	// null. It is an error if a field in this list has a non-empty value.
36959	// This may be used to include null fields in Patch requests.
36960	NullFields []string `json:"-"`
36961}
36962
36963func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
36964	type NoMethod TargetPoolsScopedListWarning
36965	raw := NoMethod(*s)
36966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36967}
36968
36969type TargetPoolsScopedListWarningData struct {
36970	// Key: [Output Only] A key that provides more detail on the warning
36971	// being returned. For example, for warnings where there are no results
36972	// in a list request for a particular zone, this key might be scope and
36973	// the key value might be the zone name. Other examples might be a key
36974	// indicating a deprecated resource and a suggested replacement, or a
36975	// warning about invalid network settings (for example, if an instance
36976	// attempts to perform IP forwarding but is not enabled for IP
36977	// forwarding).
36978	Key string `json:"key,omitempty"`
36979
36980	// Value: [Output Only] A warning data value corresponding to the key.
36981	Value string `json:"value,omitempty"`
36982
36983	// ForceSendFields is a list of field names (e.g. "Key") to
36984	// unconditionally include in API requests. By default, fields with
36985	// empty values are omitted from API requests. However, any non-pointer,
36986	// non-interface field appearing in ForceSendFields will be sent to the
36987	// server regardless of whether the field is empty or not. This may be
36988	// used to include empty fields in Patch requests.
36989	ForceSendFields []string `json:"-"`
36990
36991	// NullFields is a list of field names (e.g. "Key") to include in API
36992	// requests with the JSON null value. By default, fields with empty
36993	// values are omitted from API requests. However, any field with an
36994	// empty value appearing in NullFields will be sent to the server as
36995	// null. It is an error if a field in this list has a non-empty value.
36996	// This may be used to include null fields in Patch requests.
36997	NullFields []string `json:"-"`
36998}
36999
37000func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
37001	type NoMethod TargetPoolsScopedListWarningData
37002	raw := NoMethod(*s)
37003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37004}
37005
37006type TargetReference struct {
37007	Target string `json:"target,omitempty"`
37008
37009	// ForceSendFields is a list of field names (e.g. "Target") to
37010	// unconditionally include in API requests. By default, fields with
37011	// empty values are omitted from API requests. However, any non-pointer,
37012	// non-interface field appearing in ForceSendFields will be sent to the
37013	// server regardless of whether the field is empty or not. This may be
37014	// used to include empty fields in Patch requests.
37015	ForceSendFields []string `json:"-"`
37016
37017	// NullFields is a list of field names (e.g. "Target") to include in API
37018	// requests with the JSON null value. By default, fields with empty
37019	// values are omitted from API requests. However, any field with an
37020	// empty value appearing in NullFields will be sent to the server as
37021	// null. It is an error if a field in this list has a non-empty value.
37022	// This may be used to include null fields in Patch requests.
37023	NullFields []string `json:"-"`
37024}
37025
37026func (s *TargetReference) MarshalJSON() ([]byte, error) {
37027	type NoMethod TargetReference
37028	raw := NoMethod(*s)
37029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37030}
37031
37032type TargetSslProxiesSetBackendServiceRequest struct {
37033	// Service: The URL of the new BackendService resource for the
37034	// targetSslProxy.
37035	Service string `json:"service,omitempty"`
37036
37037	// ForceSendFields is a list of field names (e.g. "Service") to
37038	// unconditionally include in API requests. By default, fields with
37039	// empty values are omitted from API requests. However, any non-pointer,
37040	// non-interface field appearing in ForceSendFields will be sent to the
37041	// server regardless of whether the field is empty or not. This may be
37042	// used to include empty fields in Patch requests.
37043	ForceSendFields []string `json:"-"`
37044
37045	// NullFields is a list of field names (e.g. "Service") to include in
37046	// API requests with the JSON null value. By default, fields with empty
37047	// values are omitted from API requests. However, any field with an
37048	// empty value appearing in NullFields will be sent to the server as
37049	// null. It is an error if a field in this list has a non-empty value.
37050	// This may be used to include null fields in Patch requests.
37051	NullFields []string `json:"-"`
37052}
37053
37054func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
37055	type NoMethod TargetSslProxiesSetBackendServiceRequest
37056	raw := NoMethod(*s)
37057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37058}
37059
37060type TargetSslProxiesSetProxyHeaderRequest struct {
37061	// ProxyHeader: The new type of proxy header to append before sending
37062	// data to the backend. NONE or PROXY_V1 are allowed.
37063	//
37064	// Possible values:
37065	//   "NONE"
37066	//   "PROXY_V1"
37067	ProxyHeader string `json:"proxyHeader,omitempty"`
37068
37069	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
37070	// unconditionally include in API requests. By default, fields with
37071	// empty values are omitted from API requests. However, any non-pointer,
37072	// non-interface field appearing in ForceSendFields will be sent to the
37073	// server regardless of whether the field is empty or not. This may be
37074	// used to include empty fields in Patch requests.
37075	ForceSendFields []string `json:"-"`
37076
37077	// NullFields is a list of field names (e.g. "ProxyHeader") to include
37078	// in API requests with the JSON null value. By default, fields with
37079	// empty values are omitted from API requests. However, any field with
37080	// an empty value appearing in NullFields will be sent to the server as
37081	// null. It is an error if a field in this list has a non-empty value.
37082	// This may be used to include null fields in Patch requests.
37083	NullFields []string `json:"-"`
37084}
37085
37086func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
37087	type NoMethod TargetSslProxiesSetProxyHeaderRequest
37088	raw := NoMethod(*s)
37089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37090}
37091
37092type TargetSslProxiesSetSslCertificatesRequest struct {
37093	// SslCertificates: New set of URLs to SslCertificate resources to
37094	// associate with this TargetSslProxy. Currently exactly one ssl
37095	// certificate must be specified.
37096	SslCertificates []string `json:"sslCertificates,omitempty"`
37097
37098	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
37099	// unconditionally include in API requests. By default, fields with
37100	// empty values are omitted from API requests. However, any non-pointer,
37101	// non-interface field appearing in ForceSendFields will be sent to the
37102	// server regardless of whether the field is empty or not. This may be
37103	// used to include empty fields in Patch requests.
37104	ForceSendFields []string `json:"-"`
37105
37106	// NullFields is a list of field names (e.g. "SslCertificates") to
37107	// include in API requests with the JSON null value. By default, fields
37108	// with empty values are omitted from API requests. However, any field
37109	// with an empty value appearing in NullFields will be sent to the
37110	// server as null. It is an error if a field in this list has a
37111	// non-empty value. This may be used to include null fields in Patch
37112	// requests.
37113	NullFields []string `json:"-"`
37114}
37115
37116func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
37117	type NoMethod TargetSslProxiesSetSslCertificatesRequest
37118	raw := NoMethod(*s)
37119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37120}
37121
37122// TargetSslProxy: Represents a Target SSL Proxy resource.
37123//
37124// A target SSL proxy is a component of a SSL Proxy load balancer.
37125// Global forwarding rules reference a target SSL proxy, and the target
37126// proxy then references an external backend service. For more
37127// information, read Using Target Proxies. (== resource_for
37128// {$api_version}.targetSslProxies ==)
37129type TargetSslProxy struct {
37130	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37131	// format.
37132	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37133
37134	// Description: An optional description of this resource. Provide this
37135	// property when you create the resource.
37136	Description string `json:"description,omitempty"`
37137
37138	// Id: [Output Only] The unique identifier for the resource. This
37139	// identifier is defined by the server.
37140	Id uint64 `json:"id,omitempty,string"`
37141
37142	// Kind: [Output Only] Type of the resource. Always
37143	// compute#targetSslProxy for target SSL proxies.
37144	Kind string `json:"kind,omitempty"`
37145
37146	// Name: Name of the resource. Provided by the client when the resource
37147	// is created. The name must be 1-63 characters long, and comply with
37148	// RFC1035. Specifically, the name must be 1-63 characters long and
37149	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37150	// the first character must be a lowercase letter, and all following
37151	// characters must be a dash, lowercase letter, or digit, except the
37152	// last character, which cannot be a dash.
37153	Name string `json:"name,omitempty"`
37154
37155	// ProxyHeader: Specifies the type of proxy header to append before
37156	// sending data to the backend, either NONE or PROXY_V1. The default is
37157	// NONE.
37158	//
37159	// Possible values:
37160	//   "NONE"
37161	//   "PROXY_V1"
37162	ProxyHeader string `json:"proxyHeader,omitempty"`
37163
37164	// SelfLink: [Output Only] Server-defined URL for the resource.
37165	SelfLink string `json:"selfLink,omitempty"`
37166
37167	// Service: URL to the BackendService resource.
37168	Service string `json:"service,omitempty"`
37169
37170	// SslCertificates: URLs to SslCertificate resources that are used to
37171	// authenticate connections to Backends. At least one SSL certificate
37172	// must be specified. Currently, you may specify up to 15 SSL
37173	// certificates.
37174	SslCertificates []string `json:"sslCertificates,omitempty"`
37175
37176	// SslPolicy: URL of SslPolicy resource that will be associated with the
37177	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
37178	// not have any SSL policy configured.
37179	SslPolicy string `json:"sslPolicy,omitempty"`
37180
37181	// ServerResponse contains the HTTP response code and headers from the
37182	// server.
37183	googleapi.ServerResponse `json:"-"`
37184
37185	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
37186	// to unconditionally include in API requests. By default, fields with
37187	// empty values are omitted from API requests. However, any non-pointer,
37188	// non-interface field appearing in ForceSendFields will be sent to the
37189	// server regardless of whether the field is empty or not. This may be
37190	// used to include empty fields in Patch requests.
37191	ForceSendFields []string `json:"-"`
37192
37193	// NullFields is a list of field names (e.g. "CreationTimestamp") to
37194	// include in API requests with the JSON null value. By default, fields
37195	// with empty values are omitted from API requests. However, any field
37196	// with an empty value appearing in NullFields will be sent to the
37197	// server as null. It is an error if a field in this list has a
37198	// non-empty value. This may be used to include null fields in Patch
37199	// requests.
37200	NullFields []string `json:"-"`
37201}
37202
37203func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
37204	type NoMethod TargetSslProxy
37205	raw := NoMethod(*s)
37206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37207}
37208
37209// TargetSslProxyList: Contains a list of TargetSslProxy resources.
37210type TargetSslProxyList struct {
37211	// Id: [Output Only] Unique identifier for the resource; defined by the
37212	// server.
37213	Id string `json:"id,omitempty"`
37214
37215	// Items: A list of TargetSslProxy resources.
37216	Items []*TargetSslProxy `json:"items,omitempty"`
37217
37218	// Kind: Type of resource.
37219	Kind string `json:"kind,omitempty"`
37220
37221	// NextPageToken: [Output Only] This token allows you to get the next
37222	// page of results for list requests. If the number of results is larger
37223	// than maxResults, use the nextPageToken as a value for the query
37224	// parameter pageToken in the next list request. Subsequent list
37225	// requests will have their own nextPageToken to continue paging through
37226	// the results.
37227	NextPageToken string `json:"nextPageToken,omitempty"`
37228
37229	// SelfLink: [Output Only] Server-defined URL for this resource.
37230	SelfLink string `json:"selfLink,omitempty"`
37231
37232	// Warning: [Output Only] Informational warning message.
37233	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
37234
37235	// ServerResponse contains the HTTP response code and headers from the
37236	// server.
37237	googleapi.ServerResponse `json:"-"`
37238
37239	// ForceSendFields is a list of field names (e.g. "Id") to
37240	// unconditionally include in API requests. By default, fields with
37241	// empty values are omitted from API requests. However, any non-pointer,
37242	// non-interface field appearing in ForceSendFields will be sent to the
37243	// server regardless of whether the field is empty or not. This may be
37244	// used to include empty fields in Patch requests.
37245	ForceSendFields []string `json:"-"`
37246
37247	// NullFields is a list of field names (e.g. "Id") to include in API
37248	// requests with the JSON null value. By default, fields with empty
37249	// values are omitted from API requests. However, any field with an
37250	// empty value appearing in NullFields will be sent to the server as
37251	// null. It is an error if a field in this list has a non-empty value.
37252	// This may be used to include null fields in Patch requests.
37253	NullFields []string `json:"-"`
37254}
37255
37256func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
37257	type NoMethod TargetSslProxyList
37258	raw := NoMethod(*s)
37259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37260}
37261
37262// TargetSslProxyListWarning: [Output Only] Informational warning
37263// message.
37264type TargetSslProxyListWarning struct {
37265	// Code: [Output Only] A warning code, if applicable. For example,
37266	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37267	// the response.
37268	//
37269	// Possible values:
37270	//   "CLEANUP_FAILED"
37271	//   "DEPRECATED_RESOURCE_USED"
37272	//   "DEPRECATED_TYPE_USED"
37273	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37274	//   "EXPERIMENTAL_TYPE_USED"
37275	//   "EXTERNAL_API_WARNING"
37276	//   "FIELD_VALUE_OVERRIDEN"
37277	//   "INJECTED_KERNELS_DEPRECATED"
37278	//   "MISSING_TYPE_DEPENDENCY"
37279	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37280	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37281	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37282	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37283	//   "NEXT_HOP_NOT_RUNNING"
37284	//   "NOT_CRITICAL_ERROR"
37285	//   "NO_RESULTS_ON_PAGE"
37286	//   "REQUIRED_TOS_AGREEMENT"
37287	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37288	//   "RESOURCE_NOT_DELETED"
37289	//   "SCHEMA_VALIDATION_IGNORED"
37290	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37291	//   "UNDECLARED_PROPERTIES"
37292	//   "UNREACHABLE"
37293	Code string `json:"code,omitempty"`
37294
37295	// Data: [Output Only] Metadata about this warning in key: value format.
37296	// For example:
37297	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37298	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
37299
37300	// Message: [Output Only] A human-readable description of the warning
37301	// code.
37302	Message string `json:"message,omitempty"`
37303
37304	// ForceSendFields is a list of field names (e.g. "Code") to
37305	// unconditionally include in API requests. By default, fields with
37306	// empty values are omitted from API requests. However, any non-pointer,
37307	// non-interface field appearing in ForceSendFields will be sent to the
37308	// server regardless of whether the field is empty or not. This may be
37309	// used to include empty fields in Patch requests.
37310	ForceSendFields []string `json:"-"`
37311
37312	// NullFields is a list of field names (e.g. "Code") to include in API
37313	// requests with the JSON null value. By default, fields with empty
37314	// values are omitted from API requests. However, any field with an
37315	// empty value appearing in NullFields will be sent to the server as
37316	// null. It is an error if a field in this list has a non-empty value.
37317	// This may be used to include null fields in Patch requests.
37318	NullFields []string `json:"-"`
37319}
37320
37321func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
37322	type NoMethod TargetSslProxyListWarning
37323	raw := NoMethod(*s)
37324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37325}
37326
37327type TargetSslProxyListWarningData struct {
37328	// Key: [Output Only] A key that provides more detail on the warning
37329	// being returned. For example, for warnings where there are no results
37330	// in a list request for a particular zone, this key might be scope and
37331	// the key value might be the zone name. Other examples might be a key
37332	// indicating a deprecated resource and a suggested replacement, or a
37333	// warning about invalid network settings (for example, if an instance
37334	// attempts to perform IP forwarding but is not enabled for IP
37335	// forwarding).
37336	Key string `json:"key,omitempty"`
37337
37338	// Value: [Output Only] A warning data value corresponding to the key.
37339	Value string `json:"value,omitempty"`
37340
37341	// ForceSendFields is a list of field names (e.g. "Key") to
37342	// unconditionally include in API requests. By default, fields with
37343	// empty values are omitted from API requests. However, any non-pointer,
37344	// non-interface field appearing in ForceSendFields will be sent to the
37345	// server regardless of whether the field is empty or not. This may be
37346	// used to include empty fields in Patch requests.
37347	ForceSendFields []string `json:"-"`
37348
37349	// NullFields is a list of field names (e.g. "Key") to include in API
37350	// requests with the JSON null value. By default, fields with empty
37351	// values are omitted from API requests. However, any field with an
37352	// empty value appearing in NullFields will be sent to the server as
37353	// null. It is an error if a field in this list has a non-empty value.
37354	// This may be used to include null fields in Patch requests.
37355	NullFields []string `json:"-"`
37356}
37357
37358func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
37359	type NoMethod TargetSslProxyListWarningData
37360	raw := NoMethod(*s)
37361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37362}
37363
37364type TargetTcpProxiesSetBackendServiceRequest struct {
37365	// Service: The URL of the new BackendService resource for the
37366	// targetTcpProxy.
37367	Service string `json:"service,omitempty"`
37368
37369	// ForceSendFields is a list of field names (e.g. "Service") to
37370	// unconditionally include in API requests. By default, fields with
37371	// empty values are omitted from API requests. However, any non-pointer,
37372	// non-interface field appearing in ForceSendFields will be sent to the
37373	// server regardless of whether the field is empty or not. This may be
37374	// used to include empty fields in Patch requests.
37375	ForceSendFields []string `json:"-"`
37376
37377	// NullFields is a list of field names (e.g. "Service") to include in
37378	// API requests with the JSON null value. By default, fields with empty
37379	// values are omitted from API requests. However, any field with an
37380	// empty value appearing in NullFields will be sent to the server as
37381	// null. It is an error if a field in this list has a non-empty value.
37382	// This may be used to include null fields in Patch requests.
37383	NullFields []string `json:"-"`
37384}
37385
37386func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
37387	type NoMethod TargetTcpProxiesSetBackendServiceRequest
37388	raw := NoMethod(*s)
37389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37390}
37391
37392type TargetTcpProxiesSetProxyHeaderRequest struct {
37393	// ProxyHeader: The new type of proxy header to append before sending
37394	// data to the backend. NONE or PROXY_V1 are allowed.
37395	//
37396	// Possible values:
37397	//   "NONE"
37398	//   "PROXY_V1"
37399	ProxyHeader string `json:"proxyHeader,omitempty"`
37400
37401	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
37402	// unconditionally include in API requests. By default, fields with
37403	// empty values are omitted from API requests. However, any non-pointer,
37404	// non-interface field appearing in ForceSendFields will be sent to the
37405	// server regardless of whether the field is empty or not. This may be
37406	// used to include empty fields in Patch requests.
37407	ForceSendFields []string `json:"-"`
37408
37409	// NullFields is a list of field names (e.g. "ProxyHeader") to include
37410	// in API requests with the JSON null value. By default, fields with
37411	// empty values are omitted from API requests. However, any field with
37412	// an empty value appearing in NullFields will be sent to the server as
37413	// null. It is an error if a field in this list has a non-empty value.
37414	// This may be used to include null fields in Patch requests.
37415	NullFields []string `json:"-"`
37416}
37417
37418func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
37419	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
37420	raw := NoMethod(*s)
37421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37422}
37423
37424// TargetTcpProxy: Represents a Target TCP Proxy resource.
37425//
37426// A target TCP proxy is a component of a TCP Proxy load balancer.
37427// Global forwarding rules reference target TCP proxy, and the target
37428// proxy then references an external backend service. For more
37429// information, read TCP Proxy Load Balancing overview. (== resource_for
37430// {$api_version}.targetTcpProxies ==)
37431type TargetTcpProxy struct {
37432	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37433	// format.
37434	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37435
37436	// Description: An optional description of this resource. Provide this
37437	// property when you create the resource.
37438	Description string `json:"description,omitempty"`
37439
37440	// Id: [Output Only] The unique identifier for the resource. This
37441	// identifier is defined by the server.
37442	Id uint64 `json:"id,omitempty,string"`
37443
37444	// Kind: [Output Only] Type of the resource. Always
37445	// compute#targetTcpProxy for target TCP proxies.
37446	Kind string `json:"kind,omitempty"`
37447
37448	// Name: Name of the resource. Provided by the client when the resource
37449	// is created. The name must be 1-63 characters long, and comply with
37450	// RFC1035. Specifically, the name must be 1-63 characters long and
37451	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37452	// the first character must be a lowercase letter, and all following
37453	// characters must be a dash, lowercase letter, or digit, except the
37454	// last character, which cannot be a dash.
37455	Name string `json:"name,omitempty"`
37456
37457	// ProxyHeader: Specifies the type of proxy header to append before
37458	// sending data to the backend, either NONE or PROXY_V1. The default is
37459	// NONE.
37460	//
37461	// Possible values:
37462	//   "NONE"
37463	//   "PROXY_V1"
37464	ProxyHeader string `json:"proxyHeader,omitempty"`
37465
37466	// SelfLink: [Output Only] Server-defined URL for the resource.
37467	SelfLink string `json:"selfLink,omitempty"`
37468
37469	// Service: URL to the BackendService resource.
37470	Service string `json:"service,omitempty"`
37471
37472	// ServerResponse contains the HTTP response code and headers from the
37473	// server.
37474	googleapi.ServerResponse `json:"-"`
37475
37476	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
37477	// to unconditionally include in API requests. By default, fields with
37478	// empty values are omitted from API requests. However, any non-pointer,
37479	// non-interface field appearing in ForceSendFields will be sent to the
37480	// server regardless of whether the field is empty or not. This may be
37481	// used to include empty fields in Patch requests.
37482	ForceSendFields []string `json:"-"`
37483
37484	// NullFields is a list of field names (e.g. "CreationTimestamp") to
37485	// include in API requests with the JSON null value. By default, fields
37486	// with empty values are omitted from API requests. However, any field
37487	// with an empty value appearing in NullFields will be sent to the
37488	// server as null. It is an error if a field in this list has a
37489	// non-empty value. This may be used to include null fields in Patch
37490	// requests.
37491	NullFields []string `json:"-"`
37492}
37493
37494func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
37495	type NoMethod TargetTcpProxy
37496	raw := NoMethod(*s)
37497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37498}
37499
37500// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
37501type TargetTcpProxyList struct {
37502	// Id: [Output Only] Unique identifier for the resource; defined by the
37503	// server.
37504	Id string `json:"id,omitempty"`
37505
37506	// Items: A list of TargetTcpProxy resources.
37507	Items []*TargetTcpProxy `json:"items,omitempty"`
37508
37509	// Kind: Type of resource.
37510	Kind string `json:"kind,omitempty"`
37511
37512	// NextPageToken: [Output Only] This token allows you to get the next
37513	// page of results for list requests. If the number of results is larger
37514	// than maxResults, use the nextPageToken as a value for the query
37515	// parameter pageToken in the next list request. Subsequent list
37516	// requests will have their own nextPageToken to continue paging through
37517	// the results.
37518	NextPageToken string `json:"nextPageToken,omitempty"`
37519
37520	// SelfLink: [Output Only] Server-defined URL for this resource.
37521	SelfLink string `json:"selfLink,omitempty"`
37522
37523	// Warning: [Output Only] Informational warning message.
37524	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
37525
37526	// ServerResponse contains the HTTP response code and headers from the
37527	// server.
37528	googleapi.ServerResponse `json:"-"`
37529
37530	// ForceSendFields is a list of field names (e.g. "Id") to
37531	// unconditionally include in API requests. By default, fields with
37532	// empty values are omitted from API requests. However, any non-pointer,
37533	// non-interface field appearing in ForceSendFields will be sent to the
37534	// server regardless of whether the field is empty or not. This may be
37535	// used to include empty fields in Patch requests.
37536	ForceSendFields []string `json:"-"`
37537
37538	// NullFields is a list of field names (e.g. "Id") to include in API
37539	// requests with the JSON null value. By default, fields with empty
37540	// values are omitted from API requests. However, any field with an
37541	// empty value appearing in NullFields will be sent to the server as
37542	// null. It is an error if a field in this list has a non-empty value.
37543	// This may be used to include null fields in Patch requests.
37544	NullFields []string `json:"-"`
37545}
37546
37547func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
37548	type NoMethod TargetTcpProxyList
37549	raw := NoMethod(*s)
37550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37551}
37552
37553// TargetTcpProxyListWarning: [Output Only] Informational warning
37554// message.
37555type TargetTcpProxyListWarning struct {
37556	// Code: [Output Only] A warning code, if applicable. For example,
37557	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37558	// the response.
37559	//
37560	// Possible values:
37561	//   "CLEANUP_FAILED"
37562	//   "DEPRECATED_RESOURCE_USED"
37563	//   "DEPRECATED_TYPE_USED"
37564	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37565	//   "EXPERIMENTAL_TYPE_USED"
37566	//   "EXTERNAL_API_WARNING"
37567	//   "FIELD_VALUE_OVERRIDEN"
37568	//   "INJECTED_KERNELS_DEPRECATED"
37569	//   "MISSING_TYPE_DEPENDENCY"
37570	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37571	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37572	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37573	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37574	//   "NEXT_HOP_NOT_RUNNING"
37575	//   "NOT_CRITICAL_ERROR"
37576	//   "NO_RESULTS_ON_PAGE"
37577	//   "REQUIRED_TOS_AGREEMENT"
37578	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37579	//   "RESOURCE_NOT_DELETED"
37580	//   "SCHEMA_VALIDATION_IGNORED"
37581	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37582	//   "UNDECLARED_PROPERTIES"
37583	//   "UNREACHABLE"
37584	Code string `json:"code,omitempty"`
37585
37586	// Data: [Output Only] Metadata about this warning in key: value format.
37587	// For example:
37588	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37589	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
37590
37591	// Message: [Output Only] A human-readable description of the warning
37592	// code.
37593	Message string `json:"message,omitempty"`
37594
37595	// ForceSendFields is a list of field names (e.g. "Code") to
37596	// unconditionally include in API requests. By default, fields with
37597	// empty values are omitted from API requests. However, any non-pointer,
37598	// non-interface field appearing in ForceSendFields will be sent to the
37599	// server regardless of whether the field is empty or not. This may be
37600	// used to include empty fields in Patch requests.
37601	ForceSendFields []string `json:"-"`
37602
37603	// NullFields is a list of field names (e.g. "Code") to include in API
37604	// requests with the JSON null value. By default, fields with empty
37605	// values are omitted from API requests. However, any field with an
37606	// empty value appearing in NullFields will be sent to the server as
37607	// null. It is an error if a field in this list has a non-empty value.
37608	// This may be used to include null fields in Patch requests.
37609	NullFields []string `json:"-"`
37610}
37611
37612func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
37613	type NoMethod TargetTcpProxyListWarning
37614	raw := NoMethod(*s)
37615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37616}
37617
37618type TargetTcpProxyListWarningData struct {
37619	// Key: [Output Only] A key that provides more detail on the warning
37620	// being returned. For example, for warnings where there are no results
37621	// in a list request for a particular zone, this key might be scope and
37622	// the key value might be the zone name. Other examples might be a key
37623	// indicating a deprecated resource and a suggested replacement, or a
37624	// warning about invalid network settings (for example, if an instance
37625	// attempts to perform IP forwarding but is not enabled for IP
37626	// forwarding).
37627	Key string `json:"key,omitempty"`
37628
37629	// Value: [Output Only] A warning data value corresponding to the key.
37630	Value string `json:"value,omitempty"`
37631
37632	// ForceSendFields is a list of field names (e.g. "Key") to
37633	// unconditionally include in API requests. By default, fields with
37634	// empty values are omitted from API requests. However, any non-pointer,
37635	// non-interface field appearing in ForceSendFields will be sent to the
37636	// server regardless of whether the field is empty or not. This may be
37637	// used to include empty fields in Patch requests.
37638	ForceSendFields []string `json:"-"`
37639
37640	// NullFields is a list of field names (e.g. "Key") to include in API
37641	// requests with the JSON null value. By default, fields with empty
37642	// values are omitted from API requests. However, any field with an
37643	// empty value appearing in NullFields will be sent to the server as
37644	// null. It is an error if a field in this list has a non-empty value.
37645	// This may be used to include null fields in Patch requests.
37646	NullFields []string `json:"-"`
37647}
37648
37649func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
37650	type NoMethod TargetTcpProxyListWarningData
37651	raw := NoMethod(*s)
37652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37653}
37654
37655// TargetVpnGateway: Represents a Target VPN Gateway resource.
37656//
37657// The target VPN gateway resource represents a Classic Cloud VPN
37658// gateway. For more information, read the the Cloud VPN Overview. (==
37659// resource_for {$api_version}.targetVpnGateways ==)
37660type TargetVpnGateway struct {
37661	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37662	// format.
37663	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37664
37665	// Description: An optional description of this resource. Provide this
37666	// property when you create the resource.
37667	Description string `json:"description,omitempty"`
37668
37669	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
37670	// resources. ForwardingRules are created using
37671	// compute.forwardingRules.insert and associated with a VPN gateway.
37672	ForwardingRules []string `json:"forwardingRules,omitempty"`
37673
37674	// Id: [Output Only] The unique identifier for the resource. This
37675	// identifier is defined by the server.
37676	Id uint64 `json:"id,omitempty,string"`
37677
37678	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
37679	// for target VPN gateways.
37680	Kind string `json:"kind,omitempty"`
37681
37682	// Name: Name of the resource. Provided by the client when the resource
37683	// is created. The name must be 1-63 characters long, and comply with
37684	// RFC1035. Specifically, the name must be 1-63 characters long and
37685	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37686	// the first character must be a lowercase letter, and all following
37687	// characters must be a dash, lowercase letter, or digit, except the
37688	// last character, which cannot be a dash.
37689	Name string `json:"name,omitempty"`
37690
37691	// Network: URL of the network to which this VPN gateway is attached.
37692	// Provided by the client when the VPN gateway is created.
37693	Network string `json:"network,omitempty"`
37694
37695	// Region: [Output Only] URL of the region where the target VPN gateway
37696	// resides. You must specify this field as part of the HTTP request URL.
37697	// It is not settable as a field in the request body.
37698	Region string `json:"region,omitempty"`
37699
37700	// SelfLink: [Output Only] Server-defined URL for the resource.
37701	SelfLink string `json:"selfLink,omitempty"`
37702
37703	// Status: [Output Only] The status of the VPN gateway, which can be one
37704	// of the following: CREATING, READY, FAILED, or DELETING.
37705	//
37706	// Possible values:
37707	//   "CREATING"
37708	//   "DELETING"
37709	//   "FAILED"
37710	//   "READY"
37711	Status string `json:"status,omitempty"`
37712
37713	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
37714	// VpnTunnels are created using the compute.vpntunnels.insert method and
37715	// associated with a VPN gateway.
37716	Tunnels []string `json:"tunnels,omitempty"`
37717
37718	// ServerResponse contains the HTTP response code and headers from the
37719	// server.
37720	googleapi.ServerResponse `json:"-"`
37721
37722	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
37723	// to unconditionally include in API requests. By default, fields with
37724	// empty values are omitted from API requests. However, any non-pointer,
37725	// non-interface field appearing in ForceSendFields will be sent to the
37726	// server regardless of whether the field is empty or not. This may be
37727	// used to include empty fields in Patch requests.
37728	ForceSendFields []string `json:"-"`
37729
37730	// NullFields is a list of field names (e.g. "CreationTimestamp") to
37731	// include in API requests with the JSON null value. By default, fields
37732	// with empty values are omitted from API requests. However, any field
37733	// with an empty value appearing in NullFields will be sent to the
37734	// server as null. It is an error if a field in this list has a
37735	// non-empty value. This may be used to include null fields in Patch
37736	// requests.
37737	NullFields []string `json:"-"`
37738}
37739
37740func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
37741	type NoMethod TargetVpnGateway
37742	raw := NoMethod(*s)
37743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37744}
37745
37746type TargetVpnGatewayAggregatedList struct {
37747	// Id: [Output Only] Unique identifier for the resource; defined by the
37748	// server.
37749	Id string `json:"id,omitempty"`
37750
37751	// Items: A list of TargetVpnGateway resources.
37752	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
37753
37754	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
37755	// for target VPN gateways.
37756	Kind string `json:"kind,omitempty"`
37757
37758	// NextPageToken: [Output Only] This token allows you to get the next
37759	// page of results for list requests. If the number of results is larger
37760	// than maxResults, use the nextPageToken as a value for the query
37761	// parameter pageToken in the next list request. Subsequent list
37762	// requests will have their own nextPageToken to continue paging through
37763	// the results.
37764	NextPageToken string `json:"nextPageToken,omitempty"`
37765
37766	// SelfLink: [Output Only] Server-defined URL for this resource.
37767	SelfLink string `json:"selfLink,omitempty"`
37768
37769	// Warning: [Output Only] Informational warning message.
37770	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
37771
37772	// ServerResponse contains the HTTP response code and headers from the
37773	// server.
37774	googleapi.ServerResponse `json:"-"`
37775
37776	// ForceSendFields is a list of field names (e.g. "Id") to
37777	// unconditionally include in API requests. By default, fields with
37778	// empty values are omitted from API requests. However, any non-pointer,
37779	// non-interface field appearing in ForceSendFields will be sent to the
37780	// server regardless of whether the field is empty or not. This may be
37781	// used to include empty fields in Patch requests.
37782	ForceSendFields []string `json:"-"`
37783
37784	// NullFields is a list of field names (e.g. "Id") to include in API
37785	// requests with the JSON null value. By default, fields with empty
37786	// values are omitted from API requests. However, any field with an
37787	// empty value appearing in NullFields will be sent to the server as
37788	// null. It is an error if a field in this list has a non-empty value.
37789	// This may be used to include null fields in Patch requests.
37790	NullFields []string `json:"-"`
37791}
37792
37793func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
37794	type NoMethod TargetVpnGatewayAggregatedList
37795	raw := NoMethod(*s)
37796	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37797}
37798
37799// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
37800// warning message.
37801type TargetVpnGatewayAggregatedListWarning struct {
37802	// Code: [Output Only] A warning code, if applicable. For example,
37803	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37804	// the response.
37805	//
37806	// Possible values:
37807	//   "CLEANUP_FAILED"
37808	//   "DEPRECATED_RESOURCE_USED"
37809	//   "DEPRECATED_TYPE_USED"
37810	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37811	//   "EXPERIMENTAL_TYPE_USED"
37812	//   "EXTERNAL_API_WARNING"
37813	//   "FIELD_VALUE_OVERRIDEN"
37814	//   "INJECTED_KERNELS_DEPRECATED"
37815	//   "MISSING_TYPE_DEPENDENCY"
37816	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37817	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37818	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37819	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37820	//   "NEXT_HOP_NOT_RUNNING"
37821	//   "NOT_CRITICAL_ERROR"
37822	//   "NO_RESULTS_ON_PAGE"
37823	//   "REQUIRED_TOS_AGREEMENT"
37824	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37825	//   "RESOURCE_NOT_DELETED"
37826	//   "SCHEMA_VALIDATION_IGNORED"
37827	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37828	//   "UNDECLARED_PROPERTIES"
37829	//   "UNREACHABLE"
37830	Code string `json:"code,omitempty"`
37831
37832	// Data: [Output Only] Metadata about this warning in key: value format.
37833	// For example:
37834	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37835	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
37836
37837	// Message: [Output Only] A human-readable description of the warning
37838	// code.
37839	Message string `json:"message,omitempty"`
37840
37841	// ForceSendFields is a list of field names (e.g. "Code") to
37842	// unconditionally include in API requests. By default, fields with
37843	// empty values are omitted from API requests. However, any non-pointer,
37844	// non-interface field appearing in ForceSendFields will be sent to the
37845	// server regardless of whether the field is empty or not. This may be
37846	// used to include empty fields in Patch requests.
37847	ForceSendFields []string `json:"-"`
37848
37849	// NullFields is a list of field names (e.g. "Code") to include in API
37850	// requests with the JSON null value. By default, fields with empty
37851	// values are omitted from API requests. However, any field with an
37852	// empty value appearing in NullFields will be sent to the server as
37853	// null. It is an error if a field in this list has a non-empty value.
37854	// This may be used to include null fields in Patch requests.
37855	NullFields []string `json:"-"`
37856}
37857
37858func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
37859	type NoMethod TargetVpnGatewayAggregatedListWarning
37860	raw := NoMethod(*s)
37861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37862}
37863
37864type TargetVpnGatewayAggregatedListWarningData struct {
37865	// Key: [Output Only] A key that provides more detail on the warning
37866	// being returned. For example, for warnings where there are no results
37867	// in a list request for a particular zone, this key might be scope and
37868	// the key value might be the zone name. Other examples might be a key
37869	// indicating a deprecated resource and a suggested replacement, or a
37870	// warning about invalid network settings (for example, if an instance
37871	// attempts to perform IP forwarding but is not enabled for IP
37872	// forwarding).
37873	Key string `json:"key,omitempty"`
37874
37875	// Value: [Output Only] A warning data value corresponding to the key.
37876	Value string `json:"value,omitempty"`
37877
37878	// ForceSendFields is a list of field names (e.g. "Key") to
37879	// unconditionally include in API requests. By default, fields with
37880	// empty values are omitted from API requests. However, any non-pointer,
37881	// non-interface field appearing in ForceSendFields will be sent to the
37882	// server regardless of whether the field is empty or not. This may be
37883	// used to include empty fields in Patch requests.
37884	ForceSendFields []string `json:"-"`
37885
37886	// NullFields is a list of field names (e.g. "Key") to include in API
37887	// requests with the JSON null value. By default, fields with empty
37888	// values are omitted from API requests. However, any field with an
37889	// empty value appearing in NullFields will be sent to the server as
37890	// null. It is an error if a field in this list has a non-empty value.
37891	// This may be used to include null fields in Patch requests.
37892	NullFields []string `json:"-"`
37893}
37894
37895func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
37896	type NoMethod TargetVpnGatewayAggregatedListWarningData
37897	raw := NoMethod(*s)
37898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37899}
37900
37901// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
37902type TargetVpnGatewayList struct {
37903	// Id: [Output Only] Unique identifier for the resource; defined by the
37904	// server.
37905	Id string `json:"id,omitempty"`
37906
37907	// Items: A list of TargetVpnGateway resources.
37908	Items []*TargetVpnGateway `json:"items,omitempty"`
37909
37910	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
37911	// for target VPN gateways.
37912	Kind string `json:"kind,omitempty"`
37913
37914	// NextPageToken: [Output Only] This token allows you to get the next
37915	// page of results for list requests. If the number of results is larger
37916	// than maxResults, use the nextPageToken as a value for the query
37917	// parameter pageToken in the next list request. Subsequent list
37918	// requests will have their own nextPageToken to continue paging through
37919	// the results.
37920	NextPageToken string `json:"nextPageToken,omitempty"`
37921
37922	// SelfLink: [Output Only] Server-defined URL for this resource.
37923	SelfLink string `json:"selfLink,omitempty"`
37924
37925	// Warning: [Output Only] Informational warning message.
37926	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
37927
37928	// ServerResponse contains the HTTP response code and headers from the
37929	// server.
37930	googleapi.ServerResponse `json:"-"`
37931
37932	// ForceSendFields is a list of field names (e.g. "Id") to
37933	// unconditionally include in API requests. By default, fields with
37934	// empty values are omitted from API requests. However, any non-pointer,
37935	// non-interface field appearing in ForceSendFields will be sent to the
37936	// server regardless of whether the field is empty or not. This may be
37937	// used to include empty fields in Patch requests.
37938	ForceSendFields []string `json:"-"`
37939
37940	// NullFields is a list of field names (e.g. "Id") to include in API
37941	// requests with the JSON null value. By default, fields with empty
37942	// values are omitted from API requests. However, any field with an
37943	// empty value appearing in NullFields will be sent to the server as
37944	// null. It is an error if a field in this list has a non-empty value.
37945	// This may be used to include null fields in Patch requests.
37946	NullFields []string `json:"-"`
37947}
37948
37949func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
37950	type NoMethod TargetVpnGatewayList
37951	raw := NoMethod(*s)
37952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37953}
37954
37955// TargetVpnGatewayListWarning: [Output Only] Informational warning
37956// message.
37957type TargetVpnGatewayListWarning struct {
37958	// Code: [Output Only] A warning code, if applicable. For example,
37959	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37960	// the response.
37961	//
37962	// Possible values:
37963	//   "CLEANUP_FAILED"
37964	//   "DEPRECATED_RESOURCE_USED"
37965	//   "DEPRECATED_TYPE_USED"
37966	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37967	//   "EXPERIMENTAL_TYPE_USED"
37968	//   "EXTERNAL_API_WARNING"
37969	//   "FIELD_VALUE_OVERRIDEN"
37970	//   "INJECTED_KERNELS_DEPRECATED"
37971	//   "MISSING_TYPE_DEPENDENCY"
37972	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37973	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37974	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37975	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37976	//   "NEXT_HOP_NOT_RUNNING"
37977	//   "NOT_CRITICAL_ERROR"
37978	//   "NO_RESULTS_ON_PAGE"
37979	//   "REQUIRED_TOS_AGREEMENT"
37980	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37981	//   "RESOURCE_NOT_DELETED"
37982	//   "SCHEMA_VALIDATION_IGNORED"
37983	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37984	//   "UNDECLARED_PROPERTIES"
37985	//   "UNREACHABLE"
37986	Code string `json:"code,omitempty"`
37987
37988	// Data: [Output Only] Metadata about this warning in key: value format.
37989	// For example:
37990	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37991	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
37992
37993	// Message: [Output Only] A human-readable description of the warning
37994	// code.
37995	Message string `json:"message,omitempty"`
37996
37997	// ForceSendFields is a list of field names (e.g. "Code") to
37998	// unconditionally include in API requests. By default, fields with
37999	// empty values are omitted from API requests. However, any non-pointer,
38000	// non-interface field appearing in ForceSendFields will be sent to the
38001	// server regardless of whether the field is empty or not. This may be
38002	// used to include empty fields in Patch requests.
38003	ForceSendFields []string `json:"-"`
38004
38005	// NullFields is a list of field names (e.g. "Code") to include in API
38006	// requests with the JSON null value. By default, fields with empty
38007	// values are omitted from API requests. However, any field with an
38008	// empty value appearing in NullFields will be sent to the server as
38009	// null. It is an error if a field in this list has a non-empty value.
38010	// This may be used to include null fields in Patch requests.
38011	NullFields []string `json:"-"`
38012}
38013
38014func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
38015	type NoMethod TargetVpnGatewayListWarning
38016	raw := NoMethod(*s)
38017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38018}
38019
38020type TargetVpnGatewayListWarningData struct {
38021	// Key: [Output Only] A key that provides more detail on the warning
38022	// being returned. For example, for warnings where there are no results
38023	// in a list request for a particular zone, this key might be scope and
38024	// the key value might be the zone name. Other examples might be a key
38025	// indicating a deprecated resource and a suggested replacement, or a
38026	// warning about invalid network settings (for example, if an instance
38027	// attempts to perform IP forwarding but is not enabled for IP
38028	// forwarding).
38029	Key string `json:"key,omitempty"`
38030
38031	// Value: [Output Only] A warning data value corresponding to the key.
38032	Value string `json:"value,omitempty"`
38033
38034	// ForceSendFields is a list of field names (e.g. "Key") to
38035	// unconditionally include in API requests. By default, fields with
38036	// empty values are omitted from API requests. However, any non-pointer,
38037	// non-interface field appearing in ForceSendFields will be sent to the
38038	// server regardless of whether the field is empty or not. This may be
38039	// used to include empty fields in Patch requests.
38040	ForceSendFields []string `json:"-"`
38041
38042	// NullFields is a list of field names (e.g. "Key") to include in API
38043	// requests with the JSON null value. By default, fields with empty
38044	// values are omitted from API requests. However, any field with an
38045	// empty value appearing in NullFields will be sent to the server as
38046	// null. It is an error if a field in this list has a non-empty value.
38047	// This may be used to include null fields in Patch requests.
38048	NullFields []string `json:"-"`
38049}
38050
38051func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
38052	type NoMethod TargetVpnGatewayListWarningData
38053	raw := NoMethod(*s)
38054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38055}
38056
38057type TargetVpnGatewaysScopedList struct {
38058	// TargetVpnGateways: [Output Only] A list of target VPN gateways
38059	// contained in this scope.
38060	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
38061
38062	// Warning: [Output Only] Informational warning which replaces the list
38063	// of addresses when the list is empty.
38064	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
38065
38066	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
38067	// to unconditionally include in API requests. By default, fields with
38068	// empty values are omitted from API requests. However, any non-pointer,
38069	// non-interface field appearing in ForceSendFields will be sent to the
38070	// server regardless of whether the field is empty or not. This may be
38071	// used to include empty fields in Patch requests.
38072	ForceSendFields []string `json:"-"`
38073
38074	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
38075	// include in API requests with the JSON null value. By default, fields
38076	// with empty values are omitted from API requests. However, any field
38077	// with an empty value appearing in NullFields will be sent to the
38078	// server as null. It is an error if a field in this list has a
38079	// non-empty value. This may be used to include null fields in Patch
38080	// requests.
38081	NullFields []string `json:"-"`
38082}
38083
38084func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
38085	type NoMethod TargetVpnGatewaysScopedList
38086	raw := NoMethod(*s)
38087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38088}
38089
38090// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
38091// warning which replaces the list of addresses when the list is empty.
38092type TargetVpnGatewaysScopedListWarning struct {
38093	// Code: [Output Only] A warning code, if applicable. For example,
38094	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38095	// the response.
38096	//
38097	// Possible values:
38098	//   "CLEANUP_FAILED"
38099	//   "DEPRECATED_RESOURCE_USED"
38100	//   "DEPRECATED_TYPE_USED"
38101	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38102	//   "EXPERIMENTAL_TYPE_USED"
38103	//   "EXTERNAL_API_WARNING"
38104	//   "FIELD_VALUE_OVERRIDEN"
38105	//   "INJECTED_KERNELS_DEPRECATED"
38106	//   "MISSING_TYPE_DEPENDENCY"
38107	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38108	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38109	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38110	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38111	//   "NEXT_HOP_NOT_RUNNING"
38112	//   "NOT_CRITICAL_ERROR"
38113	//   "NO_RESULTS_ON_PAGE"
38114	//   "REQUIRED_TOS_AGREEMENT"
38115	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38116	//   "RESOURCE_NOT_DELETED"
38117	//   "SCHEMA_VALIDATION_IGNORED"
38118	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38119	//   "UNDECLARED_PROPERTIES"
38120	//   "UNREACHABLE"
38121	Code string `json:"code,omitempty"`
38122
38123	// Data: [Output Only] Metadata about this warning in key: value format.
38124	// For example:
38125	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38126	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
38127
38128	// Message: [Output Only] A human-readable description of the warning
38129	// code.
38130	Message string `json:"message,omitempty"`
38131
38132	// ForceSendFields is a list of field names (e.g. "Code") to
38133	// unconditionally include in API requests. By default, fields with
38134	// empty values are omitted from API requests. However, any non-pointer,
38135	// non-interface field appearing in ForceSendFields will be sent to the
38136	// server regardless of whether the field is empty or not. This may be
38137	// used to include empty fields in Patch requests.
38138	ForceSendFields []string `json:"-"`
38139
38140	// NullFields is a list of field names (e.g. "Code") to include in API
38141	// requests with the JSON null value. By default, fields with empty
38142	// values are omitted from API requests. However, any field with an
38143	// empty value appearing in NullFields will be sent to the server as
38144	// null. It is an error if a field in this list has a non-empty value.
38145	// This may be used to include null fields in Patch requests.
38146	NullFields []string `json:"-"`
38147}
38148
38149func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
38150	type NoMethod TargetVpnGatewaysScopedListWarning
38151	raw := NoMethod(*s)
38152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38153}
38154
38155type TargetVpnGatewaysScopedListWarningData struct {
38156	// Key: [Output Only] A key that provides more detail on the warning
38157	// being returned. For example, for warnings where there are no results
38158	// in a list request for a particular zone, this key might be scope and
38159	// the key value might be the zone name. Other examples might be a key
38160	// indicating a deprecated resource and a suggested replacement, or a
38161	// warning about invalid network settings (for example, if an instance
38162	// attempts to perform IP forwarding but is not enabled for IP
38163	// forwarding).
38164	Key string `json:"key,omitempty"`
38165
38166	// Value: [Output Only] A warning data value corresponding to the key.
38167	Value string `json:"value,omitempty"`
38168
38169	// ForceSendFields is a list of field names (e.g. "Key") to
38170	// unconditionally include in API requests. By default, fields with
38171	// empty values are omitted from API requests. However, any non-pointer,
38172	// non-interface field appearing in ForceSendFields will be sent to the
38173	// server regardless of whether the field is empty or not. This may be
38174	// used to include empty fields in Patch requests.
38175	ForceSendFields []string `json:"-"`
38176
38177	// NullFields is a list of field names (e.g. "Key") to include in API
38178	// requests with the JSON null value. By default, fields with empty
38179	// values are omitted from API requests. However, any field with an
38180	// empty value appearing in NullFields will be sent to the server as
38181	// null. It is an error if a field in this list has a non-empty value.
38182	// This may be used to include null fields in Patch requests.
38183	NullFields []string `json:"-"`
38184}
38185
38186func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
38187	type NoMethod TargetVpnGatewaysScopedListWarningData
38188	raw := NoMethod(*s)
38189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38190}
38191
38192type TestFailure struct {
38193	ActualService string `json:"actualService,omitempty"`
38194
38195	ExpectedService string `json:"expectedService,omitempty"`
38196
38197	Host string `json:"host,omitempty"`
38198
38199	Path string `json:"path,omitempty"`
38200
38201	// ForceSendFields is a list of field names (e.g. "ActualService") to
38202	// unconditionally include in API requests. By default, fields with
38203	// empty values are omitted from API requests. However, any non-pointer,
38204	// non-interface field appearing in ForceSendFields will be sent to the
38205	// server regardless of whether the field is empty or not. This may be
38206	// used to include empty fields in Patch requests.
38207	ForceSendFields []string `json:"-"`
38208
38209	// NullFields is a list of field names (e.g. "ActualService") to include
38210	// in API requests with the JSON null value. By default, fields with
38211	// empty values are omitted from API requests. However, any field with
38212	// an empty value appearing in NullFields will be sent to the server as
38213	// null. It is an error if a field in this list has a non-empty value.
38214	// This may be used to include null fields in Patch requests.
38215	NullFields []string `json:"-"`
38216}
38217
38218func (s *TestFailure) MarshalJSON() ([]byte, error) {
38219	type NoMethod TestFailure
38220	raw := NoMethod(*s)
38221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38222}
38223
38224type TestPermissionsRequest struct {
38225	// Permissions: The set of permissions to check for the 'resource'.
38226	// Permissions with wildcards (such as '*' or 'storage.*') are not
38227	// allowed.
38228	Permissions []string `json:"permissions,omitempty"`
38229
38230	// ForceSendFields is a list of field names (e.g. "Permissions") to
38231	// unconditionally include in API requests. By default, fields with
38232	// empty values are omitted from API requests. However, any non-pointer,
38233	// non-interface field appearing in ForceSendFields will be sent to the
38234	// server regardless of whether the field is empty or not. This may be
38235	// used to include empty fields in Patch requests.
38236	ForceSendFields []string `json:"-"`
38237
38238	// NullFields is a list of field names (e.g. "Permissions") to include
38239	// in API requests with the JSON null value. By default, fields with
38240	// empty values are omitted from API requests. However, any field with
38241	// an empty value appearing in NullFields will be sent to the server as
38242	// null. It is an error if a field in this list has a non-empty value.
38243	// This may be used to include null fields in Patch requests.
38244	NullFields []string `json:"-"`
38245}
38246
38247func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
38248	type NoMethod TestPermissionsRequest
38249	raw := NoMethod(*s)
38250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38251}
38252
38253type TestPermissionsResponse struct {
38254	// Permissions: A subset of `TestPermissionsRequest.permissions` that
38255	// the caller is allowed.
38256	Permissions []string `json:"permissions,omitempty"`
38257
38258	// ServerResponse contains the HTTP response code and headers from the
38259	// server.
38260	googleapi.ServerResponse `json:"-"`
38261
38262	// ForceSendFields is a list of field names (e.g. "Permissions") to
38263	// unconditionally include in API requests. By default, fields with
38264	// empty values are omitted from API requests. However, any non-pointer,
38265	// non-interface field appearing in ForceSendFields will be sent to the
38266	// server regardless of whether the field is empty or not. This may be
38267	// used to include empty fields in Patch requests.
38268	ForceSendFields []string `json:"-"`
38269
38270	// NullFields is a list of field names (e.g. "Permissions") to include
38271	// in API requests with the JSON null value. By default, fields with
38272	// empty values are omitted from API requests. However, any field with
38273	// an empty value appearing in NullFields will be sent to the server as
38274	// null. It is an error if a field in this list has a non-empty value.
38275	// This may be used to include null fields in Patch requests.
38276	NullFields []string `json:"-"`
38277}
38278
38279func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
38280	type NoMethod TestPermissionsResponse
38281	raw := NoMethod(*s)
38282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38283}
38284
38285// UrlMap: Represents a URL Map resource.
38286//
38287// Google Compute Engine has two URL Map resources:
38288//
38289// * [Global](/compute/docs/reference/rest/{$api_version}/urlMaps) *
38290// [Regional](/compute/docs/reference/rest/{$api_version}/regionUrlMaps)
38291//
38292//
38293// A URL map resource is a component of certain types of GCP load
38294// balancers and Traffic Director.
38295//
38296// * urlMaps are used by external HTTP(S) load balancers and Traffic
38297// Director. * regionUrlMaps are used by internal HTTP(S) load
38298// balancers.
38299//
38300// This resource defines mappings from host names and URL paths to
38301// either a backend service or a backend bucket.
38302//
38303// To use the global urlMaps resource, the backend service must have a
38304// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
38305// use the regionUrlMaps resource, the backend service must have a
38306// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
38307// URL Map Concepts.
38308type UrlMap struct {
38309	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38310	// format.
38311	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38312
38313	// DefaultRouteAction: defaultRouteAction takes effect when none of the
38314	// hostRules match. The load balancer performs advanced routing actions
38315	// like URL rewrites, header transformations, etc. prior to forwarding
38316	// the request to the selected backend. If defaultRouteAction specifies
38317	// any weightedBackendServices, defaultService must not be set.
38318	// Conversely if defaultService is set, defaultRouteAction cannot
38319	// contain any  weightedBackendServices.
38320	// Only one of defaultRouteAction or defaultUrlRedirect must be
38321	// set.
38322	// UrlMaps for external HTTP(S) load balancers support only the
38323	// urlRewrite action within defaultRouteAction.
38324	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
38325
38326	// DefaultService: The full or partial URL of the defaultService
38327	// resource to which traffic is directed if none of the hostRules match.
38328	// If defaultRouteAction is additionally specified, advanced routing
38329	// actions like URL Rewrites, etc. take effect prior to sending the
38330	// request to the backend. However, if defaultService is specified,
38331	// defaultRouteAction cannot contain any weightedBackendServices.
38332	// Conversely, if routeAction specifies any weightedBackendServices,
38333	// service must not be specified.
38334	// Only one of defaultService, defaultUrlRedirect  or
38335	// defaultRouteAction.weightedBackendService must be set.
38336	DefaultService string `json:"defaultService,omitempty"`
38337
38338	// DefaultUrlRedirect: When none of the specified hostRules match, the
38339	// request is redirected to a URL specified by defaultUrlRedirect.
38340	// If defaultUrlRedirect is specified, defaultService or
38341	// defaultRouteAction must not be set.
38342	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
38343
38344	// Description: An optional description of this resource. Provide this
38345	// property when you create the resource.
38346	Description string `json:"description,omitempty"`
38347
38348	// Fingerprint: Fingerprint of this resource. A hash of the contents
38349	// stored in this object. This field is used in optimistic locking. This
38350	// field will be ignored when inserting a UrlMap. An up-to-date
38351	// fingerprint must be provided in order to update the UrlMap, otherwise
38352	// the request will fail with error 412 conditionNotMet.
38353	//
38354	// To see the latest fingerprint, make a get() request to retrieve a
38355	// UrlMap.
38356	Fingerprint string `json:"fingerprint,omitempty"`
38357
38358	// HeaderAction: Specifies changes to request and response headers that
38359	// need to take effect for the selected backendService.
38360	// The headerAction specified here take effect after headerAction
38361	// specified under pathMatcher.
38362	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
38363
38364	// HostRules: The list of HostRules to use against the URL.
38365	HostRules []*HostRule `json:"hostRules,omitempty"`
38366
38367	// Id: [Output Only] The unique identifier for the resource. This
38368	// identifier is defined by the server.
38369	Id uint64 `json:"id,omitempty,string"`
38370
38371	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
38372	// url maps.
38373	Kind string `json:"kind,omitempty"`
38374
38375	// Name: Name of the resource. Provided by the client when the resource
38376	// is created. The name must be 1-63 characters long, and comply with
38377	// RFC1035. Specifically, the name must be 1-63 characters long and
38378	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38379	// the first character must be a lowercase letter, and all following
38380	// characters must be a dash, lowercase letter, or digit, except the
38381	// last character, which cannot be a dash.
38382	Name string `json:"name,omitempty"`
38383
38384	// PathMatchers: The list of named PathMatchers to use against the URL.
38385	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
38386
38387	// Region: [Output Only] URL of the region where the regional URL map
38388	// resides. This field is not applicable to global URL maps. You must
38389	// specify this field as part of the HTTP request URL. It is not
38390	// settable as a field in the request body.
38391	Region string `json:"region,omitempty"`
38392
38393	// SelfLink: [Output Only] Server-defined URL for the resource.
38394	SelfLink string `json:"selfLink,omitempty"`
38395
38396	// Tests: The list of expected URL mapping tests. Request to update this
38397	// UrlMap will succeed only if all of the test cases pass. You can
38398	// specify a maximum of 100 tests per UrlMap.
38399	Tests []*UrlMapTest `json:"tests,omitempty"`
38400
38401	// ServerResponse contains the HTTP response code and headers from the
38402	// server.
38403	googleapi.ServerResponse `json:"-"`
38404
38405	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
38406	// to unconditionally include in API requests. By default, fields with
38407	// empty values are omitted from API requests. However, any non-pointer,
38408	// non-interface field appearing in ForceSendFields will be sent to the
38409	// server regardless of whether the field is empty or not. This may be
38410	// used to include empty fields in Patch requests.
38411	ForceSendFields []string `json:"-"`
38412
38413	// NullFields is a list of field names (e.g. "CreationTimestamp") to
38414	// include in API requests with the JSON null value. By default, fields
38415	// with empty values are omitted from API requests. However, any field
38416	// with an empty value appearing in NullFields will be sent to the
38417	// server as null. It is an error if a field in this list has a
38418	// non-empty value. This may be used to include null fields in Patch
38419	// requests.
38420	NullFields []string `json:"-"`
38421}
38422
38423func (s *UrlMap) MarshalJSON() ([]byte, error) {
38424	type NoMethod UrlMap
38425	raw := NoMethod(*s)
38426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38427}
38428
38429// UrlMapList: Contains a list of UrlMap resources.
38430type UrlMapList struct {
38431	// Id: [Output Only] Unique identifier for the resource; defined by the
38432	// server.
38433	Id string `json:"id,omitempty"`
38434
38435	// Items: A list of UrlMap resources.
38436	Items []*UrlMap `json:"items,omitempty"`
38437
38438	// Kind: Type of resource.
38439	Kind string `json:"kind,omitempty"`
38440
38441	// NextPageToken: [Output Only] This token allows you to get the next
38442	// page of results for list requests. If the number of results is larger
38443	// than maxResults, use the nextPageToken as a value for the query
38444	// parameter pageToken in the next list request. Subsequent list
38445	// requests will have their own nextPageToken to continue paging through
38446	// the results.
38447	NextPageToken string `json:"nextPageToken,omitempty"`
38448
38449	// SelfLink: [Output Only] Server-defined URL for this resource.
38450	SelfLink string `json:"selfLink,omitempty"`
38451
38452	// Warning: [Output Only] Informational warning message.
38453	Warning *UrlMapListWarning `json:"warning,omitempty"`
38454
38455	// ServerResponse contains the HTTP response code and headers from the
38456	// server.
38457	googleapi.ServerResponse `json:"-"`
38458
38459	// ForceSendFields is a list of field names (e.g. "Id") to
38460	// unconditionally include in API requests. By default, fields with
38461	// empty values are omitted from API requests. However, any non-pointer,
38462	// non-interface field appearing in ForceSendFields will be sent to the
38463	// server regardless of whether the field is empty or not. This may be
38464	// used to include empty fields in Patch requests.
38465	ForceSendFields []string `json:"-"`
38466
38467	// NullFields is a list of field names (e.g. "Id") to include in API
38468	// requests with the JSON null value. By default, fields with empty
38469	// values are omitted from API requests. However, any field with an
38470	// empty value appearing in NullFields will be sent to the server as
38471	// null. It is an error if a field in this list has a non-empty value.
38472	// This may be used to include null fields in Patch requests.
38473	NullFields []string `json:"-"`
38474}
38475
38476func (s *UrlMapList) MarshalJSON() ([]byte, error) {
38477	type NoMethod UrlMapList
38478	raw := NoMethod(*s)
38479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38480}
38481
38482// UrlMapListWarning: [Output Only] Informational warning message.
38483type UrlMapListWarning struct {
38484	// Code: [Output Only] A warning code, if applicable. For example,
38485	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38486	// the response.
38487	//
38488	// Possible values:
38489	//   "CLEANUP_FAILED"
38490	//   "DEPRECATED_RESOURCE_USED"
38491	//   "DEPRECATED_TYPE_USED"
38492	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38493	//   "EXPERIMENTAL_TYPE_USED"
38494	//   "EXTERNAL_API_WARNING"
38495	//   "FIELD_VALUE_OVERRIDEN"
38496	//   "INJECTED_KERNELS_DEPRECATED"
38497	//   "MISSING_TYPE_DEPENDENCY"
38498	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38499	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38500	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38501	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38502	//   "NEXT_HOP_NOT_RUNNING"
38503	//   "NOT_CRITICAL_ERROR"
38504	//   "NO_RESULTS_ON_PAGE"
38505	//   "REQUIRED_TOS_AGREEMENT"
38506	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38507	//   "RESOURCE_NOT_DELETED"
38508	//   "SCHEMA_VALIDATION_IGNORED"
38509	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38510	//   "UNDECLARED_PROPERTIES"
38511	//   "UNREACHABLE"
38512	Code string `json:"code,omitempty"`
38513
38514	// Data: [Output Only] Metadata about this warning in key: value format.
38515	// For example:
38516	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38517	Data []*UrlMapListWarningData `json:"data,omitempty"`
38518
38519	// Message: [Output Only] A human-readable description of the warning
38520	// code.
38521	Message string `json:"message,omitempty"`
38522
38523	// ForceSendFields is a list of field names (e.g. "Code") to
38524	// unconditionally include in API requests. By default, fields with
38525	// empty values are omitted from API requests. However, any non-pointer,
38526	// non-interface field appearing in ForceSendFields will be sent to the
38527	// server regardless of whether the field is empty or not. This may be
38528	// used to include empty fields in Patch requests.
38529	ForceSendFields []string `json:"-"`
38530
38531	// NullFields is a list of field names (e.g. "Code") to include in API
38532	// requests with the JSON null value. By default, fields with empty
38533	// values are omitted from API requests. However, any field with an
38534	// empty value appearing in NullFields will be sent to the server as
38535	// null. It is an error if a field in this list has a non-empty value.
38536	// This may be used to include null fields in Patch requests.
38537	NullFields []string `json:"-"`
38538}
38539
38540func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
38541	type NoMethod UrlMapListWarning
38542	raw := NoMethod(*s)
38543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38544}
38545
38546type UrlMapListWarningData struct {
38547	// Key: [Output Only] A key that provides more detail on the warning
38548	// being returned. For example, for warnings where there are no results
38549	// in a list request for a particular zone, this key might be scope and
38550	// the key value might be the zone name. Other examples might be a key
38551	// indicating a deprecated resource and a suggested replacement, or a
38552	// warning about invalid network settings (for example, if an instance
38553	// attempts to perform IP forwarding but is not enabled for IP
38554	// forwarding).
38555	Key string `json:"key,omitempty"`
38556
38557	// Value: [Output Only] A warning data value corresponding to the key.
38558	Value string `json:"value,omitempty"`
38559
38560	// ForceSendFields is a list of field names (e.g. "Key") to
38561	// unconditionally include in API requests. By default, fields with
38562	// empty values are omitted from API requests. However, any non-pointer,
38563	// non-interface field appearing in ForceSendFields will be sent to the
38564	// server regardless of whether the field is empty or not. This may be
38565	// used to include empty fields in Patch requests.
38566	ForceSendFields []string `json:"-"`
38567
38568	// NullFields is a list of field names (e.g. "Key") to include in API
38569	// requests with the JSON null value. By default, fields with empty
38570	// values are omitted from API requests. However, any field with an
38571	// empty value appearing in NullFields will be sent to the server as
38572	// null. It is an error if a field in this list has a non-empty value.
38573	// This may be used to include null fields in Patch requests.
38574	NullFields []string `json:"-"`
38575}
38576
38577func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
38578	type NoMethod UrlMapListWarningData
38579	raw := NoMethod(*s)
38580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38581}
38582
38583type UrlMapReference struct {
38584	UrlMap string `json:"urlMap,omitempty"`
38585
38586	// ForceSendFields is a list of field names (e.g. "UrlMap") to
38587	// unconditionally include in API requests. By default, fields with
38588	// empty values are omitted from API requests. However, any non-pointer,
38589	// non-interface field appearing in ForceSendFields will be sent to the
38590	// server regardless of whether the field is empty or not. This may be
38591	// used to include empty fields in Patch requests.
38592	ForceSendFields []string `json:"-"`
38593
38594	// NullFields is a list of field names (e.g. "UrlMap") to include in API
38595	// requests with the JSON null value. By default, fields with empty
38596	// values are omitted from API requests. However, any field with an
38597	// empty value appearing in NullFields will be sent to the server as
38598	// null. It is an error if a field in this list has a non-empty value.
38599	// This may be used to include null fields in Patch requests.
38600	NullFields []string `json:"-"`
38601}
38602
38603func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
38604	type NoMethod UrlMapReference
38605	raw := NoMethod(*s)
38606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38607}
38608
38609// UrlMapTest: Message for the expected URL mappings.
38610type UrlMapTest struct {
38611	// Description: Description of this test case.
38612	Description string `json:"description,omitempty"`
38613
38614	// Host: Host portion of the URL.
38615	Host string `json:"host,omitempty"`
38616
38617	// Path: Path portion of the URL.
38618	Path string `json:"path,omitempty"`
38619
38620	// Service: Expected BackendService resource the given URL should be
38621	// mapped to.
38622	Service string `json:"service,omitempty"`
38623
38624	// ForceSendFields is a list of field names (e.g. "Description") to
38625	// unconditionally include in API requests. By default, fields with
38626	// empty values are omitted from API requests. However, any non-pointer,
38627	// non-interface field appearing in ForceSendFields will be sent to the
38628	// server regardless of whether the field is empty or not. This may be
38629	// used to include empty fields in Patch requests.
38630	ForceSendFields []string `json:"-"`
38631
38632	// NullFields is a list of field names (e.g. "Description") to include
38633	// in API requests with the JSON null value. By default, fields with
38634	// empty values are omitted from API requests. However, any field with
38635	// an empty value appearing in NullFields will be sent to the server as
38636	// null. It is an error if a field in this list has a non-empty value.
38637	// This may be used to include null fields in Patch requests.
38638	NullFields []string `json:"-"`
38639}
38640
38641func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
38642	type NoMethod UrlMapTest
38643	raw := NoMethod(*s)
38644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38645}
38646
38647// UrlMapValidationResult: Message representing the validation result
38648// for a UrlMap.
38649type UrlMapValidationResult struct {
38650	LoadErrors []string `json:"loadErrors,omitempty"`
38651
38652	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
38653	// If false, 'loadErrors' indicates the reasons.
38654	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
38655
38656	TestFailures []*TestFailure `json:"testFailures,omitempty"`
38657
38658	// TestPassed: If successfully loaded, this field indicates whether the
38659	// test passed. If false, 'testFailures's indicate the reason of
38660	// failure.
38661	TestPassed bool `json:"testPassed,omitempty"`
38662
38663	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
38664	// unconditionally include in API requests. By default, fields with
38665	// empty values are omitted from API requests. However, any non-pointer,
38666	// non-interface field appearing in ForceSendFields will be sent to the
38667	// server regardless of whether the field is empty or not. This may be
38668	// used to include empty fields in Patch requests.
38669	ForceSendFields []string `json:"-"`
38670
38671	// NullFields is a list of field names (e.g. "LoadErrors") to include in
38672	// API requests with the JSON null value. By default, fields with empty
38673	// values are omitted from API requests. However, any field with an
38674	// empty value appearing in NullFields will be sent to the server as
38675	// null. It is an error if a field in this list has a non-empty value.
38676	// This may be used to include null fields in Patch requests.
38677	NullFields []string `json:"-"`
38678}
38679
38680func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
38681	type NoMethod UrlMapValidationResult
38682	raw := NoMethod(*s)
38683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38684}
38685
38686type UrlMapsAggregatedList struct {
38687	// Id: [Output Only] Unique identifier for the resource; defined by the
38688	// server.
38689	Id string `json:"id,omitempty"`
38690
38691	// Items: A list of UrlMapsScopedList resources.
38692	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
38693
38694	// Kind: Type of resource.
38695	Kind string `json:"kind,omitempty"`
38696
38697	// NextPageToken: [Output Only] This token allows you to get the next
38698	// page of results for list requests. If the number of results is larger
38699	// than maxResults, use the nextPageToken as a value for the query
38700	// parameter pageToken in the next list request. Subsequent list
38701	// requests will have their own nextPageToken to continue paging through
38702	// the results.
38703	NextPageToken string `json:"nextPageToken,omitempty"`
38704
38705	// SelfLink: [Output Only] Server-defined URL for this resource.
38706	SelfLink string `json:"selfLink,omitempty"`
38707
38708	// Warning: [Output Only] Informational warning message.
38709	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
38710
38711	// ServerResponse contains the HTTP response code and headers from the
38712	// server.
38713	googleapi.ServerResponse `json:"-"`
38714
38715	// ForceSendFields is a list of field names (e.g. "Id") to
38716	// unconditionally include in API requests. By default, fields with
38717	// empty values are omitted from API requests. However, any non-pointer,
38718	// non-interface field appearing in ForceSendFields will be sent to the
38719	// server regardless of whether the field is empty or not. This may be
38720	// used to include empty fields in Patch requests.
38721	ForceSendFields []string `json:"-"`
38722
38723	// NullFields is a list of field names (e.g. "Id") to include in API
38724	// requests with the JSON null value. By default, fields with empty
38725	// values are omitted from API requests. However, any field with an
38726	// empty value appearing in NullFields will be sent to the server as
38727	// null. It is an error if a field in this list has a non-empty value.
38728	// This may be used to include null fields in Patch requests.
38729	NullFields []string `json:"-"`
38730}
38731
38732func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
38733	type NoMethod UrlMapsAggregatedList
38734	raw := NoMethod(*s)
38735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38736}
38737
38738// UrlMapsAggregatedListWarning: [Output Only] Informational warning
38739// message.
38740type UrlMapsAggregatedListWarning struct {
38741	// Code: [Output Only] A warning code, if applicable. For example,
38742	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38743	// the response.
38744	//
38745	// Possible values:
38746	//   "CLEANUP_FAILED"
38747	//   "DEPRECATED_RESOURCE_USED"
38748	//   "DEPRECATED_TYPE_USED"
38749	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38750	//   "EXPERIMENTAL_TYPE_USED"
38751	//   "EXTERNAL_API_WARNING"
38752	//   "FIELD_VALUE_OVERRIDEN"
38753	//   "INJECTED_KERNELS_DEPRECATED"
38754	//   "MISSING_TYPE_DEPENDENCY"
38755	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38756	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38757	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38758	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38759	//   "NEXT_HOP_NOT_RUNNING"
38760	//   "NOT_CRITICAL_ERROR"
38761	//   "NO_RESULTS_ON_PAGE"
38762	//   "REQUIRED_TOS_AGREEMENT"
38763	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38764	//   "RESOURCE_NOT_DELETED"
38765	//   "SCHEMA_VALIDATION_IGNORED"
38766	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38767	//   "UNDECLARED_PROPERTIES"
38768	//   "UNREACHABLE"
38769	Code string `json:"code,omitempty"`
38770
38771	// Data: [Output Only] Metadata about this warning in key: value format.
38772	// For example:
38773	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38774	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
38775
38776	// Message: [Output Only] A human-readable description of the warning
38777	// code.
38778	Message string `json:"message,omitempty"`
38779
38780	// ForceSendFields is a list of field names (e.g. "Code") to
38781	// unconditionally include in API requests. By default, fields with
38782	// empty values are omitted from API requests. However, any non-pointer,
38783	// non-interface field appearing in ForceSendFields will be sent to the
38784	// server regardless of whether the field is empty or not. This may be
38785	// used to include empty fields in Patch requests.
38786	ForceSendFields []string `json:"-"`
38787
38788	// NullFields is a list of field names (e.g. "Code") to include in API
38789	// requests with the JSON null value. By default, fields with empty
38790	// values are omitted from API requests. However, any field with an
38791	// empty value appearing in NullFields will be sent to the server as
38792	// null. It is an error if a field in this list has a non-empty value.
38793	// This may be used to include null fields in Patch requests.
38794	NullFields []string `json:"-"`
38795}
38796
38797func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
38798	type NoMethod UrlMapsAggregatedListWarning
38799	raw := NoMethod(*s)
38800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38801}
38802
38803type UrlMapsAggregatedListWarningData struct {
38804	// Key: [Output Only] A key that provides more detail on the warning
38805	// being returned. For example, for warnings where there are no results
38806	// in a list request for a particular zone, this key might be scope and
38807	// the key value might be the zone name. Other examples might be a key
38808	// indicating a deprecated resource and a suggested replacement, or a
38809	// warning about invalid network settings (for example, if an instance
38810	// attempts to perform IP forwarding but is not enabled for IP
38811	// forwarding).
38812	Key string `json:"key,omitempty"`
38813
38814	// Value: [Output Only] A warning data value corresponding to the key.
38815	Value string `json:"value,omitempty"`
38816
38817	// ForceSendFields is a list of field names (e.g. "Key") to
38818	// unconditionally include in API requests. By default, fields with
38819	// empty values are omitted from API requests. However, any non-pointer,
38820	// non-interface field appearing in ForceSendFields will be sent to the
38821	// server regardless of whether the field is empty or not. This may be
38822	// used to include empty fields in Patch requests.
38823	ForceSendFields []string `json:"-"`
38824
38825	// NullFields is a list of field names (e.g. "Key") to include in API
38826	// requests with the JSON null value. By default, fields with empty
38827	// values are omitted from API requests. However, any field with an
38828	// empty value appearing in NullFields will be sent to the server as
38829	// null. It is an error if a field in this list has a non-empty value.
38830	// This may be used to include null fields in Patch requests.
38831	NullFields []string `json:"-"`
38832}
38833
38834func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38835	type NoMethod UrlMapsAggregatedListWarningData
38836	raw := NoMethod(*s)
38837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38838}
38839
38840type UrlMapsScopedList struct {
38841	// UrlMaps: A list of UrlMaps contained in this scope.
38842	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
38843
38844	// Warning: Informational warning which replaces the list of backend
38845	// services when the list is empty.
38846	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
38847
38848	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
38849	// unconditionally include in API requests. By default, fields with
38850	// empty values are omitted from API requests. However, any non-pointer,
38851	// non-interface field appearing in ForceSendFields will be sent to the
38852	// server regardless of whether the field is empty or not. This may be
38853	// used to include empty fields in Patch requests.
38854	ForceSendFields []string `json:"-"`
38855
38856	// NullFields is a list of field names (e.g. "UrlMaps") to include in
38857	// API requests with the JSON null value. By default, fields with empty
38858	// values are omitted from API requests. However, any field with an
38859	// empty value appearing in NullFields will be sent to the server as
38860	// null. It is an error if a field in this list has a non-empty value.
38861	// This may be used to include null fields in Patch requests.
38862	NullFields []string `json:"-"`
38863}
38864
38865func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
38866	type NoMethod UrlMapsScopedList
38867	raw := NoMethod(*s)
38868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38869}
38870
38871// UrlMapsScopedListWarning: Informational warning which replaces the
38872// list of backend services when the list is empty.
38873type UrlMapsScopedListWarning struct {
38874	// Code: [Output Only] A warning code, if applicable. For example,
38875	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38876	// the response.
38877	//
38878	// Possible values:
38879	//   "CLEANUP_FAILED"
38880	//   "DEPRECATED_RESOURCE_USED"
38881	//   "DEPRECATED_TYPE_USED"
38882	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38883	//   "EXPERIMENTAL_TYPE_USED"
38884	//   "EXTERNAL_API_WARNING"
38885	//   "FIELD_VALUE_OVERRIDEN"
38886	//   "INJECTED_KERNELS_DEPRECATED"
38887	//   "MISSING_TYPE_DEPENDENCY"
38888	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38889	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38890	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38891	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38892	//   "NEXT_HOP_NOT_RUNNING"
38893	//   "NOT_CRITICAL_ERROR"
38894	//   "NO_RESULTS_ON_PAGE"
38895	//   "REQUIRED_TOS_AGREEMENT"
38896	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38897	//   "RESOURCE_NOT_DELETED"
38898	//   "SCHEMA_VALIDATION_IGNORED"
38899	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38900	//   "UNDECLARED_PROPERTIES"
38901	//   "UNREACHABLE"
38902	Code string `json:"code,omitempty"`
38903
38904	// Data: [Output Only] Metadata about this warning in key: value format.
38905	// For example:
38906	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38907	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
38908
38909	// Message: [Output Only] A human-readable description of the warning
38910	// code.
38911	Message string `json:"message,omitempty"`
38912
38913	// ForceSendFields is a list of field names (e.g. "Code") to
38914	// unconditionally include in API requests. By default, fields with
38915	// empty values are omitted from API requests. However, any non-pointer,
38916	// non-interface field appearing in ForceSendFields will be sent to the
38917	// server regardless of whether the field is empty or not. This may be
38918	// used to include empty fields in Patch requests.
38919	ForceSendFields []string `json:"-"`
38920
38921	// NullFields is a list of field names (e.g. "Code") to include in API
38922	// requests with the JSON null value. By default, fields with empty
38923	// values are omitted from API requests. However, any field with an
38924	// empty value appearing in NullFields will be sent to the server as
38925	// null. It is an error if a field in this list has a non-empty value.
38926	// This may be used to include null fields in Patch requests.
38927	NullFields []string `json:"-"`
38928}
38929
38930func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
38931	type NoMethod UrlMapsScopedListWarning
38932	raw := NoMethod(*s)
38933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38934}
38935
38936type UrlMapsScopedListWarningData struct {
38937	// Key: [Output Only] A key that provides more detail on the warning
38938	// being returned. For example, for warnings where there are no results
38939	// in a list request for a particular zone, this key might be scope and
38940	// the key value might be the zone name. Other examples might be a key
38941	// indicating a deprecated resource and a suggested replacement, or a
38942	// warning about invalid network settings (for example, if an instance
38943	// attempts to perform IP forwarding but is not enabled for IP
38944	// forwarding).
38945	Key string `json:"key,omitempty"`
38946
38947	// Value: [Output Only] A warning data value corresponding to the key.
38948	Value string `json:"value,omitempty"`
38949
38950	// ForceSendFields is a list of field names (e.g. "Key") to
38951	// unconditionally include in API requests. By default, fields with
38952	// empty values are omitted from API requests. However, any non-pointer,
38953	// non-interface field appearing in ForceSendFields will be sent to the
38954	// server regardless of whether the field is empty or not. This may be
38955	// used to include empty fields in Patch requests.
38956	ForceSendFields []string `json:"-"`
38957
38958	// NullFields is a list of field names (e.g. "Key") to include in API
38959	// requests with the JSON null value. By default, fields with empty
38960	// values are omitted from API requests. However, any field with an
38961	// empty value appearing in NullFields will be sent to the server as
38962	// null. It is an error if a field in this list has a non-empty value.
38963	// This may be used to include null fields in Patch requests.
38964	NullFields []string `json:"-"`
38965}
38966
38967func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
38968	type NoMethod UrlMapsScopedListWarningData
38969	raw := NoMethod(*s)
38970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38971}
38972
38973type UrlMapsValidateRequest struct {
38974	// Resource: Content of the UrlMap to be validated.
38975	Resource *UrlMap `json:"resource,omitempty"`
38976
38977	// ForceSendFields is a list of field names (e.g. "Resource") to
38978	// unconditionally include in API requests. By default, fields with
38979	// empty values are omitted from API requests. However, any non-pointer,
38980	// non-interface field appearing in ForceSendFields will be sent to the
38981	// server regardless of whether the field is empty or not. This may be
38982	// used to include empty fields in Patch requests.
38983	ForceSendFields []string `json:"-"`
38984
38985	// NullFields is a list of field names (e.g. "Resource") to include in
38986	// API requests with the JSON null value. By default, fields with empty
38987	// values are omitted from API requests. However, any field with an
38988	// empty value appearing in NullFields will be sent to the server as
38989	// null. It is an error if a field in this list has a non-empty value.
38990	// This may be used to include null fields in Patch requests.
38991	NullFields []string `json:"-"`
38992}
38993
38994func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
38995	type NoMethod UrlMapsValidateRequest
38996	raw := NoMethod(*s)
38997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38998}
38999
39000type UrlMapsValidateResponse struct {
39001	Result *UrlMapValidationResult `json:"result,omitempty"`
39002
39003	// ServerResponse contains the HTTP response code and headers from the
39004	// server.
39005	googleapi.ServerResponse `json:"-"`
39006
39007	// ForceSendFields is a list of field names (e.g. "Result") to
39008	// unconditionally include in API requests. By default, fields with
39009	// empty values are omitted from API requests. However, any non-pointer,
39010	// non-interface field appearing in ForceSendFields will be sent to the
39011	// server regardless of whether the field is empty or not. This may be
39012	// used to include empty fields in Patch requests.
39013	ForceSendFields []string `json:"-"`
39014
39015	// NullFields is a list of field names (e.g. "Result") to include in API
39016	// requests with the JSON null value. By default, fields with empty
39017	// values are omitted from API requests. However, any field with an
39018	// empty value appearing in NullFields will be sent to the server as
39019	// null. It is an error if a field in this list has a non-empty value.
39020	// This may be used to include null fields in Patch requests.
39021	NullFields []string `json:"-"`
39022}
39023
39024func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
39025	type NoMethod UrlMapsValidateResponse
39026	raw := NoMethod(*s)
39027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39028}
39029
39030// UrlRewrite: The spec for modifying the path before sending the
39031// request to the matched backend service.
39032type UrlRewrite struct {
39033	// HostRewrite: Prior to forwarding the request to the selected service,
39034	// the request's host header is replaced with contents of
39035	// hostRewrite.
39036	// The value must be between 1 and 255 characters.
39037	HostRewrite string `json:"hostRewrite,omitempty"`
39038
39039	// PathPrefixRewrite: Prior to forwarding the request to the selected
39040	// backend service, the matching portion of the request's path is
39041	// replaced by pathPrefixRewrite.
39042	// The value must be between 1 and 1024 characters.
39043	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
39044
39045	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
39046	// unconditionally include in API requests. By default, fields with
39047	// empty values are omitted from API requests. However, any non-pointer,
39048	// non-interface field appearing in ForceSendFields will be sent to the
39049	// server regardless of whether the field is empty or not. This may be
39050	// used to include empty fields in Patch requests.
39051	ForceSendFields []string `json:"-"`
39052
39053	// NullFields is a list of field names (e.g. "HostRewrite") to include
39054	// in API requests with the JSON null value. By default, fields with
39055	// empty values are omitted from API requests. However, any field with
39056	// an empty value appearing in NullFields will be sent to the server as
39057	// null. It is an error if a field in this list has a non-empty value.
39058	// This may be used to include null fields in Patch requests.
39059	NullFields []string `json:"-"`
39060}
39061
39062func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
39063	type NoMethod UrlRewrite
39064	raw := NoMethod(*s)
39065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39066}
39067
39068// UsableSubnetwork: Subnetwork which the current user has
39069// compute.subnetworks.use permission on.
39070type UsableSubnetwork struct {
39071	// IpCidrRange: The range of internal addresses that are owned by this
39072	// subnetwork.
39073	IpCidrRange string `json:"ipCidrRange,omitempty"`
39074
39075	// Network: Network URL.
39076	Network string `json:"network,omitempty"`
39077
39078	// SecondaryIpRanges: Secondary IP ranges.
39079	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
39080
39081	// Subnetwork: Subnetwork URL.
39082	Subnetwork string `json:"subnetwork,omitempty"`
39083
39084	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
39085	// unconditionally include in API requests. By default, fields with
39086	// empty values are omitted from API requests. However, any non-pointer,
39087	// non-interface field appearing in ForceSendFields will be sent to the
39088	// server regardless of whether the field is empty or not. This may be
39089	// used to include empty fields in Patch requests.
39090	ForceSendFields []string `json:"-"`
39091
39092	// NullFields is a list of field names (e.g. "IpCidrRange") to include
39093	// in API requests with the JSON null value. By default, fields with
39094	// empty values are omitted from API requests. However, any field with
39095	// an empty value appearing in NullFields will be sent to the server as
39096	// null. It is an error if a field in this list has a non-empty value.
39097	// This may be used to include null fields in Patch requests.
39098	NullFields []string `json:"-"`
39099}
39100
39101func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
39102	type NoMethod UsableSubnetwork
39103	raw := NoMethod(*s)
39104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39105}
39106
39107// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
39108// subnetwork.
39109type UsableSubnetworkSecondaryRange struct {
39110	// IpCidrRange: The range of IP addresses belonging to this subnetwork
39111	// secondary range.
39112	IpCidrRange string `json:"ipCidrRange,omitempty"`
39113
39114	// RangeName: The name associated with this subnetwork secondary range,
39115	// used when adding an alias IP range to a VM instance. The name must be
39116	// 1-63 characters long, and comply with RFC1035. The name must be
39117	// unique within the subnetwork.
39118	RangeName string `json:"rangeName,omitempty"`
39119
39120	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
39121	// unconditionally include in API requests. By default, fields with
39122	// empty values are omitted from API requests. However, any non-pointer,
39123	// non-interface field appearing in ForceSendFields will be sent to the
39124	// server regardless of whether the field is empty or not. This may be
39125	// used to include empty fields in Patch requests.
39126	ForceSendFields []string `json:"-"`
39127
39128	// NullFields is a list of field names (e.g. "IpCidrRange") to include
39129	// in API requests with the JSON null value. By default, fields with
39130	// empty values are omitted from API requests. However, any field with
39131	// an empty value appearing in NullFields will be sent to the server as
39132	// null. It is an error if a field in this list has a non-empty value.
39133	// This may be used to include null fields in Patch requests.
39134	NullFields []string `json:"-"`
39135}
39136
39137func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
39138	type NoMethod UsableSubnetworkSecondaryRange
39139	raw := NoMethod(*s)
39140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39141}
39142
39143type UsableSubnetworksAggregatedList struct {
39144	// Id: [Output Only] The unique identifier for the resource. This
39145	// identifier is defined by the server.
39146	Id string `json:"id,omitempty"`
39147
39148	// Items: [Output] A list of usable subnetwork URLs.
39149	Items []*UsableSubnetwork `json:"items,omitempty"`
39150
39151	// Kind: [Output Only] Type of resource. Always
39152	// compute#usableSubnetworksAggregatedList for aggregated lists of
39153	// usable subnetworks.
39154	Kind string `json:"kind,omitempty"`
39155
39156	// NextPageToken: [Output Only] This token allows you to get the next
39157	// page of results for list requests. If the number of results is larger
39158	// than maxResults, use the nextPageToken as a value for the query
39159	// parameter pageToken in the next list request. Subsequent list
39160	// requests will have their own nextPageToken to continue paging through
39161	// the results.
39162	NextPageToken string `json:"nextPageToken,omitempty"`
39163
39164	// SelfLink: [Output Only] Server-defined URL for this resource.
39165	SelfLink string `json:"selfLink,omitempty"`
39166
39167	// Warning: [Output Only] Informational warning message.
39168	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
39169
39170	// ServerResponse contains the HTTP response code and headers from the
39171	// server.
39172	googleapi.ServerResponse `json:"-"`
39173
39174	// ForceSendFields is a list of field names (e.g. "Id") to
39175	// unconditionally include in API requests. By default, fields with
39176	// empty values are omitted from API requests. However, any non-pointer,
39177	// non-interface field appearing in ForceSendFields will be sent to the
39178	// server regardless of whether the field is empty or not. This may be
39179	// used to include empty fields in Patch requests.
39180	ForceSendFields []string `json:"-"`
39181
39182	// NullFields is a list of field names (e.g. "Id") to include in API
39183	// requests with the JSON null value. By default, fields with empty
39184	// values are omitted from API requests. However, any field with an
39185	// empty value appearing in NullFields will be sent to the server as
39186	// null. It is an error if a field in this list has a non-empty value.
39187	// This may be used to include null fields in Patch requests.
39188	NullFields []string `json:"-"`
39189}
39190
39191func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
39192	type NoMethod UsableSubnetworksAggregatedList
39193	raw := NoMethod(*s)
39194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39195}
39196
39197// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
39198// warning message.
39199type UsableSubnetworksAggregatedListWarning struct {
39200	// Code: [Output Only] A warning code, if applicable. For example,
39201	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39202	// the response.
39203	//
39204	// Possible values:
39205	//   "CLEANUP_FAILED"
39206	//   "DEPRECATED_RESOURCE_USED"
39207	//   "DEPRECATED_TYPE_USED"
39208	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39209	//   "EXPERIMENTAL_TYPE_USED"
39210	//   "EXTERNAL_API_WARNING"
39211	//   "FIELD_VALUE_OVERRIDEN"
39212	//   "INJECTED_KERNELS_DEPRECATED"
39213	//   "MISSING_TYPE_DEPENDENCY"
39214	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39215	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39216	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39217	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39218	//   "NEXT_HOP_NOT_RUNNING"
39219	//   "NOT_CRITICAL_ERROR"
39220	//   "NO_RESULTS_ON_PAGE"
39221	//   "REQUIRED_TOS_AGREEMENT"
39222	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39223	//   "RESOURCE_NOT_DELETED"
39224	//   "SCHEMA_VALIDATION_IGNORED"
39225	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39226	//   "UNDECLARED_PROPERTIES"
39227	//   "UNREACHABLE"
39228	Code string `json:"code,omitempty"`
39229
39230	// Data: [Output Only] Metadata about this warning in key: value format.
39231	// For example:
39232	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39233	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
39234
39235	// Message: [Output Only] A human-readable description of the warning
39236	// code.
39237	Message string `json:"message,omitempty"`
39238
39239	// ForceSendFields is a list of field names (e.g. "Code") to
39240	// unconditionally include in API requests. By default, fields with
39241	// empty values are omitted from API requests. However, any non-pointer,
39242	// non-interface field appearing in ForceSendFields will be sent to the
39243	// server regardless of whether the field is empty or not. This may be
39244	// used to include empty fields in Patch requests.
39245	ForceSendFields []string `json:"-"`
39246
39247	// NullFields is a list of field names (e.g. "Code") to include in API
39248	// requests with the JSON null value. By default, fields with empty
39249	// values are omitted from API requests. However, any field with an
39250	// empty value appearing in NullFields will be sent to the server as
39251	// null. It is an error if a field in this list has a non-empty value.
39252	// This may be used to include null fields in Patch requests.
39253	NullFields []string `json:"-"`
39254}
39255
39256func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
39257	type NoMethod UsableSubnetworksAggregatedListWarning
39258	raw := NoMethod(*s)
39259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39260}
39261
39262type UsableSubnetworksAggregatedListWarningData struct {
39263	// Key: [Output Only] A key that provides more detail on the warning
39264	// being returned. For example, for warnings where there are no results
39265	// in a list request for a particular zone, this key might be scope and
39266	// the key value might be the zone name. Other examples might be a key
39267	// indicating a deprecated resource and a suggested replacement, or a
39268	// warning about invalid network settings (for example, if an instance
39269	// attempts to perform IP forwarding but is not enabled for IP
39270	// forwarding).
39271	Key string `json:"key,omitempty"`
39272
39273	// Value: [Output Only] A warning data value corresponding to the key.
39274	Value string `json:"value,omitempty"`
39275
39276	// ForceSendFields is a list of field names (e.g. "Key") to
39277	// unconditionally include in API requests. By default, fields with
39278	// empty values are omitted from API requests. However, any non-pointer,
39279	// non-interface field appearing in ForceSendFields will be sent to the
39280	// server regardless of whether the field is empty or not. This may be
39281	// used to include empty fields in Patch requests.
39282	ForceSendFields []string `json:"-"`
39283
39284	// NullFields is a list of field names (e.g. "Key") to include in API
39285	// requests with the JSON null value. By default, fields with empty
39286	// values are omitted from API requests. However, any field with an
39287	// empty value appearing in NullFields will be sent to the server as
39288	// null. It is an error if a field in this list has a non-empty value.
39289	// This may be used to include null fields in Patch requests.
39290	NullFields []string `json:"-"`
39291}
39292
39293func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
39294	type NoMethod UsableSubnetworksAggregatedListWarningData
39295	raw := NoMethod(*s)
39296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39297}
39298
39299// UsageExportLocation: The location in Cloud Storage and naming method
39300// of the daily usage report. Contains bucket_name and report_name
39301// prefix.
39302type UsageExportLocation struct {
39303	// BucketName: The name of an existing bucket in Cloud Storage where the
39304	// usage report object is stored. The Google Service Account is granted
39305	// write access to this bucket. This can either be the bucket name by
39306	// itself, such as example-bucket, or the bucket name with gs:// or
39307	// https://storage.googleapis.com/ in front of it, such as
39308	// gs://example-bucket.
39309	BucketName string `json:"bucketName,omitempty"`
39310
39311	// ReportNamePrefix: An optional prefix for the name of the usage report
39312	// object stored in bucketName. If not supplied, defaults to usage. The
39313	// report is stored as a CSV file named
39314	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
39315	// usage according to Pacific Time. If you supply a prefix, it should
39316	// conform to Cloud Storage object naming conventions.
39317	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
39318
39319	// ForceSendFields is a list of field names (e.g. "BucketName") to
39320	// unconditionally include in API requests. By default, fields with
39321	// empty values are omitted from API requests. However, any non-pointer,
39322	// non-interface field appearing in ForceSendFields will be sent to the
39323	// server regardless of whether the field is empty or not. This may be
39324	// used to include empty fields in Patch requests.
39325	ForceSendFields []string `json:"-"`
39326
39327	// NullFields is a list of field names (e.g. "BucketName") to include in
39328	// API requests with the JSON null value. By default, fields with empty
39329	// values are omitted from API requests. However, any field with an
39330	// empty value appearing in NullFields will be sent to the server as
39331	// null. It is an error if a field in this list has a non-empty value.
39332	// This may be used to include null fields in Patch requests.
39333	NullFields []string `json:"-"`
39334}
39335
39336func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
39337	type NoMethod UsageExportLocation
39338	raw := NoMethod(*s)
39339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39340}
39341
39342// VmEndpointNatMappings: Contain information of Nat mapping for a VM
39343// endpoint (i.e., NIC).
39344type VmEndpointNatMappings struct {
39345	// InstanceName: Name of the VM instance which the endpoint belongs to
39346	InstanceName string `json:"instanceName,omitempty"`
39347
39348	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
39349
39350	// ForceSendFields is a list of field names (e.g. "InstanceName") to
39351	// unconditionally include in API requests. By default, fields with
39352	// empty values are omitted from API requests. However, any non-pointer,
39353	// non-interface field appearing in ForceSendFields will be sent to the
39354	// server regardless of whether the field is empty or not. This may be
39355	// used to include empty fields in Patch requests.
39356	ForceSendFields []string `json:"-"`
39357
39358	// NullFields is a list of field names (e.g. "InstanceName") to include
39359	// in API requests with the JSON null value. By default, fields with
39360	// empty values are omitted from API requests. However, any field with
39361	// an empty value appearing in NullFields will be sent to the server as
39362	// null. It is an error if a field in this list has a non-empty value.
39363	// This may be used to include null fields in Patch requests.
39364	NullFields []string `json:"-"`
39365}
39366
39367func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
39368	type NoMethod VmEndpointNatMappings
39369	raw := NoMethod(*s)
39370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39371}
39372
39373// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
39374// mapping for an interface of this endpoint.
39375type VmEndpointNatMappingsInterfaceNatMappings struct {
39376	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
39377	// assigned to this interface. These ranges are inclusive, that is, both
39378	// the first and the last ports can be used for NAT. Example:
39379	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
39380	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
39381
39382	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
39383	// this interface. These ranges are inclusive, that is, both the first
39384	// and the last ports can be used for NAT. Example:
39385	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
39386	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
39387
39388	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
39389	// allocated to this interface. It equals to the aggregated port number
39390	// in the field drain_nat_ip_port_ranges.
39391	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
39392
39393	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
39394	// to this interface. It equals to the aggregated port number in the
39395	// field nat_ip_port_ranges.
39396	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
39397
39398	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
39399	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
39400	// "192.168.5.0/24".
39401	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
39402
39403	// SourceVirtualIp: Primary IP of the VM for this NIC.
39404	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
39405
39406	// ForceSendFields is a list of field names (e.g.
39407	// "DrainNatIpPortRanges") to unconditionally include in API requests.
39408	// By default, fields with empty values are omitted from API requests.
39409	// However, any non-pointer, non-interface field appearing in
39410	// ForceSendFields will be sent to the server regardless of whether the
39411	// field is empty or not. This may be used to include empty fields in
39412	// Patch requests.
39413	ForceSendFields []string `json:"-"`
39414
39415	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
39416	// include in API requests with the JSON null value. By default, fields
39417	// with empty values are omitted from API requests. However, any field
39418	// with an empty value appearing in NullFields will be sent to the
39419	// server as null. It is an error if a field in this list has a
39420	// non-empty value. This may be used to include null fields in Patch
39421	// requests.
39422	NullFields []string `json:"-"`
39423}
39424
39425func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
39426	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
39427	raw := NoMethod(*s)
39428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39429}
39430
39431// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
39432type VmEndpointNatMappingsList struct {
39433	// Id: [Output Only] The unique identifier for the resource. This
39434	// identifier is defined by the server.
39435	Id string `json:"id,omitempty"`
39436
39437	// Kind: [Output Only] Type of resource. Always
39438	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
39439	// endpoints.
39440	Kind string `json:"kind,omitempty"`
39441
39442	// NextPageToken: [Output Only] This token allows you to get the next
39443	// page of results for list requests. If the number of results is larger
39444	// than maxResults, use the nextPageToken as a value for the query
39445	// parameter pageToken in the next list request. Subsequent list
39446	// requests will have their own nextPageToken to continue paging through
39447	// the results.
39448	NextPageToken string `json:"nextPageToken,omitempty"`
39449
39450	// Result: [Output Only] A list of Nat mapping information of VM
39451	// endpoints.
39452	Result []*VmEndpointNatMappings `json:"result,omitempty"`
39453
39454	// SelfLink: [Output Only] Server-defined URL for this resource.
39455	SelfLink string `json:"selfLink,omitempty"`
39456
39457	// Warning: [Output Only] Informational warning message.
39458	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
39459
39460	// ServerResponse contains the HTTP response code and headers from the
39461	// server.
39462	googleapi.ServerResponse `json:"-"`
39463
39464	// ForceSendFields is a list of field names (e.g. "Id") to
39465	// unconditionally include in API requests. By default, fields with
39466	// empty values are omitted from API requests. However, any non-pointer,
39467	// non-interface field appearing in ForceSendFields will be sent to the
39468	// server regardless of whether the field is empty or not. This may be
39469	// used to include empty fields in Patch requests.
39470	ForceSendFields []string `json:"-"`
39471
39472	// NullFields is a list of field names (e.g. "Id") to include in API
39473	// requests with the JSON null value. By default, fields with empty
39474	// values are omitted from API requests. However, any field with an
39475	// empty value appearing in NullFields will be sent to the server as
39476	// null. It is an error if a field in this list has a non-empty value.
39477	// This may be used to include null fields in Patch requests.
39478	NullFields []string `json:"-"`
39479}
39480
39481func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
39482	type NoMethod VmEndpointNatMappingsList
39483	raw := NoMethod(*s)
39484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39485}
39486
39487// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
39488// message.
39489type VmEndpointNatMappingsListWarning struct {
39490	// Code: [Output Only] A warning code, if applicable. For example,
39491	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39492	// the response.
39493	//
39494	// Possible values:
39495	//   "CLEANUP_FAILED"
39496	//   "DEPRECATED_RESOURCE_USED"
39497	//   "DEPRECATED_TYPE_USED"
39498	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39499	//   "EXPERIMENTAL_TYPE_USED"
39500	//   "EXTERNAL_API_WARNING"
39501	//   "FIELD_VALUE_OVERRIDEN"
39502	//   "INJECTED_KERNELS_DEPRECATED"
39503	//   "MISSING_TYPE_DEPENDENCY"
39504	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39505	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39506	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39507	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39508	//   "NEXT_HOP_NOT_RUNNING"
39509	//   "NOT_CRITICAL_ERROR"
39510	//   "NO_RESULTS_ON_PAGE"
39511	//   "REQUIRED_TOS_AGREEMENT"
39512	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39513	//   "RESOURCE_NOT_DELETED"
39514	//   "SCHEMA_VALIDATION_IGNORED"
39515	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39516	//   "UNDECLARED_PROPERTIES"
39517	//   "UNREACHABLE"
39518	Code string `json:"code,omitempty"`
39519
39520	// Data: [Output Only] Metadata about this warning in key: value format.
39521	// For example:
39522	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39523	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
39524
39525	// Message: [Output Only] A human-readable description of the warning
39526	// code.
39527	Message string `json:"message,omitempty"`
39528
39529	// ForceSendFields is a list of field names (e.g. "Code") to
39530	// unconditionally include in API requests. By default, fields with
39531	// empty values are omitted from API requests. However, any non-pointer,
39532	// non-interface field appearing in ForceSendFields will be sent to the
39533	// server regardless of whether the field is empty or not. This may be
39534	// used to include empty fields in Patch requests.
39535	ForceSendFields []string `json:"-"`
39536
39537	// NullFields is a list of field names (e.g. "Code") to include in API
39538	// requests with the JSON null value. By default, fields with empty
39539	// values are omitted from API requests. However, any field with an
39540	// empty value appearing in NullFields will be sent to the server as
39541	// null. It is an error if a field in this list has a non-empty value.
39542	// This may be used to include null fields in Patch requests.
39543	NullFields []string `json:"-"`
39544}
39545
39546func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
39547	type NoMethod VmEndpointNatMappingsListWarning
39548	raw := NoMethod(*s)
39549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39550}
39551
39552type VmEndpointNatMappingsListWarningData struct {
39553	// Key: [Output Only] A key that provides more detail on the warning
39554	// being returned. For example, for warnings where there are no results
39555	// in a list request for a particular zone, this key might be scope and
39556	// the key value might be the zone name. Other examples might be a key
39557	// indicating a deprecated resource and a suggested replacement, or a
39558	// warning about invalid network settings (for example, if an instance
39559	// attempts to perform IP forwarding but is not enabled for IP
39560	// forwarding).
39561	Key string `json:"key,omitempty"`
39562
39563	// Value: [Output Only] A warning data value corresponding to the key.
39564	Value string `json:"value,omitempty"`
39565
39566	// ForceSendFields is a list of field names (e.g. "Key") to
39567	// unconditionally include in API requests. By default, fields with
39568	// empty values are omitted from API requests. However, any non-pointer,
39569	// non-interface field appearing in ForceSendFields will be sent to the
39570	// server regardless of whether the field is empty or not. This may be
39571	// used to include empty fields in Patch requests.
39572	ForceSendFields []string `json:"-"`
39573
39574	// NullFields is a list of field names (e.g. "Key") to include in API
39575	// requests with the JSON null value. By default, fields with empty
39576	// values are omitted from API requests. However, any field with an
39577	// empty value appearing in NullFields will be sent to the server as
39578	// null. It is an error if a field in this list has a non-empty value.
39579	// This may be used to include null fields in Patch requests.
39580	NullFields []string `json:"-"`
39581}
39582
39583func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
39584	type NoMethod VmEndpointNatMappingsListWarningData
39585	raw := NoMethod(*s)
39586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39587}
39588
39589// VpnGateway: Represents a HA VPN gateway.
39590//
39591// HA VPN is a high-availability (HA) Cloud VPN solution that lets you
39592// securely connect your on-premises network to your Google Cloud
39593// Virtual Private Cloud network through an IPsec VPN connection in a
39594// single region. For more information about Cloud HA VPN solutions, see
39595//  Cloud VPN topologies . (== resource_for {$api_version}.vpnGateways
39596// ==)
39597type VpnGateway struct {
39598	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39599	// format.
39600	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39601
39602	// Description: An optional description of this resource. Provide this
39603	// property when you create the resource.
39604	Description string `json:"description,omitempty"`
39605
39606	// Id: [Output Only] The unique identifier for the resource. This
39607	// identifier is defined by the server.
39608	Id uint64 `json:"id,omitempty,string"`
39609
39610	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
39611	// VPN gateways.
39612	Kind string `json:"kind,omitempty"`
39613
39614	// LabelFingerprint: A fingerprint for the labels being applied to this
39615	// VpnGateway, which is essentially a hash of the labels set used for
39616	// optimistic locking. The fingerprint is initially generated by Compute
39617	// Engine and changes after every request to modify or update labels.
39618	// You must always provide an up-to-date fingerprint hash in order to
39619	// update or change labels, otherwise the request will fail with error
39620	// 412 conditionNotMet.
39621	//
39622	// To see the latest fingerprint, make a get() request to retrieve an
39623	// VpnGateway.
39624	LabelFingerprint string `json:"labelFingerprint,omitempty"`
39625
39626	// Labels: Labels for this resource. These can only be added or modified
39627	// by the setLabels method. Each label key/value pair must comply with
39628	// RFC1035. Label values may be empty.
39629	Labels map[string]string `json:"labels,omitempty"`
39630
39631	// Name: Name of the resource. Provided by the client when the resource
39632	// is created. The name must be 1-63 characters long, and comply with
39633	// RFC1035. Specifically, the name must be 1-63 characters long and
39634	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39635	// the first character must be a lowercase letter, and all following
39636	// characters must be a dash, lowercase letter, or digit, except the
39637	// last character, which cannot be a dash.
39638	Name string `json:"name,omitempty"`
39639
39640	// Network: URL of the network to which this VPN gateway is attached.
39641	// Provided by the client when the VPN gateway is created.
39642	Network string `json:"network,omitempty"`
39643
39644	// Region: [Output Only] URL of the region where the VPN gateway
39645	// resides.
39646	Region string `json:"region,omitempty"`
39647
39648	// SelfLink: [Output Only] Server-defined URL for the resource.
39649	SelfLink string `json:"selfLink,omitempty"`
39650
39651	// VpnInterfaces: A list of interfaces on this VPN gateway.
39652	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
39653
39654	// ServerResponse contains the HTTP response code and headers from the
39655	// server.
39656	googleapi.ServerResponse `json:"-"`
39657
39658	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
39659	// to unconditionally include in API requests. By default, fields with
39660	// empty values are omitted from API requests. However, any non-pointer,
39661	// non-interface field appearing in ForceSendFields will be sent to the
39662	// server regardless of whether the field is empty or not. This may be
39663	// used to include empty fields in Patch requests.
39664	ForceSendFields []string `json:"-"`
39665
39666	// NullFields is a list of field names (e.g. "CreationTimestamp") to
39667	// include in API requests with the JSON null value. By default, fields
39668	// with empty values are omitted from API requests. However, any field
39669	// with an empty value appearing in NullFields will be sent to the
39670	// server as null. It is an error if a field in this list has a
39671	// non-empty value. This may be used to include null fields in Patch
39672	// requests.
39673	NullFields []string `json:"-"`
39674}
39675
39676func (s *VpnGateway) MarshalJSON() ([]byte, error) {
39677	type NoMethod VpnGateway
39678	raw := NoMethod(*s)
39679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39680}
39681
39682type VpnGatewayAggregatedList struct {
39683	// Id: [Output Only] Unique identifier for the resource; defined by the
39684	// server.
39685	Id string `json:"id,omitempty"`
39686
39687	// Items: A list of VpnGateway resources.
39688	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
39689
39690	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
39691	// VPN gateways.
39692	Kind string `json:"kind,omitempty"`
39693
39694	// NextPageToken: [Output Only] This token allows you to get the next
39695	// page of results for list requests. If the number of results is larger
39696	// than maxResults, use the nextPageToken as a value for the query
39697	// parameter pageToken in the next list request. Subsequent list
39698	// requests will have their own nextPageToken to continue paging through
39699	// the results.
39700	NextPageToken string `json:"nextPageToken,omitempty"`
39701
39702	// SelfLink: [Output Only] Server-defined URL for this resource.
39703	SelfLink string `json:"selfLink,omitempty"`
39704
39705	// Warning: [Output Only] Informational warning message.
39706	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
39707
39708	// ServerResponse contains the HTTP response code and headers from the
39709	// server.
39710	googleapi.ServerResponse `json:"-"`
39711
39712	// ForceSendFields is a list of field names (e.g. "Id") to
39713	// unconditionally include in API requests. By default, fields with
39714	// empty values are omitted from API requests. However, any non-pointer,
39715	// non-interface field appearing in ForceSendFields will be sent to the
39716	// server regardless of whether the field is empty or not. This may be
39717	// used to include empty fields in Patch requests.
39718	ForceSendFields []string `json:"-"`
39719
39720	// NullFields is a list of field names (e.g. "Id") to include in API
39721	// requests with the JSON null value. By default, fields with empty
39722	// values are omitted from API requests. However, any field with an
39723	// empty value appearing in NullFields will be sent to the server as
39724	// null. It is an error if a field in this list has a non-empty value.
39725	// This may be used to include null fields in Patch requests.
39726	NullFields []string `json:"-"`
39727}
39728
39729func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
39730	type NoMethod VpnGatewayAggregatedList
39731	raw := NoMethod(*s)
39732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39733}
39734
39735// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
39736// message.
39737type VpnGatewayAggregatedListWarning struct {
39738	// Code: [Output Only] A warning code, if applicable. For example,
39739	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39740	// the response.
39741	//
39742	// Possible values:
39743	//   "CLEANUP_FAILED"
39744	//   "DEPRECATED_RESOURCE_USED"
39745	//   "DEPRECATED_TYPE_USED"
39746	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39747	//   "EXPERIMENTAL_TYPE_USED"
39748	//   "EXTERNAL_API_WARNING"
39749	//   "FIELD_VALUE_OVERRIDEN"
39750	//   "INJECTED_KERNELS_DEPRECATED"
39751	//   "MISSING_TYPE_DEPENDENCY"
39752	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39753	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39754	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39755	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39756	//   "NEXT_HOP_NOT_RUNNING"
39757	//   "NOT_CRITICAL_ERROR"
39758	//   "NO_RESULTS_ON_PAGE"
39759	//   "REQUIRED_TOS_AGREEMENT"
39760	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39761	//   "RESOURCE_NOT_DELETED"
39762	//   "SCHEMA_VALIDATION_IGNORED"
39763	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39764	//   "UNDECLARED_PROPERTIES"
39765	//   "UNREACHABLE"
39766	Code string `json:"code,omitempty"`
39767
39768	// Data: [Output Only] Metadata about this warning in key: value format.
39769	// For example:
39770	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39771	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
39772
39773	// Message: [Output Only] A human-readable description of the warning
39774	// code.
39775	Message string `json:"message,omitempty"`
39776
39777	// ForceSendFields is a list of field names (e.g. "Code") to
39778	// unconditionally include in API requests. By default, fields with
39779	// empty values are omitted from API requests. However, any non-pointer,
39780	// non-interface field appearing in ForceSendFields will be sent to the
39781	// server regardless of whether the field is empty or not. This may be
39782	// used to include empty fields in Patch requests.
39783	ForceSendFields []string `json:"-"`
39784
39785	// NullFields is a list of field names (e.g. "Code") to include in API
39786	// requests with the JSON null value. By default, fields with empty
39787	// values are omitted from API requests. However, any field with an
39788	// empty value appearing in NullFields will be sent to the server as
39789	// null. It is an error if a field in this list has a non-empty value.
39790	// This may be used to include null fields in Patch requests.
39791	NullFields []string `json:"-"`
39792}
39793
39794func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
39795	type NoMethod VpnGatewayAggregatedListWarning
39796	raw := NoMethod(*s)
39797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39798}
39799
39800type VpnGatewayAggregatedListWarningData struct {
39801	// Key: [Output Only] A key that provides more detail on the warning
39802	// being returned. For example, for warnings where there are no results
39803	// in a list request for a particular zone, this key might be scope and
39804	// the key value might be the zone name. Other examples might be a key
39805	// indicating a deprecated resource and a suggested replacement, or a
39806	// warning about invalid network settings (for example, if an instance
39807	// attempts to perform IP forwarding but is not enabled for IP
39808	// forwarding).
39809	Key string `json:"key,omitempty"`
39810
39811	// Value: [Output Only] A warning data value corresponding to the key.
39812	Value string `json:"value,omitempty"`
39813
39814	// ForceSendFields is a list of field names (e.g. "Key") to
39815	// unconditionally include in API requests. By default, fields with
39816	// empty values are omitted from API requests. However, any non-pointer,
39817	// non-interface field appearing in ForceSendFields will be sent to the
39818	// server regardless of whether the field is empty or not. This may be
39819	// used to include empty fields in Patch requests.
39820	ForceSendFields []string `json:"-"`
39821
39822	// NullFields is a list of field names (e.g. "Key") to include in API
39823	// requests with the JSON null value. By default, fields with empty
39824	// values are omitted from API requests. However, any field with an
39825	// empty value appearing in NullFields will be sent to the server as
39826	// null. It is an error if a field in this list has a non-empty value.
39827	// This may be used to include null fields in Patch requests.
39828	NullFields []string `json:"-"`
39829}
39830
39831func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
39832	type NoMethod VpnGatewayAggregatedListWarningData
39833	raw := NoMethod(*s)
39834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39835}
39836
39837// VpnGatewayList: Contains a list of VpnGateway resources.
39838type VpnGatewayList struct {
39839	// Id: [Output Only] Unique identifier for the resource; defined by the
39840	// server.
39841	Id string `json:"id,omitempty"`
39842
39843	// Items: A list of VpnGateway resources.
39844	Items []*VpnGateway `json:"items,omitempty"`
39845
39846	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
39847	// VPN gateways.
39848	Kind string `json:"kind,omitempty"`
39849
39850	// NextPageToken: [Output Only] This token allows you to get the next
39851	// page of results for list requests. If the number of results is larger
39852	// than maxResults, use the nextPageToken as a value for the query
39853	// parameter pageToken in the next list request. Subsequent list
39854	// requests will have their own nextPageToken to continue paging through
39855	// the results.
39856	NextPageToken string `json:"nextPageToken,omitempty"`
39857
39858	// SelfLink: [Output Only] Server-defined URL for this resource.
39859	SelfLink string `json:"selfLink,omitempty"`
39860
39861	// Warning: [Output Only] Informational warning message.
39862	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
39863
39864	// ServerResponse contains the HTTP response code and headers from the
39865	// server.
39866	googleapi.ServerResponse `json:"-"`
39867
39868	// ForceSendFields is a list of field names (e.g. "Id") to
39869	// unconditionally include in API requests. By default, fields with
39870	// empty values are omitted from API requests. However, any non-pointer,
39871	// non-interface field appearing in ForceSendFields will be sent to the
39872	// server regardless of whether the field is empty or not. This may be
39873	// used to include empty fields in Patch requests.
39874	ForceSendFields []string `json:"-"`
39875
39876	// NullFields is a list of field names (e.g. "Id") to include in API
39877	// requests with the JSON null value. By default, fields with empty
39878	// values are omitted from API requests. However, any field with an
39879	// empty value appearing in NullFields will be sent to the server as
39880	// null. It is an error if a field in this list has a non-empty value.
39881	// This may be used to include null fields in Patch requests.
39882	NullFields []string `json:"-"`
39883}
39884
39885func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
39886	type NoMethod VpnGatewayList
39887	raw := NoMethod(*s)
39888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39889}
39890
39891// VpnGatewayListWarning: [Output Only] Informational warning message.
39892type VpnGatewayListWarning struct {
39893	// Code: [Output Only] A warning code, if applicable. For example,
39894	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39895	// the response.
39896	//
39897	// Possible values:
39898	//   "CLEANUP_FAILED"
39899	//   "DEPRECATED_RESOURCE_USED"
39900	//   "DEPRECATED_TYPE_USED"
39901	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39902	//   "EXPERIMENTAL_TYPE_USED"
39903	//   "EXTERNAL_API_WARNING"
39904	//   "FIELD_VALUE_OVERRIDEN"
39905	//   "INJECTED_KERNELS_DEPRECATED"
39906	//   "MISSING_TYPE_DEPENDENCY"
39907	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39908	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39909	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39910	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39911	//   "NEXT_HOP_NOT_RUNNING"
39912	//   "NOT_CRITICAL_ERROR"
39913	//   "NO_RESULTS_ON_PAGE"
39914	//   "REQUIRED_TOS_AGREEMENT"
39915	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39916	//   "RESOURCE_NOT_DELETED"
39917	//   "SCHEMA_VALIDATION_IGNORED"
39918	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39919	//   "UNDECLARED_PROPERTIES"
39920	//   "UNREACHABLE"
39921	Code string `json:"code,omitempty"`
39922
39923	// Data: [Output Only] Metadata about this warning in key: value format.
39924	// For example:
39925	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39926	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
39927
39928	// Message: [Output Only] A human-readable description of the warning
39929	// code.
39930	Message string `json:"message,omitempty"`
39931
39932	// ForceSendFields is a list of field names (e.g. "Code") to
39933	// unconditionally include in API requests. By default, fields with
39934	// empty values are omitted from API requests. However, any non-pointer,
39935	// non-interface field appearing in ForceSendFields will be sent to the
39936	// server regardless of whether the field is empty or not. This may be
39937	// used to include empty fields in Patch requests.
39938	ForceSendFields []string `json:"-"`
39939
39940	// NullFields is a list of field names (e.g. "Code") to include in API
39941	// requests with the JSON null value. By default, fields with empty
39942	// values are omitted from API requests. However, any field with an
39943	// empty value appearing in NullFields will be sent to the server as
39944	// null. It is an error if a field in this list has a non-empty value.
39945	// This may be used to include null fields in Patch requests.
39946	NullFields []string `json:"-"`
39947}
39948
39949func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
39950	type NoMethod VpnGatewayListWarning
39951	raw := NoMethod(*s)
39952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39953}
39954
39955type VpnGatewayListWarningData struct {
39956	// Key: [Output Only] A key that provides more detail on the warning
39957	// being returned. For example, for warnings where there are no results
39958	// in a list request for a particular zone, this key might be scope and
39959	// the key value might be the zone name. Other examples might be a key
39960	// indicating a deprecated resource and a suggested replacement, or a
39961	// warning about invalid network settings (for example, if an instance
39962	// attempts to perform IP forwarding but is not enabled for IP
39963	// forwarding).
39964	Key string `json:"key,omitempty"`
39965
39966	// Value: [Output Only] A warning data value corresponding to the key.
39967	Value string `json:"value,omitempty"`
39968
39969	// ForceSendFields is a list of field names (e.g. "Key") to
39970	// unconditionally include in API requests. By default, fields with
39971	// empty values are omitted from API requests. However, any non-pointer,
39972	// non-interface field appearing in ForceSendFields will be sent to the
39973	// server regardless of whether the field is empty or not. This may be
39974	// used to include empty fields in Patch requests.
39975	ForceSendFields []string `json:"-"`
39976
39977	// NullFields is a list of field names (e.g. "Key") to include in API
39978	// requests with the JSON null value. By default, fields with empty
39979	// values are omitted from API requests. However, any field with an
39980	// empty value appearing in NullFields will be sent to the server as
39981	// null. It is an error if a field in this list has a non-empty value.
39982	// This may be used to include null fields in Patch requests.
39983	NullFields []string `json:"-"`
39984}
39985
39986func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
39987	type NoMethod VpnGatewayListWarningData
39988	raw := NoMethod(*s)
39989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39990}
39991
39992type VpnGatewayStatus struct {
39993	// VpnConnections: List of VPN connection for this VpnGateway.
39994	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
39995
39996	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
39997	// unconditionally include in API requests. By default, fields with
39998	// empty values are omitted from API requests. However, any non-pointer,
39999	// non-interface field appearing in ForceSendFields will be sent to the
40000	// server regardless of whether the field is empty or not. This may be
40001	// used to include empty fields in Patch requests.
40002	ForceSendFields []string `json:"-"`
40003
40004	// NullFields is a list of field names (e.g. "VpnConnections") to
40005	// include in API requests with the JSON null value. By default, fields
40006	// with empty values are omitted from API requests. However, any field
40007	// with an empty value appearing in NullFields will be sent to the
40008	// server as null. It is an error if a field in this list has a
40009	// non-empty value. This may be used to include null fields in Patch
40010	// requests.
40011	NullFields []string `json:"-"`
40012}
40013
40014func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
40015	type NoMethod VpnGatewayStatus
40016	raw := NoMethod(*s)
40017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40018}
40019
40020// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
40021// availability requirement state for the VPN connection between this
40022// Cloud VPN gateway and a peer gateway.
40023type VpnGatewayStatusHighAvailabilityRequirementState struct {
40024	// State: Indicates the high availability requirement state for the VPN
40025	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
40026	// CONNECTION_REDUNDANCY_NOT_MET.
40027	//
40028	// Possible values:
40029	//   "CONNECTION_REDUNDANCY_MET"
40030	//   "CONNECTION_REDUNDANCY_NOT_MET"
40031	State string `json:"state,omitempty"`
40032
40033	// UnsatisfiedReason: Indicates the reason why the VPN connection does
40034	// not meet the high availability redundancy criteria/requirement. Valid
40035	// values is INCOMPLETE_TUNNELS_COVERAGE.
40036	//
40037	// Possible values:
40038	//   "INCOMPLETE_TUNNELS_COVERAGE"
40039	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
40040
40041	// ForceSendFields is a list of field names (e.g. "State") to
40042	// unconditionally include in API requests. By default, fields with
40043	// empty values are omitted from API requests. However, any non-pointer,
40044	// non-interface field appearing in ForceSendFields will be sent to the
40045	// server regardless of whether the field is empty or not. This may be
40046	// used to include empty fields in Patch requests.
40047	ForceSendFields []string `json:"-"`
40048
40049	// NullFields is a list of field names (e.g. "State") to include in API
40050	// requests with the JSON null value. By default, fields with empty
40051	// values are omitted from API requests. However, any field with an
40052	// empty value appearing in NullFields will be sent to the server as
40053	// null. It is an error if a field in this list has a non-empty value.
40054	// This may be used to include null fields in Patch requests.
40055	NullFields []string `json:"-"`
40056}
40057
40058func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
40059	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
40060	raw := NoMethod(*s)
40061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40062}
40063
40064// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
40065type VpnGatewayStatusTunnel struct {
40066	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
40067	// associated with.
40068	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
40069
40070	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
40071	// connected to, the peer gateway could either be an external VPN
40072	// gateway or GCP VPN gateway.
40073	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
40074
40075	// TunnelUrl: URL reference to the VPN tunnel.
40076	TunnelUrl string `json:"tunnelUrl,omitempty"`
40077
40078	// ForceSendFields is a list of field names (e.g.
40079	// "LocalGatewayInterface") to unconditionally include in API requests.
40080	// By default, fields with empty values are omitted from API requests.
40081	// However, any non-pointer, non-interface field appearing in
40082	// ForceSendFields will be sent to the server regardless of whether the
40083	// field is empty or not. This may be used to include empty fields in
40084	// Patch requests.
40085	ForceSendFields []string `json:"-"`
40086
40087	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
40088	// include in API requests with the JSON null value. By default, fields
40089	// with empty values are omitted from API requests. However, any field
40090	// with an empty value appearing in NullFields will be sent to the
40091	// server as null. It is an error if a field in this list has a
40092	// non-empty value. This may be used to include null fields in Patch
40093	// requests.
40094	NullFields []string `json:"-"`
40095}
40096
40097func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
40098	type NoMethod VpnGatewayStatusTunnel
40099	raw := NoMethod(*s)
40100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40101}
40102
40103// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
40104// tunnels connected from this VpnGateway to the same peer gateway. The
40105// peer gateway could either be a external VPN gateway or GCP VPN
40106// gateway.
40107type VpnGatewayStatusVpnConnection struct {
40108	// PeerExternalGateway: URL reference to the peer external VPN gateways
40109	// to which the VPN tunnels in this VPN connection are connected. This
40110	// field is mutually exclusive with peer_gcp_gateway.
40111	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
40112
40113	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
40114	// the VPN tunnels in this VPN connection are connected. This field is
40115	// mutually exclusive with peer_gcp_gateway.
40116	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
40117
40118	// State: HighAvailabilityRequirementState for the VPN connection.
40119	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
40120
40121	// Tunnels: List of VPN tunnels that are in this VPN connection.
40122	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
40123
40124	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
40125	// to unconditionally include in API requests. By default, fields with
40126	// empty values are omitted from API requests. However, any non-pointer,
40127	// non-interface field appearing in ForceSendFields will be sent to the
40128	// server regardless of whether the field is empty or not. This may be
40129	// used to include empty fields in Patch requests.
40130	ForceSendFields []string `json:"-"`
40131
40132	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
40133	// include in API requests with the JSON null value. By default, fields
40134	// with empty values are omitted from API requests. However, any field
40135	// with an empty value appearing in NullFields will be sent to the
40136	// server as null. It is an error if a field in this list has a
40137	// non-empty value. This may be used to include null fields in Patch
40138	// requests.
40139	NullFields []string `json:"-"`
40140}
40141
40142func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
40143	type NoMethod VpnGatewayStatusVpnConnection
40144	raw := NoMethod(*s)
40145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40146}
40147
40148// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
40149type VpnGatewayVpnGatewayInterface struct {
40150	// Id: The numeric ID of this VPN gateway interface.
40151	Id int64 `json:"id,omitempty"`
40152
40153	// IpAddress: [Output Only] The external IP address for this VPN gateway
40154	// interface.
40155	IpAddress string `json:"ipAddress,omitempty"`
40156
40157	// ForceSendFields is a list of field names (e.g. "Id") to
40158	// unconditionally include in API requests. By default, fields with
40159	// empty values are omitted from API requests. However, any non-pointer,
40160	// non-interface field appearing in ForceSendFields will be sent to the
40161	// server regardless of whether the field is empty or not. This may be
40162	// used to include empty fields in Patch requests.
40163	ForceSendFields []string `json:"-"`
40164
40165	// NullFields is a list of field names (e.g. "Id") to include in API
40166	// requests with the JSON null value. By default, fields with empty
40167	// values are omitted from API requests. However, any field with an
40168	// empty value appearing in NullFields will be sent to the server as
40169	// null. It is an error if a field in this list has a non-empty value.
40170	// This may be used to include null fields in Patch requests.
40171	NullFields []string `json:"-"`
40172}
40173
40174func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
40175	type NoMethod VpnGatewayVpnGatewayInterface
40176	raw := NoMethod(*s)
40177	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40178}
40179
40180type VpnGatewaysGetStatusResponse struct {
40181	Result *VpnGatewayStatus `json:"result,omitempty"`
40182
40183	// ServerResponse contains the HTTP response code and headers from the
40184	// server.
40185	googleapi.ServerResponse `json:"-"`
40186
40187	// ForceSendFields is a list of field names (e.g. "Result") to
40188	// unconditionally include in API requests. By default, fields with
40189	// empty values are omitted from API requests. However, any non-pointer,
40190	// non-interface field appearing in ForceSendFields will be sent to the
40191	// server regardless of whether the field is empty or not. This may be
40192	// used to include empty fields in Patch requests.
40193	ForceSendFields []string `json:"-"`
40194
40195	// NullFields is a list of field names (e.g. "Result") to include in API
40196	// requests with the JSON null value. By default, fields with empty
40197	// values are omitted from API requests. However, any field with an
40198	// empty value appearing in NullFields will be sent to the server as
40199	// null. It is an error if a field in this list has a non-empty value.
40200	// This may be used to include null fields in Patch requests.
40201	NullFields []string `json:"-"`
40202}
40203
40204func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
40205	type NoMethod VpnGatewaysGetStatusResponse
40206	raw := NoMethod(*s)
40207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40208}
40209
40210type VpnGatewaysScopedList struct {
40211	// VpnGateways: [Output Only] A list of VPN gateways contained in this
40212	// scope.
40213	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
40214
40215	// Warning: [Output Only] Informational warning which replaces the list
40216	// of addresses when the list is empty.
40217	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
40218
40219	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
40220	// unconditionally include in API requests. By default, fields with
40221	// empty values are omitted from API requests. However, any non-pointer,
40222	// non-interface field appearing in ForceSendFields will be sent to the
40223	// server regardless of whether the field is empty or not. This may be
40224	// used to include empty fields in Patch requests.
40225	ForceSendFields []string `json:"-"`
40226
40227	// NullFields is a list of field names (e.g. "VpnGateways") to include
40228	// in API requests with the JSON null value. By default, fields with
40229	// empty values are omitted from API requests. However, any field with
40230	// an empty value appearing in NullFields will be sent to the server as
40231	// null. It is an error if a field in this list has a non-empty value.
40232	// This may be used to include null fields in Patch requests.
40233	NullFields []string `json:"-"`
40234}
40235
40236func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
40237	type NoMethod VpnGatewaysScopedList
40238	raw := NoMethod(*s)
40239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40240}
40241
40242// VpnGatewaysScopedListWarning: [Output Only] Informational warning
40243// which replaces the list of addresses when the list is empty.
40244type VpnGatewaysScopedListWarning struct {
40245	// Code: [Output Only] A warning code, if applicable. For example,
40246	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40247	// the response.
40248	//
40249	// Possible values:
40250	//   "CLEANUP_FAILED"
40251	//   "DEPRECATED_RESOURCE_USED"
40252	//   "DEPRECATED_TYPE_USED"
40253	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40254	//   "EXPERIMENTAL_TYPE_USED"
40255	//   "EXTERNAL_API_WARNING"
40256	//   "FIELD_VALUE_OVERRIDEN"
40257	//   "INJECTED_KERNELS_DEPRECATED"
40258	//   "MISSING_TYPE_DEPENDENCY"
40259	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40260	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40261	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40262	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40263	//   "NEXT_HOP_NOT_RUNNING"
40264	//   "NOT_CRITICAL_ERROR"
40265	//   "NO_RESULTS_ON_PAGE"
40266	//   "REQUIRED_TOS_AGREEMENT"
40267	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40268	//   "RESOURCE_NOT_DELETED"
40269	//   "SCHEMA_VALIDATION_IGNORED"
40270	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40271	//   "UNDECLARED_PROPERTIES"
40272	//   "UNREACHABLE"
40273	Code string `json:"code,omitempty"`
40274
40275	// Data: [Output Only] Metadata about this warning in key: value format.
40276	// For example:
40277	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40278	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
40279
40280	// Message: [Output Only] A human-readable description of the warning
40281	// code.
40282	Message string `json:"message,omitempty"`
40283
40284	// ForceSendFields is a list of field names (e.g. "Code") to
40285	// unconditionally include in API requests. By default, fields with
40286	// empty values are omitted from API requests. However, any non-pointer,
40287	// non-interface field appearing in ForceSendFields will be sent to the
40288	// server regardless of whether the field is empty or not. This may be
40289	// used to include empty fields in Patch requests.
40290	ForceSendFields []string `json:"-"`
40291
40292	// NullFields is a list of field names (e.g. "Code") to include in API
40293	// requests with the JSON null value. By default, fields with empty
40294	// values are omitted from API requests. However, any field with an
40295	// empty value appearing in NullFields will be sent to the server as
40296	// null. It is an error if a field in this list has a non-empty value.
40297	// This may be used to include null fields in Patch requests.
40298	NullFields []string `json:"-"`
40299}
40300
40301func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
40302	type NoMethod VpnGatewaysScopedListWarning
40303	raw := NoMethod(*s)
40304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40305}
40306
40307type VpnGatewaysScopedListWarningData struct {
40308	// Key: [Output Only] A key that provides more detail on the warning
40309	// being returned. For example, for warnings where there are no results
40310	// in a list request for a particular zone, this key might be scope and
40311	// the key value might be the zone name. Other examples might be a key
40312	// indicating a deprecated resource and a suggested replacement, or a
40313	// warning about invalid network settings (for example, if an instance
40314	// attempts to perform IP forwarding but is not enabled for IP
40315	// forwarding).
40316	Key string `json:"key,omitempty"`
40317
40318	// Value: [Output Only] A warning data value corresponding to the key.
40319	Value string `json:"value,omitempty"`
40320
40321	// ForceSendFields is a list of field names (e.g. "Key") to
40322	// unconditionally include in API requests. By default, fields with
40323	// empty values are omitted from API requests. However, any non-pointer,
40324	// non-interface field appearing in ForceSendFields will be sent to the
40325	// server regardless of whether the field is empty or not. This may be
40326	// used to include empty fields in Patch requests.
40327	ForceSendFields []string `json:"-"`
40328
40329	// NullFields is a list of field names (e.g. "Key") to include in API
40330	// requests with the JSON null value. By default, fields with empty
40331	// values are omitted from API requests. However, any field with an
40332	// empty value appearing in NullFields will be sent to the server as
40333	// null. It is an error if a field in this list has a non-empty value.
40334	// This may be used to include null fields in Patch requests.
40335	NullFields []string `json:"-"`
40336}
40337
40338func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
40339	type NoMethod VpnGatewaysScopedListWarningData
40340	raw := NoMethod(*s)
40341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40342}
40343
40344// VpnTunnel: Represents a Cloud VPN Tunnel resource.
40345//
40346// For more information about VPN, read the the Cloud VPN Overview. (==
40347// resource_for {$api_version}.vpnTunnels ==)
40348type VpnTunnel struct {
40349	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40350	// format.
40351	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40352
40353	// Description: An optional description of this resource. Provide this
40354	// property when you create the resource.
40355	Description string `json:"description,omitempty"`
40356
40357	// DetailedStatus: [Output Only] Detailed status message for the VPN
40358	// tunnel.
40359	DetailedStatus string `json:"detailedStatus,omitempty"`
40360
40361	// Id: [Output Only] The unique identifier for the resource. This
40362	// identifier is defined by the server.
40363	Id uint64 `json:"id,omitempty,string"`
40364
40365	// IkeVersion: IKE protocol version to use when establishing the VPN
40366	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
40367	// The default version is 2.
40368	IkeVersion int64 `json:"ikeVersion,omitempty"`
40369
40370	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
40371	// VPN tunnels.
40372	Kind string `json:"kind,omitempty"`
40373
40374	// LocalTrafficSelector: Local traffic selector to use when establishing
40375	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
40376	// formatted string, for example: 192.168.0.0/16. The ranges must be
40377	// disjoint. Only IPv4 is supported.
40378	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
40379
40380	// Name: Name of the resource. Provided by the client when the resource
40381	// is created. The name must be 1-63 characters long, and comply with
40382	// RFC1035. Specifically, the name must be 1-63 characters long and
40383	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40384	// the first character must be a lowercase letter, and all following
40385	// characters must be a dash, lowercase letter, or digit, except the
40386	// last character, which cannot be a dash.
40387	Name string `json:"name,omitempty"`
40388
40389	// PeerExternalGateway: URL of the peer side external VPN gateway to
40390	// which this VPN tunnel is connected. Provided by the client when the
40391	// VPN tunnel is created. This field is exclusive with the field
40392	// peerGcpGateway.
40393	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
40394
40395	// PeerExternalGatewayInterface: The interface ID of the external VPN
40396	// gateway to which this VPN tunnel is connected. Provided by the client
40397	// when the VPN tunnel is created.
40398	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
40399
40400	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
40401	// VPN tunnel is connected. Provided by the client when the VPN tunnel
40402	// is created. This field can be used when creating highly available VPN
40403	// from VPC network to VPC network, the field is exclusive with the
40404	// field peerExternalGateway. If provided, the VPN tunnel will
40405	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
40406	// gateway.
40407	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
40408
40409	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
40410	PeerIp string `json:"peerIp,omitempty"`
40411
40412	// Region: [Output Only] URL of the region where the VPN tunnel resides.
40413	// You must specify this field as part of the HTTP request URL. It is
40414	// not settable as a field in the request body.
40415	Region string `json:"region,omitempty"`
40416
40417	// RemoteTrafficSelector: Remote traffic selectors to use when
40418	// establishing the VPN tunnel with the peer VPN gateway. The value
40419	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
40420	// ranges should be disjoint. Only IPv4 is supported.
40421	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
40422
40423	// Router: URL of the router resource to be used for dynamic routing.
40424	Router string `json:"router,omitempty"`
40425
40426	// SelfLink: [Output Only] Server-defined URL for the resource.
40427	SelfLink string `json:"selfLink,omitempty"`
40428
40429	// SharedSecret: Shared secret used to set the secure session between
40430	// the Cloud VPN gateway and the peer VPN gateway.
40431	SharedSecret string `json:"sharedSecret,omitempty"`
40432
40433	// SharedSecretHash: Hash of the shared secret.
40434	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
40435
40436	// Status: [Output Only] The status of the VPN tunnel, which can be one
40437	// of the following:
40438	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
40439	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
40440	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
40441	// and Route resources are needed to setup the VPN tunnel.
40442	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
40443	// - ESTABLISHED: Secure session is successfully established with the
40444	// peer VPN.
40445	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
40446	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
40447	//
40448	// - NEGOTIATION_FAILURE: Handshake failed.
40449	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
40450	//
40451	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
40452	// be used.
40453	// - NO_INCOMING_PACKETS: No incoming packets from peer.
40454	// - REJECTED: Tunnel configuration was rejected, can be result of being
40455	// blacklisted.
40456	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
40457	// required resources.
40458	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
40459	// deleted for Classic VPN tunnels or the project is in frozen state.
40460	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
40461	// probably behind NAT.
40462	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
40463	// for an HA-VPN tunnel.
40464	//
40465	// Possible values:
40466	//   "ALLOCATING_RESOURCES"
40467	//   "AUTHORIZATION_ERROR"
40468	//   "DEPROVISIONING"
40469	//   "ESTABLISHED"
40470	//   "FAILED"
40471	//   "FIRST_HANDSHAKE"
40472	//   "NEGOTIATION_FAILURE"
40473	//   "NETWORK_ERROR"
40474	//   "NO_INCOMING_PACKETS"
40475	//   "PROVISIONING"
40476	//   "REJECTED"
40477	//   "STOPPED"
40478	//   "WAITING_FOR_FULL_CONFIG"
40479	Status string `json:"status,omitempty"`
40480
40481	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
40482	// tunnel is associated. Provided by the client when the VPN tunnel is
40483	// created.
40484	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
40485
40486	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
40487	// associated. Provided by the client when the VPN tunnel is created.
40488	// This must be used (instead of target_vpn_gateway) if a High
40489	// Availability VPN gateway resource is created.
40490	VpnGateway string `json:"vpnGateway,omitempty"`
40491
40492	// VpnGatewayInterface: The interface ID of the VPN gateway with which
40493	// this VPN tunnel is associated.
40494	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
40495
40496	// ServerResponse contains the HTTP response code and headers from the
40497	// server.
40498	googleapi.ServerResponse `json:"-"`
40499
40500	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40501	// to unconditionally include in API requests. By default, fields with
40502	// empty values are omitted from API requests. However, any non-pointer,
40503	// non-interface field appearing in ForceSendFields will be sent to the
40504	// server regardless of whether the field is empty or not. This may be
40505	// used to include empty fields in Patch requests.
40506	ForceSendFields []string `json:"-"`
40507
40508	// NullFields is a list of field names (e.g. "CreationTimestamp") to
40509	// include in API requests with the JSON null value. By default, fields
40510	// with empty values are omitted from API requests. However, any field
40511	// with an empty value appearing in NullFields will be sent to the
40512	// server as null. It is an error if a field in this list has a
40513	// non-empty value. This may be used to include null fields in Patch
40514	// requests.
40515	NullFields []string `json:"-"`
40516}
40517
40518func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
40519	type NoMethod VpnTunnel
40520	raw := NoMethod(*s)
40521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40522}
40523
40524type VpnTunnelAggregatedList struct {
40525	// Id: [Output Only] Unique identifier for the resource; defined by the
40526	// server.
40527	Id string `json:"id,omitempty"`
40528
40529	// Items: A list of VpnTunnelsScopedList resources.
40530	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
40531
40532	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
40533	// VPN tunnels.
40534	Kind string `json:"kind,omitempty"`
40535
40536	// NextPageToken: [Output Only] This token allows you to get the next
40537	// page of results for list requests. If the number of results is larger
40538	// than maxResults, use the nextPageToken as a value for the query
40539	// parameter pageToken in the next list request. Subsequent list
40540	// requests will have their own nextPageToken to continue paging through
40541	// the results.
40542	NextPageToken string `json:"nextPageToken,omitempty"`
40543
40544	// SelfLink: [Output Only] Server-defined URL for this resource.
40545	SelfLink string `json:"selfLink,omitempty"`
40546
40547	// Warning: [Output Only] Informational warning message.
40548	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
40549
40550	// ServerResponse contains the HTTP response code and headers from the
40551	// server.
40552	googleapi.ServerResponse `json:"-"`
40553
40554	// ForceSendFields is a list of field names (e.g. "Id") to
40555	// unconditionally include in API requests. By default, fields with
40556	// empty values are omitted from API requests. However, any non-pointer,
40557	// non-interface field appearing in ForceSendFields will be sent to the
40558	// server regardless of whether the field is empty or not. This may be
40559	// used to include empty fields in Patch requests.
40560	ForceSendFields []string `json:"-"`
40561
40562	// NullFields is a list of field names (e.g. "Id") to include in API
40563	// requests with the JSON null value. By default, fields with empty
40564	// values are omitted from API requests. However, any field with an
40565	// empty value appearing in NullFields will be sent to the server as
40566	// null. It is an error if a field in this list has a non-empty value.
40567	// This may be used to include null fields in Patch requests.
40568	NullFields []string `json:"-"`
40569}
40570
40571func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
40572	type NoMethod VpnTunnelAggregatedList
40573	raw := NoMethod(*s)
40574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40575}
40576
40577// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
40578// message.
40579type VpnTunnelAggregatedListWarning struct {
40580	// Code: [Output Only] A warning code, if applicable. For example,
40581	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40582	// the response.
40583	//
40584	// Possible values:
40585	//   "CLEANUP_FAILED"
40586	//   "DEPRECATED_RESOURCE_USED"
40587	//   "DEPRECATED_TYPE_USED"
40588	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40589	//   "EXPERIMENTAL_TYPE_USED"
40590	//   "EXTERNAL_API_WARNING"
40591	//   "FIELD_VALUE_OVERRIDEN"
40592	//   "INJECTED_KERNELS_DEPRECATED"
40593	//   "MISSING_TYPE_DEPENDENCY"
40594	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40595	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40596	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40597	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40598	//   "NEXT_HOP_NOT_RUNNING"
40599	//   "NOT_CRITICAL_ERROR"
40600	//   "NO_RESULTS_ON_PAGE"
40601	//   "REQUIRED_TOS_AGREEMENT"
40602	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40603	//   "RESOURCE_NOT_DELETED"
40604	//   "SCHEMA_VALIDATION_IGNORED"
40605	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40606	//   "UNDECLARED_PROPERTIES"
40607	//   "UNREACHABLE"
40608	Code string `json:"code,omitempty"`
40609
40610	// Data: [Output Only] Metadata about this warning in key: value format.
40611	// For example:
40612	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40613	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
40614
40615	// Message: [Output Only] A human-readable description of the warning
40616	// code.
40617	Message string `json:"message,omitempty"`
40618
40619	// ForceSendFields is a list of field names (e.g. "Code") to
40620	// unconditionally include in API requests. By default, fields with
40621	// empty values are omitted from API requests. However, any non-pointer,
40622	// non-interface field appearing in ForceSendFields will be sent to the
40623	// server regardless of whether the field is empty or not. This may be
40624	// used to include empty fields in Patch requests.
40625	ForceSendFields []string `json:"-"`
40626
40627	// NullFields is a list of field names (e.g. "Code") to include in API
40628	// requests with the JSON null value. By default, fields with empty
40629	// values are omitted from API requests. However, any field with an
40630	// empty value appearing in NullFields will be sent to the server as
40631	// null. It is an error if a field in this list has a non-empty value.
40632	// This may be used to include null fields in Patch requests.
40633	NullFields []string `json:"-"`
40634}
40635
40636func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
40637	type NoMethod VpnTunnelAggregatedListWarning
40638	raw := NoMethod(*s)
40639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40640}
40641
40642type VpnTunnelAggregatedListWarningData struct {
40643	// Key: [Output Only] A key that provides more detail on the warning
40644	// being returned. For example, for warnings where there are no results
40645	// in a list request for a particular zone, this key might be scope and
40646	// the key value might be the zone name. Other examples might be a key
40647	// indicating a deprecated resource and a suggested replacement, or a
40648	// warning about invalid network settings (for example, if an instance
40649	// attempts to perform IP forwarding but is not enabled for IP
40650	// forwarding).
40651	Key string `json:"key,omitempty"`
40652
40653	// Value: [Output Only] A warning data value corresponding to the key.
40654	Value string `json:"value,omitempty"`
40655
40656	// ForceSendFields is a list of field names (e.g. "Key") to
40657	// unconditionally include in API requests. By default, fields with
40658	// empty values are omitted from API requests. However, any non-pointer,
40659	// non-interface field appearing in ForceSendFields will be sent to the
40660	// server regardless of whether the field is empty or not. This may be
40661	// used to include empty fields in Patch requests.
40662	ForceSendFields []string `json:"-"`
40663
40664	// NullFields is a list of field names (e.g. "Key") to include in API
40665	// requests with the JSON null value. By default, fields with empty
40666	// values are omitted from API requests. However, any field with an
40667	// empty value appearing in NullFields will be sent to the server as
40668	// null. It is an error if a field in this list has a non-empty value.
40669	// This may be used to include null fields in Patch requests.
40670	NullFields []string `json:"-"`
40671}
40672
40673func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40674	type NoMethod VpnTunnelAggregatedListWarningData
40675	raw := NoMethod(*s)
40676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40677}
40678
40679// VpnTunnelList: Contains a list of VpnTunnel resources.
40680type VpnTunnelList struct {
40681	// Id: [Output Only] Unique identifier for the resource; defined by the
40682	// server.
40683	Id string `json:"id,omitempty"`
40684
40685	// Items: A list of VpnTunnel resources.
40686	Items []*VpnTunnel `json:"items,omitempty"`
40687
40688	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
40689	// VPN tunnels.
40690	Kind string `json:"kind,omitempty"`
40691
40692	// NextPageToken: [Output Only] This token allows you to get the next
40693	// page of results for list requests. If the number of results is larger
40694	// than maxResults, use the nextPageToken as a value for the query
40695	// parameter pageToken in the next list request. Subsequent list
40696	// requests will have their own nextPageToken to continue paging through
40697	// the results.
40698	NextPageToken string `json:"nextPageToken,omitempty"`
40699
40700	// SelfLink: [Output Only] Server-defined URL for this resource.
40701	SelfLink string `json:"selfLink,omitempty"`
40702
40703	// Warning: [Output Only] Informational warning message.
40704	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
40705
40706	// ServerResponse contains the HTTP response code and headers from the
40707	// server.
40708	googleapi.ServerResponse `json:"-"`
40709
40710	// ForceSendFields is a list of field names (e.g. "Id") to
40711	// unconditionally include in API requests. By default, fields with
40712	// empty values are omitted from API requests. However, any non-pointer,
40713	// non-interface field appearing in ForceSendFields will be sent to the
40714	// server regardless of whether the field is empty or not. This may be
40715	// used to include empty fields in Patch requests.
40716	ForceSendFields []string `json:"-"`
40717
40718	// NullFields is a list of field names (e.g. "Id") to include in API
40719	// requests with the JSON null value. By default, fields with empty
40720	// values are omitted from API requests. However, any field with an
40721	// empty value appearing in NullFields will be sent to the server as
40722	// null. It is an error if a field in this list has a non-empty value.
40723	// This may be used to include null fields in Patch requests.
40724	NullFields []string `json:"-"`
40725}
40726
40727func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
40728	type NoMethod VpnTunnelList
40729	raw := NoMethod(*s)
40730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40731}
40732
40733// VpnTunnelListWarning: [Output Only] Informational warning message.
40734type VpnTunnelListWarning struct {
40735	// Code: [Output Only] A warning code, if applicable. For example,
40736	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40737	// the response.
40738	//
40739	// Possible values:
40740	//   "CLEANUP_FAILED"
40741	//   "DEPRECATED_RESOURCE_USED"
40742	//   "DEPRECATED_TYPE_USED"
40743	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40744	//   "EXPERIMENTAL_TYPE_USED"
40745	//   "EXTERNAL_API_WARNING"
40746	//   "FIELD_VALUE_OVERRIDEN"
40747	//   "INJECTED_KERNELS_DEPRECATED"
40748	//   "MISSING_TYPE_DEPENDENCY"
40749	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40750	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40751	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40752	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40753	//   "NEXT_HOP_NOT_RUNNING"
40754	//   "NOT_CRITICAL_ERROR"
40755	//   "NO_RESULTS_ON_PAGE"
40756	//   "REQUIRED_TOS_AGREEMENT"
40757	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40758	//   "RESOURCE_NOT_DELETED"
40759	//   "SCHEMA_VALIDATION_IGNORED"
40760	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40761	//   "UNDECLARED_PROPERTIES"
40762	//   "UNREACHABLE"
40763	Code string `json:"code,omitempty"`
40764
40765	// Data: [Output Only] Metadata about this warning in key: value format.
40766	// For example:
40767	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40768	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
40769
40770	// Message: [Output Only] A human-readable description of the warning
40771	// code.
40772	Message string `json:"message,omitempty"`
40773
40774	// ForceSendFields is a list of field names (e.g. "Code") to
40775	// unconditionally include in API requests. By default, fields with
40776	// empty values are omitted from API requests. However, any non-pointer,
40777	// non-interface field appearing in ForceSendFields will be sent to the
40778	// server regardless of whether the field is empty or not. This may be
40779	// used to include empty fields in Patch requests.
40780	ForceSendFields []string `json:"-"`
40781
40782	// NullFields is a list of field names (e.g. "Code") to include in API
40783	// requests with the JSON null value. By default, fields with empty
40784	// values are omitted from API requests. However, any field with an
40785	// empty value appearing in NullFields will be sent to the server as
40786	// null. It is an error if a field in this list has a non-empty value.
40787	// This may be used to include null fields in Patch requests.
40788	NullFields []string `json:"-"`
40789}
40790
40791func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
40792	type NoMethod VpnTunnelListWarning
40793	raw := NoMethod(*s)
40794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40795}
40796
40797type VpnTunnelListWarningData struct {
40798	// Key: [Output Only] A key that provides more detail on the warning
40799	// being returned. For example, for warnings where there are no results
40800	// in a list request for a particular zone, this key might be scope and
40801	// the key value might be the zone name. Other examples might be a key
40802	// indicating a deprecated resource and a suggested replacement, or a
40803	// warning about invalid network settings (for example, if an instance
40804	// attempts to perform IP forwarding but is not enabled for IP
40805	// forwarding).
40806	Key string `json:"key,omitempty"`
40807
40808	// Value: [Output Only] A warning data value corresponding to the key.
40809	Value string `json:"value,omitempty"`
40810
40811	// ForceSendFields is a list of field names (e.g. "Key") to
40812	// unconditionally include in API requests. By default, fields with
40813	// empty values are omitted from API requests. However, any non-pointer,
40814	// non-interface field appearing in ForceSendFields will be sent to the
40815	// server regardless of whether the field is empty or not. This may be
40816	// used to include empty fields in Patch requests.
40817	ForceSendFields []string `json:"-"`
40818
40819	// NullFields is a list of field names (e.g. "Key") to include in API
40820	// requests with the JSON null value. By default, fields with empty
40821	// values are omitted from API requests. However, any field with an
40822	// empty value appearing in NullFields will be sent to the server as
40823	// null. It is an error if a field in this list has a non-empty value.
40824	// This may be used to include null fields in Patch requests.
40825	NullFields []string `json:"-"`
40826}
40827
40828func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
40829	type NoMethod VpnTunnelListWarningData
40830	raw := NoMethod(*s)
40831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40832}
40833
40834type VpnTunnelsScopedList struct {
40835	// VpnTunnels: A list of VPN tunnels contained in this scope.
40836	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
40837
40838	// Warning: Informational warning which replaces the list of addresses
40839	// when the list is empty.
40840	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
40841
40842	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
40843	// unconditionally include in API requests. By default, fields with
40844	// empty values are omitted from API requests. However, any non-pointer,
40845	// non-interface field appearing in ForceSendFields will be sent to the
40846	// server regardless of whether the field is empty or not. This may be
40847	// used to include empty fields in Patch requests.
40848	ForceSendFields []string `json:"-"`
40849
40850	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
40851	// API requests with the JSON null value. By default, fields with empty
40852	// values are omitted from API requests. However, any field with an
40853	// empty value appearing in NullFields will be sent to the server as
40854	// null. It is an error if a field in this list has a non-empty value.
40855	// This may be used to include null fields in Patch requests.
40856	NullFields []string `json:"-"`
40857}
40858
40859func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
40860	type NoMethod VpnTunnelsScopedList
40861	raw := NoMethod(*s)
40862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40863}
40864
40865// VpnTunnelsScopedListWarning: Informational warning which replaces the
40866// list of addresses when the list is empty.
40867type VpnTunnelsScopedListWarning struct {
40868	// Code: [Output Only] A warning code, if applicable. For example,
40869	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40870	// the response.
40871	//
40872	// Possible values:
40873	//   "CLEANUP_FAILED"
40874	//   "DEPRECATED_RESOURCE_USED"
40875	//   "DEPRECATED_TYPE_USED"
40876	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40877	//   "EXPERIMENTAL_TYPE_USED"
40878	//   "EXTERNAL_API_WARNING"
40879	//   "FIELD_VALUE_OVERRIDEN"
40880	//   "INJECTED_KERNELS_DEPRECATED"
40881	//   "MISSING_TYPE_DEPENDENCY"
40882	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40883	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40884	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40885	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40886	//   "NEXT_HOP_NOT_RUNNING"
40887	//   "NOT_CRITICAL_ERROR"
40888	//   "NO_RESULTS_ON_PAGE"
40889	//   "REQUIRED_TOS_AGREEMENT"
40890	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40891	//   "RESOURCE_NOT_DELETED"
40892	//   "SCHEMA_VALIDATION_IGNORED"
40893	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40894	//   "UNDECLARED_PROPERTIES"
40895	//   "UNREACHABLE"
40896	Code string `json:"code,omitempty"`
40897
40898	// Data: [Output Only] Metadata about this warning in key: value format.
40899	// For example:
40900	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40901	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
40902
40903	// Message: [Output Only] A human-readable description of the warning
40904	// code.
40905	Message string `json:"message,omitempty"`
40906
40907	// ForceSendFields is a list of field names (e.g. "Code") to
40908	// unconditionally include in API requests. By default, fields with
40909	// empty values are omitted from API requests. However, any non-pointer,
40910	// non-interface field appearing in ForceSendFields will be sent to the
40911	// server regardless of whether the field is empty or not. This may be
40912	// used to include empty fields in Patch requests.
40913	ForceSendFields []string `json:"-"`
40914
40915	// NullFields is a list of field names (e.g. "Code") to include in API
40916	// requests with the JSON null value. By default, fields with empty
40917	// values are omitted from API requests. However, any field with an
40918	// empty value appearing in NullFields will be sent to the server as
40919	// null. It is an error if a field in this list has a non-empty value.
40920	// This may be used to include null fields in Patch requests.
40921	NullFields []string `json:"-"`
40922}
40923
40924func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
40925	type NoMethod VpnTunnelsScopedListWarning
40926	raw := NoMethod(*s)
40927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40928}
40929
40930type VpnTunnelsScopedListWarningData struct {
40931	// Key: [Output Only] A key that provides more detail on the warning
40932	// being returned. For example, for warnings where there are no results
40933	// in a list request for a particular zone, this key might be scope and
40934	// the key value might be the zone name. Other examples might be a key
40935	// indicating a deprecated resource and a suggested replacement, or a
40936	// warning about invalid network settings (for example, if an instance
40937	// attempts to perform IP forwarding but is not enabled for IP
40938	// forwarding).
40939	Key string `json:"key,omitempty"`
40940
40941	// Value: [Output Only] A warning data value corresponding to the key.
40942	Value string `json:"value,omitempty"`
40943
40944	// ForceSendFields is a list of field names (e.g. "Key") to
40945	// unconditionally include in API requests. By default, fields with
40946	// empty values are omitted from API requests. However, any non-pointer,
40947	// non-interface field appearing in ForceSendFields will be sent to the
40948	// server regardless of whether the field is empty or not. This may be
40949	// used to include empty fields in Patch requests.
40950	ForceSendFields []string `json:"-"`
40951
40952	// NullFields is a list of field names (e.g. "Key") to include in API
40953	// requests with the JSON null value. By default, fields with empty
40954	// values are omitted from API requests. However, any field with an
40955	// empty value appearing in NullFields will be sent to the server as
40956	// null. It is an error if a field in this list has a non-empty value.
40957	// This may be used to include null fields in Patch requests.
40958	NullFields []string `json:"-"`
40959}
40960
40961func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
40962	type NoMethod VpnTunnelsScopedListWarningData
40963	raw := NoMethod(*s)
40964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40965}
40966
40967type WafExpressionSet struct {
40968	// Aliases: A list of alternate IDs. The format should be: - E.g.
40969	// XSS-stable Generic suffix like "stable" is particularly useful if a
40970	// policy likes to avail newer set of expressions without having to
40971	// change the policy. A given alias name can't be used for more than one
40972	// entity set.
40973	Aliases []string `json:"aliases,omitempty"`
40974
40975	// Expressions: List of available expressions.
40976	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
40977
40978	// Id: Google specified expression set ID. The format should be: - E.g.
40979	// XSS-20170329
40980	Id string `json:"id,omitempty"`
40981
40982	// ForceSendFields is a list of field names (e.g. "Aliases") to
40983	// unconditionally include in API requests. By default, fields with
40984	// empty values are omitted from API requests. However, any non-pointer,
40985	// non-interface field appearing in ForceSendFields will be sent to the
40986	// server regardless of whether the field is empty or not. This may be
40987	// used to include empty fields in Patch requests.
40988	ForceSendFields []string `json:"-"`
40989
40990	// NullFields is a list of field names (e.g. "Aliases") to include in
40991	// API requests with the JSON null value. By default, fields with empty
40992	// values are omitted from API requests. However, any field with an
40993	// empty value appearing in NullFields will be sent to the server as
40994	// null. It is an error if a field in this list has a non-empty value.
40995	// This may be used to include null fields in Patch requests.
40996	NullFields []string `json:"-"`
40997}
40998
40999func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
41000	type NoMethod WafExpressionSet
41001	raw := NoMethod(*s)
41002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41003}
41004
41005type WafExpressionSetExpression struct {
41006	// Id: Expression ID should uniquely identify the origin of the
41007	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
41008	// rule set version 2.9.1 rule id 973337. The ID could be used to
41009	// determine the individual attack definition that has been detected. It
41010	// could also be used to exclude it from the policy in case of false
41011	// positive.
41012	Id string `json:"id,omitempty"`
41013
41014	// ForceSendFields is a list of field names (e.g. "Id") to
41015	// unconditionally include in API requests. By default, fields with
41016	// empty values are omitted from API requests. However, any non-pointer,
41017	// non-interface field appearing in ForceSendFields will be sent to the
41018	// server regardless of whether the field is empty or not. This may be
41019	// used to include empty fields in Patch requests.
41020	ForceSendFields []string `json:"-"`
41021
41022	// NullFields is a list of field names (e.g. "Id") to include in API
41023	// requests with the JSON null value. By default, fields with empty
41024	// values are omitted from API requests. However, any field with an
41025	// empty value appearing in NullFields will be sent to the server as
41026	// null. It is an error if a field in this list has a non-empty value.
41027	// This may be used to include null fields in Patch requests.
41028	NullFields []string `json:"-"`
41029}
41030
41031func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
41032	type NoMethod WafExpressionSetExpression
41033	raw := NoMethod(*s)
41034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41035}
41036
41037// WeightedBackendService: In contrast to a single BackendService in
41038// HttpRouteAction to which all matching traffic is directed to,
41039// WeightedBackendService allows traffic to be split across multiple
41040// BackendServices. The volume of traffic for each BackendService is
41041// proportional to the weight specified in each WeightedBackendService
41042type WeightedBackendService struct {
41043	// BackendService: The full or partial URL to the default BackendService
41044	// resource. Before forwarding the request to backendService, the
41045	// loadbalancer applies any relevant headerActions specified as part of
41046	// this backendServiceWeight.
41047	BackendService string `json:"backendService,omitempty"`
41048
41049	// HeaderAction: Specifies changes to request and response headers that
41050	// need to take effect for the selected backendService.
41051	// headerAction specified here take effect before headerAction in the
41052	// enclosing HttpRouteRule, PathMatcher and UrlMap.
41053	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
41054
41055	// Weight: Specifies the fraction of traffic sent to backendService,
41056	// computed as weight / (sum of all weightedBackendService weights in
41057	// routeAction) .
41058	// The selection of a backend service is determined only for new
41059	// traffic. Once a user's request has been directed to a backendService,
41060	// subsequent requests will be sent to the same backendService as
41061	// determined by the BackendService's session affinity policy.
41062	// The value must be between 0 and 1000
41063	Weight int64 `json:"weight,omitempty"`
41064
41065	// ForceSendFields is a list of field names (e.g. "BackendService") to
41066	// unconditionally include in API requests. By default, fields with
41067	// empty values are omitted from API requests. However, any non-pointer,
41068	// non-interface field appearing in ForceSendFields will be sent to the
41069	// server regardless of whether the field is empty or not. This may be
41070	// used to include empty fields in Patch requests.
41071	ForceSendFields []string `json:"-"`
41072
41073	// NullFields is a list of field names (e.g. "BackendService") to
41074	// include in API requests with the JSON null value. By default, fields
41075	// with empty values are omitted from API requests. However, any field
41076	// with an empty value appearing in NullFields will be sent to the
41077	// server as null. It is an error if a field in this list has a
41078	// non-empty value. This may be used to include null fields in Patch
41079	// requests.
41080	NullFields []string `json:"-"`
41081}
41082
41083func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
41084	type NoMethod WeightedBackendService
41085	raw := NoMethod(*s)
41086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41087}
41088
41089type XpnHostList struct {
41090	// Id: [Output Only] Unique identifier for the resource; defined by the
41091	// server.
41092	Id string `json:"id,omitempty"`
41093
41094	// Items: [Output Only] A list of shared VPC host project URLs.
41095	Items []*Project `json:"items,omitempty"`
41096
41097	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
41098	// lists of shared VPC hosts.
41099	Kind string `json:"kind,omitempty"`
41100
41101	// NextPageToken: [Output Only] This token allows you to get the next
41102	// page of results for list requests. If the number of results is larger
41103	// than maxResults, use the nextPageToken as a value for the query
41104	// parameter pageToken in the next list request. Subsequent list
41105	// requests will have their own nextPageToken to continue paging through
41106	// the results.
41107	NextPageToken string `json:"nextPageToken,omitempty"`
41108
41109	// SelfLink: [Output Only] Server-defined URL for this resource.
41110	SelfLink string `json:"selfLink,omitempty"`
41111
41112	// Warning: [Output Only] Informational warning message.
41113	Warning *XpnHostListWarning `json:"warning,omitempty"`
41114
41115	// ServerResponse contains the HTTP response code and headers from the
41116	// server.
41117	googleapi.ServerResponse `json:"-"`
41118
41119	// ForceSendFields is a list of field names (e.g. "Id") to
41120	// unconditionally include in API requests. By default, fields with
41121	// empty values are omitted from API requests. However, any non-pointer,
41122	// non-interface field appearing in ForceSendFields will be sent to the
41123	// server regardless of whether the field is empty or not. This may be
41124	// used to include empty fields in Patch requests.
41125	ForceSendFields []string `json:"-"`
41126
41127	// NullFields is a list of field names (e.g. "Id") to include in API
41128	// requests with the JSON null value. By default, fields with empty
41129	// values are omitted from API requests. However, any field with an
41130	// empty value appearing in NullFields will be sent to the server as
41131	// null. It is an error if a field in this list has a non-empty value.
41132	// This may be used to include null fields in Patch requests.
41133	NullFields []string `json:"-"`
41134}
41135
41136func (s *XpnHostList) MarshalJSON() ([]byte, error) {
41137	type NoMethod XpnHostList
41138	raw := NoMethod(*s)
41139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41140}
41141
41142// XpnHostListWarning: [Output Only] Informational warning message.
41143type XpnHostListWarning struct {
41144	// Code: [Output Only] A warning code, if applicable. For example,
41145	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41146	// the response.
41147	//
41148	// Possible values:
41149	//   "CLEANUP_FAILED"
41150	//   "DEPRECATED_RESOURCE_USED"
41151	//   "DEPRECATED_TYPE_USED"
41152	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41153	//   "EXPERIMENTAL_TYPE_USED"
41154	//   "EXTERNAL_API_WARNING"
41155	//   "FIELD_VALUE_OVERRIDEN"
41156	//   "INJECTED_KERNELS_DEPRECATED"
41157	//   "MISSING_TYPE_DEPENDENCY"
41158	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41159	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41160	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41161	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41162	//   "NEXT_HOP_NOT_RUNNING"
41163	//   "NOT_CRITICAL_ERROR"
41164	//   "NO_RESULTS_ON_PAGE"
41165	//   "REQUIRED_TOS_AGREEMENT"
41166	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41167	//   "RESOURCE_NOT_DELETED"
41168	//   "SCHEMA_VALIDATION_IGNORED"
41169	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41170	//   "UNDECLARED_PROPERTIES"
41171	//   "UNREACHABLE"
41172	Code string `json:"code,omitempty"`
41173
41174	// Data: [Output Only] Metadata about this warning in key: value format.
41175	// For example:
41176	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41177	Data []*XpnHostListWarningData `json:"data,omitempty"`
41178
41179	// Message: [Output Only] A human-readable description of the warning
41180	// code.
41181	Message string `json:"message,omitempty"`
41182
41183	// ForceSendFields is a list of field names (e.g. "Code") to
41184	// unconditionally include in API requests. By default, fields with
41185	// empty values are omitted from API requests. However, any non-pointer,
41186	// non-interface field appearing in ForceSendFields will be sent to the
41187	// server regardless of whether the field is empty or not. This may be
41188	// used to include empty fields in Patch requests.
41189	ForceSendFields []string `json:"-"`
41190
41191	// NullFields is a list of field names (e.g. "Code") to include in API
41192	// requests with the JSON null value. By default, fields with empty
41193	// values are omitted from API requests. However, any field with an
41194	// empty value appearing in NullFields will be sent to the server as
41195	// null. It is an error if a field in this list has a non-empty value.
41196	// This may be used to include null fields in Patch requests.
41197	NullFields []string `json:"-"`
41198}
41199
41200func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
41201	type NoMethod XpnHostListWarning
41202	raw := NoMethod(*s)
41203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41204}
41205
41206type XpnHostListWarningData struct {
41207	// Key: [Output Only] A key that provides more detail on the warning
41208	// being returned. For example, for warnings where there are no results
41209	// in a list request for a particular zone, this key might be scope and
41210	// the key value might be the zone name. Other examples might be a key
41211	// indicating a deprecated resource and a suggested replacement, or a
41212	// warning about invalid network settings (for example, if an instance
41213	// attempts to perform IP forwarding but is not enabled for IP
41214	// forwarding).
41215	Key string `json:"key,omitempty"`
41216
41217	// Value: [Output Only] A warning data value corresponding to the key.
41218	Value string `json:"value,omitempty"`
41219
41220	// ForceSendFields is a list of field names (e.g. "Key") to
41221	// unconditionally include in API requests. By default, fields with
41222	// empty values are omitted from API requests. However, any non-pointer,
41223	// non-interface field appearing in ForceSendFields will be sent to the
41224	// server regardless of whether the field is empty or not. This may be
41225	// used to include empty fields in Patch requests.
41226	ForceSendFields []string `json:"-"`
41227
41228	// NullFields is a list of field names (e.g. "Key") to include in API
41229	// requests with the JSON null value. By default, fields with empty
41230	// values are omitted from API requests. However, any field with an
41231	// empty value appearing in NullFields will be sent to the server as
41232	// null. It is an error if a field in this list has a non-empty value.
41233	// This may be used to include null fields in Patch requests.
41234	NullFields []string `json:"-"`
41235}
41236
41237func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
41238	type NoMethod XpnHostListWarningData
41239	raw := NoMethod(*s)
41240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41241}
41242
41243// XpnResourceId: Service resource (a.k.a service project) ID.
41244type XpnResourceId struct {
41245	// Id: The ID of the service resource. In the case of projects, this
41246	// field supports project id (e.g., my-project-123) and project number
41247	// (e.g. 12345678).
41248	Id string `json:"id,omitempty"`
41249
41250	// Type: The type of the service resource.
41251	//
41252	// Possible values:
41253	//   "PROJECT"
41254	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
41255	Type string `json:"type,omitempty"`
41256
41257	// ForceSendFields is a list of field names (e.g. "Id") to
41258	// unconditionally include in API requests. By default, fields with
41259	// empty values are omitted from API requests. However, any non-pointer,
41260	// non-interface field appearing in ForceSendFields will be sent to the
41261	// server regardless of whether the field is empty or not. This may be
41262	// used to include empty fields in Patch requests.
41263	ForceSendFields []string `json:"-"`
41264
41265	// NullFields is a list of field names (e.g. "Id") to include in API
41266	// requests with the JSON null value. By default, fields with empty
41267	// values are omitted from API requests. However, any field with an
41268	// empty value appearing in NullFields will be sent to the server as
41269	// null. It is an error if a field in this list has a non-empty value.
41270	// This may be used to include null fields in Patch requests.
41271	NullFields []string `json:"-"`
41272}
41273
41274func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
41275	type NoMethod XpnResourceId
41276	raw := NoMethod(*s)
41277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41278}
41279
41280// Zone: Represents a Zone resource.
41281//
41282// A zone is a deployment area. These deployment areas are subsets of a
41283// region. For example the zone us-east1-a is located in the us-east1
41284// region. For more information, read Regions and Zones. (==
41285// resource_for {$api_version}.zones ==)
41286type Zone struct {
41287	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
41288	// selections for the zone.
41289	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
41290
41291	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41292	// format.
41293	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41294
41295	// Deprecated: [Output Only] The deprecation status associated with this
41296	// zone.
41297	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
41298
41299	// Description: [Output Only] Textual description of the resource.
41300	Description string `json:"description,omitempty"`
41301
41302	// Id: [Output Only] The unique identifier for the resource. This
41303	// identifier is defined by the server.
41304	Id uint64 `json:"id,omitempty,string"`
41305
41306	// Kind: [Output Only] Type of the resource. Always compute#zone for
41307	// zones.
41308	Kind string `json:"kind,omitempty"`
41309
41310	// Name: [Output Only] Name of the resource.
41311	Name string `json:"name,omitempty"`
41312
41313	// Region: [Output Only] Full URL reference to the region which hosts
41314	// the zone.
41315	Region string `json:"region,omitempty"`
41316
41317	// SelfLink: [Output Only] Server-defined URL for the resource.
41318	SelfLink string `json:"selfLink,omitempty"`
41319
41320	// Status: [Output Only] Status of the zone, either UP or DOWN.
41321	//
41322	// Possible values:
41323	//   "DOWN"
41324	//   "UP"
41325	Status string `json:"status,omitempty"`
41326
41327	// ServerResponse contains the HTTP response code and headers from the
41328	// server.
41329	googleapi.ServerResponse `json:"-"`
41330
41331	// ForceSendFields is a list of field names (e.g.
41332	// "AvailableCpuPlatforms") to unconditionally include in API requests.
41333	// By default, fields with empty values are omitted from API requests.
41334	// However, any non-pointer, non-interface field appearing in
41335	// ForceSendFields will be sent to the server regardless of whether the
41336	// field is empty or not. This may be used to include empty fields in
41337	// Patch requests.
41338	ForceSendFields []string `json:"-"`
41339
41340	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
41341	// include in API requests with the JSON null value. By default, fields
41342	// with empty values are omitted from API requests. However, any field
41343	// with an empty value appearing in NullFields will be sent to the
41344	// server as null. It is an error if a field in this list has a
41345	// non-empty value. This may be used to include null fields in Patch
41346	// requests.
41347	NullFields []string `json:"-"`
41348}
41349
41350func (s *Zone) MarshalJSON() ([]byte, error) {
41351	type NoMethod Zone
41352	raw := NoMethod(*s)
41353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41354}
41355
41356// ZoneList: Contains a list of zone resources.
41357type ZoneList struct {
41358	// Id: [Output Only] Unique identifier for the resource; defined by the
41359	// server.
41360	Id string `json:"id,omitempty"`
41361
41362	// Items: A list of Zone resources.
41363	Items []*Zone `json:"items,omitempty"`
41364
41365	// Kind: Type of resource.
41366	Kind string `json:"kind,omitempty"`
41367
41368	// NextPageToken: [Output Only] This token allows you to get the next
41369	// page of results for list requests. If the number of results is larger
41370	// than maxResults, use the nextPageToken as a value for the query
41371	// parameter pageToken in the next list request. Subsequent list
41372	// requests will have their own nextPageToken to continue paging through
41373	// the results.
41374	NextPageToken string `json:"nextPageToken,omitempty"`
41375
41376	// SelfLink: [Output Only] Server-defined URL for this resource.
41377	SelfLink string `json:"selfLink,omitempty"`
41378
41379	// Warning: [Output Only] Informational warning message.
41380	Warning *ZoneListWarning `json:"warning,omitempty"`
41381
41382	// ServerResponse contains the HTTP response code and headers from the
41383	// server.
41384	googleapi.ServerResponse `json:"-"`
41385
41386	// ForceSendFields is a list of field names (e.g. "Id") to
41387	// unconditionally include in API requests. By default, fields with
41388	// empty values are omitted from API requests. However, any non-pointer,
41389	// non-interface field appearing in ForceSendFields will be sent to the
41390	// server regardless of whether the field is empty or not. This may be
41391	// used to include empty fields in Patch requests.
41392	ForceSendFields []string `json:"-"`
41393
41394	// NullFields is a list of field names (e.g. "Id") to include in API
41395	// requests with the JSON null value. By default, fields with empty
41396	// values are omitted from API requests. However, any field with an
41397	// empty value appearing in NullFields will be sent to the server as
41398	// null. It is an error if a field in this list has a non-empty value.
41399	// This may be used to include null fields in Patch requests.
41400	NullFields []string `json:"-"`
41401}
41402
41403func (s *ZoneList) MarshalJSON() ([]byte, error) {
41404	type NoMethod ZoneList
41405	raw := NoMethod(*s)
41406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41407}
41408
41409// ZoneListWarning: [Output Only] Informational warning message.
41410type ZoneListWarning struct {
41411	// Code: [Output Only] A warning code, if applicable. For example,
41412	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41413	// the response.
41414	//
41415	// Possible values:
41416	//   "CLEANUP_FAILED"
41417	//   "DEPRECATED_RESOURCE_USED"
41418	//   "DEPRECATED_TYPE_USED"
41419	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41420	//   "EXPERIMENTAL_TYPE_USED"
41421	//   "EXTERNAL_API_WARNING"
41422	//   "FIELD_VALUE_OVERRIDEN"
41423	//   "INJECTED_KERNELS_DEPRECATED"
41424	//   "MISSING_TYPE_DEPENDENCY"
41425	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41426	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41427	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41428	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41429	//   "NEXT_HOP_NOT_RUNNING"
41430	//   "NOT_CRITICAL_ERROR"
41431	//   "NO_RESULTS_ON_PAGE"
41432	//   "REQUIRED_TOS_AGREEMENT"
41433	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41434	//   "RESOURCE_NOT_DELETED"
41435	//   "SCHEMA_VALIDATION_IGNORED"
41436	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41437	//   "UNDECLARED_PROPERTIES"
41438	//   "UNREACHABLE"
41439	Code string `json:"code,omitempty"`
41440
41441	// Data: [Output Only] Metadata about this warning in key: value format.
41442	// For example:
41443	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41444	Data []*ZoneListWarningData `json:"data,omitempty"`
41445
41446	// Message: [Output Only] A human-readable description of the warning
41447	// code.
41448	Message string `json:"message,omitempty"`
41449
41450	// ForceSendFields is a list of field names (e.g. "Code") to
41451	// unconditionally include in API requests. By default, fields with
41452	// empty values are omitted from API requests. However, any non-pointer,
41453	// non-interface field appearing in ForceSendFields will be sent to the
41454	// server regardless of whether the field is empty or not. This may be
41455	// used to include empty fields in Patch requests.
41456	ForceSendFields []string `json:"-"`
41457
41458	// NullFields is a list of field names (e.g. "Code") to include in API
41459	// requests with the JSON null value. By default, fields with empty
41460	// values are omitted from API requests. However, any field with an
41461	// empty value appearing in NullFields will be sent to the server as
41462	// null. It is an error if a field in this list has a non-empty value.
41463	// This may be used to include null fields in Patch requests.
41464	NullFields []string `json:"-"`
41465}
41466
41467func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
41468	type NoMethod ZoneListWarning
41469	raw := NoMethod(*s)
41470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41471}
41472
41473type ZoneListWarningData struct {
41474	// Key: [Output Only] A key that provides more detail on the warning
41475	// being returned. For example, for warnings where there are no results
41476	// in a list request for a particular zone, this key might be scope and
41477	// the key value might be the zone name. Other examples might be a key
41478	// indicating a deprecated resource and a suggested replacement, or a
41479	// warning about invalid network settings (for example, if an instance
41480	// attempts to perform IP forwarding but is not enabled for IP
41481	// forwarding).
41482	Key string `json:"key,omitempty"`
41483
41484	// Value: [Output Only] A warning data value corresponding to the key.
41485	Value string `json:"value,omitempty"`
41486
41487	// ForceSendFields is a list of field names (e.g. "Key") to
41488	// unconditionally include in API requests. By default, fields with
41489	// empty values are omitted from API requests. However, any non-pointer,
41490	// non-interface field appearing in ForceSendFields will be sent to the
41491	// server regardless of whether the field is empty or not. This may be
41492	// used to include empty fields in Patch requests.
41493	ForceSendFields []string `json:"-"`
41494
41495	// NullFields is a list of field names (e.g. "Key") to include in API
41496	// requests with the JSON null value. By default, fields with empty
41497	// values are omitted from API requests. However, any field with an
41498	// empty value appearing in NullFields will be sent to the server as
41499	// null. It is an error if a field in this list has a non-empty value.
41500	// This may be used to include null fields in Patch requests.
41501	NullFields []string `json:"-"`
41502}
41503
41504func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
41505	type NoMethod ZoneListWarningData
41506	raw := NoMethod(*s)
41507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41508}
41509
41510type ZoneSetLabelsRequest struct {
41511	// LabelFingerprint: The fingerprint of the previous set of labels for
41512	// this resource, used to detect conflicts. The fingerprint is initially
41513	// generated by Compute Engine and changes after every request to modify
41514	// or update labels. You must always provide an up-to-date fingerprint
41515	// hash in order to update or change labels. Make a get() request to the
41516	// resource to get the latest fingerprint.
41517	LabelFingerprint string `json:"labelFingerprint,omitempty"`
41518
41519	// Labels: The labels to set for this resource.
41520	Labels map[string]string `json:"labels,omitempty"`
41521
41522	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
41523	// unconditionally include in API requests. By default, fields with
41524	// empty values are omitted from API requests. However, any non-pointer,
41525	// non-interface field appearing in ForceSendFields will be sent to the
41526	// server regardless of whether the field is empty or not. This may be
41527	// used to include empty fields in Patch requests.
41528	ForceSendFields []string `json:"-"`
41529
41530	// NullFields is a list of field names (e.g. "LabelFingerprint") to
41531	// include in API requests with the JSON null value. By default, fields
41532	// with empty values are omitted from API requests. However, any field
41533	// with an empty value appearing in NullFields will be sent to the
41534	// server as null. It is an error if a field in this list has a
41535	// non-empty value. This may be used to include null fields in Patch
41536	// requests.
41537	NullFields []string `json:"-"`
41538}
41539
41540func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
41541	type NoMethod ZoneSetLabelsRequest
41542	raw := NoMethod(*s)
41543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41544}
41545
41546type ZoneSetPolicyRequest struct {
41547	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
41548	// Deprecated. Use 'policy' to specify bindings.
41549	Bindings []*Binding `json:"bindings,omitempty"`
41550
41551	// Etag: Flatten Policy to create a backward compatible wire-format.
41552	// Deprecated. Use 'policy' to specify the etag.
41553	Etag string `json:"etag,omitempty"`
41554
41555	// Policy: REQUIRED: The complete policy to be applied to the
41556	// 'resource'. The size of the policy is limited to a few 10s of KB. An
41557	// empty policy is in general a valid policy but certain services (like
41558	// Projects) might reject them.
41559	Policy *Policy `json:"policy,omitempty"`
41560
41561	// ForceSendFields is a list of field names (e.g. "Bindings") to
41562	// unconditionally include in API requests. By default, fields with
41563	// empty values are omitted from API requests. However, any non-pointer,
41564	// non-interface field appearing in ForceSendFields will be sent to the
41565	// server regardless of whether the field is empty or not. This may be
41566	// used to include empty fields in Patch requests.
41567	ForceSendFields []string `json:"-"`
41568
41569	// NullFields is a list of field names (e.g. "Bindings") to include in
41570	// API requests with the JSON null value. By default, fields with empty
41571	// values are omitted from API requests. However, any field with an
41572	// empty value appearing in NullFields will be sent to the server as
41573	// null. It is an error if a field in this list has a non-empty value.
41574	// This may be used to include null fields in Patch requests.
41575	NullFields []string `json:"-"`
41576}
41577
41578func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
41579	type NoMethod ZoneSetPolicyRequest
41580	raw := NoMethod(*s)
41581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41582}
41583
41584// method id "compute.acceleratorTypes.aggregatedList":
41585
41586type AcceleratorTypesAggregatedListCall struct {
41587	s            *Service
41588	project      string
41589	urlParams_   gensupport.URLParams
41590	ifNoneMatch_ string
41591	ctx_         context.Context
41592	header_      http.Header
41593}
41594
41595// AggregatedList: Retrieves an aggregated list of accelerator types.
41596func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
41597	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41598	c.project = project
41599	return c
41600}
41601
41602// Filter sets the optional parameter "filter": A filter expression that
41603// filters resources listed in the response. The expression must specify
41604// the field name, a comparison operator, and the value that you want to
41605// use for filtering. The value must be a string, a number, or a
41606// boolean. The comparison operator must be either `=`, `!=`, `>`, or
41607// `<`.
41608//
41609// For example, if you are filtering Compute Engine instances, you can
41610// exclude instances named `example-instance` by specifying `name !=
41611// example-instance`.
41612//
41613// You can also filter nested fields. For example, you could specify
41614// `scheduling.automaticRestart = false` to include instances only if
41615// they are not scheduled for automatic restarts. You can use filtering
41616// on nested fields to filter based on resource labels.
41617//
41618// To filter on multiple expressions, provide each separate expression
41619// within parentheses. For example: ``` (scheduling.automaticRestart =
41620// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
41621// is an `AND` expression. However, you can include `AND` and `OR`
41622// expressions explicitly. For example: ``` (cpuPlatform = "Intel
41623// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
41624// (scheduling.automaticRestart = true) ```
41625func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
41626	c.urlParams_.Set("filter", filter)
41627	return c
41628}
41629
41630// IncludeAllScopes sets the optional parameter "includeAllScopes":
41631// Indicates whether every visible scope for each scope type (zone,
41632// region, global) should be included in the response. For new resource
41633// types added after this field, the flag has no effect as new resource
41634// types will always include every visible scope for each scope type in
41635// response. For resource types which predate this field, if this flag
41636// is omitted or false, only scopes of the scope types where the
41637// resource type is expected to be found will be included.
41638func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
41639	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
41640	return c
41641}
41642
41643// MaxResults sets the optional parameter "maxResults": The maximum
41644// number of results per page that should be returned. If the number of
41645// available results is larger than `maxResults`, Compute Engine returns
41646// a `nextPageToken` that can be used to get the next page of results in
41647// subsequent list requests. Acceptable values are `0` to `500`,
41648// inclusive. (Default: `500`)
41649func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
41650	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
41651	return c
41652}
41653
41654// OrderBy sets the optional parameter "orderBy": Sorts list results by
41655// a certain order. By default, results are returned in alphanumerical
41656// order based on the resource name.
41657//
41658// You can also sort results in descending order based on the creation
41659// timestamp using `orderBy="creationTimestamp desc". This sorts
41660// results based on the `creationTimestamp` field in reverse
41661// chronological order (newest result first). Use this to sort resources
41662// like operations so that the newest operation is returned
41663// first.
41664//
41665// Currently, only sorting by `name` or `creationTimestamp desc` is
41666// supported.
41667func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
41668	c.urlParams_.Set("orderBy", orderBy)
41669	return c
41670}
41671
41672// PageToken sets the optional parameter "pageToken": Specifies a page
41673// token to use. Set `pageToken` to the `nextPageToken` returned by a
41674// previous list request to get the next page of results.
41675func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
41676	c.urlParams_.Set("pageToken", pageToken)
41677	return c
41678}
41679
41680// Fields allows partial responses to be retrieved. See
41681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41682// for more information.
41683func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
41684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41685	return c
41686}
41687
41688// IfNoneMatch sets the optional parameter which makes the operation
41689// fail if the object's ETag matches the given value. This is useful for
41690// getting updates only after the object has changed since the last
41691// request. Use googleapi.IsNotModified to check whether the response
41692// error from Do is the result of In-None-Match.
41693func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
41694	c.ifNoneMatch_ = entityTag
41695	return c
41696}
41697
41698// Context sets the context to be used in this call's Do method. Any
41699// pending HTTP request will be aborted if the provided context is
41700// canceled.
41701func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
41702	c.ctx_ = ctx
41703	return c
41704}
41705
41706// Header returns an http.Header that can be modified by the caller to
41707// add HTTP headers to the request.
41708func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
41709	if c.header_ == nil {
41710		c.header_ = make(http.Header)
41711	}
41712	return c.header_
41713}
41714
41715func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
41716	reqHeaders := make(http.Header)
41717	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
41718	for k, v := range c.header_ {
41719		reqHeaders[k] = v
41720	}
41721	reqHeaders.Set("User-Agent", c.s.userAgent())
41722	if c.ifNoneMatch_ != "" {
41723		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41724	}
41725	var body io.Reader = nil
41726	c.urlParams_.Set("alt", alt)
41727	c.urlParams_.Set("prettyPrint", "false")
41728	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
41729	urls += "?" + c.urlParams_.Encode()
41730	req, err := http.NewRequest("GET", urls, body)
41731	if err != nil {
41732		return nil, err
41733	}
41734	req.Header = reqHeaders
41735	googleapi.Expand(req.URL, map[string]string{
41736		"project": c.project,
41737	})
41738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41739}
41740
41741// Do executes the "compute.acceleratorTypes.aggregatedList" call.
41742// Exactly one of *AcceleratorTypeAggregatedList or error will be
41743// non-nil. Any non-2xx status code is an error. Response headers are in
41744// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
41745// response was returned at all) in error.(*googleapi.Error).Header. Use
41746// googleapi.IsNotModified to check whether the returned error was
41747// because http.StatusNotModified was returned.
41748func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
41749	gensupport.SetOptions(c.urlParams_, opts...)
41750	res, err := c.doRequest("json")
41751	if res != nil && res.StatusCode == http.StatusNotModified {
41752		if res.Body != nil {
41753			res.Body.Close()
41754		}
41755		return nil, &googleapi.Error{
41756			Code:   res.StatusCode,
41757			Header: res.Header,
41758		}
41759	}
41760	if err != nil {
41761		return nil, err
41762	}
41763	defer googleapi.CloseBody(res)
41764	if err := googleapi.CheckResponse(res); err != nil {
41765		return nil, err
41766	}
41767	ret := &AcceleratorTypeAggregatedList{
41768		ServerResponse: googleapi.ServerResponse{
41769			Header:         res.Header,
41770			HTTPStatusCode: res.StatusCode,
41771		},
41772	}
41773	target := &ret
41774	if err := gensupport.DecodeResponse(target, res); err != nil {
41775		return nil, err
41776	}
41777	return ret, nil
41778	// {
41779	//   "description": "Retrieves an aggregated list of accelerator types.",
41780	//   "httpMethod": "GET",
41781	//   "id": "compute.acceleratorTypes.aggregatedList",
41782	//   "parameterOrder": [
41783	//     "project"
41784	//   ],
41785	//   "parameters": {
41786	//     "filter": {
41787	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
41788	//       "location": "query",
41789	//       "type": "string"
41790	//     },
41791	//     "includeAllScopes": {
41792	//       "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.",
41793	//       "location": "query",
41794	//       "type": "boolean"
41795	//     },
41796	//     "maxResults": {
41797	//       "default": "500",
41798	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
41799	//       "format": "uint32",
41800	//       "location": "query",
41801	//       "minimum": "0",
41802	//       "type": "integer"
41803	//     },
41804	//     "orderBy": {
41805	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
41806	//       "location": "query",
41807	//       "type": "string"
41808	//     },
41809	//     "pageToken": {
41810	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
41811	//       "location": "query",
41812	//       "type": "string"
41813	//     },
41814	//     "project": {
41815	//       "description": "Project ID for this request.",
41816	//       "location": "path",
41817	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41818	//       "required": true,
41819	//       "type": "string"
41820	//     }
41821	//   },
41822	//   "path": "{project}/aggregated/acceleratorTypes",
41823	//   "response": {
41824	//     "$ref": "AcceleratorTypeAggregatedList"
41825	//   },
41826	//   "scopes": [
41827	//     "https://www.googleapis.com/auth/cloud-platform",
41828	//     "https://www.googleapis.com/auth/compute",
41829	//     "https://www.googleapis.com/auth/compute.readonly"
41830	//   ]
41831	// }
41832
41833}
41834
41835// Pages invokes f for each page of results.
41836// A non-nil error returned from f will halt the iteration.
41837// The provided context supersedes any context provided to the Context method.
41838func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
41839	c.ctx_ = ctx
41840	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
41841	for {
41842		x, err := c.Do()
41843		if err != nil {
41844			return err
41845		}
41846		if err := f(x); err != nil {
41847			return err
41848		}
41849		if x.NextPageToken == "" {
41850			return nil
41851		}
41852		c.PageToken(x.NextPageToken)
41853	}
41854}
41855
41856// method id "compute.acceleratorTypes.get":
41857
41858type AcceleratorTypesGetCall struct {
41859	s               *Service
41860	project         string
41861	zone            string
41862	acceleratorType string
41863	urlParams_      gensupport.URLParams
41864	ifNoneMatch_    string
41865	ctx_            context.Context
41866	header_         http.Header
41867}
41868
41869// Get: Returns the specified accelerator type.
41870func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
41871	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41872	c.project = project
41873	c.zone = zone
41874	c.acceleratorType = acceleratorType
41875	return c
41876}
41877
41878// Fields allows partial responses to be retrieved. See
41879// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41880// for more information.
41881func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
41882	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41883	return c
41884}
41885
41886// IfNoneMatch sets the optional parameter which makes the operation
41887// fail if the object's ETag matches the given value. This is useful for
41888// getting updates only after the object has changed since the last
41889// request. Use googleapi.IsNotModified to check whether the response
41890// error from Do is the result of In-None-Match.
41891func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
41892	c.ifNoneMatch_ = entityTag
41893	return c
41894}
41895
41896// Context sets the context to be used in this call's Do method. Any
41897// pending HTTP request will be aborted if the provided context is
41898// canceled.
41899func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
41900	c.ctx_ = ctx
41901	return c
41902}
41903
41904// Header returns an http.Header that can be modified by the caller to
41905// add HTTP headers to the request.
41906func (c *AcceleratorTypesGetCall) Header() http.Header {
41907	if c.header_ == nil {
41908		c.header_ = make(http.Header)
41909	}
41910	return c.header_
41911}
41912
41913func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
41914	reqHeaders := make(http.Header)
41915	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
41916	for k, v := range c.header_ {
41917		reqHeaders[k] = v
41918	}
41919	reqHeaders.Set("User-Agent", c.s.userAgent())
41920	if c.ifNoneMatch_ != "" {
41921		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41922	}
41923	var body io.Reader = nil
41924	c.urlParams_.Set("alt", alt)
41925	c.urlParams_.Set("prettyPrint", "false")
41926	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
41927	urls += "?" + c.urlParams_.Encode()
41928	req, err := http.NewRequest("GET", urls, body)
41929	if err != nil {
41930		return nil, err
41931	}
41932	req.Header = reqHeaders
41933	googleapi.Expand(req.URL, map[string]string{
41934		"project":         c.project,
41935		"zone":            c.zone,
41936		"acceleratorType": c.acceleratorType,
41937	})
41938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41939}
41940
41941// Do executes the "compute.acceleratorTypes.get" call.
41942// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
41943// status code is an error. Response headers are in either
41944// *AcceleratorType.ServerResponse.Header or (if a response was returned
41945// at all) in error.(*googleapi.Error).Header. Use
41946// googleapi.IsNotModified to check whether the returned error was
41947// because http.StatusNotModified was returned.
41948func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
41949	gensupport.SetOptions(c.urlParams_, opts...)
41950	res, err := c.doRequest("json")
41951	if res != nil && res.StatusCode == http.StatusNotModified {
41952		if res.Body != nil {
41953			res.Body.Close()
41954		}
41955		return nil, &googleapi.Error{
41956			Code:   res.StatusCode,
41957			Header: res.Header,
41958		}
41959	}
41960	if err != nil {
41961		return nil, err
41962	}
41963	defer googleapi.CloseBody(res)
41964	if err := googleapi.CheckResponse(res); err != nil {
41965		return nil, err
41966	}
41967	ret := &AcceleratorType{
41968		ServerResponse: googleapi.ServerResponse{
41969			Header:         res.Header,
41970			HTTPStatusCode: res.StatusCode,
41971		},
41972	}
41973	target := &ret
41974	if err := gensupport.DecodeResponse(target, res); err != nil {
41975		return nil, err
41976	}
41977	return ret, nil
41978	// {
41979	//   "description": "Returns the specified accelerator type.",
41980	//   "httpMethod": "GET",
41981	//   "id": "compute.acceleratorTypes.get",
41982	//   "parameterOrder": [
41983	//     "project",
41984	//     "zone",
41985	//     "acceleratorType"
41986	//   ],
41987	//   "parameters": {
41988	//     "acceleratorType": {
41989	//       "description": "Name of the accelerator type to return.",
41990	//       "location": "path",
41991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
41992	//       "required": true,
41993	//       "type": "string"
41994	//     },
41995	//     "project": {
41996	//       "description": "Project ID for this request.",
41997	//       "location": "path",
41998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41999	//       "required": true,
42000	//       "type": "string"
42001	//     },
42002	//     "zone": {
42003	//       "description": "The name of the zone for this request.",
42004	//       "location": "path",
42005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42006	//       "required": true,
42007	//       "type": "string"
42008	//     }
42009	//   },
42010	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
42011	//   "response": {
42012	//     "$ref": "AcceleratorType"
42013	//   },
42014	//   "scopes": [
42015	//     "https://www.googleapis.com/auth/cloud-platform",
42016	//     "https://www.googleapis.com/auth/compute",
42017	//     "https://www.googleapis.com/auth/compute.readonly"
42018	//   ]
42019	// }
42020
42021}
42022
42023// method id "compute.acceleratorTypes.list":
42024
42025type AcceleratorTypesListCall struct {
42026	s            *Service
42027	project      string
42028	zone         string
42029	urlParams_   gensupport.URLParams
42030	ifNoneMatch_ string
42031	ctx_         context.Context
42032	header_      http.Header
42033}
42034
42035// List: Retrieves a list of accelerator types that are available to the
42036// specified project.
42037func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
42038	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42039	c.project = project
42040	c.zone = zone
42041	return c
42042}
42043
42044// Filter sets the optional parameter "filter": A filter expression that
42045// filters resources listed in the response. The expression must specify
42046// the field name, a comparison operator, and the value that you want to
42047// use for filtering. The value must be a string, a number, or a
42048// boolean. The comparison operator must be either `=`, `!=`, `>`, or
42049// `<`.
42050//
42051// For example, if you are filtering Compute Engine instances, you can
42052// exclude instances named `example-instance` by specifying `name !=
42053// example-instance`.
42054//
42055// You can also filter nested fields. For example, you could specify
42056// `scheduling.automaticRestart = false` to include instances only if
42057// they are not scheduled for automatic restarts. You can use filtering
42058// on nested fields to filter based on resource labels.
42059//
42060// To filter on multiple expressions, provide each separate expression
42061// within parentheses. For example: ``` (scheduling.automaticRestart =
42062// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
42063// is an `AND` expression. However, you can include `AND` and `OR`
42064// expressions explicitly. For example: ``` (cpuPlatform = "Intel
42065// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
42066// (scheduling.automaticRestart = true) ```
42067func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
42068	c.urlParams_.Set("filter", filter)
42069	return c
42070}
42071
42072// MaxResults sets the optional parameter "maxResults": The maximum
42073// number of results per page that should be returned. If the number of
42074// available results is larger than `maxResults`, Compute Engine returns
42075// a `nextPageToken` that can be used to get the next page of results in
42076// subsequent list requests. Acceptable values are `0` to `500`,
42077// inclusive. (Default: `500`)
42078func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
42079	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
42080	return c
42081}
42082
42083// OrderBy sets the optional parameter "orderBy": Sorts list results by
42084// a certain order. By default, results are returned in alphanumerical
42085// order based on the resource name.
42086//
42087// You can also sort results in descending order based on the creation
42088// timestamp using `orderBy="creationTimestamp desc". This sorts
42089// results based on the `creationTimestamp` field in reverse
42090// chronological order (newest result first). Use this to sort resources
42091// like operations so that the newest operation is returned
42092// first.
42093//
42094// Currently, only sorting by `name` or `creationTimestamp desc` is
42095// supported.
42096func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
42097	c.urlParams_.Set("orderBy", orderBy)
42098	return c
42099}
42100
42101// PageToken sets the optional parameter "pageToken": Specifies a page
42102// token to use. Set `pageToken` to the `nextPageToken` returned by a
42103// previous list request to get the next page of results.
42104func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
42105	c.urlParams_.Set("pageToken", pageToken)
42106	return c
42107}
42108
42109// Fields allows partial responses to be retrieved. See
42110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42111// for more information.
42112func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
42113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42114	return c
42115}
42116
42117// IfNoneMatch sets the optional parameter which makes the operation
42118// fail if the object's ETag matches the given value. This is useful for
42119// getting updates only after the object has changed since the last
42120// request. Use googleapi.IsNotModified to check whether the response
42121// error from Do is the result of In-None-Match.
42122func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
42123	c.ifNoneMatch_ = entityTag
42124	return c
42125}
42126
42127// Context sets the context to be used in this call's Do method. Any
42128// pending HTTP request will be aborted if the provided context is
42129// canceled.
42130func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
42131	c.ctx_ = ctx
42132	return c
42133}
42134
42135// Header returns an http.Header that can be modified by the caller to
42136// add HTTP headers to the request.
42137func (c *AcceleratorTypesListCall) Header() http.Header {
42138	if c.header_ == nil {
42139		c.header_ = make(http.Header)
42140	}
42141	return c.header_
42142}
42143
42144func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
42145	reqHeaders := make(http.Header)
42146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
42147	for k, v := range c.header_ {
42148		reqHeaders[k] = v
42149	}
42150	reqHeaders.Set("User-Agent", c.s.userAgent())
42151	if c.ifNoneMatch_ != "" {
42152		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
42153	}
42154	var body io.Reader = nil
42155	c.urlParams_.Set("alt", alt)
42156	c.urlParams_.Set("prettyPrint", "false")
42157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
42158	urls += "?" + c.urlParams_.Encode()
42159	req, err := http.NewRequest("GET", urls, body)
42160	if err != nil {
42161		return nil, err
42162	}
42163	req.Header = reqHeaders
42164	googleapi.Expand(req.URL, map[string]string{
42165		"project": c.project,
42166		"zone":    c.zone,
42167	})
42168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42169}
42170
42171// Do executes the "compute.acceleratorTypes.list" call.
42172// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
42173// non-2xx status code is an error. Response headers are in either
42174// *AcceleratorTypeList.ServerResponse.Header or (if a response was
42175// returned at all) in error.(*googleapi.Error).Header. Use
42176// googleapi.IsNotModified to check whether the returned error was
42177// because http.StatusNotModified was returned.
42178func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
42179	gensupport.SetOptions(c.urlParams_, opts...)
42180	res, err := c.doRequest("json")
42181	if res != nil && res.StatusCode == http.StatusNotModified {
42182		if res.Body != nil {
42183			res.Body.Close()
42184		}
42185		return nil, &googleapi.Error{
42186			Code:   res.StatusCode,
42187			Header: res.Header,
42188		}
42189	}
42190	if err != nil {
42191		return nil, err
42192	}
42193	defer googleapi.CloseBody(res)
42194	if err := googleapi.CheckResponse(res); err != nil {
42195		return nil, err
42196	}
42197	ret := &AcceleratorTypeList{
42198		ServerResponse: googleapi.ServerResponse{
42199			Header:         res.Header,
42200			HTTPStatusCode: res.StatusCode,
42201		},
42202	}
42203	target := &ret
42204	if err := gensupport.DecodeResponse(target, res); err != nil {
42205		return nil, err
42206	}
42207	return ret, nil
42208	// {
42209	//   "description": "Retrieves a list of accelerator types that are available to the specified project.",
42210	//   "httpMethod": "GET",
42211	//   "id": "compute.acceleratorTypes.list",
42212	//   "parameterOrder": [
42213	//     "project",
42214	//     "zone"
42215	//   ],
42216	//   "parameters": {
42217	//     "filter": {
42218	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
42219	//       "location": "query",
42220	//       "type": "string"
42221	//     },
42222	//     "maxResults": {
42223	//       "default": "500",
42224	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
42225	//       "format": "uint32",
42226	//       "location": "query",
42227	//       "minimum": "0",
42228	//       "type": "integer"
42229	//     },
42230	//     "orderBy": {
42231	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
42232	//       "location": "query",
42233	//       "type": "string"
42234	//     },
42235	//     "pageToken": {
42236	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
42237	//       "location": "query",
42238	//       "type": "string"
42239	//     },
42240	//     "project": {
42241	//       "description": "Project ID for this request.",
42242	//       "location": "path",
42243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42244	//       "required": true,
42245	//       "type": "string"
42246	//     },
42247	//     "zone": {
42248	//       "description": "The name of the zone for this request.",
42249	//       "location": "path",
42250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42251	//       "required": true,
42252	//       "type": "string"
42253	//     }
42254	//   },
42255	//   "path": "{project}/zones/{zone}/acceleratorTypes",
42256	//   "response": {
42257	//     "$ref": "AcceleratorTypeList"
42258	//   },
42259	//   "scopes": [
42260	//     "https://www.googleapis.com/auth/cloud-platform",
42261	//     "https://www.googleapis.com/auth/compute",
42262	//     "https://www.googleapis.com/auth/compute.readonly"
42263	//   ]
42264	// }
42265
42266}
42267
42268// Pages invokes f for each page of results.
42269// A non-nil error returned from f will halt the iteration.
42270// The provided context supersedes any context provided to the Context method.
42271func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
42272	c.ctx_ = ctx
42273	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
42274	for {
42275		x, err := c.Do()
42276		if err != nil {
42277			return err
42278		}
42279		if err := f(x); err != nil {
42280			return err
42281		}
42282		if x.NextPageToken == "" {
42283			return nil
42284		}
42285		c.PageToken(x.NextPageToken)
42286	}
42287}
42288
42289// method id "compute.addresses.aggregatedList":
42290
42291type AddressesAggregatedListCall struct {
42292	s            *Service
42293	project      string
42294	urlParams_   gensupport.URLParams
42295	ifNoneMatch_ string
42296	ctx_         context.Context
42297	header_      http.Header
42298}
42299
42300// AggregatedList: Retrieves an aggregated list of addresses.
42301// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
42302func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
42303	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42304	c.project = project
42305	return c
42306}
42307
42308// Filter sets the optional parameter "filter": A filter expression that
42309// filters resources listed in the response. The expression must specify
42310// the field name, a comparison operator, and the value that you want to
42311// use for filtering. The value must be a string, a number, or a
42312// boolean. The comparison operator must be either `=`, `!=`, `>`, or
42313// `<`.
42314//
42315// For example, if you are filtering Compute Engine instances, you can
42316// exclude instances named `example-instance` by specifying `name !=
42317// example-instance`.
42318//
42319// You can also filter nested fields. For example, you could specify
42320// `scheduling.automaticRestart = false` to include instances only if
42321// they are not scheduled for automatic restarts. You can use filtering
42322// on nested fields to filter based on resource labels.
42323//
42324// To filter on multiple expressions, provide each separate expression
42325// within parentheses. For example: ``` (scheduling.automaticRestart =
42326// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
42327// is an `AND` expression. However, you can include `AND` and `OR`
42328// expressions explicitly. For example: ``` (cpuPlatform = "Intel
42329// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
42330// (scheduling.automaticRestart = true) ```
42331func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
42332	c.urlParams_.Set("filter", filter)
42333	return c
42334}
42335
42336// IncludeAllScopes sets the optional parameter "includeAllScopes":
42337// Indicates whether every visible scope for each scope type (zone,
42338// region, global) should be included in the response. For new resource
42339// types added after this field, the flag has no effect as new resource
42340// types will always include every visible scope for each scope type in
42341// response. For resource types which predate this field, if this flag
42342// is omitted or false, only scopes of the scope types where the
42343// resource type is expected to be found will be included.
42344func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
42345	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
42346	return c
42347}
42348
42349// MaxResults sets the optional parameter "maxResults": The maximum
42350// number of results per page that should be returned. If the number of
42351// available results is larger than `maxResults`, Compute Engine returns
42352// a `nextPageToken` that can be used to get the next page of results in
42353// subsequent list requests. Acceptable values are `0` to `500`,
42354// inclusive. (Default: `500`)
42355func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
42356	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
42357	return c
42358}
42359
42360// OrderBy sets the optional parameter "orderBy": Sorts list results by
42361// a certain order. By default, results are returned in alphanumerical
42362// order based on the resource name.
42363//
42364// You can also sort results in descending order based on the creation
42365// timestamp using `orderBy="creationTimestamp desc". This sorts
42366// results based on the `creationTimestamp` field in reverse
42367// chronological order (newest result first). Use this to sort resources
42368// like operations so that the newest operation is returned
42369// first.
42370//
42371// Currently, only sorting by `name` or `creationTimestamp desc` is
42372// supported.
42373func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
42374	c.urlParams_.Set("orderBy", orderBy)
42375	return c
42376}
42377
42378// PageToken sets the optional parameter "pageToken": Specifies a page
42379// token to use. Set `pageToken` to the `nextPageToken` returned by a
42380// previous list request to get the next page of results.
42381func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
42382	c.urlParams_.Set("pageToken", pageToken)
42383	return c
42384}
42385
42386// Fields allows partial responses to be retrieved. See
42387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42388// for more information.
42389func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
42390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42391	return c
42392}
42393
42394// IfNoneMatch sets the optional parameter which makes the operation
42395// fail if the object's ETag matches the given value. This is useful for
42396// getting updates only after the object has changed since the last
42397// request. Use googleapi.IsNotModified to check whether the response
42398// error from Do is the result of In-None-Match.
42399func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
42400	c.ifNoneMatch_ = entityTag
42401	return c
42402}
42403
42404// Context sets the context to be used in this call's Do method. Any
42405// pending HTTP request will be aborted if the provided context is
42406// canceled.
42407func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
42408	c.ctx_ = ctx
42409	return c
42410}
42411
42412// Header returns an http.Header that can be modified by the caller to
42413// add HTTP headers to the request.
42414func (c *AddressesAggregatedListCall) Header() http.Header {
42415	if c.header_ == nil {
42416		c.header_ = make(http.Header)
42417	}
42418	return c.header_
42419}
42420
42421func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
42422	reqHeaders := make(http.Header)
42423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
42424	for k, v := range c.header_ {
42425		reqHeaders[k] = v
42426	}
42427	reqHeaders.Set("User-Agent", c.s.userAgent())
42428	if c.ifNoneMatch_ != "" {
42429		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
42430	}
42431	var body io.Reader = nil
42432	c.urlParams_.Set("alt", alt)
42433	c.urlParams_.Set("prettyPrint", "false")
42434	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
42435	urls += "?" + c.urlParams_.Encode()
42436	req, err := http.NewRequest("GET", urls, body)
42437	if err != nil {
42438		return nil, err
42439	}
42440	req.Header = reqHeaders
42441	googleapi.Expand(req.URL, map[string]string{
42442		"project": c.project,
42443	})
42444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42445}
42446
42447// Do executes the "compute.addresses.aggregatedList" call.
42448// Exactly one of *AddressAggregatedList or error will be non-nil. Any
42449// non-2xx status code is an error. Response headers are in either
42450// *AddressAggregatedList.ServerResponse.Header or (if a response was
42451// returned at all) in error.(*googleapi.Error).Header. Use
42452// googleapi.IsNotModified to check whether the returned error was
42453// because http.StatusNotModified was returned.
42454func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
42455	gensupport.SetOptions(c.urlParams_, opts...)
42456	res, err := c.doRequest("json")
42457	if res != nil && res.StatusCode == http.StatusNotModified {
42458		if res.Body != nil {
42459			res.Body.Close()
42460		}
42461		return nil, &googleapi.Error{
42462			Code:   res.StatusCode,
42463			Header: res.Header,
42464		}
42465	}
42466	if err != nil {
42467		return nil, err
42468	}
42469	defer googleapi.CloseBody(res)
42470	if err := googleapi.CheckResponse(res); err != nil {
42471		return nil, err
42472	}
42473	ret := &AddressAggregatedList{
42474		ServerResponse: googleapi.ServerResponse{
42475			Header:         res.Header,
42476			HTTPStatusCode: res.StatusCode,
42477		},
42478	}
42479	target := &ret
42480	if err := gensupport.DecodeResponse(target, res); err != nil {
42481		return nil, err
42482	}
42483	return ret, nil
42484	// {
42485	//   "description": "Retrieves an aggregated list of addresses.",
42486	//   "httpMethod": "GET",
42487	//   "id": "compute.addresses.aggregatedList",
42488	//   "parameterOrder": [
42489	//     "project"
42490	//   ],
42491	//   "parameters": {
42492	//     "filter": {
42493	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
42494	//       "location": "query",
42495	//       "type": "string"
42496	//     },
42497	//     "includeAllScopes": {
42498	//       "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.",
42499	//       "location": "query",
42500	//       "type": "boolean"
42501	//     },
42502	//     "maxResults": {
42503	//       "default": "500",
42504	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
42505	//       "format": "uint32",
42506	//       "location": "query",
42507	//       "minimum": "0",
42508	//       "type": "integer"
42509	//     },
42510	//     "orderBy": {
42511	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
42512	//       "location": "query",
42513	//       "type": "string"
42514	//     },
42515	//     "pageToken": {
42516	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
42517	//       "location": "query",
42518	//       "type": "string"
42519	//     },
42520	//     "project": {
42521	//       "description": "Project ID for this request.",
42522	//       "location": "path",
42523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42524	//       "required": true,
42525	//       "type": "string"
42526	//     }
42527	//   },
42528	//   "path": "{project}/aggregated/addresses",
42529	//   "response": {
42530	//     "$ref": "AddressAggregatedList"
42531	//   },
42532	//   "scopes": [
42533	//     "https://www.googleapis.com/auth/cloud-platform",
42534	//     "https://www.googleapis.com/auth/compute",
42535	//     "https://www.googleapis.com/auth/compute.readonly"
42536	//   ]
42537	// }
42538
42539}
42540
42541// Pages invokes f for each page of results.
42542// A non-nil error returned from f will halt the iteration.
42543// The provided context supersedes any context provided to the Context method.
42544func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
42545	c.ctx_ = ctx
42546	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
42547	for {
42548		x, err := c.Do()
42549		if err != nil {
42550			return err
42551		}
42552		if err := f(x); err != nil {
42553			return err
42554		}
42555		if x.NextPageToken == "" {
42556			return nil
42557		}
42558		c.PageToken(x.NextPageToken)
42559	}
42560}
42561
42562// method id "compute.addresses.delete":
42563
42564type AddressesDeleteCall struct {
42565	s          *Service
42566	project    string
42567	region     string
42568	address    string
42569	urlParams_ gensupport.URLParams
42570	ctx_       context.Context
42571	header_    http.Header
42572}
42573
42574// Delete: Deletes the specified address resource.
42575// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
42576func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
42577	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42578	c.project = project
42579	c.region = region
42580	c.address = address
42581	return c
42582}
42583
42584// RequestId sets the optional parameter "requestId": An optional
42585// request ID to identify requests. Specify a unique request ID so that
42586// if you must retry your request, the server will know to ignore the
42587// request if it has already been completed.
42588//
42589// For example, consider a situation where you make an initial request
42590// and the request times out. If you make the request again with the
42591// same request ID, the server can check if original operation with the
42592// same request ID was received, and if so, will ignore the second
42593// request. This prevents clients from accidentally creating duplicate
42594// commitments.
42595//
42596// The request ID must be a valid UUID with the exception that zero UUID
42597// is not supported (00000000-0000-0000-0000-000000000000).
42598func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
42599	c.urlParams_.Set("requestId", requestId)
42600	return c
42601}
42602
42603// Fields allows partial responses to be retrieved. See
42604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42605// for more information.
42606func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
42607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42608	return c
42609}
42610
42611// Context sets the context to be used in this call's Do method. Any
42612// pending HTTP request will be aborted if the provided context is
42613// canceled.
42614func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
42615	c.ctx_ = ctx
42616	return c
42617}
42618
42619// Header returns an http.Header that can be modified by the caller to
42620// add HTTP headers to the request.
42621func (c *AddressesDeleteCall) Header() http.Header {
42622	if c.header_ == nil {
42623		c.header_ = make(http.Header)
42624	}
42625	return c.header_
42626}
42627
42628func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
42629	reqHeaders := make(http.Header)
42630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
42631	for k, v := range c.header_ {
42632		reqHeaders[k] = v
42633	}
42634	reqHeaders.Set("User-Agent", c.s.userAgent())
42635	var body io.Reader = nil
42636	c.urlParams_.Set("alt", alt)
42637	c.urlParams_.Set("prettyPrint", "false")
42638	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
42639	urls += "?" + c.urlParams_.Encode()
42640	req, err := http.NewRequest("DELETE", urls, body)
42641	if err != nil {
42642		return nil, err
42643	}
42644	req.Header = reqHeaders
42645	googleapi.Expand(req.URL, map[string]string{
42646		"project": c.project,
42647		"region":  c.region,
42648		"address": c.address,
42649	})
42650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42651}
42652
42653// Do executes the "compute.addresses.delete" call.
42654// Exactly one of *Operation or error will be non-nil. Any non-2xx
42655// status code is an error. Response headers are in either
42656// *Operation.ServerResponse.Header or (if a response was returned at
42657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42658// to check whether the returned error was because
42659// http.StatusNotModified was returned.
42660func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42661	gensupport.SetOptions(c.urlParams_, opts...)
42662	res, err := c.doRequest("json")
42663	if res != nil && res.StatusCode == http.StatusNotModified {
42664		if res.Body != nil {
42665			res.Body.Close()
42666		}
42667		return nil, &googleapi.Error{
42668			Code:   res.StatusCode,
42669			Header: res.Header,
42670		}
42671	}
42672	if err != nil {
42673		return nil, err
42674	}
42675	defer googleapi.CloseBody(res)
42676	if err := googleapi.CheckResponse(res); err != nil {
42677		return nil, err
42678	}
42679	ret := &Operation{
42680		ServerResponse: googleapi.ServerResponse{
42681			Header:         res.Header,
42682			HTTPStatusCode: res.StatusCode,
42683		},
42684	}
42685	target := &ret
42686	if err := gensupport.DecodeResponse(target, res); err != nil {
42687		return nil, err
42688	}
42689	return ret, nil
42690	// {
42691	//   "description": "Deletes the specified address resource.",
42692	//   "httpMethod": "DELETE",
42693	//   "id": "compute.addresses.delete",
42694	//   "parameterOrder": [
42695	//     "project",
42696	//     "region",
42697	//     "address"
42698	//   ],
42699	//   "parameters": {
42700	//     "address": {
42701	//       "description": "Name of the address resource to delete.",
42702	//       "location": "path",
42703	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
42704	//       "required": true,
42705	//       "type": "string"
42706	//     },
42707	//     "project": {
42708	//       "description": "Project ID for this request.",
42709	//       "location": "path",
42710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42711	//       "required": true,
42712	//       "type": "string"
42713	//     },
42714	//     "region": {
42715	//       "description": "Name of the region for this request.",
42716	//       "location": "path",
42717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42718	//       "required": true,
42719	//       "type": "string"
42720	//     },
42721	//     "requestId": {
42722	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42723	//       "location": "query",
42724	//       "type": "string"
42725	//     }
42726	//   },
42727	//   "path": "{project}/regions/{region}/addresses/{address}",
42728	//   "response": {
42729	//     "$ref": "Operation"
42730	//   },
42731	//   "scopes": [
42732	//     "https://www.googleapis.com/auth/cloud-platform",
42733	//     "https://www.googleapis.com/auth/compute"
42734	//   ]
42735	// }
42736
42737}
42738
42739// method id "compute.addresses.get":
42740
42741type AddressesGetCall struct {
42742	s            *Service
42743	project      string
42744	region       string
42745	address      string
42746	urlParams_   gensupport.URLParams
42747	ifNoneMatch_ string
42748	ctx_         context.Context
42749	header_      http.Header
42750}
42751
42752// Get: Returns the specified address resource.
42753// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
42754func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
42755	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42756	c.project = project
42757	c.region = region
42758	c.address = address
42759	return c
42760}
42761
42762// Fields allows partial responses to be retrieved. See
42763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42764// for more information.
42765func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
42766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42767	return c
42768}
42769
42770// IfNoneMatch sets the optional parameter which makes the operation
42771// fail if the object's ETag matches the given value. This is useful for
42772// getting updates only after the object has changed since the last
42773// request. Use googleapi.IsNotModified to check whether the response
42774// error from Do is the result of In-None-Match.
42775func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
42776	c.ifNoneMatch_ = entityTag
42777	return c
42778}
42779
42780// Context sets the context to be used in this call's Do method. Any
42781// pending HTTP request will be aborted if the provided context is
42782// canceled.
42783func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
42784	c.ctx_ = ctx
42785	return c
42786}
42787
42788// Header returns an http.Header that can be modified by the caller to
42789// add HTTP headers to the request.
42790func (c *AddressesGetCall) Header() http.Header {
42791	if c.header_ == nil {
42792		c.header_ = make(http.Header)
42793	}
42794	return c.header_
42795}
42796
42797func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
42798	reqHeaders := make(http.Header)
42799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
42800	for k, v := range c.header_ {
42801		reqHeaders[k] = v
42802	}
42803	reqHeaders.Set("User-Agent", c.s.userAgent())
42804	if c.ifNoneMatch_ != "" {
42805		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
42806	}
42807	var body io.Reader = nil
42808	c.urlParams_.Set("alt", alt)
42809	c.urlParams_.Set("prettyPrint", "false")
42810	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
42811	urls += "?" + c.urlParams_.Encode()
42812	req, err := http.NewRequest("GET", urls, body)
42813	if err != nil {
42814		return nil, err
42815	}
42816	req.Header = reqHeaders
42817	googleapi.Expand(req.URL, map[string]string{
42818		"project": c.project,
42819		"region":  c.region,
42820		"address": c.address,
42821	})
42822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42823}
42824
42825// Do executes the "compute.addresses.get" call.
42826// Exactly one of *Address or error will be non-nil. Any non-2xx status
42827// code is an error. Response headers are in either
42828// *Address.ServerResponse.Header or (if a response was returned at all)
42829// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
42830// check whether the returned error was because http.StatusNotModified
42831// was returned.
42832func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
42833	gensupport.SetOptions(c.urlParams_, opts...)
42834	res, err := c.doRequest("json")
42835	if res != nil && res.StatusCode == http.StatusNotModified {
42836		if res.Body != nil {
42837			res.Body.Close()
42838		}
42839		return nil, &googleapi.Error{
42840			Code:   res.StatusCode,
42841			Header: res.Header,
42842		}
42843	}
42844	if err != nil {
42845		return nil, err
42846	}
42847	defer googleapi.CloseBody(res)
42848	if err := googleapi.CheckResponse(res); err != nil {
42849		return nil, err
42850	}
42851	ret := &Address{
42852		ServerResponse: googleapi.ServerResponse{
42853			Header:         res.Header,
42854			HTTPStatusCode: res.StatusCode,
42855		},
42856	}
42857	target := &ret
42858	if err := gensupport.DecodeResponse(target, res); err != nil {
42859		return nil, err
42860	}
42861	return ret, nil
42862	// {
42863	//   "description": "Returns the specified address resource.",
42864	//   "httpMethod": "GET",
42865	//   "id": "compute.addresses.get",
42866	//   "parameterOrder": [
42867	//     "project",
42868	//     "region",
42869	//     "address"
42870	//   ],
42871	//   "parameters": {
42872	//     "address": {
42873	//       "description": "Name of the address resource to return.",
42874	//       "location": "path",
42875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
42876	//       "required": true,
42877	//       "type": "string"
42878	//     },
42879	//     "project": {
42880	//       "description": "Project ID for this request.",
42881	//       "location": "path",
42882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42883	//       "required": true,
42884	//       "type": "string"
42885	//     },
42886	//     "region": {
42887	//       "description": "Name of the region for this request.",
42888	//       "location": "path",
42889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42890	//       "required": true,
42891	//       "type": "string"
42892	//     }
42893	//   },
42894	//   "path": "{project}/regions/{region}/addresses/{address}",
42895	//   "response": {
42896	//     "$ref": "Address"
42897	//   },
42898	//   "scopes": [
42899	//     "https://www.googleapis.com/auth/cloud-platform",
42900	//     "https://www.googleapis.com/auth/compute",
42901	//     "https://www.googleapis.com/auth/compute.readonly"
42902	//   ]
42903	// }
42904
42905}
42906
42907// method id "compute.addresses.insert":
42908
42909type AddressesInsertCall struct {
42910	s          *Service
42911	project    string
42912	region     string
42913	address    *Address
42914	urlParams_ gensupport.URLParams
42915	ctx_       context.Context
42916	header_    http.Header
42917}
42918
42919// Insert: Creates an address resource in the specified project by using
42920// the data included in the request.
42921// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
42922func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
42923	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42924	c.project = project
42925	c.region = region
42926	c.address = address
42927	return c
42928}
42929
42930// RequestId sets the optional parameter "requestId": An optional
42931// request ID to identify requests. Specify a unique request ID so that
42932// if you must retry your request, the server will know to ignore the
42933// request if it has already been completed.
42934//
42935// For example, consider a situation where you make an initial request
42936// and the request times out. If you make the request again with the
42937// same request ID, the server can check if original operation with the
42938// same request ID was received, and if so, will ignore the second
42939// request. This prevents clients from accidentally creating duplicate
42940// commitments.
42941//
42942// The request ID must be a valid UUID with the exception that zero UUID
42943// is not supported (00000000-0000-0000-0000-000000000000).
42944func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
42945	c.urlParams_.Set("requestId", requestId)
42946	return c
42947}
42948
42949// Fields allows partial responses to be retrieved. See
42950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42951// for more information.
42952func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
42953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42954	return c
42955}
42956
42957// Context sets the context to be used in this call's Do method. Any
42958// pending HTTP request will be aborted if the provided context is
42959// canceled.
42960func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
42961	c.ctx_ = ctx
42962	return c
42963}
42964
42965// Header returns an http.Header that can be modified by the caller to
42966// add HTTP headers to the request.
42967func (c *AddressesInsertCall) Header() http.Header {
42968	if c.header_ == nil {
42969		c.header_ = make(http.Header)
42970	}
42971	return c.header_
42972}
42973
42974func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
42975	reqHeaders := make(http.Header)
42976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
42977	for k, v := range c.header_ {
42978		reqHeaders[k] = v
42979	}
42980	reqHeaders.Set("User-Agent", c.s.userAgent())
42981	var body io.Reader = nil
42982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
42983	if err != nil {
42984		return nil, err
42985	}
42986	reqHeaders.Set("Content-Type", "application/json")
42987	c.urlParams_.Set("alt", alt)
42988	c.urlParams_.Set("prettyPrint", "false")
42989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
42990	urls += "?" + c.urlParams_.Encode()
42991	req, err := http.NewRequest("POST", urls, body)
42992	if err != nil {
42993		return nil, err
42994	}
42995	req.Header = reqHeaders
42996	googleapi.Expand(req.URL, map[string]string{
42997		"project": c.project,
42998		"region":  c.region,
42999	})
43000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43001}
43002
43003// Do executes the "compute.addresses.insert" call.
43004// Exactly one of *Operation or error will be non-nil. Any non-2xx
43005// status code is an error. Response headers are in either
43006// *Operation.ServerResponse.Header or (if a response was returned at
43007// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43008// to check whether the returned error was because
43009// http.StatusNotModified was returned.
43010func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43011	gensupport.SetOptions(c.urlParams_, opts...)
43012	res, err := c.doRequest("json")
43013	if res != nil && res.StatusCode == http.StatusNotModified {
43014		if res.Body != nil {
43015			res.Body.Close()
43016		}
43017		return nil, &googleapi.Error{
43018			Code:   res.StatusCode,
43019			Header: res.Header,
43020		}
43021	}
43022	if err != nil {
43023		return nil, err
43024	}
43025	defer googleapi.CloseBody(res)
43026	if err := googleapi.CheckResponse(res); err != nil {
43027		return nil, err
43028	}
43029	ret := &Operation{
43030		ServerResponse: googleapi.ServerResponse{
43031			Header:         res.Header,
43032			HTTPStatusCode: res.StatusCode,
43033		},
43034	}
43035	target := &ret
43036	if err := gensupport.DecodeResponse(target, res); err != nil {
43037		return nil, err
43038	}
43039	return ret, nil
43040	// {
43041	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
43042	//   "httpMethod": "POST",
43043	//   "id": "compute.addresses.insert",
43044	//   "parameterOrder": [
43045	//     "project",
43046	//     "region"
43047	//   ],
43048	//   "parameters": {
43049	//     "project": {
43050	//       "description": "Project ID for this request.",
43051	//       "location": "path",
43052	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43053	//       "required": true,
43054	//       "type": "string"
43055	//     },
43056	//     "region": {
43057	//       "description": "Name of the region for this request.",
43058	//       "location": "path",
43059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
43060	//       "required": true,
43061	//       "type": "string"
43062	//     },
43063	//     "requestId": {
43064	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43065	//       "location": "query",
43066	//       "type": "string"
43067	//     }
43068	//   },
43069	//   "path": "{project}/regions/{region}/addresses",
43070	//   "request": {
43071	//     "$ref": "Address"
43072	//   },
43073	//   "response": {
43074	//     "$ref": "Operation"
43075	//   },
43076	//   "scopes": [
43077	//     "https://www.googleapis.com/auth/cloud-platform",
43078	//     "https://www.googleapis.com/auth/compute"
43079	//   ]
43080	// }
43081
43082}
43083
43084// method id "compute.addresses.list":
43085
43086type AddressesListCall struct {
43087	s            *Service
43088	project      string
43089	region       string
43090	urlParams_   gensupport.URLParams
43091	ifNoneMatch_ string
43092	ctx_         context.Context
43093	header_      http.Header
43094}
43095
43096// List: Retrieves a list of addresses contained within the specified
43097// region.
43098// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
43099func (r *AddressesService) List(project string, region string) *AddressesListCall {
43100	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43101	c.project = project
43102	c.region = region
43103	return c
43104}
43105
43106// Filter sets the optional parameter "filter": A filter expression that
43107// filters resources listed in the response. The expression must specify
43108// the field name, a comparison operator, and the value that you want to
43109// use for filtering. The value must be a string, a number, or a
43110// boolean. The comparison operator must be either `=`, `!=`, `>`, or
43111// `<`.
43112//
43113// For example, if you are filtering Compute Engine instances, you can
43114// exclude instances named `example-instance` by specifying `name !=
43115// example-instance`.
43116//
43117// You can also filter nested fields. For example, you could specify
43118// `scheduling.automaticRestart = false` to include instances only if
43119// they are not scheduled for automatic restarts. You can use filtering
43120// on nested fields to filter based on resource labels.
43121//
43122// To filter on multiple expressions, provide each separate expression
43123// within parentheses. For example: ``` (scheduling.automaticRestart =
43124// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
43125// is an `AND` expression. However, you can include `AND` and `OR`
43126// expressions explicitly. For example: ``` (cpuPlatform = "Intel
43127// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
43128// (scheduling.automaticRestart = true) ```
43129func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
43130	c.urlParams_.Set("filter", filter)
43131	return c
43132}
43133
43134// MaxResults sets the optional parameter "maxResults": The maximum
43135// number of results per page that should be returned. If the number of
43136// available results is larger than `maxResults`, Compute Engine returns
43137// a `nextPageToken` that can be used to get the next page of results in
43138// subsequent list requests. Acceptable values are `0` to `500`,
43139// inclusive. (Default: `500`)
43140func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
43141	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
43142	return c
43143}
43144
43145// OrderBy sets the optional parameter "orderBy": Sorts list results by
43146// a certain order. By default, results are returned in alphanumerical
43147// order based on the resource name.
43148//
43149// You can also sort results in descending order based on the creation
43150// timestamp using `orderBy="creationTimestamp desc". This sorts
43151// results based on the `creationTimestamp` field in reverse
43152// chronological order (newest result first). Use this to sort resources
43153// like operations so that the newest operation is returned
43154// first.
43155//
43156// Currently, only sorting by `name` or `creationTimestamp desc` is
43157// supported.
43158func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
43159	c.urlParams_.Set("orderBy", orderBy)
43160	return c
43161}
43162
43163// PageToken sets the optional parameter "pageToken": Specifies a page
43164// token to use. Set `pageToken` to the `nextPageToken` returned by a
43165// previous list request to get the next page of results.
43166func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
43167	c.urlParams_.Set("pageToken", pageToken)
43168	return c
43169}
43170
43171// Fields allows partial responses to be retrieved. See
43172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43173// for more information.
43174func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
43175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43176	return c
43177}
43178
43179// IfNoneMatch sets the optional parameter which makes the operation
43180// fail if the object's ETag matches the given value. This is useful for
43181// getting updates only after the object has changed since the last
43182// request. Use googleapi.IsNotModified to check whether the response
43183// error from Do is the result of In-None-Match.
43184func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
43185	c.ifNoneMatch_ = entityTag
43186	return c
43187}
43188
43189// Context sets the context to be used in this call's Do method. Any
43190// pending HTTP request will be aborted if the provided context is
43191// canceled.
43192func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
43193	c.ctx_ = ctx
43194	return c
43195}
43196
43197// Header returns an http.Header that can be modified by the caller to
43198// add HTTP headers to the request.
43199func (c *AddressesListCall) Header() http.Header {
43200	if c.header_ == nil {
43201		c.header_ = make(http.Header)
43202	}
43203	return c.header_
43204}
43205
43206func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
43207	reqHeaders := make(http.Header)
43208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
43209	for k, v := range c.header_ {
43210		reqHeaders[k] = v
43211	}
43212	reqHeaders.Set("User-Agent", c.s.userAgent())
43213	if c.ifNoneMatch_ != "" {
43214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43215	}
43216	var body io.Reader = nil
43217	c.urlParams_.Set("alt", alt)
43218	c.urlParams_.Set("prettyPrint", "false")
43219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
43220	urls += "?" + c.urlParams_.Encode()
43221	req, err := http.NewRequest("GET", urls, body)
43222	if err != nil {
43223		return nil, err
43224	}
43225	req.Header = reqHeaders
43226	googleapi.Expand(req.URL, map[string]string{
43227		"project": c.project,
43228		"region":  c.region,
43229	})
43230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43231}
43232
43233// Do executes the "compute.addresses.list" call.
43234// Exactly one of *AddressList or error will be non-nil. Any non-2xx
43235// status code is an error. Response headers are in either
43236// *AddressList.ServerResponse.Header or (if a response was returned at
43237// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43238// to check whether the returned error was because
43239// http.StatusNotModified was returned.
43240func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
43241	gensupport.SetOptions(c.urlParams_, opts...)
43242	res, err := c.doRequest("json")
43243	if res != nil && res.StatusCode == http.StatusNotModified {
43244		if res.Body != nil {
43245			res.Body.Close()
43246		}
43247		return nil, &googleapi.Error{
43248			Code:   res.StatusCode,
43249			Header: res.Header,
43250		}
43251	}
43252	if err != nil {
43253		return nil, err
43254	}
43255	defer googleapi.CloseBody(res)
43256	if err := googleapi.CheckResponse(res); err != nil {
43257		return nil, err
43258	}
43259	ret := &AddressList{
43260		ServerResponse: googleapi.ServerResponse{
43261			Header:         res.Header,
43262			HTTPStatusCode: res.StatusCode,
43263		},
43264	}
43265	target := &ret
43266	if err := gensupport.DecodeResponse(target, res); err != nil {
43267		return nil, err
43268	}
43269	return ret, nil
43270	// {
43271	//   "description": "Retrieves a list of addresses contained within the specified region.",
43272	//   "httpMethod": "GET",
43273	//   "id": "compute.addresses.list",
43274	//   "parameterOrder": [
43275	//     "project",
43276	//     "region"
43277	//   ],
43278	//   "parameters": {
43279	//     "filter": {
43280	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
43281	//       "location": "query",
43282	//       "type": "string"
43283	//     },
43284	//     "maxResults": {
43285	//       "default": "500",
43286	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
43287	//       "format": "uint32",
43288	//       "location": "query",
43289	//       "minimum": "0",
43290	//       "type": "integer"
43291	//     },
43292	//     "orderBy": {
43293	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
43294	//       "location": "query",
43295	//       "type": "string"
43296	//     },
43297	//     "pageToken": {
43298	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
43299	//       "location": "query",
43300	//       "type": "string"
43301	//     },
43302	//     "project": {
43303	//       "description": "Project ID for this request.",
43304	//       "location": "path",
43305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43306	//       "required": true,
43307	//       "type": "string"
43308	//     },
43309	//     "region": {
43310	//       "description": "Name of the region for this request.",
43311	//       "location": "path",
43312	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
43313	//       "required": true,
43314	//       "type": "string"
43315	//     }
43316	//   },
43317	//   "path": "{project}/regions/{region}/addresses",
43318	//   "response": {
43319	//     "$ref": "AddressList"
43320	//   },
43321	//   "scopes": [
43322	//     "https://www.googleapis.com/auth/cloud-platform",
43323	//     "https://www.googleapis.com/auth/compute",
43324	//     "https://www.googleapis.com/auth/compute.readonly"
43325	//   ]
43326	// }
43327
43328}
43329
43330// Pages invokes f for each page of results.
43331// A non-nil error returned from f will halt the iteration.
43332// The provided context supersedes any context provided to the Context method.
43333func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
43334	c.ctx_ = ctx
43335	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
43336	for {
43337		x, err := c.Do()
43338		if err != nil {
43339			return err
43340		}
43341		if err := f(x); err != nil {
43342			return err
43343		}
43344		if x.NextPageToken == "" {
43345			return nil
43346		}
43347		c.PageToken(x.NextPageToken)
43348	}
43349}
43350
43351// method id "compute.autoscalers.aggregatedList":
43352
43353type AutoscalersAggregatedListCall struct {
43354	s            *Service
43355	project      string
43356	urlParams_   gensupport.URLParams
43357	ifNoneMatch_ string
43358	ctx_         context.Context
43359	header_      http.Header
43360}
43361
43362// AggregatedList: Retrieves an aggregated list of autoscalers.
43363func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
43364	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43365	c.project = project
43366	return c
43367}
43368
43369// Filter sets the optional parameter "filter": A filter expression that
43370// filters resources listed in the response. The expression must specify
43371// the field name, a comparison operator, and the value that you want to
43372// use for filtering. The value must be a string, a number, or a
43373// boolean. The comparison operator must be either `=`, `!=`, `>`, or
43374// `<`.
43375//
43376// For example, if you are filtering Compute Engine instances, you can
43377// exclude instances named `example-instance` by specifying `name !=
43378// example-instance`.
43379//
43380// You can also filter nested fields. For example, you could specify
43381// `scheduling.automaticRestart = false` to include instances only if
43382// they are not scheduled for automatic restarts. You can use filtering
43383// on nested fields to filter based on resource labels.
43384//
43385// To filter on multiple expressions, provide each separate expression
43386// within parentheses. For example: ``` (scheduling.automaticRestart =
43387// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
43388// is an `AND` expression. However, you can include `AND` and `OR`
43389// expressions explicitly. For example: ``` (cpuPlatform = "Intel
43390// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
43391// (scheduling.automaticRestart = true) ```
43392func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
43393	c.urlParams_.Set("filter", filter)
43394	return c
43395}
43396
43397// IncludeAllScopes sets the optional parameter "includeAllScopes":
43398// Indicates whether every visible scope for each scope type (zone,
43399// region, global) should be included in the response. For new resource
43400// types added after this field, the flag has no effect as new resource
43401// types will always include every visible scope for each scope type in
43402// response. For resource types which predate this field, if this flag
43403// is omitted or false, only scopes of the scope types where the
43404// resource type is expected to be found will be included.
43405func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
43406	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
43407	return c
43408}
43409
43410// MaxResults sets the optional parameter "maxResults": The maximum
43411// number of results per page that should be returned. If the number of
43412// available results is larger than `maxResults`, Compute Engine returns
43413// a `nextPageToken` that can be used to get the next page of results in
43414// subsequent list requests. Acceptable values are `0` to `500`,
43415// inclusive. (Default: `500`)
43416func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
43417	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
43418	return c
43419}
43420
43421// OrderBy sets the optional parameter "orderBy": Sorts list results by
43422// a certain order. By default, results are returned in alphanumerical
43423// order based on the resource name.
43424//
43425// You can also sort results in descending order based on the creation
43426// timestamp using `orderBy="creationTimestamp desc". This sorts
43427// results based on the `creationTimestamp` field in reverse
43428// chronological order (newest result first). Use this to sort resources
43429// like operations so that the newest operation is returned
43430// first.
43431//
43432// Currently, only sorting by `name` or `creationTimestamp desc` is
43433// supported.
43434func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
43435	c.urlParams_.Set("orderBy", orderBy)
43436	return c
43437}
43438
43439// PageToken sets the optional parameter "pageToken": Specifies a page
43440// token to use. Set `pageToken` to the `nextPageToken` returned by a
43441// previous list request to get the next page of results.
43442func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
43443	c.urlParams_.Set("pageToken", pageToken)
43444	return c
43445}
43446
43447// Fields allows partial responses to be retrieved. See
43448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43449// for more information.
43450func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
43451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43452	return c
43453}
43454
43455// IfNoneMatch sets the optional parameter which makes the operation
43456// fail if the object's ETag matches the given value. This is useful for
43457// getting updates only after the object has changed since the last
43458// request. Use googleapi.IsNotModified to check whether the response
43459// error from Do is the result of In-None-Match.
43460func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
43461	c.ifNoneMatch_ = entityTag
43462	return c
43463}
43464
43465// Context sets the context to be used in this call's Do method. Any
43466// pending HTTP request will be aborted if the provided context is
43467// canceled.
43468func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
43469	c.ctx_ = ctx
43470	return c
43471}
43472
43473// Header returns an http.Header that can be modified by the caller to
43474// add HTTP headers to the request.
43475func (c *AutoscalersAggregatedListCall) Header() http.Header {
43476	if c.header_ == nil {
43477		c.header_ = make(http.Header)
43478	}
43479	return c.header_
43480}
43481
43482func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
43483	reqHeaders := make(http.Header)
43484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
43485	for k, v := range c.header_ {
43486		reqHeaders[k] = v
43487	}
43488	reqHeaders.Set("User-Agent", c.s.userAgent())
43489	if c.ifNoneMatch_ != "" {
43490		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43491	}
43492	var body io.Reader = nil
43493	c.urlParams_.Set("alt", alt)
43494	c.urlParams_.Set("prettyPrint", "false")
43495	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
43496	urls += "?" + c.urlParams_.Encode()
43497	req, err := http.NewRequest("GET", urls, body)
43498	if err != nil {
43499		return nil, err
43500	}
43501	req.Header = reqHeaders
43502	googleapi.Expand(req.URL, map[string]string{
43503		"project": c.project,
43504	})
43505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43506}
43507
43508// Do executes the "compute.autoscalers.aggregatedList" call.
43509// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
43510// Any non-2xx status code is an error. Response headers are in either
43511// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
43512// returned at all) in error.(*googleapi.Error).Header. Use
43513// googleapi.IsNotModified to check whether the returned error was
43514// because http.StatusNotModified was returned.
43515func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
43516	gensupport.SetOptions(c.urlParams_, opts...)
43517	res, err := c.doRequest("json")
43518	if res != nil && res.StatusCode == http.StatusNotModified {
43519		if res.Body != nil {
43520			res.Body.Close()
43521		}
43522		return nil, &googleapi.Error{
43523			Code:   res.StatusCode,
43524			Header: res.Header,
43525		}
43526	}
43527	if err != nil {
43528		return nil, err
43529	}
43530	defer googleapi.CloseBody(res)
43531	if err := googleapi.CheckResponse(res); err != nil {
43532		return nil, err
43533	}
43534	ret := &AutoscalerAggregatedList{
43535		ServerResponse: googleapi.ServerResponse{
43536			Header:         res.Header,
43537			HTTPStatusCode: res.StatusCode,
43538		},
43539	}
43540	target := &ret
43541	if err := gensupport.DecodeResponse(target, res); err != nil {
43542		return nil, err
43543	}
43544	return ret, nil
43545	// {
43546	//   "description": "Retrieves an aggregated list of autoscalers.",
43547	//   "httpMethod": "GET",
43548	//   "id": "compute.autoscalers.aggregatedList",
43549	//   "parameterOrder": [
43550	//     "project"
43551	//   ],
43552	//   "parameters": {
43553	//     "filter": {
43554	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
43555	//       "location": "query",
43556	//       "type": "string"
43557	//     },
43558	//     "includeAllScopes": {
43559	//       "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.",
43560	//       "location": "query",
43561	//       "type": "boolean"
43562	//     },
43563	//     "maxResults": {
43564	//       "default": "500",
43565	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
43566	//       "format": "uint32",
43567	//       "location": "query",
43568	//       "minimum": "0",
43569	//       "type": "integer"
43570	//     },
43571	//     "orderBy": {
43572	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
43573	//       "location": "query",
43574	//       "type": "string"
43575	//     },
43576	//     "pageToken": {
43577	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
43578	//       "location": "query",
43579	//       "type": "string"
43580	//     },
43581	//     "project": {
43582	//       "description": "Project ID for this request.",
43583	//       "location": "path",
43584	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43585	//       "required": true,
43586	//       "type": "string"
43587	//     }
43588	//   },
43589	//   "path": "{project}/aggregated/autoscalers",
43590	//   "response": {
43591	//     "$ref": "AutoscalerAggregatedList"
43592	//   },
43593	//   "scopes": [
43594	//     "https://www.googleapis.com/auth/cloud-platform",
43595	//     "https://www.googleapis.com/auth/compute",
43596	//     "https://www.googleapis.com/auth/compute.readonly"
43597	//   ]
43598	// }
43599
43600}
43601
43602// Pages invokes f for each page of results.
43603// A non-nil error returned from f will halt the iteration.
43604// The provided context supersedes any context provided to the Context method.
43605func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
43606	c.ctx_ = ctx
43607	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
43608	for {
43609		x, err := c.Do()
43610		if err != nil {
43611			return err
43612		}
43613		if err := f(x); err != nil {
43614			return err
43615		}
43616		if x.NextPageToken == "" {
43617			return nil
43618		}
43619		c.PageToken(x.NextPageToken)
43620	}
43621}
43622
43623// method id "compute.autoscalers.delete":
43624
43625type AutoscalersDeleteCall struct {
43626	s          *Service
43627	project    string
43628	zone       string
43629	autoscaler string
43630	urlParams_ gensupport.URLParams
43631	ctx_       context.Context
43632	header_    http.Header
43633}
43634
43635// Delete: Deletes the specified autoscaler.
43636func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
43637	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43638	c.project = project
43639	c.zone = zone
43640	c.autoscaler = autoscaler
43641	return c
43642}
43643
43644// RequestId sets the optional parameter "requestId": An optional
43645// request ID to identify requests. Specify a unique request ID so that
43646// if you must retry your request, the server will know to ignore the
43647// request if it has already been completed.
43648//
43649// For example, consider a situation where you make an initial request
43650// and the request times out. If you make the request again with the
43651// same request ID, the server can check if original operation with the
43652// same request ID was received, and if so, will ignore the second
43653// request. This prevents clients from accidentally creating duplicate
43654// commitments.
43655//
43656// The request ID must be a valid UUID with the exception that zero UUID
43657// is not supported (00000000-0000-0000-0000-000000000000).
43658func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
43659	c.urlParams_.Set("requestId", requestId)
43660	return c
43661}
43662
43663// Fields allows partial responses to be retrieved. See
43664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43665// for more information.
43666func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
43667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43668	return c
43669}
43670
43671// Context sets the context to be used in this call's Do method. Any
43672// pending HTTP request will be aborted if the provided context is
43673// canceled.
43674func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
43675	c.ctx_ = ctx
43676	return c
43677}
43678
43679// Header returns an http.Header that can be modified by the caller to
43680// add HTTP headers to the request.
43681func (c *AutoscalersDeleteCall) Header() http.Header {
43682	if c.header_ == nil {
43683		c.header_ = make(http.Header)
43684	}
43685	return c.header_
43686}
43687
43688func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
43689	reqHeaders := make(http.Header)
43690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
43691	for k, v := range c.header_ {
43692		reqHeaders[k] = v
43693	}
43694	reqHeaders.Set("User-Agent", c.s.userAgent())
43695	var body io.Reader = nil
43696	c.urlParams_.Set("alt", alt)
43697	c.urlParams_.Set("prettyPrint", "false")
43698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
43699	urls += "?" + c.urlParams_.Encode()
43700	req, err := http.NewRequest("DELETE", urls, body)
43701	if err != nil {
43702		return nil, err
43703	}
43704	req.Header = reqHeaders
43705	googleapi.Expand(req.URL, map[string]string{
43706		"project":    c.project,
43707		"zone":       c.zone,
43708		"autoscaler": c.autoscaler,
43709	})
43710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43711}
43712
43713// Do executes the "compute.autoscalers.delete" call.
43714// Exactly one of *Operation or error will be non-nil. Any non-2xx
43715// status code is an error. Response headers are in either
43716// *Operation.ServerResponse.Header or (if a response was returned at
43717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43718// to check whether the returned error was because
43719// http.StatusNotModified was returned.
43720func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43721	gensupport.SetOptions(c.urlParams_, opts...)
43722	res, err := c.doRequest("json")
43723	if res != nil && res.StatusCode == http.StatusNotModified {
43724		if res.Body != nil {
43725			res.Body.Close()
43726		}
43727		return nil, &googleapi.Error{
43728			Code:   res.StatusCode,
43729			Header: res.Header,
43730		}
43731	}
43732	if err != nil {
43733		return nil, err
43734	}
43735	defer googleapi.CloseBody(res)
43736	if err := googleapi.CheckResponse(res); err != nil {
43737		return nil, err
43738	}
43739	ret := &Operation{
43740		ServerResponse: googleapi.ServerResponse{
43741			Header:         res.Header,
43742			HTTPStatusCode: res.StatusCode,
43743		},
43744	}
43745	target := &ret
43746	if err := gensupport.DecodeResponse(target, res); err != nil {
43747		return nil, err
43748	}
43749	return ret, nil
43750	// {
43751	//   "description": "Deletes the specified autoscaler.",
43752	//   "httpMethod": "DELETE",
43753	//   "id": "compute.autoscalers.delete",
43754	//   "parameterOrder": [
43755	//     "project",
43756	//     "zone",
43757	//     "autoscaler"
43758	//   ],
43759	//   "parameters": {
43760	//     "autoscaler": {
43761	//       "description": "Name of the autoscaler to delete.",
43762	//       "location": "path",
43763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
43764	//       "required": true,
43765	//       "type": "string"
43766	//     },
43767	//     "project": {
43768	//       "description": "Project ID for this request.",
43769	//       "location": "path",
43770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43771	//       "required": true,
43772	//       "type": "string"
43773	//     },
43774	//     "requestId": {
43775	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43776	//       "location": "query",
43777	//       "type": "string"
43778	//     },
43779	//     "zone": {
43780	//       "description": "Name of the zone for this request.",
43781	//       "location": "path",
43782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
43783	//       "required": true,
43784	//       "type": "string"
43785	//     }
43786	//   },
43787	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
43788	//   "response": {
43789	//     "$ref": "Operation"
43790	//   },
43791	//   "scopes": [
43792	//     "https://www.googleapis.com/auth/cloud-platform",
43793	//     "https://www.googleapis.com/auth/compute"
43794	//   ]
43795	// }
43796
43797}
43798
43799// method id "compute.autoscalers.get":
43800
43801type AutoscalersGetCall struct {
43802	s            *Service
43803	project      string
43804	zone         string
43805	autoscaler   string
43806	urlParams_   gensupport.URLParams
43807	ifNoneMatch_ string
43808	ctx_         context.Context
43809	header_      http.Header
43810}
43811
43812// Get: Returns the specified autoscaler resource. Gets a list of
43813// available autoscalers by making a list() request.
43814func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
43815	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43816	c.project = project
43817	c.zone = zone
43818	c.autoscaler = autoscaler
43819	return c
43820}
43821
43822// Fields allows partial responses to be retrieved. See
43823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43824// for more information.
43825func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
43826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43827	return c
43828}
43829
43830// IfNoneMatch sets the optional parameter which makes the operation
43831// fail if the object's ETag matches the given value. This is useful for
43832// getting updates only after the object has changed since the last
43833// request. Use googleapi.IsNotModified to check whether the response
43834// error from Do is the result of In-None-Match.
43835func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
43836	c.ifNoneMatch_ = entityTag
43837	return c
43838}
43839
43840// Context sets the context to be used in this call's Do method. Any
43841// pending HTTP request will be aborted if the provided context is
43842// canceled.
43843func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
43844	c.ctx_ = ctx
43845	return c
43846}
43847
43848// Header returns an http.Header that can be modified by the caller to
43849// add HTTP headers to the request.
43850func (c *AutoscalersGetCall) Header() http.Header {
43851	if c.header_ == nil {
43852		c.header_ = make(http.Header)
43853	}
43854	return c.header_
43855}
43856
43857func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
43858	reqHeaders := make(http.Header)
43859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
43860	for k, v := range c.header_ {
43861		reqHeaders[k] = v
43862	}
43863	reqHeaders.Set("User-Agent", c.s.userAgent())
43864	if c.ifNoneMatch_ != "" {
43865		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43866	}
43867	var body io.Reader = nil
43868	c.urlParams_.Set("alt", alt)
43869	c.urlParams_.Set("prettyPrint", "false")
43870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
43871	urls += "?" + c.urlParams_.Encode()
43872	req, err := http.NewRequest("GET", urls, body)
43873	if err != nil {
43874		return nil, err
43875	}
43876	req.Header = reqHeaders
43877	googleapi.Expand(req.URL, map[string]string{
43878		"project":    c.project,
43879		"zone":       c.zone,
43880		"autoscaler": c.autoscaler,
43881	})
43882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43883}
43884
43885// Do executes the "compute.autoscalers.get" call.
43886// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
43887// status code is an error. Response headers are in either
43888// *Autoscaler.ServerResponse.Header or (if a response was returned at
43889// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43890// to check whether the returned error was because
43891// http.StatusNotModified was returned.
43892func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
43893	gensupport.SetOptions(c.urlParams_, opts...)
43894	res, err := c.doRequest("json")
43895	if res != nil && res.StatusCode == http.StatusNotModified {
43896		if res.Body != nil {
43897			res.Body.Close()
43898		}
43899		return nil, &googleapi.Error{
43900			Code:   res.StatusCode,
43901			Header: res.Header,
43902		}
43903	}
43904	if err != nil {
43905		return nil, err
43906	}
43907	defer googleapi.CloseBody(res)
43908	if err := googleapi.CheckResponse(res); err != nil {
43909		return nil, err
43910	}
43911	ret := &Autoscaler{
43912		ServerResponse: googleapi.ServerResponse{
43913			Header:         res.Header,
43914			HTTPStatusCode: res.StatusCode,
43915		},
43916	}
43917	target := &ret
43918	if err := gensupport.DecodeResponse(target, res); err != nil {
43919		return nil, err
43920	}
43921	return ret, nil
43922	// {
43923	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
43924	//   "httpMethod": "GET",
43925	//   "id": "compute.autoscalers.get",
43926	//   "parameterOrder": [
43927	//     "project",
43928	//     "zone",
43929	//     "autoscaler"
43930	//   ],
43931	//   "parameters": {
43932	//     "autoscaler": {
43933	//       "description": "Name of the autoscaler to return.",
43934	//       "location": "path",
43935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
43936	//       "required": true,
43937	//       "type": "string"
43938	//     },
43939	//     "project": {
43940	//       "description": "Project ID for this request.",
43941	//       "location": "path",
43942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43943	//       "required": true,
43944	//       "type": "string"
43945	//     },
43946	//     "zone": {
43947	//       "description": "Name of the zone for this request.",
43948	//       "location": "path",
43949	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
43950	//       "required": true,
43951	//       "type": "string"
43952	//     }
43953	//   },
43954	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
43955	//   "response": {
43956	//     "$ref": "Autoscaler"
43957	//   },
43958	//   "scopes": [
43959	//     "https://www.googleapis.com/auth/cloud-platform",
43960	//     "https://www.googleapis.com/auth/compute",
43961	//     "https://www.googleapis.com/auth/compute.readonly"
43962	//   ]
43963	// }
43964
43965}
43966
43967// method id "compute.autoscalers.insert":
43968
43969type AutoscalersInsertCall struct {
43970	s          *Service
43971	project    string
43972	zone       string
43973	autoscaler *Autoscaler
43974	urlParams_ gensupport.URLParams
43975	ctx_       context.Context
43976	header_    http.Header
43977}
43978
43979// Insert: Creates an autoscaler in the specified project using the data
43980// included in the request.
43981func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
43982	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43983	c.project = project
43984	c.zone = zone
43985	c.autoscaler = autoscaler
43986	return c
43987}
43988
43989// RequestId sets the optional parameter "requestId": An optional
43990// request ID to identify requests. Specify a unique request ID so that
43991// if you must retry your request, the server will know to ignore the
43992// request if it has already been completed.
43993//
43994// For example, consider a situation where you make an initial request
43995// and the request times out. If you make the request again with the
43996// same request ID, the server can check if original operation with the
43997// same request ID was received, and if so, will ignore the second
43998// request. This prevents clients from accidentally creating duplicate
43999// commitments.
44000//
44001// The request ID must be a valid UUID with the exception that zero UUID
44002// is not supported (00000000-0000-0000-0000-000000000000).
44003func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
44004	c.urlParams_.Set("requestId", requestId)
44005	return c
44006}
44007
44008// Fields allows partial responses to be retrieved. See
44009// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44010// for more information.
44011func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
44012	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44013	return c
44014}
44015
44016// Context sets the context to be used in this call's Do method. Any
44017// pending HTTP request will be aborted if the provided context is
44018// canceled.
44019func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
44020	c.ctx_ = ctx
44021	return c
44022}
44023
44024// Header returns an http.Header that can be modified by the caller to
44025// add HTTP headers to the request.
44026func (c *AutoscalersInsertCall) Header() http.Header {
44027	if c.header_ == nil {
44028		c.header_ = make(http.Header)
44029	}
44030	return c.header_
44031}
44032
44033func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
44034	reqHeaders := make(http.Header)
44035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
44036	for k, v := range c.header_ {
44037		reqHeaders[k] = v
44038	}
44039	reqHeaders.Set("User-Agent", c.s.userAgent())
44040	var body io.Reader = nil
44041	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
44042	if err != nil {
44043		return nil, err
44044	}
44045	reqHeaders.Set("Content-Type", "application/json")
44046	c.urlParams_.Set("alt", alt)
44047	c.urlParams_.Set("prettyPrint", "false")
44048	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
44049	urls += "?" + c.urlParams_.Encode()
44050	req, err := http.NewRequest("POST", urls, body)
44051	if err != nil {
44052		return nil, err
44053	}
44054	req.Header = reqHeaders
44055	googleapi.Expand(req.URL, map[string]string{
44056		"project": c.project,
44057		"zone":    c.zone,
44058	})
44059	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44060}
44061
44062// Do executes the "compute.autoscalers.insert" call.
44063// Exactly one of *Operation or error will be non-nil. Any non-2xx
44064// status code is an error. Response headers are in either
44065// *Operation.ServerResponse.Header or (if a response was returned at
44066// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44067// to check whether the returned error was because
44068// http.StatusNotModified was returned.
44069func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44070	gensupport.SetOptions(c.urlParams_, opts...)
44071	res, err := c.doRequest("json")
44072	if res != nil && res.StatusCode == http.StatusNotModified {
44073		if res.Body != nil {
44074			res.Body.Close()
44075		}
44076		return nil, &googleapi.Error{
44077			Code:   res.StatusCode,
44078			Header: res.Header,
44079		}
44080	}
44081	if err != nil {
44082		return nil, err
44083	}
44084	defer googleapi.CloseBody(res)
44085	if err := googleapi.CheckResponse(res); err != nil {
44086		return nil, err
44087	}
44088	ret := &Operation{
44089		ServerResponse: googleapi.ServerResponse{
44090			Header:         res.Header,
44091			HTTPStatusCode: res.StatusCode,
44092		},
44093	}
44094	target := &ret
44095	if err := gensupport.DecodeResponse(target, res); err != nil {
44096		return nil, err
44097	}
44098	return ret, nil
44099	// {
44100	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
44101	//   "httpMethod": "POST",
44102	//   "id": "compute.autoscalers.insert",
44103	//   "parameterOrder": [
44104	//     "project",
44105	//     "zone"
44106	//   ],
44107	//   "parameters": {
44108	//     "project": {
44109	//       "description": "Project ID for this request.",
44110	//       "location": "path",
44111	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44112	//       "required": true,
44113	//       "type": "string"
44114	//     },
44115	//     "requestId": {
44116	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44117	//       "location": "query",
44118	//       "type": "string"
44119	//     },
44120	//     "zone": {
44121	//       "description": "Name of the zone for this request.",
44122	//       "location": "path",
44123	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44124	//       "required": true,
44125	//       "type": "string"
44126	//     }
44127	//   },
44128	//   "path": "{project}/zones/{zone}/autoscalers",
44129	//   "request": {
44130	//     "$ref": "Autoscaler"
44131	//   },
44132	//   "response": {
44133	//     "$ref": "Operation"
44134	//   },
44135	//   "scopes": [
44136	//     "https://www.googleapis.com/auth/cloud-platform",
44137	//     "https://www.googleapis.com/auth/compute"
44138	//   ]
44139	// }
44140
44141}
44142
44143// method id "compute.autoscalers.list":
44144
44145type AutoscalersListCall struct {
44146	s            *Service
44147	project      string
44148	zone         string
44149	urlParams_   gensupport.URLParams
44150	ifNoneMatch_ string
44151	ctx_         context.Context
44152	header_      http.Header
44153}
44154
44155// List: Retrieves a list of autoscalers contained within the specified
44156// zone.
44157func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
44158	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44159	c.project = project
44160	c.zone = zone
44161	return c
44162}
44163
44164// Filter sets the optional parameter "filter": A filter expression that
44165// filters resources listed in the response. The expression must specify
44166// the field name, a comparison operator, and the value that you want to
44167// use for filtering. The value must be a string, a number, or a
44168// boolean. The comparison operator must be either `=`, `!=`, `>`, or
44169// `<`.
44170//
44171// For example, if you are filtering Compute Engine instances, you can
44172// exclude instances named `example-instance` by specifying `name !=
44173// example-instance`.
44174//
44175// You can also filter nested fields. For example, you could specify
44176// `scheduling.automaticRestart = false` to include instances only if
44177// they are not scheduled for automatic restarts. You can use filtering
44178// on nested fields to filter based on resource labels.
44179//
44180// To filter on multiple expressions, provide each separate expression
44181// within parentheses. For example: ``` (scheduling.automaticRestart =
44182// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
44183// is an `AND` expression. However, you can include `AND` and `OR`
44184// expressions explicitly. For example: ``` (cpuPlatform = "Intel
44185// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
44186// (scheduling.automaticRestart = true) ```
44187func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
44188	c.urlParams_.Set("filter", filter)
44189	return c
44190}
44191
44192// MaxResults sets the optional parameter "maxResults": The maximum
44193// number of results per page that should be returned. If the number of
44194// available results is larger than `maxResults`, Compute Engine returns
44195// a `nextPageToken` that can be used to get the next page of results in
44196// subsequent list requests. Acceptable values are `0` to `500`,
44197// inclusive. (Default: `500`)
44198func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
44199	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44200	return c
44201}
44202
44203// OrderBy sets the optional parameter "orderBy": Sorts list results by
44204// a certain order. By default, results are returned in alphanumerical
44205// order based on the resource name.
44206//
44207// You can also sort results in descending order based on the creation
44208// timestamp using `orderBy="creationTimestamp desc". This sorts
44209// results based on the `creationTimestamp` field in reverse
44210// chronological order (newest result first). Use this to sort resources
44211// like operations so that the newest operation is returned
44212// first.
44213//
44214// Currently, only sorting by `name` or `creationTimestamp desc` is
44215// supported.
44216func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
44217	c.urlParams_.Set("orderBy", orderBy)
44218	return c
44219}
44220
44221// PageToken sets the optional parameter "pageToken": Specifies a page
44222// token to use. Set `pageToken` to the `nextPageToken` returned by a
44223// previous list request to get the next page of results.
44224func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
44225	c.urlParams_.Set("pageToken", pageToken)
44226	return c
44227}
44228
44229// Fields allows partial responses to be retrieved. See
44230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44231// for more information.
44232func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
44233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44234	return c
44235}
44236
44237// IfNoneMatch sets the optional parameter which makes the operation
44238// fail if the object's ETag matches the given value. This is useful for
44239// getting updates only after the object has changed since the last
44240// request. Use googleapi.IsNotModified to check whether the response
44241// error from Do is the result of In-None-Match.
44242func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
44243	c.ifNoneMatch_ = entityTag
44244	return c
44245}
44246
44247// Context sets the context to be used in this call's Do method. Any
44248// pending HTTP request will be aborted if the provided context is
44249// canceled.
44250func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
44251	c.ctx_ = ctx
44252	return c
44253}
44254
44255// Header returns an http.Header that can be modified by the caller to
44256// add HTTP headers to the request.
44257func (c *AutoscalersListCall) Header() http.Header {
44258	if c.header_ == nil {
44259		c.header_ = make(http.Header)
44260	}
44261	return c.header_
44262}
44263
44264func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
44265	reqHeaders := make(http.Header)
44266	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
44267	for k, v := range c.header_ {
44268		reqHeaders[k] = v
44269	}
44270	reqHeaders.Set("User-Agent", c.s.userAgent())
44271	if c.ifNoneMatch_ != "" {
44272		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44273	}
44274	var body io.Reader = nil
44275	c.urlParams_.Set("alt", alt)
44276	c.urlParams_.Set("prettyPrint", "false")
44277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
44278	urls += "?" + c.urlParams_.Encode()
44279	req, err := http.NewRequest("GET", urls, body)
44280	if err != nil {
44281		return nil, err
44282	}
44283	req.Header = reqHeaders
44284	googleapi.Expand(req.URL, map[string]string{
44285		"project": c.project,
44286		"zone":    c.zone,
44287	})
44288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44289}
44290
44291// Do executes the "compute.autoscalers.list" call.
44292// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
44293// status code is an error. Response headers are in either
44294// *AutoscalerList.ServerResponse.Header or (if a response was returned
44295// at all) in error.(*googleapi.Error).Header. Use
44296// googleapi.IsNotModified to check whether the returned error was
44297// because http.StatusNotModified was returned.
44298func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
44299	gensupport.SetOptions(c.urlParams_, opts...)
44300	res, err := c.doRequest("json")
44301	if res != nil && res.StatusCode == http.StatusNotModified {
44302		if res.Body != nil {
44303			res.Body.Close()
44304		}
44305		return nil, &googleapi.Error{
44306			Code:   res.StatusCode,
44307			Header: res.Header,
44308		}
44309	}
44310	if err != nil {
44311		return nil, err
44312	}
44313	defer googleapi.CloseBody(res)
44314	if err := googleapi.CheckResponse(res); err != nil {
44315		return nil, err
44316	}
44317	ret := &AutoscalerList{
44318		ServerResponse: googleapi.ServerResponse{
44319			Header:         res.Header,
44320			HTTPStatusCode: res.StatusCode,
44321		},
44322	}
44323	target := &ret
44324	if err := gensupport.DecodeResponse(target, res); err != nil {
44325		return nil, err
44326	}
44327	return ret, nil
44328	// {
44329	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
44330	//   "httpMethod": "GET",
44331	//   "id": "compute.autoscalers.list",
44332	//   "parameterOrder": [
44333	//     "project",
44334	//     "zone"
44335	//   ],
44336	//   "parameters": {
44337	//     "filter": {
44338	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
44339	//       "location": "query",
44340	//       "type": "string"
44341	//     },
44342	//     "maxResults": {
44343	//       "default": "500",
44344	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
44345	//       "format": "uint32",
44346	//       "location": "query",
44347	//       "minimum": "0",
44348	//       "type": "integer"
44349	//     },
44350	//     "orderBy": {
44351	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
44352	//       "location": "query",
44353	//       "type": "string"
44354	//     },
44355	//     "pageToken": {
44356	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
44357	//       "location": "query",
44358	//       "type": "string"
44359	//     },
44360	//     "project": {
44361	//       "description": "Project ID for this request.",
44362	//       "location": "path",
44363	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44364	//       "required": true,
44365	//       "type": "string"
44366	//     },
44367	//     "zone": {
44368	//       "description": "Name of the zone for this request.",
44369	//       "location": "path",
44370	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44371	//       "required": true,
44372	//       "type": "string"
44373	//     }
44374	//   },
44375	//   "path": "{project}/zones/{zone}/autoscalers",
44376	//   "response": {
44377	//     "$ref": "AutoscalerList"
44378	//   },
44379	//   "scopes": [
44380	//     "https://www.googleapis.com/auth/cloud-platform",
44381	//     "https://www.googleapis.com/auth/compute",
44382	//     "https://www.googleapis.com/auth/compute.readonly"
44383	//   ]
44384	// }
44385
44386}
44387
44388// Pages invokes f for each page of results.
44389// A non-nil error returned from f will halt the iteration.
44390// The provided context supersedes any context provided to the Context method.
44391func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
44392	c.ctx_ = ctx
44393	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44394	for {
44395		x, err := c.Do()
44396		if err != nil {
44397			return err
44398		}
44399		if err := f(x); err != nil {
44400			return err
44401		}
44402		if x.NextPageToken == "" {
44403			return nil
44404		}
44405		c.PageToken(x.NextPageToken)
44406	}
44407}
44408
44409// method id "compute.autoscalers.patch":
44410
44411type AutoscalersPatchCall struct {
44412	s          *Service
44413	project    string
44414	zone       string
44415	autoscaler *Autoscaler
44416	urlParams_ gensupport.URLParams
44417	ctx_       context.Context
44418	header_    http.Header
44419}
44420
44421// Patch: Updates an autoscaler in the specified project using the data
44422// included in the request. This method supports PATCH semantics and
44423// uses the JSON merge patch format and processing rules.
44424func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
44425	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44426	c.project = project
44427	c.zone = zone
44428	c.autoscaler = autoscaler
44429	return c
44430}
44431
44432// Autoscaler sets the optional parameter "autoscaler": Name of the
44433// autoscaler to patch.
44434func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
44435	c.urlParams_.Set("autoscaler", autoscaler)
44436	return c
44437}
44438
44439// RequestId sets the optional parameter "requestId": An optional
44440// request ID to identify requests. Specify a unique request ID so that
44441// if you must retry your request, the server will know to ignore the
44442// request if it has already been completed.
44443//
44444// For example, consider a situation where you make an initial request
44445// and the request times out. If you make the request again with the
44446// same request ID, the server can check if original operation with the
44447// same request ID was received, and if so, will ignore the second
44448// request. This prevents clients from accidentally creating duplicate
44449// commitments.
44450//
44451// The request ID must be a valid UUID with the exception that zero UUID
44452// is not supported (00000000-0000-0000-0000-000000000000).
44453func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
44454	c.urlParams_.Set("requestId", requestId)
44455	return c
44456}
44457
44458// Fields allows partial responses to be retrieved. See
44459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44460// for more information.
44461func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
44462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44463	return c
44464}
44465
44466// Context sets the context to be used in this call's Do method. Any
44467// pending HTTP request will be aborted if the provided context is
44468// canceled.
44469func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
44470	c.ctx_ = ctx
44471	return c
44472}
44473
44474// Header returns an http.Header that can be modified by the caller to
44475// add HTTP headers to the request.
44476func (c *AutoscalersPatchCall) Header() http.Header {
44477	if c.header_ == nil {
44478		c.header_ = make(http.Header)
44479	}
44480	return c.header_
44481}
44482
44483func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
44484	reqHeaders := make(http.Header)
44485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
44486	for k, v := range c.header_ {
44487		reqHeaders[k] = v
44488	}
44489	reqHeaders.Set("User-Agent", c.s.userAgent())
44490	var body io.Reader = nil
44491	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
44492	if err != nil {
44493		return nil, err
44494	}
44495	reqHeaders.Set("Content-Type", "application/json")
44496	c.urlParams_.Set("alt", alt)
44497	c.urlParams_.Set("prettyPrint", "false")
44498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
44499	urls += "?" + c.urlParams_.Encode()
44500	req, err := http.NewRequest("PATCH", urls, body)
44501	if err != nil {
44502		return nil, err
44503	}
44504	req.Header = reqHeaders
44505	googleapi.Expand(req.URL, map[string]string{
44506		"project": c.project,
44507		"zone":    c.zone,
44508	})
44509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44510}
44511
44512// Do executes the "compute.autoscalers.patch" call.
44513// Exactly one of *Operation or error will be non-nil. Any non-2xx
44514// status code is an error. Response headers are in either
44515// *Operation.ServerResponse.Header or (if a response was returned at
44516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44517// to check whether the returned error was because
44518// http.StatusNotModified was returned.
44519func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44520	gensupport.SetOptions(c.urlParams_, opts...)
44521	res, err := c.doRequest("json")
44522	if res != nil && res.StatusCode == http.StatusNotModified {
44523		if res.Body != nil {
44524			res.Body.Close()
44525		}
44526		return nil, &googleapi.Error{
44527			Code:   res.StatusCode,
44528			Header: res.Header,
44529		}
44530	}
44531	if err != nil {
44532		return nil, err
44533	}
44534	defer googleapi.CloseBody(res)
44535	if err := googleapi.CheckResponse(res); err != nil {
44536		return nil, err
44537	}
44538	ret := &Operation{
44539		ServerResponse: googleapi.ServerResponse{
44540			Header:         res.Header,
44541			HTTPStatusCode: res.StatusCode,
44542		},
44543	}
44544	target := &ret
44545	if err := gensupport.DecodeResponse(target, res); err != nil {
44546		return nil, err
44547	}
44548	return ret, nil
44549	// {
44550	//   "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.",
44551	//   "httpMethod": "PATCH",
44552	//   "id": "compute.autoscalers.patch",
44553	//   "parameterOrder": [
44554	//     "project",
44555	//     "zone"
44556	//   ],
44557	//   "parameters": {
44558	//     "autoscaler": {
44559	//       "description": "Name of the autoscaler to patch.",
44560	//       "location": "query",
44561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
44562	//       "type": "string"
44563	//     },
44564	//     "project": {
44565	//       "description": "Project ID for this request.",
44566	//       "location": "path",
44567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44568	//       "required": true,
44569	//       "type": "string"
44570	//     },
44571	//     "requestId": {
44572	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44573	//       "location": "query",
44574	//       "type": "string"
44575	//     },
44576	//     "zone": {
44577	//       "description": "Name of the zone for this request.",
44578	//       "location": "path",
44579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44580	//       "required": true,
44581	//       "type": "string"
44582	//     }
44583	//   },
44584	//   "path": "{project}/zones/{zone}/autoscalers",
44585	//   "request": {
44586	//     "$ref": "Autoscaler"
44587	//   },
44588	//   "response": {
44589	//     "$ref": "Operation"
44590	//   },
44591	//   "scopes": [
44592	//     "https://www.googleapis.com/auth/cloud-platform",
44593	//     "https://www.googleapis.com/auth/compute"
44594	//   ]
44595	// }
44596
44597}
44598
44599// method id "compute.autoscalers.update":
44600
44601type AutoscalersUpdateCall struct {
44602	s          *Service
44603	project    string
44604	zone       string
44605	autoscaler *Autoscaler
44606	urlParams_ gensupport.URLParams
44607	ctx_       context.Context
44608	header_    http.Header
44609}
44610
44611// Update: Updates an autoscaler in the specified project using the data
44612// included in the request.
44613func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
44614	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44615	c.project = project
44616	c.zone = zone
44617	c.autoscaler = autoscaler
44618	return c
44619}
44620
44621// Autoscaler sets the optional parameter "autoscaler": Name of the
44622// autoscaler to update.
44623func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
44624	c.urlParams_.Set("autoscaler", autoscaler)
44625	return c
44626}
44627
44628// RequestId sets the optional parameter "requestId": An optional
44629// request ID to identify requests. Specify a unique request ID so that
44630// if you must retry your request, the server will know to ignore the
44631// request if it has already been completed.
44632//
44633// For example, consider a situation where you make an initial request
44634// and the request times out. If you make the request again with the
44635// same request ID, the server can check if original operation with the
44636// same request ID was received, and if so, will ignore the second
44637// request. This prevents clients from accidentally creating duplicate
44638// commitments.
44639//
44640// The request ID must be a valid UUID with the exception that zero UUID
44641// is not supported (00000000-0000-0000-0000-000000000000).
44642func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
44643	c.urlParams_.Set("requestId", requestId)
44644	return c
44645}
44646
44647// Fields allows partial responses to be retrieved. See
44648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44649// for more information.
44650func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
44651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44652	return c
44653}
44654
44655// Context sets the context to be used in this call's Do method. Any
44656// pending HTTP request will be aborted if the provided context is
44657// canceled.
44658func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
44659	c.ctx_ = ctx
44660	return c
44661}
44662
44663// Header returns an http.Header that can be modified by the caller to
44664// add HTTP headers to the request.
44665func (c *AutoscalersUpdateCall) Header() http.Header {
44666	if c.header_ == nil {
44667		c.header_ = make(http.Header)
44668	}
44669	return c.header_
44670}
44671
44672func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
44673	reqHeaders := make(http.Header)
44674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
44675	for k, v := range c.header_ {
44676		reqHeaders[k] = v
44677	}
44678	reqHeaders.Set("User-Agent", c.s.userAgent())
44679	var body io.Reader = nil
44680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
44681	if err != nil {
44682		return nil, err
44683	}
44684	reqHeaders.Set("Content-Type", "application/json")
44685	c.urlParams_.Set("alt", alt)
44686	c.urlParams_.Set("prettyPrint", "false")
44687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
44688	urls += "?" + c.urlParams_.Encode()
44689	req, err := http.NewRequest("PUT", urls, body)
44690	if err != nil {
44691		return nil, err
44692	}
44693	req.Header = reqHeaders
44694	googleapi.Expand(req.URL, map[string]string{
44695		"project": c.project,
44696		"zone":    c.zone,
44697	})
44698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44699}
44700
44701// Do executes the "compute.autoscalers.update" call.
44702// Exactly one of *Operation or error will be non-nil. Any non-2xx
44703// status code is an error. Response headers are in either
44704// *Operation.ServerResponse.Header or (if a response was returned at
44705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44706// to check whether the returned error was because
44707// http.StatusNotModified was returned.
44708func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44709	gensupport.SetOptions(c.urlParams_, opts...)
44710	res, err := c.doRequest("json")
44711	if res != nil && res.StatusCode == http.StatusNotModified {
44712		if res.Body != nil {
44713			res.Body.Close()
44714		}
44715		return nil, &googleapi.Error{
44716			Code:   res.StatusCode,
44717			Header: res.Header,
44718		}
44719	}
44720	if err != nil {
44721		return nil, err
44722	}
44723	defer googleapi.CloseBody(res)
44724	if err := googleapi.CheckResponse(res); err != nil {
44725		return nil, err
44726	}
44727	ret := &Operation{
44728		ServerResponse: googleapi.ServerResponse{
44729			Header:         res.Header,
44730			HTTPStatusCode: res.StatusCode,
44731		},
44732	}
44733	target := &ret
44734	if err := gensupport.DecodeResponse(target, res); err != nil {
44735		return nil, err
44736	}
44737	return ret, nil
44738	// {
44739	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
44740	//   "httpMethod": "PUT",
44741	//   "id": "compute.autoscalers.update",
44742	//   "parameterOrder": [
44743	//     "project",
44744	//     "zone"
44745	//   ],
44746	//   "parameters": {
44747	//     "autoscaler": {
44748	//       "description": "Name of the autoscaler to update.",
44749	//       "location": "query",
44750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
44751	//       "type": "string"
44752	//     },
44753	//     "project": {
44754	//       "description": "Project ID for this request.",
44755	//       "location": "path",
44756	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44757	//       "required": true,
44758	//       "type": "string"
44759	//     },
44760	//     "requestId": {
44761	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44762	//       "location": "query",
44763	//       "type": "string"
44764	//     },
44765	//     "zone": {
44766	//       "description": "Name of the zone for this request.",
44767	//       "location": "path",
44768	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44769	//       "required": true,
44770	//       "type": "string"
44771	//     }
44772	//   },
44773	//   "path": "{project}/zones/{zone}/autoscalers",
44774	//   "request": {
44775	//     "$ref": "Autoscaler"
44776	//   },
44777	//   "response": {
44778	//     "$ref": "Operation"
44779	//   },
44780	//   "scopes": [
44781	//     "https://www.googleapis.com/auth/cloud-platform",
44782	//     "https://www.googleapis.com/auth/compute"
44783	//   ]
44784	// }
44785
44786}
44787
44788// method id "compute.backendBuckets.addSignedUrlKey":
44789
44790type BackendBucketsAddSignedUrlKeyCall struct {
44791	s             *Service
44792	project       string
44793	backendBucket string
44794	signedurlkey  *SignedUrlKey
44795	urlParams_    gensupport.URLParams
44796	ctx_          context.Context
44797	header_       http.Header
44798}
44799
44800// AddSignedUrlKey: Adds a key for validating requests with signed URLs
44801// for this backend bucket.
44802func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
44803	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44804	c.project = project
44805	c.backendBucket = backendBucket
44806	c.signedurlkey = signedurlkey
44807	return c
44808}
44809
44810// RequestId sets the optional parameter "requestId": An optional
44811// request ID to identify requests. Specify a unique request ID so that
44812// if you must retry your request, the server will know to ignore the
44813// request if it has already been completed.
44814//
44815// For example, consider a situation where you make an initial request
44816// and the request times out. If you make the request again with the
44817// same request ID, the server can check if original operation with the
44818// same request ID was received, and if so, will ignore the second
44819// request. This prevents clients from accidentally creating duplicate
44820// commitments.
44821//
44822// The request ID must be a valid UUID with the exception that zero UUID
44823// is not supported (00000000-0000-0000-0000-000000000000).
44824func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
44825	c.urlParams_.Set("requestId", requestId)
44826	return c
44827}
44828
44829// Fields allows partial responses to be retrieved. See
44830// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44831// for more information.
44832func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
44833	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44834	return c
44835}
44836
44837// Context sets the context to be used in this call's Do method. Any
44838// pending HTTP request will be aborted if the provided context is
44839// canceled.
44840func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
44841	c.ctx_ = ctx
44842	return c
44843}
44844
44845// Header returns an http.Header that can be modified by the caller to
44846// add HTTP headers to the request.
44847func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
44848	if c.header_ == nil {
44849		c.header_ = make(http.Header)
44850	}
44851	return c.header_
44852}
44853
44854func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
44855	reqHeaders := make(http.Header)
44856	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
44857	for k, v := range c.header_ {
44858		reqHeaders[k] = v
44859	}
44860	reqHeaders.Set("User-Agent", c.s.userAgent())
44861	var body io.Reader = nil
44862	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
44863	if err != nil {
44864		return nil, err
44865	}
44866	reqHeaders.Set("Content-Type", "application/json")
44867	c.urlParams_.Set("alt", alt)
44868	c.urlParams_.Set("prettyPrint", "false")
44869	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
44870	urls += "?" + c.urlParams_.Encode()
44871	req, err := http.NewRequest("POST", urls, body)
44872	if err != nil {
44873		return nil, err
44874	}
44875	req.Header = reqHeaders
44876	googleapi.Expand(req.URL, map[string]string{
44877		"project":       c.project,
44878		"backendBucket": c.backendBucket,
44879	})
44880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44881}
44882
44883// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
44884// Exactly one of *Operation or error will be non-nil. Any non-2xx
44885// status code is an error. Response headers are in either
44886// *Operation.ServerResponse.Header or (if a response was returned at
44887// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44888// to check whether the returned error was because
44889// http.StatusNotModified was returned.
44890func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44891	gensupport.SetOptions(c.urlParams_, opts...)
44892	res, err := c.doRequest("json")
44893	if res != nil && res.StatusCode == http.StatusNotModified {
44894		if res.Body != nil {
44895			res.Body.Close()
44896		}
44897		return nil, &googleapi.Error{
44898			Code:   res.StatusCode,
44899			Header: res.Header,
44900		}
44901	}
44902	if err != nil {
44903		return nil, err
44904	}
44905	defer googleapi.CloseBody(res)
44906	if err := googleapi.CheckResponse(res); err != nil {
44907		return nil, err
44908	}
44909	ret := &Operation{
44910		ServerResponse: googleapi.ServerResponse{
44911			Header:         res.Header,
44912			HTTPStatusCode: res.StatusCode,
44913		},
44914	}
44915	target := &ret
44916	if err := gensupport.DecodeResponse(target, res); err != nil {
44917		return nil, err
44918	}
44919	return ret, nil
44920	// {
44921	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
44922	//   "httpMethod": "POST",
44923	//   "id": "compute.backendBuckets.addSignedUrlKey",
44924	//   "parameterOrder": [
44925	//     "project",
44926	//     "backendBucket"
44927	//   ],
44928	//   "parameters": {
44929	//     "backendBucket": {
44930	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
44931	//       "location": "path",
44932	//       "required": true,
44933	//       "type": "string"
44934	//     },
44935	//     "project": {
44936	//       "description": "Project ID for this request.",
44937	//       "location": "path",
44938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44939	//       "required": true,
44940	//       "type": "string"
44941	//     },
44942	//     "requestId": {
44943	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44944	//       "location": "query",
44945	//       "type": "string"
44946	//     }
44947	//   },
44948	//   "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
44949	//   "request": {
44950	//     "$ref": "SignedUrlKey"
44951	//   },
44952	//   "response": {
44953	//     "$ref": "Operation"
44954	//   },
44955	//   "scopes": [
44956	//     "https://www.googleapis.com/auth/cloud-platform",
44957	//     "https://www.googleapis.com/auth/compute"
44958	//   ]
44959	// }
44960
44961}
44962
44963// method id "compute.backendBuckets.delete":
44964
44965type BackendBucketsDeleteCall struct {
44966	s             *Service
44967	project       string
44968	backendBucket string
44969	urlParams_    gensupport.URLParams
44970	ctx_          context.Context
44971	header_       http.Header
44972}
44973
44974// Delete: Deletes the specified BackendBucket resource.
44975func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
44976	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44977	c.project = project
44978	c.backendBucket = backendBucket
44979	return c
44980}
44981
44982// RequestId sets the optional parameter "requestId": An optional
44983// request ID to identify requests. Specify a unique request ID so that
44984// if you must retry your request, the server will know to ignore the
44985// request if it has already been completed.
44986//
44987// For example, consider a situation where you make an initial request
44988// and the request times out. If you make the request again with the
44989// same request ID, the server can check if original operation with the
44990// same request ID was received, and if so, will ignore the second
44991// request. This prevents clients from accidentally creating duplicate
44992// commitments.
44993//
44994// The request ID must be a valid UUID with the exception that zero UUID
44995// is not supported (00000000-0000-0000-0000-000000000000).
44996func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
44997	c.urlParams_.Set("requestId", requestId)
44998	return c
44999}
45000
45001// Fields allows partial responses to be retrieved. See
45002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45003// for more information.
45004func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
45005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45006	return c
45007}
45008
45009// Context sets the context to be used in this call's Do method. Any
45010// pending HTTP request will be aborted if the provided context is
45011// canceled.
45012func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
45013	c.ctx_ = ctx
45014	return c
45015}
45016
45017// Header returns an http.Header that can be modified by the caller to
45018// add HTTP headers to the request.
45019func (c *BackendBucketsDeleteCall) Header() http.Header {
45020	if c.header_ == nil {
45021		c.header_ = make(http.Header)
45022	}
45023	return c.header_
45024}
45025
45026func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
45027	reqHeaders := make(http.Header)
45028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45029	for k, v := range c.header_ {
45030		reqHeaders[k] = v
45031	}
45032	reqHeaders.Set("User-Agent", c.s.userAgent())
45033	var body io.Reader = nil
45034	c.urlParams_.Set("alt", alt)
45035	c.urlParams_.Set("prettyPrint", "false")
45036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
45037	urls += "?" + c.urlParams_.Encode()
45038	req, err := http.NewRequest("DELETE", urls, body)
45039	if err != nil {
45040		return nil, err
45041	}
45042	req.Header = reqHeaders
45043	googleapi.Expand(req.URL, map[string]string{
45044		"project":       c.project,
45045		"backendBucket": c.backendBucket,
45046	})
45047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45048}
45049
45050// Do executes the "compute.backendBuckets.delete" call.
45051// Exactly one of *Operation or error will be non-nil. Any non-2xx
45052// status code is an error. Response headers are in either
45053// *Operation.ServerResponse.Header or (if a response was returned at
45054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45055// to check whether the returned error was because
45056// http.StatusNotModified was returned.
45057func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45058	gensupport.SetOptions(c.urlParams_, opts...)
45059	res, err := c.doRequest("json")
45060	if res != nil && res.StatusCode == http.StatusNotModified {
45061		if res.Body != nil {
45062			res.Body.Close()
45063		}
45064		return nil, &googleapi.Error{
45065			Code:   res.StatusCode,
45066			Header: res.Header,
45067		}
45068	}
45069	if err != nil {
45070		return nil, err
45071	}
45072	defer googleapi.CloseBody(res)
45073	if err := googleapi.CheckResponse(res); err != nil {
45074		return nil, err
45075	}
45076	ret := &Operation{
45077		ServerResponse: googleapi.ServerResponse{
45078			Header:         res.Header,
45079			HTTPStatusCode: res.StatusCode,
45080		},
45081	}
45082	target := &ret
45083	if err := gensupport.DecodeResponse(target, res); err != nil {
45084		return nil, err
45085	}
45086	return ret, nil
45087	// {
45088	//   "description": "Deletes the specified BackendBucket resource.",
45089	//   "httpMethod": "DELETE",
45090	//   "id": "compute.backendBuckets.delete",
45091	//   "parameterOrder": [
45092	//     "project",
45093	//     "backendBucket"
45094	//   ],
45095	//   "parameters": {
45096	//     "backendBucket": {
45097	//       "description": "Name of the BackendBucket resource to delete.",
45098	//       "location": "path",
45099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45100	//       "required": true,
45101	//       "type": "string"
45102	//     },
45103	//     "project": {
45104	//       "description": "Project ID for this request.",
45105	//       "location": "path",
45106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45107	//       "required": true,
45108	//       "type": "string"
45109	//     },
45110	//     "requestId": {
45111	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45112	//       "location": "query",
45113	//       "type": "string"
45114	//     }
45115	//   },
45116	//   "path": "{project}/global/backendBuckets/{backendBucket}",
45117	//   "response": {
45118	//     "$ref": "Operation"
45119	//   },
45120	//   "scopes": [
45121	//     "https://www.googleapis.com/auth/cloud-platform",
45122	//     "https://www.googleapis.com/auth/compute"
45123	//   ]
45124	// }
45125
45126}
45127
45128// method id "compute.backendBuckets.deleteSignedUrlKey":
45129
45130type BackendBucketsDeleteSignedUrlKeyCall struct {
45131	s             *Service
45132	project       string
45133	backendBucket string
45134	urlParams_    gensupport.URLParams
45135	ctx_          context.Context
45136	header_       http.Header
45137}
45138
45139// DeleteSignedUrlKey: Deletes a key for validating requests with signed
45140// URLs for this backend bucket.
45141func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
45142	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45143	c.project = project
45144	c.backendBucket = backendBucket
45145	c.urlParams_.Set("keyName", keyName)
45146	return c
45147}
45148
45149// RequestId sets the optional parameter "requestId": An optional
45150// request ID to identify requests. Specify a unique request ID so that
45151// if you must retry your request, the server will know to ignore the
45152// request if it has already been completed.
45153//
45154// For example, consider a situation where you make an initial request
45155// and the request times out. If you make the request again with the
45156// same request ID, the server can check if original operation with the
45157// same request ID was received, and if so, will ignore the second
45158// request. This prevents clients from accidentally creating duplicate
45159// commitments.
45160//
45161// The request ID must be a valid UUID with the exception that zero UUID
45162// is not supported (00000000-0000-0000-0000-000000000000).
45163func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
45164	c.urlParams_.Set("requestId", requestId)
45165	return c
45166}
45167
45168// Fields allows partial responses to be retrieved. See
45169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45170// for more information.
45171func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
45172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45173	return c
45174}
45175
45176// Context sets the context to be used in this call's Do method. Any
45177// pending HTTP request will be aborted if the provided context is
45178// canceled.
45179func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
45180	c.ctx_ = ctx
45181	return c
45182}
45183
45184// Header returns an http.Header that can be modified by the caller to
45185// add HTTP headers to the request.
45186func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
45187	if c.header_ == nil {
45188		c.header_ = make(http.Header)
45189	}
45190	return c.header_
45191}
45192
45193func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
45194	reqHeaders := make(http.Header)
45195	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45196	for k, v := range c.header_ {
45197		reqHeaders[k] = v
45198	}
45199	reqHeaders.Set("User-Agent", c.s.userAgent())
45200	var body io.Reader = nil
45201	c.urlParams_.Set("alt", alt)
45202	c.urlParams_.Set("prettyPrint", "false")
45203	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
45204	urls += "?" + c.urlParams_.Encode()
45205	req, err := http.NewRequest("POST", urls, body)
45206	if err != nil {
45207		return nil, err
45208	}
45209	req.Header = reqHeaders
45210	googleapi.Expand(req.URL, map[string]string{
45211		"project":       c.project,
45212		"backendBucket": c.backendBucket,
45213	})
45214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45215}
45216
45217// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
45218// Exactly one of *Operation or error will be non-nil. Any non-2xx
45219// status code is an error. Response headers are in either
45220// *Operation.ServerResponse.Header or (if a response was returned at
45221// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45222// to check whether the returned error was because
45223// http.StatusNotModified was returned.
45224func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45225	gensupport.SetOptions(c.urlParams_, opts...)
45226	res, err := c.doRequest("json")
45227	if res != nil && res.StatusCode == http.StatusNotModified {
45228		if res.Body != nil {
45229			res.Body.Close()
45230		}
45231		return nil, &googleapi.Error{
45232			Code:   res.StatusCode,
45233			Header: res.Header,
45234		}
45235	}
45236	if err != nil {
45237		return nil, err
45238	}
45239	defer googleapi.CloseBody(res)
45240	if err := googleapi.CheckResponse(res); err != nil {
45241		return nil, err
45242	}
45243	ret := &Operation{
45244		ServerResponse: googleapi.ServerResponse{
45245			Header:         res.Header,
45246			HTTPStatusCode: res.StatusCode,
45247		},
45248	}
45249	target := &ret
45250	if err := gensupport.DecodeResponse(target, res); err != nil {
45251		return nil, err
45252	}
45253	return ret, nil
45254	// {
45255	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
45256	//   "httpMethod": "POST",
45257	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
45258	//   "parameterOrder": [
45259	//     "project",
45260	//     "backendBucket",
45261	//     "keyName"
45262	//   ],
45263	//   "parameters": {
45264	//     "backendBucket": {
45265	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
45266	//       "location": "path",
45267	//       "required": true,
45268	//       "type": "string"
45269	//     },
45270	//     "keyName": {
45271	//       "description": "The name of the Signed URL Key to delete.",
45272	//       "location": "query",
45273	//       "required": true,
45274	//       "type": "string"
45275	//     },
45276	//     "project": {
45277	//       "description": "Project ID for this request.",
45278	//       "location": "path",
45279	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45280	//       "required": true,
45281	//       "type": "string"
45282	//     },
45283	//     "requestId": {
45284	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45285	//       "location": "query",
45286	//       "type": "string"
45287	//     }
45288	//   },
45289	//   "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
45290	//   "response": {
45291	//     "$ref": "Operation"
45292	//   },
45293	//   "scopes": [
45294	//     "https://www.googleapis.com/auth/cloud-platform",
45295	//     "https://www.googleapis.com/auth/compute"
45296	//   ]
45297	// }
45298
45299}
45300
45301// method id "compute.backendBuckets.get":
45302
45303type BackendBucketsGetCall struct {
45304	s             *Service
45305	project       string
45306	backendBucket string
45307	urlParams_    gensupport.URLParams
45308	ifNoneMatch_  string
45309	ctx_          context.Context
45310	header_       http.Header
45311}
45312
45313// Get: Returns the specified BackendBucket resource. Gets a list of
45314// available backend buckets by making a list() request.
45315func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
45316	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45317	c.project = project
45318	c.backendBucket = backendBucket
45319	return c
45320}
45321
45322// Fields allows partial responses to be retrieved. See
45323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45324// for more information.
45325func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
45326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45327	return c
45328}
45329
45330// IfNoneMatch sets the optional parameter which makes the operation
45331// fail if the object's ETag matches the given value. This is useful for
45332// getting updates only after the object has changed since the last
45333// request. Use googleapi.IsNotModified to check whether the response
45334// error from Do is the result of In-None-Match.
45335func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
45336	c.ifNoneMatch_ = entityTag
45337	return c
45338}
45339
45340// Context sets the context to be used in this call's Do method. Any
45341// pending HTTP request will be aborted if the provided context is
45342// canceled.
45343func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
45344	c.ctx_ = ctx
45345	return c
45346}
45347
45348// Header returns an http.Header that can be modified by the caller to
45349// add HTTP headers to the request.
45350func (c *BackendBucketsGetCall) Header() http.Header {
45351	if c.header_ == nil {
45352		c.header_ = make(http.Header)
45353	}
45354	return c.header_
45355}
45356
45357func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
45358	reqHeaders := make(http.Header)
45359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45360	for k, v := range c.header_ {
45361		reqHeaders[k] = v
45362	}
45363	reqHeaders.Set("User-Agent", c.s.userAgent())
45364	if c.ifNoneMatch_ != "" {
45365		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45366	}
45367	var body io.Reader = nil
45368	c.urlParams_.Set("alt", alt)
45369	c.urlParams_.Set("prettyPrint", "false")
45370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
45371	urls += "?" + c.urlParams_.Encode()
45372	req, err := http.NewRequest("GET", urls, body)
45373	if err != nil {
45374		return nil, err
45375	}
45376	req.Header = reqHeaders
45377	googleapi.Expand(req.URL, map[string]string{
45378		"project":       c.project,
45379		"backendBucket": c.backendBucket,
45380	})
45381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45382}
45383
45384// Do executes the "compute.backendBuckets.get" call.
45385// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
45386// status code is an error. Response headers are in either
45387// *BackendBucket.ServerResponse.Header or (if a response was returned
45388// at all) in error.(*googleapi.Error).Header. Use
45389// googleapi.IsNotModified to check whether the returned error was
45390// because http.StatusNotModified was returned.
45391func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
45392	gensupport.SetOptions(c.urlParams_, opts...)
45393	res, err := c.doRequest("json")
45394	if res != nil && res.StatusCode == http.StatusNotModified {
45395		if res.Body != nil {
45396			res.Body.Close()
45397		}
45398		return nil, &googleapi.Error{
45399			Code:   res.StatusCode,
45400			Header: res.Header,
45401		}
45402	}
45403	if err != nil {
45404		return nil, err
45405	}
45406	defer googleapi.CloseBody(res)
45407	if err := googleapi.CheckResponse(res); err != nil {
45408		return nil, err
45409	}
45410	ret := &BackendBucket{
45411		ServerResponse: googleapi.ServerResponse{
45412			Header:         res.Header,
45413			HTTPStatusCode: res.StatusCode,
45414		},
45415	}
45416	target := &ret
45417	if err := gensupport.DecodeResponse(target, res); err != nil {
45418		return nil, err
45419	}
45420	return ret, nil
45421	// {
45422	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
45423	//   "httpMethod": "GET",
45424	//   "id": "compute.backendBuckets.get",
45425	//   "parameterOrder": [
45426	//     "project",
45427	//     "backendBucket"
45428	//   ],
45429	//   "parameters": {
45430	//     "backendBucket": {
45431	//       "description": "Name of the BackendBucket resource to return.",
45432	//       "location": "path",
45433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45434	//       "required": true,
45435	//       "type": "string"
45436	//     },
45437	//     "project": {
45438	//       "description": "Project ID for this request.",
45439	//       "location": "path",
45440	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45441	//       "required": true,
45442	//       "type": "string"
45443	//     }
45444	//   },
45445	//   "path": "{project}/global/backendBuckets/{backendBucket}",
45446	//   "response": {
45447	//     "$ref": "BackendBucket"
45448	//   },
45449	//   "scopes": [
45450	//     "https://www.googleapis.com/auth/cloud-platform",
45451	//     "https://www.googleapis.com/auth/compute",
45452	//     "https://www.googleapis.com/auth/compute.readonly"
45453	//   ]
45454	// }
45455
45456}
45457
45458// method id "compute.backendBuckets.insert":
45459
45460type BackendBucketsInsertCall struct {
45461	s             *Service
45462	project       string
45463	backendbucket *BackendBucket
45464	urlParams_    gensupport.URLParams
45465	ctx_          context.Context
45466	header_       http.Header
45467}
45468
45469// Insert: Creates a BackendBucket resource in the specified project
45470// using the data included in the request.
45471func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
45472	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45473	c.project = project
45474	c.backendbucket = backendbucket
45475	return c
45476}
45477
45478// RequestId sets the optional parameter "requestId": An optional
45479// request ID to identify requests. Specify a unique request ID so that
45480// if you must retry your request, the server will know to ignore the
45481// request if it has already been completed.
45482//
45483// For example, consider a situation where you make an initial request
45484// and the request times out. If you make the request again with the
45485// same request ID, the server can check if original operation with the
45486// same request ID was received, and if so, will ignore the second
45487// request. This prevents clients from accidentally creating duplicate
45488// commitments.
45489//
45490// The request ID must be a valid UUID with the exception that zero UUID
45491// is not supported (00000000-0000-0000-0000-000000000000).
45492func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
45493	c.urlParams_.Set("requestId", requestId)
45494	return c
45495}
45496
45497// Fields allows partial responses to be retrieved. See
45498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45499// for more information.
45500func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
45501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45502	return c
45503}
45504
45505// Context sets the context to be used in this call's Do method. Any
45506// pending HTTP request will be aborted if the provided context is
45507// canceled.
45508func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
45509	c.ctx_ = ctx
45510	return c
45511}
45512
45513// Header returns an http.Header that can be modified by the caller to
45514// add HTTP headers to the request.
45515func (c *BackendBucketsInsertCall) Header() http.Header {
45516	if c.header_ == nil {
45517		c.header_ = make(http.Header)
45518	}
45519	return c.header_
45520}
45521
45522func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
45523	reqHeaders := make(http.Header)
45524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45525	for k, v := range c.header_ {
45526		reqHeaders[k] = v
45527	}
45528	reqHeaders.Set("User-Agent", c.s.userAgent())
45529	var body io.Reader = nil
45530	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
45531	if err != nil {
45532		return nil, err
45533	}
45534	reqHeaders.Set("Content-Type", "application/json")
45535	c.urlParams_.Set("alt", alt)
45536	c.urlParams_.Set("prettyPrint", "false")
45537	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
45538	urls += "?" + c.urlParams_.Encode()
45539	req, err := http.NewRequest("POST", urls, body)
45540	if err != nil {
45541		return nil, err
45542	}
45543	req.Header = reqHeaders
45544	googleapi.Expand(req.URL, map[string]string{
45545		"project": c.project,
45546	})
45547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45548}
45549
45550// Do executes the "compute.backendBuckets.insert" call.
45551// Exactly one of *Operation or error will be non-nil. Any non-2xx
45552// status code is an error. Response headers are in either
45553// *Operation.ServerResponse.Header or (if a response was returned at
45554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45555// to check whether the returned error was because
45556// http.StatusNotModified was returned.
45557func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45558	gensupport.SetOptions(c.urlParams_, opts...)
45559	res, err := c.doRequest("json")
45560	if res != nil && res.StatusCode == http.StatusNotModified {
45561		if res.Body != nil {
45562			res.Body.Close()
45563		}
45564		return nil, &googleapi.Error{
45565			Code:   res.StatusCode,
45566			Header: res.Header,
45567		}
45568	}
45569	if err != nil {
45570		return nil, err
45571	}
45572	defer googleapi.CloseBody(res)
45573	if err := googleapi.CheckResponse(res); err != nil {
45574		return nil, err
45575	}
45576	ret := &Operation{
45577		ServerResponse: googleapi.ServerResponse{
45578			Header:         res.Header,
45579			HTTPStatusCode: res.StatusCode,
45580		},
45581	}
45582	target := &ret
45583	if err := gensupport.DecodeResponse(target, res); err != nil {
45584		return nil, err
45585	}
45586	return ret, nil
45587	// {
45588	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
45589	//   "httpMethod": "POST",
45590	//   "id": "compute.backendBuckets.insert",
45591	//   "parameterOrder": [
45592	//     "project"
45593	//   ],
45594	//   "parameters": {
45595	//     "project": {
45596	//       "description": "Project ID for this request.",
45597	//       "location": "path",
45598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45599	//       "required": true,
45600	//       "type": "string"
45601	//     },
45602	//     "requestId": {
45603	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45604	//       "location": "query",
45605	//       "type": "string"
45606	//     }
45607	//   },
45608	//   "path": "{project}/global/backendBuckets",
45609	//   "request": {
45610	//     "$ref": "BackendBucket"
45611	//   },
45612	//   "response": {
45613	//     "$ref": "Operation"
45614	//   },
45615	//   "scopes": [
45616	//     "https://www.googleapis.com/auth/cloud-platform",
45617	//     "https://www.googleapis.com/auth/compute"
45618	//   ]
45619	// }
45620
45621}
45622
45623// method id "compute.backendBuckets.list":
45624
45625type BackendBucketsListCall struct {
45626	s            *Service
45627	project      string
45628	urlParams_   gensupport.URLParams
45629	ifNoneMatch_ string
45630	ctx_         context.Context
45631	header_      http.Header
45632}
45633
45634// List: Retrieves the list of BackendBucket resources available to the
45635// specified project.
45636func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
45637	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45638	c.project = project
45639	return c
45640}
45641
45642// Filter sets the optional parameter "filter": A filter expression that
45643// filters resources listed in the response. The expression must specify
45644// the field name, a comparison operator, and the value that you want to
45645// use for filtering. The value must be a string, a number, or a
45646// boolean. The comparison operator must be either `=`, `!=`, `>`, or
45647// `<`.
45648//
45649// For example, if you are filtering Compute Engine instances, you can
45650// exclude instances named `example-instance` by specifying `name !=
45651// example-instance`.
45652//
45653// You can also filter nested fields. For example, you could specify
45654// `scheduling.automaticRestart = false` to include instances only if
45655// they are not scheduled for automatic restarts. You can use filtering
45656// on nested fields to filter based on resource labels.
45657//
45658// To filter on multiple expressions, provide each separate expression
45659// within parentheses. For example: ``` (scheduling.automaticRestart =
45660// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
45661// is an `AND` expression. However, you can include `AND` and `OR`
45662// expressions explicitly. For example: ``` (cpuPlatform = "Intel
45663// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
45664// (scheduling.automaticRestart = true) ```
45665func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
45666	c.urlParams_.Set("filter", filter)
45667	return c
45668}
45669
45670// MaxResults sets the optional parameter "maxResults": The maximum
45671// number of results per page that should be returned. If the number of
45672// available results is larger than `maxResults`, Compute Engine returns
45673// a `nextPageToken` that can be used to get the next page of results in
45674// subsequent list requests. Acceptable values are `0` to `500`,
45675// inclusive. (Default: `500`)
45676func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
45677	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45678	return c
45679}
45680
45681// OrderBy sets the optional parameter "orderBy": Sorts list results by
45682// a certain order. By default, results are returned in alphanumerical
45683// order based on the resource name.
45684//
45685// You can also sort results in descending order based on the creation
45686// timestamp using `orderBy="creationTimestamp desc". This sorts
45687// results based on the `creationTimestamp` field in reverse
45688// chronological order (newest result first). Use this to sort resources
45689// like operations so that the newest operation is returned
45690// first.
45691//
45692// Currently, only sorting by `name` or `creationTimestamp desc` is
45693// supported.
45694func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
45695	c.urlParams_.Set("orderBy", orderBy)
45696	return c
45697}
45698
45699// PageToken sets the optional parameter "pageToken": Specifies a page
45700// token to use. Set `pageToken` to the `nextPageToken` returned by a
45701// previous list request to get the next page of results.
45702func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
45703	c.urlParams_.Set("pageToken", pageToken)
45704	return c
45705}
45706
45707// Fields allows partial responses to be retrieved. See
45708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45709// for more information.
45710func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
45711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45712	return c
45713}
45714
45715// IfNoneMatch sets the optional parameter which makes the operation
45716// fail if the object's ETag matches the given value. This is useful for
45717// getting updates only after the object has changed since the last
45718// request. Use googleapi.IsNotModified to check whether the response
45719// error from Do is the result of In-None-Match.
45720func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
45721	c.ifNoneMatch_ = entityTag
45722	return c
45723}
45724
45725// Context sets the context to be used in this call's Do method. Any
45726// pending HTTP request will be aborted if the provided context is
45727// canceled.
45728func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
45729	c.ctx_ = ctx
45730	return c
45731}
45732
45733// Header returns an http.Header that can be modified by the caller to
45734// add HTTP headers to the request.
45735func (c *BackendBucketsListCall) Header() http.Header {
45736	if c.header_ == nil {
45737		c.header_ = make(http.Header)
45738	}
45739	return c.header_
45740}
45741
45742func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
45743	reqHeaders := make(http.Header)
45744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45745	for k, v := range c.header_ {
45746		reqHeaders[k] = v
45747	}
45748	reqHeaders.Set("User-Agent", c.s.userAgent())
45749	if c.ifNoneMatch_ != "" {
45750		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45751	}
45752	var body io.Reader = nil
45753	c.urlParams_.Set("alt", alt)
45754	c.urlParams_.Set("prettyPrint", "false")
45755	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
45756	urls += "?" + c.urlParams_.Encode()
45757	req, err := http.NewRequest("GET", urls, body)
45758	if err != nil {
45759		return nil, err
45760	}
45761	req.Header = reqHeaders
45762	googleapi.Expand(req.URL, map[string]string{
45763		"project": c.project,
45764	})
45765	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45766}
45767
45768// Do executes the "compute.backendBuckets.list" call.
45769// Exactly one of *BackendBucketList or error will be non-nil. Any
45770// non-2xx status code is an error. Response headers are in either
45771// *BackendBucketList.ServerResponse.Header or (if a response was
45772// returned at all) in error.(*googleapi.Error).Header. Use
45773// googleapi.IsNotModified to check whether the returned error was
45774// because http.StatusNotModified was returned.
45775func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
45776	gensupport.SetOptions(c.urlParams_, opts...)
45777	res, err := c.doRequest("json")
45778	if res != nil && res.StatusCode == http.StatusNotModified {
45779		if res.Body != nil {
45780			res.Body.Close()
45781		}
45782		return nil, &googleapi.Error{
45783			Code:   res.StatusCode,
45784			Header: res.Header,
45785		}
45786	}
45787	if err != nil {
45788		return nil, err
45789	}
45790	defer googleapi.CloseBody(res)
45791	if err := googleapi.CheckResponse(res); err != nil {
45792		return nil, err
45793	}
45794	ret := &BackendBucketList{
45795		ServerResponse: googleapi.ServerResponse{
45796			Header:         res.Header,
45797			HTTPStatusCode: res.StatusCode,
45798		},
45799	}
45800	target := &ret
45801	if err := gensupport.DecodeResponse(target, res); err != nil {
45802		return nil, err
45803	}
45804	return ret, nil
45805	// {
45806	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
45807	//   "httpMethod": "GET",
45808	//   "id": "compute.backendBuckets.list",
45809	//   "parameterOrder": [
45810	//     "project"
45811	//   ],
45812	//   "parameters": {
45813	//     "filter": {
45814	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
45815	//       "location": "query",
45816	//       "type": "string"
45817	//     },
45818	//     "maxResults": {
45819	//       "default": "500",
45820	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
45821	//       "format": "uint32",
45822	//       "location": "query",
45823	//       "minimum": "0",
45824	//       "type": "integer"
45825	//     },
45826	//     "orderBy": {
45827	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
45828	//       "location": "query",
45829	//       "type": "string"
45830	//     },
45831	//     "pageToken": {
45832	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
45833	//       "location": "query",
45834	//       "type": "string"
45835	//     },
45836	//     "project": {
45837	//       "description": "Project ID for this request.",
45838	//       "location": "path",
45839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45840	//       "required": true,
45841	//       "type": "string"
45842	//     }
45843	//   },
45844	//   "path": "{project}/global/backendBuckets",
45845	//   "response": {
45846	//     "$ref": "BackendBucketList"
45847	//   },
45848	//   "scopes": [
45849	//     "https://www.googleapis.com/auth/cloud-platform",
45850	//     "https://www.googleapis.com/auth/compute",
45851	//     "https://www.googleapis.com/auth/compute.readonly"
45852	//   ]
45853	// }
45854
45855}
45856
45857// Pages invokes f for each page of results.
45858// A non-nil error returned from f will halt the iteration.
45859// The provided context supersedes any context provided to the Context method.
45860func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
45861	c.ctx_ = ctx
45862	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45863	for {
45864		x, err := c.Do()
45865		if err != nil {
45866			return err
45867		}
45868		if err := f(x); err != nil {
45869			return err
45870		}
45871		if x.NextPageToken == "" {
45872			return nil
45873		}
45874		c.PageToken(x.NextPageToken)
45875	}
45876}
45877
45878// method id "compute.backendBuckets.patch":
45879
45880type BackendBucketsPatchCall struct {
45881	s             *Service
45882	project       string
45883	backendBucket string
45884	backendbucket *BackendBucket
45885	urlParams_    gensupport.URLParams
45886	ctx_          context.Context
45887	header_       http.Header
45888}
45889
45890// Patch: Updates the specified BackendBucket resource with the data
45891// included in the request. This method supports PATCH semantics and
45892// uses the JSON merge patch format and processing rules.
45893func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
45894	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45895	c.project = project
45896	c.backendBucket = backendBucket
45897	c.backendbucket = backendbucket
45898	return c
45899}
45900
45901// RequestId sets the optional parameter "requestId": An optional
45902// request ID to identify requests. Specify a unique request ID so that
45903// if you must retry your request, the server will know to ignore the
45904// request if it has already been completed.
45905//
45906// For example, consider a situation where you make an initial request
45907// and the request times out. If you make the request again with the
45908// same request ID, the server can check if original operation with the
45909// same request ID was received, and if so, will ignore the second
45910// request. This prevents clients from accidentally creating duplicate
45911// commitments.
45912//
45913// The request ID must be a valid UUID with the exception that zero UUID
45914// is not supported (00000000-0000-0000-0000-000000000000).
45915func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
45916	c.urlParams_.Set("requestId", requestId)
45917	return c
45918}
45919
45920// Fields allows partial responses to be retrieved. See
45921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45922// for more information.
45923func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
45924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45925	return c
45926}
45927
45928// Context sets the context to be used in this call's Do method. Any
45929// pending HTTP request will be aborted if the provided context is
45930// canceled.
45931func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
45932	c.ctx_ = ctx
45933	return c
45934}
45935
45936// Header returns an http.Header that can be modified by the caller to
45937// add HTTP headers to the request.
45938func (c *BackendBucketsPatchCall) Header() http.Header {
45939	if c.header_ == nil {
45940		c.header_ = make(http.Header)
45941	}
45942	return c.header_
45943}
45944
45945func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
45946	reqHeaders := make(http.Header)
45947	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45948	for k, v := range c.header_ {
45949		reqHeaders[k] = v
45950	}
45951	reqHeaders.Set("User-Agent", c.s.userAgent())
45952	var body io.Reader = nil
45953	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
45954	if err != nil {
45955		return nil, err
45956	}
45957	reqHeaders.Set("Content-Type", "application/json")
45958	c.urlParams_.Set("alt", alt)
45959	c.urlParams_.Set("prettyPrint", "false")
45960	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
45961	urls += "?" + c.urlParams_.Encode()
45962	req, err := http.NewRequest("PATCH", urls, body)
45963	if err != nil {
45964		return nil, err
45965	}
45966	req.Header = reqHeaders
45967	googleapi.Expand(req.URL, map[string]string{
45968		"project":       c.project,
45969		"backendBucket": c.backendBucket,
45970	})
45971	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45972}
45973
45974// Do executes the "compute.backendBuckets.patch" call.
45975// Exactly one of *Operation or error will be non-nil. Any non-2xx
45976// status code is an error. Response headers are in either
45977// *Operation.ServerResponse.Header or (if a response was returned at
45978// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45979// to check whether the returned error was because
45980// http.StatusNotModified was returned.
45981func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45982	gensupport.SetOptions(c.urlParams_, opts...)
45983	res, err := c.doRequest("json")
45984	if res != nil && res.StatusCode == http.StatusNotModified {
45985		if res.Body != nil {
45986			res.Body.Close()
45987		}
45988		return nil, &googleapi.Error{
45989			Code:   res.StatusCode,
45990			Header: res.Header,
45991		}
45992	}
45993	if err != nil {
45994		return nil, err
45995	}
45996	defer googleapi.CloseBody(res)
45997	if err := googleapi.CheckResponse(res); err != nil {
45998		return nil, err
45999	}
46000	ret := &Operation{
46001		ServerResponse: googleapi.ServerResponse{
46002			Header:         res.Header,
46003			HTTPStatusCode: res.StatusCode,
46004		},
46005	}
46006	target := &ret
46007	if err := gensupport.DecodeResponse(target, res); err != nil {
46008		return nil, err
46009	}
46010	return ret, nil
46011	// {
46012	//   "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.",
46013	//   "httpMethod": "PATCH",
46014	//   "id": "compute.backendBuckets.patch",
46015	//   "parameterOrder": [
46016	//     "project",
46017	//     "backendBucket"
46018	//   ],
46019	//   "parameters": {
46020	//     "backendBucket": {
46021	//       "description": "Name of the BackendBucket resource to patch.",
46022	//       "location": "path",
46023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46024	//       "required": true,
46025	//       "type": "string"
46026	//     },
46027	//     "project": {
46028	//       "description": "Project ID for this request.",
46029	//       "location": "path",
46030	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46031	//       "required": true,
46032	//       "type": "string"
46033	//     },
46034	//     "requestId": {
46035	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46036	//       "location": "query",
46037	//       "type": "string"
46038	//     }
46039	//   },
46040	//   "path": "{project}/global/backendBuckets/{backendBucket}",
46041	//   "request": {
46042	//     "$ref": "BackendBucket"
46043	//   },
46044	//   "response": {
46045	//     "$ref": "Operation"
46046	//   },
46047	//   "scopes": [
46048	//     "https://www.googleapis.com/auth/cloud-platform",
46049	//     "https://www.googleapis.com/auth/compute"
46050	//   ]
46051	// }
46052
46053}
46054
46055// method id "compute.backendBuckets.update":
46056
46057type BackendBucketsUpdateCall struct {
46058	s             *Service
46059	project       string
46060	backendBucket string
46061	backendbucket *BackendBucket
46062	urlParams_    gensupport.URLParams
46063	ctx_          context.Context
46064	header_       http.Header
46065}
46066
46067// Update: Updates the specified BackendBucket resource with the data
46068// included in the request.
46069func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
46070	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46071	c.project = project
46072	c.backendBucket = backendBucket
46073	c.backendbucket = backendbucket
46074	return c
46075}
46076
46077// RequestId sets the optional parameter "requestId": An optional
46078// request ID to identify requests. Specify a unique request ID so that
46079// if you must retry your request, the server will know to ignore the
46080// request if it has already been completed.
46081//
46082// For example, consider a situation where you make an initial request
46083// and the request times out. If you make the request again with the
46084// same request ID, the server can check if original operation with the
46085// same request ID was received, and if so, will ignore the second
46086// request. This prevents clients from accidentally creating duplicate
46087// commitments.
46088//
46089// The request ID must be a valid UUID with the exception that zero UUID
46090// is not supported (00000000-0000-0000-0000-000000000000).
46091func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
46092	c.urlParams_.Set("requestId", requestId)
46093	return c
46094}
46095
46096// Fields allows partial responses to be retrieved. See
46097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46098// for more information.
46099func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
46100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46101	return c
46102}
46103
46104// Context sets the context to be used in this call's Do method. Any
46105// pending HTTP request will be aborted if the provided context is
46106// canceled.
46107func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
46108	c.ctx_ = ctx
46109	return c
46110}
46111
46112// Header returns an http.Header that can be modified by the caller to
46113// add HTTP headers to the request.
46114func (c *BackendBucketsUpdateCall) Header() http.Header {
46115	if c.header_ == nil {
46116		c.header_ = make(http.Header)
46117	}
46118	return c.header_
46119}
46120
46121func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
46122	reqHeaders := make(http.Header)
46123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46124	for k, v := range c.header_ {
46125		reqHeaders[k] = v
46126	}
46127	reqHeaders.Set("User-Agent", c.s.userAgent())
46128	var body io.Reader = nil
46129	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
46130	if err != nil {
46131		return nil, err
46132	}
46133	reqHeaders.Set("Content-Type", "application/json")
46134	c.urlParams_.Set("alt", alt)
46135	c.urlParams_.Set("prettyPrint", "false")
46136	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
46137	urls += "?" + c.urlParams_.Encode()
46138	req, err := http.NewRequest("PUT", urls, body)
46139	if err != nil {
46140		return nil, err
46141	}
46142	req.Header = reqHeaders
46143	googleapi.Expand(req.URL, map[string]string{
46144		"project":       c.project,
46145		"backendBucket": c.backendBucket,
46146	})
46147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46148}
46149
46150// Do executes the "compute.backendBuckets.update" call.
46151// Exactly one of *Operation or error will be non-nil. Any non-2xx
46152// status code is an error. Response headers are in either
46153// *Operation.ServerResponse.Header or (if a response was returned at
46154// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46155// to check whether the returned error was because
46156// http.StatusNotModified was returned.
46157func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46158	gensupport.SetOptions(c.urlParams_, opts...)
46159	res, err := c.doRequest("json")
46160	if res != nil && res.StatusCode == http.StatusNotModified {
46161		if res.Body != nil {
46162			res.Body.Close()
46163		}
46164		return nil, &googleapi.Error{
46165			Code:   res.StatusCode,
46166			Header: res.Header,
46167		}
46168	}
46169	if err != nil {
46170		return nil, err
46171	}
46172	defer googleapi.CloseBody(res)
46173	if err := googleapi.CheckResponse(res); err != nil {
46174		return nil, err
46175	}
46176	ret := &Operation{
46177		ServerResponse: googleapi.ServerResponse{
46178			Header:         res.Header,
46179			HTTPStatusCode: res.StatusCode,
46180		},
46181	}
46182	target := &ret
46183	if err := gensupport.DecodeResponse(target, res); err != nil {
46184		return nil, err
46185	}
46186	return ret, nil
46187	// {
46188	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
46189	//   "httpMethod": "PUT",
46190	//   "id": "compute.backendBuckets.update",
46191	//   "parameterOrder": [
46192	//     "project",
46193	//     "backendBucket"
46194	//   ],
46195	//   "parameters": {
46196	//     "backendBucket": {
46197	//       "description": "Name of the BackendBucket resource to update.",
46198	//       "location": "path",
46199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46200	//       "required": true,
46201	//       "type": "string"
46202	//     },
46203	//     "project": {
46204	//       "description": "Project ID for this request.",
46205	//       "location": "path",
46206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46207	//       "required": true,
46208	//       "type": "string"
46209	//     },
46210	//     "requestId": {
46211	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46212	//       "location": "query",
46213	//       "type": "string"
46214	//     }
46215	//   },
46216	//   "path": "{project}/global/backendBuckets/{backendBucket}",
46217	//   "request": {
46218	//     "$ref": "BackendBucket"
46219	//   },
46220	//   "response": {
46221	//     "$ref": "Operation"
46222	//   },
46223	//   "scopes": [
46224	//     "https://www.googleapis.com/auth/cloud-platform",
46225	//     "https://www.googleapis.com/auth/compute"
46226	//   ]
46227	// }
46228
46229}
46230
46231// method id "compute.backendServices.addSignedUrlKey":
46232
46233type BackendServicesAddSignedUrlKeyCall struct {
46234	s              *Service
46235	project        string
46236	backendService string
46237	signedurlkey   *SignedUrlKey
46238	urlParams_     gensupport.URLParams
46239	ctx_           context.Context
46240	header_        http.Header
46241}
46242
46243// AddSignedUrlKey: Adds a key for validating requests with signed URLs
46244// for this backend service.
46245func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
46246	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46247	c.project = project
46248	c.backendService = backendService
46249	c.signedurlkey = signedurlkey
46250	return c
46251}
46252
46253// RequestId sets the optional parameter "requestId": An optional
46254// request ID to identify requests. Specify a unique request ID so that
46255// if you must retry your request, the server will know to ignore the
46256// request if it has already been completed.
46257//
46258// For example, consider a situation where you make an initial request
46259// and the request times out. If you make the request again with the
46260// same request ID, the server can check if original operation with the
46261// same request ID was received, and if so, will ignore the second
46262// request. This prevents clients from accidentally creating duplicate
46263// commitments.
46264//
46265// The request ID must be a valid UUID with the exception that zero UUID
46266// is not supported (00000000-0000-0000-0000-000000000000).
46267func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
46268	c.urlParams_.Set("requestId", requestId)
46269	return c
46270}
46271
46272// Fields allows partial responses to be retrieved. See
46273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46274// for more information.
46275func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
46276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46277	return c
46278}
46279
46280// Context sets the context to be used in this call's Do method. Any
46281// pending HTTP request will be aborted if the provided context is
46282// canceled.
46283func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
46284	c.ctx_ = ctx
46285	return c
46286}
46287
46288// Header returns an http.Header that can be modified by the caller to
46289// add HTTP headers to the request.
46290func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
46291	if c.header_ == nil {
46292		c.header_ = make(http.Header)
46293	}
46294	return c.header_
46295}
46296
46297func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
46298	reqHeaders := make(http.Header)
46299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46300	for k, v := range c.header_ {
46301		reqHeaders[k] = v
46302	}
46303	reqHeaders.Set("User-Agent", c.s.userAgent())
46304	var body io.Reader = nil
46305	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
46306	if err != nil {
46307		return nil, err
46308	}
46309	reqHeaders.Set("Content-Type", "application/json")
46310	c.urlParams_.Set("alt", alt)
46311	c.urlParams_.Set("prettyPrint", "false")
46312	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
46313	urls += "?" + c.urlParams_.Encode()
46314	req, err := http.NewRequest("POST", urls, body)
46315	if err != nil {
46316		return nil, err
46317	}
46318	req.Header = reqHeaders
46319	googleapi.Expand(req.URL, map[string]string{
46320		"project":        c.project,
46321		"backendService": c.backendService,
46322	})
46323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46324}
46325
46326// Do executes the "compute.backendServices.addSignedUrlKey" call.
46327// Exactly one of *Operation or error will be non-nil. Any non-2xx
46328// status code is an error. Response headers are in either
46329// *Operation.ServerResponse.Header or (if a response was returned at
46330// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46331// to check whether the returned error was because
46332// http.StatusNotModified was returned.
46333func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46334	gensupport.SetOptions(c.urlParams_, opts...)
46335	res, err := c.doRequest("json")
46336	if res != nil && res.StatusCode == http.StatusNotModified {
46337		if res.Body != nil {
46338			res.Body.Close()
46339		}
46340		return nil, &googleapi.Error{
46341			Code:   res.StatusCode,
46342			Header: res.Header,
46343		}
46344	}
46345	if err != nil {
46346		return nil, err
46347	}
46348	defer googleapi.CloseBody(res)
46349	if err := googleapi.CheckResponse(res); err != nil {
46350		return nil, err
46351	}
46352	ret := &Operation{
46353		ServerResponse: googleapi.ServerResponse{
46354			Header:         res.Header,
46355			HTTPStatusCode: res.StatusCode,
46356		},
46357	}
46358	target := &ret
46359	if err := gensupport.DecodeResponse(target, res); err != nil {
46360		return nil, err
46361	}
46362	return ret, nil
46363	// {
46364	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
46365	//   "httpMethod": "POST",
46366	//   "id": "compute.backendServices.addSignedUrlKey",
46367	//   "parameterOrder": [
46368	//     "project",
46369	//     "backendService"
46370	//   ],
46371	//   "parameters": {
46372	//     "backendService": {
46373	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
46374	//       "location": "path",
46375	//       "required": true,
46376	//       "type": "string"
46377	//     },
46378	//     "project": {
46379	//       "description": "Project ID for this request.",
46380	//       "location": "path",
46381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46382	//       "required": true,
46383	//       "type": "string"
46384	//     },
46385	//     "requestId": {
46386	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46387	//       "location": "query",
46388	//       "type": "string"
46389	//     }
46390	//   },
46391	//   "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
46392	//   "request": {
46393	//     "$ref": "SignedUrlKey"
46394	//   },
46395	//   "response": {
46396	//     "$ref": "Operation"
46397	//   },
46398	//   "scopes": [
46399	//     "https://www.googleapis.com/auth/cloud-platform",
46400	//     "https://www.googleapis.com/auth/compute"
46401	//   ]
46402	// }
46403
46404}
46405
46406// method id "compute.backendServices.aggregatedList":
46407
46408type BackendServicesAggregatedListCall struct {
46409	s            *Service
46410	project      string
46411	urlParams_   gensupport.URLParams
46412	ifNoneMatch_ string
46413	ctx_         context.Context
46414	header_      http.Header
46415}
46416
46417// AggregatedList: Retrieves the list of all BackendService resources,
46418// regional and global, available to the specified project.
46419func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
46420	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46421	c.project = project
46422	return c
46423}
46424
46425// Filter sets the optional parameter "filter": A filter expression that
46426// filters resources listed in the response. The expression must specify
46427// the field name, a comparison operator, and the value that you want to
46428// use for filtering. The value must be a string, a number, or a
46429// boolean. The comparison operator must be either `=`, `!=`, `>`, or
46430// `<`.
46431//
46432// For example, if you are filtering Compute Engine instances, you can
46433// exclude instances named `example-instance` by specifying `name !=
46434// example-instance`.
46435//
46436// You can also filter nested fields. For example, you could specify
46437// `scheduling.automaticRestart = false` to include instances only if
46438// they are not scheduled for automatic restarts. You can use filtering
46439// on nested fields to filter based on resource labels.
46440//
46441// To filter on multiple expressions, provide each separate expression
46442// within parentheses. For example: ``` (scheduling.automaticRestart =
46443// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
46444// is an `AND` expression. However, you can include `AND` and `OR`
46445// expressions explicitly. For example: ``` (cpuPlatform = "Intel
46446// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
46447// (scheduling.automaticRestart = true) ```
46448func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
46449	c.urlParams_.Set("filter", filter)
46450	return c
46451}
46452
46453// IncludeAllScopes sets the optional parameter "includeAllScopes":
46454// Indicates whether every visible scope for each scope type (zone,
46455// region, global) should be included in the response. For new resource
46456// types added after this field, the flag has no effect as new resource
46457// types will always include every visible scope for each scope type in
46458// response. For resource types which predate this field, if this flag
46459// is omitted or false, only scopes of the scope types where the
46460// resource type is expected to be found will be included.
46461func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
46462	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
46463	return c
46464}
46465
46466// MaxResults sets the optional parameter "maxResults": The maximum
46467// number of results per page that should be returned. If the number of
46468// available results is larger than `maxResults`, Compute Engine returns
46469// a `nextPageToken` that can be used to get the next page of results in
46470// subsequent list requests. Acceptable values are `0` to `500`,
46471// inclusive. (Default: `500`)
46472func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
46473	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
46474	return c
46475}
46476
46477// OrderBy sets the optional parameter "orderBy": Sorts list results by
46478// a certain order. By default, results are returned in alphanumerical
46479// order based on the resource name.
46480//
46481// You can also sort results in descending order based on the creation
46482// timestamp using `orderBy="creationTimestamp desc". This sorts
46483// results based on the `creationTimestamp` field in reverse
46484// chronological order (newest result first). Use this to sort resources
46485// like operations so that the newest operation is returned
46486// first.
46487//
46488// Currently, only sorting by `name` or `creationTimestamp desc` is
46489// supported.
46490func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
46491	c.urlParams_.Set("orderBy", orderBy)
46492	return c
46493}
46494
46495// PageToken sets the optional parameter "pageToken": Specifies a page
46496// token to use. Set `pageToken` to the `nextPageToken` returned by a
46497// previous list request to get the next page of results.
46498func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
46499	c.urlParams_.Set("pageToken", pageToken)
46500	return c
46501}
46502
46503// Fields allows partial responses to be retrieved. See
46504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46505// for more information.
46506func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
46507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46508	return c
46509}
46510
46511// IfNoneMatch sets the optional parameter which makes the operation
46512// fail if the object's ETag matches the given value. This is useful for
46513// getting updates only after the object has changed since the last
46514// request. Use googleapi.IsNotModified to check whether the response
46515// error from Do is the result of In-None-Match.
46516func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
46517	c.ifNoneMatch_ = entityTag
46518	return c
46519}
46520
46521// Context sets the context to be used in this call's Do method. Any
46522// pending HTTP request will be aborted if the provided context is
46523// canceled.
46524func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
46525	c.ctx_ = ctx
46526	return c
46527}
46528
46529// Header returns an http.Header that can be modified by the caller to
46530// add HTTP headers to the request.
46531func (c *BackendServicesAggregatedListCall) Header() http.Header {
46532	if c.header_ == nil {
46533		c.header_ = make(http.Header)
46534	}
46535	return c.header_
46536}
46537
46538func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
46539	reqHeaders := make(http.Header)
46540	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46541	for k, v := range c.header_ {
46542		reqHeaders[k] = v
46543	}
46544	reqHeaders.Set("User-Agent", c.s.userAgent())
46545	if c.ifNoneMatch_ != "" {
46546		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46547	}
46548	var body io.Reader = nil
46549	c.urlParams_.Set("alt", alt)
46550	c.urlParams_.Set("prettyPrint", "false")
46551	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
46552	urls += "?" + c.urlParams_.Encode()
46553	req, err := http.NewRequest("GET", urls, body)
46554	if err != nil {
46555		return nil, err
46556	}
46557	req.Header = reqHeaders
46558	googleapi.Expand(req.URL, map[string]string{
46559		"project": c.project,
46560	})
46561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46562}
46563
46564// Do executes the "compute.backendServices.aggregatedList" call.
46565// Exactly one of *BackendServiceAggregatedList or error will be
46566// non-nil. Any non-2xx status code is an error. Response headers are in
46567// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
46568// response was returned at all) in error.(*googleapi.Error).Header. Use
46569// googleapi.IsNotModified to check whether the returned error was
46570// because http.StatusNotModified was returned.
46571func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
46572	gensupport.SetOptions(c.urlParams_, opts...)
46573	res, err := c.doRequest("json")
46574	if res != nil && res.StatusCode == http.StatusNotModified {
46575		if res.Body != nil {
46576			res.Body.Close()
46577		}
46578		return nil, &googleapi.Error{
46579			Code:   res.StatusCode,
46580			Header: res.Header,
46581		}
46582	}
46583	if err != nil {
46584		return nil, err
46585	}
46586	defer googleapi.CloseBody(res)
46587	if err := googleapi.CheckResponse(res); err != nil {
46588		return nil, err
46589	}
46590	ret := &BackendServiceAggregatedList{
46591		ServerResponse: googleapi.ServerResponse{
46592			Header:         res.Header,
46593			HTTPStatusCode: res.StatusCode,
46594		},
46595	}
46596	target := &ret
46597	if err := gensupport.DecodeResponse(target, res); err != nil {
46598		return nil, err
46599	}
46600	return ret, nil
46601	// {
46602	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
46603	//   "httpMethod": "GET",
46604	//   "id": "compute.backendServices.aggregatedList",
46605	//   "parameterOrder": [
46606	//     "project"
46607	//   ],
46608	//   "parameters": {
46609	//     "filter": {
46610	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
46611	//       "location": "query",
46612	//       "type": "string"
46613	//     },
46614	//     "includeAllScopes": {
46615	//       "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.",
46616	//       "location": "query",
46617	//       "type": "boolean"
46618	//     },
46619	//     "maxResults": {
46620	//       "default": "500",
46621	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
46622	//       "format": "uint32",
46623	//       "location": "query",
46624	//       "minimum": "0",
46625	//       "type": "integer"
46626	//     },
46627	//     "orderBy": {
46628	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
46629	//       "location": "query",
46630	//       "type": "string"
46631	//     },
46632	//     "pageToken": {
46633	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
46634	//       "location": "query",
46635	//       "type": "string"
46636	//     },
46637	//     "project": {
46638	//       "description": "Name of the project scoping this request.",
46639	//       "location": "path",
46640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46641	//       "required": true,
46642	//       "type": "string"
46643	//     }
46644	//   },
46645	//   "path": "{project}/aggregated/backendServices",
46646	//   "response": {
46647	//     "$ref": "BackendServiceAggregatedList"
46648	//   },
46649	//   "scopes": [
46650	//     "https://www.googleapis.com/auth/cloud-platform",
46651	//     "https://www.googleapis.com/auth/compute",
46652	//     "https://www.googleapis.com/auth/compute.readonly"
46653	//   ]
46654	// }
46655
46656}
46657
46658// Pages invokes f for each page of results.
46659// A non-nil error returned from f will halt the iteration.
46660// The provided context supersedes any context provided to the Context method.
46661func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
46662	c.ctx_ = ctx
46663	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
46664	for {
46665		x, err := c.Do()
46666		if err != nil {
46667			return err
46668		}
46669		if err := f(x); err != nil {
46670			return err
46671		}
46672		if x.NextPageToken == "" {
46673			return nil
46674		}
46675		c.PageToken(x.NextPageToken)
46676	}
46677}
46678
46679// method id "compute.backendServices.delete":
46680
46681type BackendServicesDeleteCall struct {
46682	s              *Service
46683	project        string
46684	backendService string
46685	urlParams_     gensupport.URLParams
46686	ctx_           context.Context
46687	header_        http.Header
46688}
46689
46690// Delete: Deletes the specified BackendService resource.
46691// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
46692func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
46693	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46694	c.project = project
46695	c.backendService = backendService
46696	return c
46697}
46698
46699// RequestId sets the optional parameter "requestId": An optional
46700// request ID to identify requests. Specify a unique request ID so that
46701// if you must retry your request, the server will know to ignore the
46702// request if it has already been completed.
46703//
46704// For example, consider a situation where you make an initial request
46705// and the request times out. If you make the request again with the
46706// same request ID, the server can check if original operation with the
46707// same request ID was received, and if so, will ignore the second
46708// request. This prevents clients from accidentally creating duplicate
46709// commitments.
46710//
46711// The request ID must be a valid UUID with the exception that zero UUID
46712// is not supported (00000000-0000-0000-0000-000000000000).
46713func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
46714	c.urlParams_.Set("requestId", requestId)
46715	return c
46716}
46717
46718// Fields allows partial responses to be retrieved. See
46719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46720// for more information.
46721func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
46722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46723	return c
46724}
46725
46726// Context sets the context to be used in this call's Do method. Any
46727// pending HTTP request will be aborted if the provided context is
46728// canceled.
46729func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
46730	c.ctx_ = ctx
46731	return c
46732}
46733
46734// Header returns an http.Header that can be modified by the caller to
46735// add HTTP headers to the request.
46736func (c *BackendServicesDeleteCall) Header() http.Header {
46737	if c.header_ == nil {
46738		c.header_ = make(http.Header)
46739	}
46740	return c.header_
46741}
46742
46743func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
46744	reqHeaders := make(http.Header)
46745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46746	for k, v := range c.header_ {
46747		reqHeaders[k] = v
46748	}
46749	reqHeaders.Set("User-Agent", c.s.userAgent())
46750	var body io.Reader = nil
46751	c.urlParams_.Set("alt", alt)
46752	c.urlParams_.Set("prettyPrint", "false")
46753	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
46754	urls += "?" + c.urlParams_.Encode()
46755	req, err := http.NewRequest("DELETE", urls, body)
46756	if err != nil {
46757		return nil, err
46758	}
46759	req.Header = reqHeaders
46760	googleapi.Expand(req.URL, map[string]string{
46761		"project":        c.project,
46762		"backendService": c.backendService,
46763	})
46764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46765}
46766
46767// Do executes the "compute.backendServices.delete" call.
46768// Exactly one of *Operation or error will be non-nil. Any non-2xx
46769// status code is an error. Response headers are in either
46770// *Operation.ServerResponse.Header or (if a response was returned at
46771// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46772// to check whether the returned error was because
46773// http.StatusNotModified was returned.
46774func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46775	gensupport.SetOptions(c.urlParams_, opts...)
46776	res, err := c.doRequest("json")
46777	if res != nil && res.StatusCode == http.StatusNotModified {
46778		if res.Body != nil {
46779			res.Body.Close()
46780		}
46781		return nil, &googleapi.Error{
46782			Code:   res.StatusCode,
46783			Header: res.Header,
46784		}
46785	}
46786	if err != nil {
46787		return nil, err
46788	}
46789	defer googleapi.CloseBody(res)
46790	if err := googleapi.CheckResponse(res); err != nil {
46791		return nil, err
46792	}
46793	ret := &Operation{
46794		ServerResponse: googleapi.ServerResponse{
46795			Header:         res.Header,
46796			HTTPStatusCode: res.StatusCode,
46797		},
46798	}
46799	target := &ret
46800	if err := gensupport.DecodeResponse(target, res); err != nil {
46801		return nil, err
46802	}
46803	return ret, nil
46804	// {
46805	//   "description": "Deletes the specified BackendService resource.",
46806	//   "httpMethod": "DELETE",
46807	//   "id": "compute.backendServices.delete",
46808	//   "parameterOrder": [
46809	//     "project",
46810	//     "backendService"
46811	//   ],
46812	//   "parameters": {
46813	//     "backendService": {
46814	//       "description": "Name of the BackendService resource to delete.",
46815	//       "location": "path",
46816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46817	//       "required": true,
46818	//       "type": "string"
46819	//     },
46820	//     "project": {
46821	//       "description": "Project ID for this request.",
46822	//       "location": "path",
46823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46824	//       "required": true,
46825	//       "type": "string"
46826	//     },
46827	//     "requestId": {
46828	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46829	//       "location": "query",
46830	//       "type": "string"
46831	//     }
46832	//   },
46833	//   "path": "{project}/global/backendServices/{backendService}",
46834	//   "response": {
46835	//     "$ref": "Operation"
46836	//   },
46837	//   "scopes": [
46838	//     "https://www.googleapis.com/auth/cloud-platform",
46839	//     "https://www.googleapis.com/auth/compute"
46840	//   ]
46841	// }
46842
46843}
46844
46845// method id "compute.backendServices.deleteSignedUrlKey":
46846
46847type BackendServicesDeleteSignedUrlKeyCall struct {
46848	s              *Service
46849	project        string
46850	backendService string
46851	urlParams_     gensupport.URLParams
46852	ctx_           context.Context
46853	header_        http.Header
46854}
46855
46856// DeleteSignedUrlKey: Deletes a key for validating requests with signed
46857// URLs for this backend service.
46858func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
46859	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46860	c.project = project
46861	c.backendService = backendService
46862	c.urlParams_.Set("keyName", keyName)
46863	return c
46864}
46865
46866// RequestId sets the optional parameter "requestId": An optional
46867// request ID to identify requests. Specify a unique request ID so that
46868// if you must retry your request, the server will know to ignore the
46869// request if it has already been completed.
46870//
46871// For example, consider a situation where you make an initial request
46872// and the request times out. If you make the request again with the
46873// same request ID, the server can check if original operation with the
46874// same request ID was received, and if so, will ignore the second
46875// request. This prevents clients from accidentally creating duplicate
46876// commitments.
46877//
46878// The request ID must be a valid UUID with the exception that zero UUID
46879// is not supported (00000000-0000-0000-0000-000000000000).
46880func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
46881	c.urlParams_.Set("requestId", requestId)
46882	return c
46883}
46884
46885// Fields allows partial responses to be retrieved. See
46886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46887// for more information.
46888func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
46889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46890	return c
46891}
46892
46893// Context sets the context to be used in this call's Do method. Any
46894// pending HTTP request will be aborted if the provided context is
46895// canceled.
46896func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
46897	c.ctx_ = ctx
46898	return c
46899}
46900
46901// Header returns an http.Header that can be modified by the caller to
46902// add HTTP headers to the request.
46903func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
46904	if c.header_ == nil {
46905		c.header_ = make(http.Header)
46906	}
46907	return c.header_
46908}
46909
46910func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
46911	reqHeaders := make(http.Header)
46912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46913	for k, v := range c.header_ {
46914		reqHeaders[k] = v
46915	}
46916	reqHeaders.Set("User-Agent", c.s.userAgent())
46917	var body io.Reader = nil
46918	c.urlParams_.Set("alt", alt)
46919	c.urlParams_.Set("prettyPrint", "false")
46920	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
46921	urls += "?" + c.urlParams_.Encode()
46922	req, err := http.NewRequest("POST", urls, body)
46923	if err != nil {
46924		return nil, err
46925	}
46926	req.Header = reqHeaders
46927	googleapi.Expand(req.URL, map[string]string{
46928		"project":        c.project,
46929		"backendService": c.backendService,
46930	})
46931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46932}
46933
46934// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
46935// Exactly one of *Operation or error will be non-nil. Any non-2xx
46936// status code is an error. Response headers are in either
46937// *Operation.ServerResponse.Header or (if a response was returned at
46938// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46939// to check whether the returned error was because
46940// http.StatusNotModified was returned.
46941func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46942	gensupport.SetOptions(c.urlParams_, opts...)
46943	res, err := c.doRequest("json")
46944	if res != nil && res.StatusCode == http.StatusNotModified {
46945		if res.Body != nil {
46946			res.Body.Close()
46947		}
46948		return nil, &googleapi.Error{
46949			Code:   res.StatusCode,
46950			Header: res.Header,
46951		}
46952	}
46953	if err != nil {
46954		return nil, err
46955	}
46956	defer googleapi.CloseBody(res)
46957	if err := googleapi.CheckResponse(res); err != nil {
46958		return nil, err
46959	}
46960	ret := &Operation{
46961		ServerResponse: googleapi.ServerResponse{
46962			Header:         res.Header,
46963			HTTPStatusCode: res.StatusCode,
46964		},
46965	}
46966	target := &ret
46967	if err := gensupport.DecodeResponse(target, res); err != nil {
46968		return nil, err
46969	}
46970	return ret, nil
46971	// {
46972	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
46973	//   "httpMethod": "POST",
46974	//   "id": "compute.backendServices.deleteSignedUrlKey",
46975	//   "parameterOrder": [
46976	//     "project",
46977	//     "backendService",
46978	//     "keyName"
46979	//   ],
46980	//   "parameters": {
46981	//     "backendService": {
46982	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
46983	//       "location": "path",
46984	//       "required": true,
46985	//       "type": "string"
46986	//     },
46987	//     "keyName": {
46988	//       "description": "The name of the Signed URL Key to delete.",
46989	//       "location": "query",
46990	//       "required": true,
46991	//       "type": "string"
46992	//     },
46993	//     "project": {
46994	//       "description": "Project ID for this request.",
46995	//       "location": "path",
46996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46997	//       "required": true,
46998	//       "type": "string"
46999	//     },
47000	//     "requestId": {
47001	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47002	//       "location": "query",
47003	//       "type": "string"
47004	//     }
47005	//   },
47006	//   "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
47007	//   "response": {
47008	//     "$ref": "Operation"
47009	//   },
47010	//   "scopes": [
47011	//     "https://www.googleapis.com/auth/cloud-platform",
47012	//     "https://www.googleapis.com/auth/compute"
47013	//   ]
47014	// }
47015
47016}
47017
47018// method id "compute.backendServices.get":
47019
47020type BackendServicesGetCall struct {
47021	s              *Service
47022	project        string
47023	backendService string
47024	urlParams_     gensupport.URLParams
47025	ifNoneMatch_   string
47026	ctx_           context.Context
47027	header_        http.Header
47028}
47029
47030// Get: Returns the specified BackendService resource. Gets a list of
47031// available backend services.
47032// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
47033func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
47034	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47035	c.project = project
47036	c.backendService = backendService
47037	return c
47038}
47039
47040// Fields allows partial responses to be retrieved. See
47041// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47042// for more information.
47043func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
47044	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47045	return c
47046}
47047
47048// IfNoneMatch sets the optional parameter which makes the operation
47049// fail if the object's ETag matches the given value. This is useful for
47050// getting updates only after the object has changed since the last
47051// request. Use googleapi.IsNotModified to check whether the response
47052// error from Do is the result of In-None-Match.
47053func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
47054	c.ifNoneMatch_ = entityTag
47055	return c
47056}
47057
47058// Context sets the context to be used in this call's Do method. Any
47059// pending HTTP request will be aborted if the provided context is
47060// canceled.
47061func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
47062	c.ctx_ = ctx
47063	return c
47064}
47065
47066// Header returns an http.Header that can be modified by the caller to
47067// add HTTP headers to the request.
47068func (c *BackendServicesGetCall) Header() http.Header {
47069	if c.header_ == nil {
47070		c.header_ = make(http.Header)
47071	}
47072	return c.header_
47073}
47074
47075func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
47076	reqHeaders := make(http.Header)
47077	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47078	for k, v := range c.header_ {
47079		reqHeaders[k] = v
47080	}
47081	reqHeaders.Set("User-Agent", c.s.userAgent())
47082	if c.ifNoneMatch_ != "" {
47083		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47084	}
47085	var body io.Reader = nil
47086	c.urlParams_.Set("alt", alt)
47087	c.urlParams_.Set("prettyPrint", "false")
47088	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
47089	urls += "?" + c.urlParams_.Encode()
47090	req, err := http.NewRequest("GET", urls, body)
47091	if err != nil {
47092		return nil, err
47093	}
47094	req.Header = reqHeaders
47095	googleapi.Expand(req.URL, map[string]string{
47096		"project":        c.project,
47097		"backendService": c.backendService,
47098	})
47099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47100}
47101
47102// Do executes the "compute.backendServices.get" call.
47103// Exactly one of *BackendService or error will be non-nil. Any non-2xx
47104// status code is an error. Response headers are in either
47105// *BackendService.ServerResponse.Header or (if a response was returned
47106// at all) in error.(*googleapi.Error).Header. Use
47107// googleapi.IsNotModified to check whether the returned error was
47108// because http.StatusNotModified was returned.
47109func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
47110	gensupport.SetOptions(c.urlParams_, opts...)
47111	res, err := c.doRequest("json")
47112	if res != nil && res.StatusCode == http.StatusNotModified {
47113		if res.Body != nil {
47114			res.Body.Close()
47115		}
47116		return nil, &googleapi.Error{
47117			Code:   res.StatusCode,
47118			Header: res.Header,
47119		}
47120	}
47121	if err != nil {
47122		return nil, err
47123	}
47124	defer googleapi.CloseBody(res)
47125	if err := googleapi.CheckResponse(res); err != nil {
47126		return nil, err
47127	}
47128	ret := &BackendService{
47129		ServerResponse: googleapi.ServerResponse{
47130			Header:         res.Header,
47131			HTTPStatusCode: res.StatusCode,
47132		},
47133	}
47134	target := &ret
47135	if err := gensupport.DecodeResponse(target, res); err != nil {
47136		return nil, err
47137	}
47138	return ret, nil
47139	// {
47140	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
47141	//   "httpMethod": "GET",
47142	//   "id": "compute.backendServices.get",
47143	//   "parameterOrder": [
47144	//     "project",
47145	//     "backendService"
47146	//   ],
47147	//   "parameters": {
47148	//     "backendService": {
47149	//       "description": "Name of the BackendService resource to return.",
47150	//       "location": "path",
47151	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47152	//       "required": true,
47153	//       "type": "string"
47154	//     },
47155	//     "project": {
47156	//       "description": "Project ID for this request.",
47157	//       "location": "path",
47158	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47159	//       "required": true,
47160	//       "type": "string"
47161	//     }
47162	//   },
47163	//   "path": "{project}/global/backendServices/{backendService}",
47164	//   "response": {
47165	//     "$ref": "BackendService"
47166	//   },
47167	//   "scopes": [
47168	//     "https://www.googleapis.com/auth/cloud-platform",
47169	//     "https://www.googleapis.com/auth/compute",
47170	//     "https://www.googleapis.com/auth/compute.readonly"
47171	//   ]
47172	// }
47173
47174}
47175
47176// method id "compute.backendServices.getHealth":
47177
47178type BackendServicesGetHealthCall struct {
47179	s                      *Service
47180	project                string
47181	backendService         string
47182	resourcegroupreference *ResourceGroupReference
47183	urlParams_             gensupport.URLParams
47184	ctx_                   context.Context
47185	header_                http.Header
47186}
47187
47188// GetHealth: Gets the most recent health check results for this
47189// BackendService.
47190//
47191// Example request body:
47192//
47193// { "group": "/zones/us-east1-b/instanceGroups/lb-backend-example" }
47194// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
47195func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
47196	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47197	c.project = project
47198	c.backendService = backendService
47199	c.resourcegroupreference = resourcegroupreference
47200	return c
47201}
47202
47203// Fields allows partial responses to be retrieved. See
47204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47205// for more information.
47206func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
47207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47208	return c
47209}
47210
47211// Context sets the context to be used in this call's Do method. Any
47212// pending HTTP request will be aborted if the provided context is
47213// canceled.
47214func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
47215	c.ctx_ = ctx
47216	return c
47217}
47218
47219// Header returns an http.Header that can be modified by the caller to
47220// add HTTP headers to the request.
47221func (c *BackendServicesGetHealthCall) Header() http.Header {
47222	if c.header_ == nil {
47223		c.header_ = make(http.Header)
47224	}
47225	return c.header_
47226}
47227
47228func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
47229	reqHeaders := make(http.Header)
47230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47231	for k, v := range c.header_ {
47232		reqHeaders[k] = v
47233	}
47234	reqHeaders.Set("User-Agent", c.s.userAgent())
47235	var body io.Reader = nil
47236	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
47237	if err != nil {
47238		return nil, err
47239	}
47240	reqHeaders.Set("Content-Type", "application/json")
47241	c.urlParams_.Set("alt", alt)
47242	c.urlParams_.Set("prettyPrint", "false")
47243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
47244	urls += "?" + c.urlParams_.Encode()
47245	req, err := http.NewRequest("POST", urls, body)
47246	if err != nil {
47247		return nil, err
47248	}
47249	req.Header = reqHeaders
47250	googleapi.Expand(req.URL, map[string]string{
47251		"project":        c.project,
47252		"backendService": c.backendService,
47253	})
47254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47255}
47256
47257// Do executes the "compute.backendServices.getHealth" call.
47258// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
47259// Any non-2xx status code is an error. Response headers are in either
47260// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
47261// was returned at all) in error.(*googleapi.Error).Header. Use
47262// googleapi.IsNotModified to check whether the returned error was
47263// because http.StatusNotModified was returned.
47264func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
47265	gensupport.SetOptions(c.urlParams_, opts...)
47266	res, err := c.doRequest("json")
47267	if res != nil && res.StatusCode == http.StatusNotModified {
47268		if res.Body != nil {
47269			res.Body.Close()
47270		}
47271		return nil, &googleapi.Error{
47272			Code:   res.StatusCode,
47273			Header: res.Header,
47274		}
47275	}
47276	if err != nil {
47277		return nil, err
47278	}
47279	defer googleapi.CloseBody(res)
47280	if err := googleapi.CheckResponse(res); err != nil {
47281		return nil, err
47282	}
47283	ret := &BackendServiceGroupHealth{
47284		ServerResponse: googleapi.ServerResponse{
47285			Header:         res.Header,
47286			HTTPStatusCode: res.StatusCode,
47287		},
47288	}
47289	target := &ret
47290	if err := gensupport.DecodeResponse(target, res); err != nil {
47291		return nil, err
47292	}
47293	return ret, nil
47294	// {
47295	//   "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\" }",
47296	//   "httpMethod": "POST",
47297	//   "id": "compute.backendServices.getHealth",
47298	//   "parameterOrder": [
47299	//     "project",
47300	//     "backendService"
47301	//   ],
47302	//   "parameters": {
47303	//     "backendService": {
47304	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
47305	//       "location": "path",
47306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47307	//       "required": true,
47308	//       "type": "string"
47309	//     },
47310	//     "project": {
47311	//       "location": "path",
47312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47313	//       "required": true,
47314	//       "type": "string"
47315	//     }
47316	//   },
47317	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
47318	//   "request": {
47319	//     "$ref": "ResourceGroupReference"
47320	//   },
47321	//   "response": {
47322	//     "$ref": "BackendServiceGroupHealth"
47323	//   },
47324	//   "scopes": [
47325	//     "https://www.googleapis.com/auth/cloud-platform",
47326	//     "https://www.googleapis.com/auth/compute",
47327	//     "https://www.googleapis.com/auth/compute.readonly"
47328	//   ]
47329	// }
47330
47331}
47332
47333// method id "compute.backendServices.insert":
47334
47335type BackendServicesInsertCall struct {
47336	s              *Service
47337	project        string
47338	backendservice *BackendService
47339	urlParams_     gensupport.URLParams
47340	ctx_           context.Context
47341	header_        http.Header
47342}
47343
47344// Insert: Creates a BackendService resource in the specified project
47345// using the data included in the request. For more information, see
47346// Backend services overview.
47347// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
47348func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
47349	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47350	c.project = project
47351	c.backendservice = backendservice
47352	return c
47353}
47354
47355// RequestId sets the optional parameter "requestId": An optional
47356// request ID to identify requests. Specify a unique request ID so that
47357// if you must retry your request, the server will know to ignore the
47358// request if it has already been completed.
47359//
47360// For example, consider a situation where you make an initial request
47361// and the request times out. If you make the request again with the
47362// same request ID, the server can check if original operation with the
47363// same request ID was received, and if so, will ignore the second
47364// request. This prevents clients from accidentally creating duplicate
47365// commitments.
47366//
47367// The request ID must be a valid UUID with the exception that zero UUID
47368// is not supported (00000000-0000-0000-0000-000000000000).
47369func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
47370	c.urlParams_.Set("requestId", requestId)
47371	return c
47372}
47373
47374// Fields allows partial responses to be retrieved. See
47375// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47376// for more information.
47377func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
47378	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47379	return c
47380}
47381
47382// Context sets the context to be used in this call's Do method. Any
47383// pending HTTP request will be aborted if the provided context is
47384// canceled.
47385func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
47386	c.ctx_ = ctx
47387	return c
47388}
47389
47390// Header returns an http.Header that can be modified by the caller to
47391// add HTTP headers to the request.
47392func (c *BackendServicesInsertCall) Header() http.Header {
47393	if c.header_ == nil {
47394		c.header_ = make(http.Header)
47395	}
47396	return c.header_
47397}
47398
47399func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
47400	reqHeaders := make(http.Header)
47401	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47402	for k, v := range c.header_ {
47403		reqHeaders[k] = v
47404	}
47405	reqHeaders.Set("User-Agent", c.s.userAgent())
47406	var body io.Reader = nil
47407	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
47408	if err != nil {
47409		return nil, err
47410	}
47411	reqHeaders.Set("Content-Type", "application/json")
47412	c.urlParams_.Set("alt", alt)
47413	c.urlParams_.Set("prettyPrint", "false")
47414	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
47415	urls += "?" + c.urlParams_.Encode()
47416	req, err := http.NewRequest("POST", urls, body)
47417	if err != nil {
47418		return nil, err
47419	}
47420	req.Header = reqHeaders
47421	googleapi.Expand(req.URL, map[string]string{
47422		"project": c.project,
47423	})
47424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47425}
47426
47427// Do executes the "compute.backendServices.insert" call.
47428// Exactly one of *Operation or error will be non-nil. Any non-2xx
47429// status code is an error. Response headers are in either
47430// *Operation.ServerResponse.Header or (if a response was returned at
47431// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47432// to check whether the returned error was because
47433// http.StatusNotModified was returned.
47434func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47435	gensupport.SetOptions(c.urlParams_, opts...)
47436	res, err := c.doRequest("json")
47437	if res != nil && res.StatusCode == http.StatusNotModified {
47438		if res.Body != nil {
47439			res.Body.Close()
47440		}
47441		return nil, &googleapi.Error{
47442			Code:   res.StatusCode,
47443			Header: res.Header,
47444		}
47445	}
47446	if err != nil {
47447		return nil, err
47448	}
47449	defer googleapi.CloseBody(res)
47450	if err := googleapi.CheckResponse(res); err != nil {
47451		return nil, err
47452	}
47453	ret := &Operation{
47454		ServerResponse: googleapi.ServerResponse{
47455			Header:         res.Header,
47456			HTTPStatusCode: res.StatusCode,
47457		},
47458	}
47459	target := &ret
47460	if err := gensupport.DecodeResponse(target, res); err != nil {
47461		return nil, err
47462	}
47463	return ret, nil
47464	// {
47465	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
47466	//   "httpMethod": "POST",
47467	//   "id": "compute.backendServices.insert",
47468	//   "parameterOrder": [
47469	//     "project"
47470	//   ],
47471	//   "parameters": {
47472	//     "project": {
47473	//       "description": "Project ID for this request.",
47474	//       "location": "path",
47475	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47476	//       "required": true,
47477	//       "type": "string"
47478	//     },
47479	//     "requestId": {
47480	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47481	//       "location": "query",
47482	//       "type": "string"
47483	//     }
47484	//   },
47485	//   "path": "{project}/global/backendServices",
47486	//   "request": {
47487	//     "$ref": "BackendService"
47488	//   },
47489	//   "response": {
47490	//     "$ref": "Operation"
47491	//   },
47492	//   "scopes": [
47493	//     "https://www.googleapis.com/auth/cloud-platform",
47494	//     "https://www.googleapis.com/auth/compute"
47495	//   ]
47496	// }
47497
47498}
47499
47500// method id "compute.backendServices.list":
47501
47502type BackendServicesListCall struct {
47503	s            *Service
47504	project      string
47505	urlParams_   gensupport.URLParams
47506	ifNoneMatch_ string
47507	ctx_         context.Context
47508	header_      http.Header
47509}
47510
47511// List: Retrieves the list of BackendService resources available to the
47512// specified project.
47513// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
47514func (r *BackendServicesService) List(project string) *BackendServicesListCall {
47515	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47516	c.project = project
47517	return c
47518}
47519
47520// Filter sets the optional parameter "filter": A filter expression that
47521// filters resources listed in the response. The expression must specify
47522// the field name, a comparison operator, and the value that you want to
47523// use for filtering. The value must be a string, a number, or a
47524// boolean. The comparison operator must be either `=`, `!=`, `>`, or
47525// `<`.
47526//
47527// For example, if you are filtering Compute Engine instances, you can
47528// exclude instances named `example-instance` by specifying `name !=
47529// example-instance`.
47530//
47531// You can also filter nested fields. For example, you could specify
47532// `scheduling.automaticRestart = false` to include instances only if
47533// they are not scheduled for automatic restarts. You can use filtering
47534// on nested fields to filter based on resource labels.
47535//
47536// To filter on multiple expressions, provide each separate expression
47537// within parentheses. For example: ``` (scheduling.automaticRestart =
47538// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
47539// is an `AND` expression. However, you can include `AND` and `OR`
47540// expressions explicitly. For example: ``` (cpuPlatform = "Intel
47541// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
47542// (scheduling.automaticRestart = true) ```
47543func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
47544	c.urlParams_.Set("filter", filter)
47545	return c
47546}
47547
47548// MaxResults sets the optional parameter "maxResults": The maximum
47549// number of results per page that should be returned. If the number of
47550// available results is larger than `maxResults`, Compute Engine returns
47551// a `nextPageToken` that can be used to get the next page of results in
47552// subsequent list requests. Acceptable values are `0` to `500`,
47553// inclusive. (Default: `500`)
47554func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
47555	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47556	return c
47557}
47558
47559// OrderBy sets the optional parameter "orderBy": Sorts list results by
47560// a certain order. By default, results are returned in alphanumerical
47561// order based on the resource name.
47562//
47563// You can also sort results in descending order based on the creation
47564// timestamp using `orderBy="creationTimestamp desc". This sorts
47565// results based on the `creationTimestamp` field in reverse
47566// chronological order (newest result first). Use this to sort resources
47567// like operations so that the newest operation is returned
47568// first.
47569//
47570// Currently, only sorting by `name` or `creationTimestamp desc` is
47571// supported.
47572func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
47573	c.urlParams_.Set("orderBy", orderBy)
47574	return c
47575}
47576
47577// PageToken sets the optional parameter "pageToken": Specifies a page
47578// token to use. Set `pageToken` to the `nextPageToken` returned by a
47579// previous list request to get the next page of results.
47580func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
47581	c.urlParams_.Set("pageToken", pageToken)
47582	return c
47583}
47584
47585// Fields allows partial responses to be retrieved. See
47586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47587// for more information.
47588func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
47589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47590	return c
47591}
47592
47593// IfNoneMatch sets the optional parameter which makes the operation
47594// fail if the object's ETag matches the given value. This is useful for
47595// getting updates only after the object has changed since the last
47596// request. Use googleapi.IsNotModified to check whether the response
47597// error from Do is the result of In-None-Match.
47598func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
47599	c.ifNoneMatch_ = entityTag
47600	return c
47601}
47602
47603// Context sets the context to be used in this call's Do method. Any
47604// pending HTTP request will be aborted if the provided context is
47605// canceled.
47606func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
47607	c.ctx_ = ctx
47608	return c
47609}
47610
47611// Header returns an http.Header that can be modified by the caller to
47612// add HTTP headers to the request.
47613func (c *BackendServicesListCall) Header() http.Header {
47614	if c.header_ == nil {
47615		c.header_ = make(http.Header)
47616	}
47617	return c.header_
47618}
47619
47620func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
47621	reqHeaders := make(http.Header)
47622	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47623	for k, v := range c.header_ {
47624		reqHeaders[k] = v
47625	}
47626	reqHeaders.Set("User-Agent", c.s.userAgent())
47627	if c.ifNoneMatch_ != "" {
47628		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47629	}
47630	var body io.Reader = nil
47631	c.urlParams_.Set("alt", alt)
47632	c.urlParams_.Set("prettyPrint", "false")
47633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
47634	urls += "?" + c.urlParams_.Encode()
47635	req, err := http.NewRequest("GET", urls, body)
47636	if err != nil {
47637		return nil, err
47638	}
47639	req.Header = reqHeaders
47640	googleapi.Expand(req.URL, map[string]string{
47641		"project": c.project,
47642	})
47643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47644}
47645
47646// Do executes the "compute.backendServices.list" call.
47647// Exactly one of *BackendServiceList or error will be non-nil. Any
47648// non-2xx status code is an error. Response headers are in either
47649// *BackendServiceList.ServerResponse.Header or (if a response was
47650// returned at all) in error.(*googleapi.Error).Header. Use
47651// googleapi.IsNotModified to check whether the returned error was
47652// because http.StatusNotModified was returned.
47653func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
47654	gensupport.SetOptions(c.urlParams_, opts...)
47655	res, err := c.doRequest("json")
47656	if res != nil && res.StatusCode == http.StatusNotModified {
47657		if res.Body != nil {
47658			res.Body.Close()
47659		}
47660		return nil, &googleapi.Error{
47661			Code:   res.StatusCode,
47662			Header: res.Header,
47663		}
47664	}
47665	if err != nil {
47666		return nil, err
47667	}
47668	defer googleapi.CloseBody(res)
47669	if err := googleapi.CheckResponse(res); err != nil {
47670		return nil, err
47671	}
47672	ret := &BackendServiceList{
47673		ServerResponse: googleapi.ServerResponse{
47674			Header:         res.Header,
47675			HTTPStatusCode: res.StatusCode,
47676		},
47677	}
47678	target := &ret
47679	if err := gensupport.DecodeResponse(target, res); err != nil {
47680		return nil, err
47681	}
47682	return ret, nil
47683	// {
47684	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
47685	//   "httpMethod": "GET",
47686	//   "id": "compute.backendServices.list",
47687	//   "parameterOrder": [
47688	//     "project"
47689	//   ],
47690	//   "parameters": {
47691	//     "filter": {
47692	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
47693	//       "location": "query",
47694	//       "type": "string"
47695	//     },
47696	//     "maxResults": {
47697	//       "default": "500",
47698	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
47699	//       "format": "uint32",
47700	//       "location": "query",
47701	//       "minimum": "0",
47702	//       "type": "integer"
47703	//     },
47704	//     "orderBy": {
47705	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
47706	//       "location": "query",
47707	//       "type": "string"
47708	//     },
47709	//     "pageToken": {
47710	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
47711	//       "location": "query",
47712	//       "type": "string"
47713	//     },
47714	//     "project": {
47715	//       "description": "Project ID for this request.",
47716	//       "location": "path",
47717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47718	//       "required": true,
47719	//       "type": "string"
47720	//     }
47721	//   },
47722	//   "path": "{project}/global/backendServices",
47723	//   "response": {
47724	//     "$ref": "BackendServiceList"
47725	//   },
47726	//   "scopes": [
47727	//     "https://www.googleapis.com/auth/cloud-platform",
47728	//     "https://www.googleapis.com/auth/compute",
47729	//     "https://www.googleapis.com/auth/compute.readonly"
47730	//   ]
47731	// }
47732
47733}
47734
47735// Pages invokes f for each page of results.
47736// A non-nil error returned from f will halt the iteration.
47737// The provided context supersedes any context provided to the Context method.
47738func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
47739	c.ctx_ = ctx
47740	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
47741	for {
47742		x, err := c.Do()
47743		if err != nil {
47744			return err
47745		}
47746		if err := f(x); err != nil {
47747			return err
47748		}
47749		if x.NextPageToken == "" {
47750			return nil
47751		}
47752		c.PageToken(x.NextPageToken)
47753	}
47754}
47755
47756// method id "compute.backendServices.patch":
47757
47758type BackendServicesPatchCall struct {
47759	s              *Service
47760	project        string
47761	backendService string
47762	backendservice *BackendService
47763	urlParams_     gensupport.URLParams
47764	ctx_           context.Context
47765	header_        http.Header
47766}
47767
47768// Patch: Patches the specified BackendService resource with the data
47769// included in the request. For more information, see  Backend services
47770// overview. This method supports PATCH semantics and uses the JSON
47771// merge patch format and processing rules.
47772// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
47773func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
47774	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47775	c.project = project
47776	c.backendService = backendService
47777	c.backendservice = backendservice
47778	return c
47779}
47780
47781// RequestId sets the optional parameter "requestId": An optional
47782// request ID to identify requests. Specify a unique request ID so that
47783// if you must retry your request, the server will know to ignore the
47784// request if it has already been completed.
47785//
47786// For example, consider a situation where you make an initial request
47787// and the request times out. If you make the request again with the
47788// same request ID, the server can check if original operation with the
47789// same request ID was received, and if so, will ignore the second
47790// request. This prevents clients from accidentally creating duplicate
47791// commitments.
47792//
47793// The request ID must be a valid UUID with the exception that zero UUID
47794// is not supported (00000000-0000-0000-0000-000000000000).
47795func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
47796	c.urlParams_.Set("requestId", requestId)
47797	return c
47798}
47799
47800// Fields allows partial responses to be retrieved. See
47801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47802// for more information.
47803func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
47804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47805	return c
47806}
47807
47808// Context sets the context to be used in this call's Do method. Any
47809// pending HTTP request will be aborted if the provided context is
47810// canceled.
47811func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
47812	c.ctx_ = ctx
47813	return c
47814}
47815
47816// Header returns an http.Header that can be modified by the caller to
47817// add HTTP headers to the request.
47818func (c *BackendServicesPatchCall) Header() http.Header {
47819	if c.header_ == nil {
47820		c.header_ = make(http.Header)
47821	}
47822	return c.header_
47823}
47824
47825func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
47826	reqHeaders := make(http.Header)
47827	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47828	for k, v := range c.header_ {
47829		reqHeaders[k] = v
47830	}
47831	reqHeaders.Set("User-Agent", c.s.userAgent())
47832	var body io.Reader = nil
47833	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
47834	if err != nil {
47835		return nil, err
47836	}
47837	reqHeaders.Set("Content-Type", "application/json")
47838	c.urlParams_.Set("alt", alt)
47839	c.urlParams_.Set("prettyPrint", "false")
47840	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
47841	urls += "?" + c.urlParams_.Encode()
47842	req, err := http.NewRequest("PATCH", urls, body)
47843	if err != nil {
47844		return nil, err
47845	}
47846	req.Header = reqHeaders
47847	googleapi.Expand(req.URL, map[string]string{
47848		"project":        c.project,
47849		"backendService": c.backendService,
47850	})
47851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47852}
47853
47854// Do executes the "compute.backendServices.patch" call.
47855// Exactly one of *Operation or error will be non-nil. Any non-2xx
47856// status code is an error. Response headers are in either
47857// *Operation.ServerResponse.Header or (if a response was returned at
47858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47859// to check whether the returned error was because
47860// http.StatusNotModified was returned.
47861func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47862	gensupport.SetOptions(c.urlParams_, opts...)
47863	res, err := c.doRequest("json")
47864	if res != nil && res.StatusCode == http.StatusNotModified {
47865		if res.Body != nil {
47866			res.Body.Close()
47867		}
47868		return nil, &googleapi.Error{
47869			Code:   res.StatusCode,
47870			Header: res.Header,
47871		}
47872	}
47873	if err != nil {
47874		return nil, err
47875	}
47876	defer googleapi.CloseBody(res)
47877	if err := googleapi.CheckResponse(res); err != nil {
47878		return nil, err
47879	}
47880	ret := &Operation{
47881		ServerResponse: googleapi.ServerResponse{
47882			Header:         res.Header,
47883			HTTPStatusCode: res.StatusCode,
47884		},
47885	}
47886	target := &ret
47887	if err := gensupport.DecodeResponse(target, res); err != nil {
47888		return nil, err
47889	}
47890	return ret, nil
47891	// {
47892	//   "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.",
47893	//   "httpMethod": "PATCH",
47894	//   "id": "compute.backendServices.patch",
47895	//   "parameterOrder": [
47896	//     "project",
47897	//     "backendService"
47898	//   ],
47899	//   "parameters": {
47900	//     "backendService": {
47901	//       "description": "Name of the BackendService resource to patch.",
47902	//       "location": "path",
47903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47904	//       "required": true,
47905	//       "type": "string"
47906	//     },
47907	//     "project": {
47908	//       "description": "Project ID for this request.",
47909	//       "location": "path",
47910	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47911	//       "required": true,
47912	//       "type": "string"
47913	//     },
47914	//     "requestId": {
47915	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47916	//       "location": "query",
47917	//       "type": "string"
47918	//     }
47919	//   },
47920	//   "path": "{project}/global/backendServices/{backendService}",
47921	//   "request": {
47922	//     "$ref": "BackendService"
47923	//   },
47924	//   "response": {
47925	//     "$ref": "Operation"
47926	//   },
47927	//   "scopes": [
47928	//     "https://www.googleapis.com/auth/cloud-platform",
47929	//     "https://www.googleapis.com/auth/compute"
47930	//   ]
47931	// }
47932
47933}
47934
47935// method id "compute.backendServices.setSecurityPolicy":
47936
47937type BackendServicesSetSecurityPolicyCall struct {
47938	s                       *Service
47939	project                 string
47940	backendService          string
47941	securitypolicyreference *SecurityPolicyReference
47942	urlParams_              gensupport.URLParams
47943	ctx_                    context.Context
47944	header_                 http.Header
47945}
47946
47947// SetSecurityPolicy: Sets the security policy for the specified backend
47948// service.
47949func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
47950	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47951	c.project = project
47952	c.backendService = backendService
47953	c.securitypolicyreference = securitypolicyreference
47954	return c
47955}
47956
47957// RequestId sets the optional parameter "requestId": An optional
47958// request ID to identify requests. Specify a unique request ID so that
47959// if you must retry your request, the server will know to ignore the
47960// request if it has already been completed.
47961//
47962// For example, consider a situation where you make an initial request
47963// and the request times out. If you make the request again with the
47964// same request ID, the server can check if original operation with the
47965// same request ID was received, and if so, will ignore the second
47966// request. This prevents clients from accidentally creating duplicate
47967// commitments.
47968//
47969// The request ID must be a valid UUID with the exception that zero UUID
47970// is not supported (00000000-0000-0000-0000-000000000000).
47971func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
47972	c.urlParams_.Set("requestId", requestId)
47973	return c
47974}
47975
47976// Fields allows partial responses to be retrieved. See
47977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47978// for more information.
47979func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
47980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47981	return c
47982}
47983
47984// Context sets the context to be used in this call's Do method. Any
47985// pending HTTP request will be aborted if the provided context is
47986// canceled.
47987func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
47988	c.ctx_ = ctx
47989	return c
47990}
47991
47992// Header returns an http.Header that can be modified by the caller to
47993// add HTTP headers to the request.
47994func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
47995	if c.header_ == nil {
47996		c.header_ = make(http.Header)
47997	}
47998	return c.header_
47999}
48000
48001func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
48002	reqHeaders := make(http.Header)
48003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48004	for k, v := range c.header_ {
48005		reqHeaders[k] = v
48006	}
48007	reqHeaders.Set("User-Agent", c.s.userAgent())
48008	var body io.Reader = nil
48009	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
48010	if err != nil {
48011		return nil, err
48012	}
48013	reqHeaders.Set("Content-Type", "application/json")
48014	c.urlParams_.Set("alt", alt)
48015	c.urlParams_.Set("prettyPrint", "false")
48016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/setSecurityPolicy")
48017	urls += "?" + c.urlParams_.Encode()
48018	req, err := http.NewRequest("POST", urls, body)
48019	if err != nil {
48020		return nil, err
48021	}
48022	req.Header = reqHeaders
48023	googleapi.Expand(req.URL, map[string]string{
48024		"project":        c.project,
48025		"backendService": c.backendService,
48026	})
48027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48028}
48029
48030// Do executes the "compute.backendServices.setSecurityPolicy" call.
48031// Exactly one of *Operation or error will be non-nil. Any non-2xx
48032// status code is an error. Response headers are in either
48033// *Operation.ServerResponse.Header or (if a response was returned at
48034// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48035// to check whether the returned error was because
48036// http.StatusNotModified was returned.
48037func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48038	gensupport.SetOptions(c.urlParams_, opts...)
48039	res, err := c.doRequest("json")
48040	if res != nil && res.StatusCode == http.StatusNotModified {
48041		if res.Body != nil {
48042			res.Body.Close()
48043		}
48044		return nil, &googleapi.Error{
48045			Code:   res.StatusCode,
48046			Header: res.Header,
48047		}
48048	}
48049	if err != nil {
48050		return nil, err
48051	}
48052	defer googleapi.CloseBody(res)
48053	if err := googleapi.CheckResponse(res); err != nil {
48054		return nil, err
48055	}
48056	ret := &Operation{
48057		ServerResponse: googleapi.ServerResponse{
48058			Header:         res.Header,
48059			HTTPStatusCode: res.StatusCode,
48060		},
48061	}
48062	target := &ret
48063	if err := gensupport.DecodeResponse(target, res); err != nil {
48064		return nil, err
48065	}
48066	return ret, nil
48067	// {
48068	//   "description": "Sets the security policy for the specified backend service.",
48069	//   "httpMethod": "POST",
48070	//   "id": "compute.backendServices.setSecurityPolicy",
48071	//   "parameterOrder": [
48072	//     "project",
48073	//     "backendService"
48074	//   ],
48075	//   "parameters": {
48076	//     "backendService": {
48077	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
48078	//       "location": "path",
48079	//       "required": true,
48080	//       "type": "string"
48081	//     },
48082	//     "project": {
48083	//       "description": "Project ID for this request.",
48084	//       "location": "path",
48085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48086	//       "required": true,
48087	//       "type": "string"
48088	//     },
48089	//     "requestId": {
48090	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48091	//       "location": "query",
48092	//       "type": "string"
48093	//     }
48094	//   },
48095	//   "path": "{project}/global/backendServices/{backendService}/setSecurityPolicy",
48096	//   "request": {
48097	//     "$ref": "SecurityPolicyReference"
48098	//   },
48099	//   "response": {
48100	//     "$ref": "Operation"
48101	//   },
48102	//   "scopes": [
48103	//     "https://www.googleapis.com/auth/cloud-platform",
48104	//     "https://www.googleapis.com/auth/compute"
48105	//   ]
48106	// }
48107
48108}
48109
48110// method id "compute.backendServices.update":
48111
48112type BackendServicesUpdateCall struct {
48113	s              *Service
48114	project        string
48115	backendService string
48116	backendservice *BackendService
48117	urlParams_     gensupport.URLParams
48118	ctx_           context.Context
48119	header_        http.Header
48120}
48121
48122// Update: Updates the specified BackendService resource with the data
48123// included in the request. For more information, see Backend services
48124// overview.
48125// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
48126func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
48127	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48128	c.project = project
48129	c.backendService = backendService
48130	c.backendservice = backendservice
48131	return c
48132}
48133
48134// RequestId sets the optional parameter "requestId": An optional
48135// request ID to identify requests. Specify a unique request ID so that
48136// if you must retry your request, the server will know to ignore the
48137// request if it has already been completed.
48138//
48139// For example, consider a situation where you make an initial request
48140// and the request times out. If you make the request again with the
48141// same request ID, the server can check if original operation with the
48142// same request ID was received, and if so, will ignore the second
48143// request. This prevents clients from accidentally creating duplicate
48144// commitments.
48145//
48146// The request ID must be a valid UUID with the exception that zero UUID
48147// is not supported (00000000-0000-0000-0000-000000000000).
48148func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
48149	c.urlParams_.Set("requestId", requestId)
48150	return c
48151}
48152
48153// Fields allows partial responses to be retrieved. See
48154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48155// for more information.
48156func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
48157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48158	return c
48159}
48160
48161// Context sets the context to be used in this call's Do method. Any
48162// pending HTTP request will be aborted if the provided context is
48163// canceled.
48164func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
48165	c.ctx_ = ctx
48166	return c
48167}
48168
48169// Header returns an http.Header that can be modified by the caller to
48170// add HTTP headers to the request.
48171func (c *BackendServicesUpdateCall) Header() http.Header {
48172	if c.header_ == nil {
48173		c.header_ = make(http.Header)
48174	}
48175	return c.header_
48176}
48177
48178func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
48179	reqHeaders := make(http.Header)
48180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48181	for k, v := range c.header_ {
48182		reqHeaders[k] = v
48183	}
48184	reqHeaders.Set("User-Agent", c.s.userAgent())
48185	var body io.Reader = nil
48186	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
48187	if err != nil {
48188		return nil, err
48189	}
48190	reqHeaders.Set("Content-Type", "application/json")
48191	c.urlParams_.Set("alt", alt)
48192	c.urlParams_.Set("prettyPrint", "false")
48193	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
48194	urls += "?" + c.urlParams_.Encode()
48195	req, err := http.NewRequest("PUT", urls, body)
48196	if err != nil {
48197		return nil, err
48198	}
48199	req.Header = reqHeaders
48200	googleapi.Expand(req.URL, map[string]string{
48201		"project":        c.project,
48202		"backendService": c.backendService,
48203	})
48204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48205}
48206
48207// Do executes the "compute.backendServices.update" call.
48208// Exactly one of *Operation or error will be non-nil. Any non-2xx
48209// status code is an error. Response headers are in either
48210// *Operation.ServerResponse.Header or (if a response was returned at
48211// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48212// to check whether the returned error was because
48213// http.StatusNotModified was returned.
48214func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48215	gensupport.SetOptions(c.urlParams_, opts...)
48216	res, err := c.doRequest("json")
48217	if res != nil && res.StatusCode == http.StatusNotModified {
48218		if res.Body != nil {
48219			res.Body.Close()
48220		}
48221		return nil, &googleapi.Error{
48222			Code:   res.StatusCode,
48223			Header: res.Header,
48224		}
48225	}
48226	if err != nil {
48227		return nil, err
48228	}
48229	defer googleapi.CloseBody(res)
48230	if err := googleapi.CheckResponse(res); err != nil {
48231		return nil, err
48232	}
48233	ret := &Operation{
48234		ServerResponse: googleapi.ServerResponse{
48235			Header:         res.Header,
48236			HTTPStatusCode: res.StatusCode,
48237		},
48238	}
48239	target := &ret
48240	if err := gensupport.DecodeResponse(target, res); err != nil {
48241		return nil, err
48242	}
48243	return ret, nil
48244	// {
48245	//   "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.",
48246	//   "httpMethod": "PUT",
48247	//   "id": "compute.backendServices.update",
48248	//   "parameterOrder": [
48249	//     "project",
48250	//     "backendService"
48251	//   ],
48252	//   "parameters": {
48253	//     "backendService": {
48254	//       "description": "Name of the BackendService resource to update.",
48255	//       "location": "path",
48256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48257	//       "required": true,
48258	//       "type": "string"
48259	//     },
48260	//     "project": {
48261	//       "description": "Project ID for this request.",
48262	//       "location": "path",
48263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48264	//       "required": true,
48265	//       "type": "string"
48266	//     },
48267	//     "requestId": {
48268	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48269	//       "location": "query",
48270	//       "type": "string"
48271	//     }
48272	//   },
48273	//   "path": "{project}/global/backendServices/{backendService}",
48274	//   "request": {
48275	//     "$ref": "BackendService"
48276	//   },
48277	//   "response": {
48278	//     "$ref": "Operation"
48279	//   },
48280	//   "scopes": [
48281	//     "https://www.googleapis.com/auth/cloud-platform",
48282	//     "https://www.googleapis.com/auth/compute"
48283	//   ]
48284	// }
48285
48286}
48287
48288// method id "compute.diskTypes.aggregatedList":
48289
48290type DiskTypesAggregatedListCall struct {
48291	s            *Service
48292	project      string
48293	urlParams_   gensupport.URLParams
48294	ifNoneMatch_ string
48295	ctx_         context.Context
48296	header_      http.Header
48297}
48298
48299// AggregatedList: Retrieves an aggregated list of disk types.
48300// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
48301func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
48302	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48303	c.project = project
48304	return c
48305}
48306
48307// Filter sets the optional parameter "filter": A filter expression that
48308// filters resources listed in the response. The expression must specify
48309// the field name, a comparison operator, and the value that you want to
48310// use for filtering. The value must be a string, a number, or a
48311// boolean. The comparison operator must be either `=`, `!=`, `>`, or
48312// `<`.
48313//
48314// For example, if you are filtering Compute Engine instances, you can
48315// exclude instances named `example-instance` by specifying `name !=
48316// example-instance`.
48317//
48318// You can also filter nested fields. For example, you could specify
48319// `scheduling.automaticRestart = false` to include instances only if
48320// they are not scheduled for automatic restarts. You can use filtering
48321// on nested fields to filter based on resource labels.
48322//
48323// To filter on multiple expressions, provide each separate expression
48324// within parentheses. For example: ``` (scheduling.automaticRestart =
48325// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
48326// is an `AND` expression. However, you can include `AND` and `OR`
48327// expressions explicitly. For example: ``` (cpuPlatform = "Intel
48328// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
48329// (scheduling.automaticRestart = true) ```
48330func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
48331	c.urlParams_.Set("filter", filter)
48332	return c
48333}
48334
48335// IncludeAllScopes sets the optional parameter "includeAllScopes":
48336// Indicates whether every visible scope for each scope type (zone,
48337// region, global) should be included in the response. For new resource
48338// types added after this field, the flag has no effect as new resource
48339// types will always include every visible scope for each scope type in
48340// response. For resource types which predate this field, if this flag
48341// is omitted or false, only scopes of the scope types where the
48342// resource type is expected to be found will be included.
48343func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
48344	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
48345	return c
48346}
48347
48348// MaxResults sets the optional parameter "maxResults": The maximum
48349// number of results per page that should be returned. If the number of
48350// available results is larger than `maxResults`, Compute Engine returns
48351// a `nextPageToken` that can be used to get the next page of results in
48352// subsequent list requests. Acceptable values are `0` to `500`,
48353// inclusive. (Default: `500`)
48354func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
48355	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48356	return c
48357}
48358
48359// OrderBy sets the optional parameter "orderBy": Sorts list results by
48360// a certain order. By default, results are returned in alphanumerical
48361// order based on the resource name.
48362//
48363// You can also sort results in descending order based on the creation
48364// timestamp using `orderBy="creationTimestamp desc". This sorts
48365// results based on the `creationTimestamp` field in reverse
48366// chronological order (newest result first). Use this to sort resources
48367// like operations so that the newest operation is returned
48368// first.
48369//
48370// Currently, only sorting by `name` or `creationTimestamp desc` is
48371// supported.
48372func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
48373	c.urlParams_.Set("orderBy", orderBy)
48374	return c
48375}
48376
48377// PageToken sets the optional parameter "pageToken": Specifies a page
48378// token to use. Set `pageToken` to the `nextPageToken` returned by a
48379// previous list request to get the next page of results.
48380func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
48381	c.urlParams_.Set("pageToken", pageToken)
48382	return c
48383}
48384
48385// Fields allows partial responses to be retrieved. See
48386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48387// for more information.
48388func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
48389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48390	return c
48391}
48392
48393// IfNoneMatch sets the optional parameter which makes the operation
48394// fail if the object's ETag matches the given value. This is useful for
48395// getting updates only after the object has changed since the last
48396// request. Use googleapi.IsNotModified to check whether the response
48397// error from Do is the result of In-None-Match.
48398func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
48399	c.ifNoneMatch_ = entityTag
48400	return c
48401}
48402
48403// Context sets the context to be used in this call's Do method. Any
48404// pending HTTP request will be aborted if the provided context is
48405// canceled.
48406func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
48407	c.ctx_ = ctx
48408	return c
48409}
48410
48411// Header returns an http.Header that can be modified by the caller to
48412// add HTTP headers to the request.
48413func (c *DiskTypesAggregatedListCall) Header() http.Header {
48414	if c.header_ == nil {
48415		c.header_ = make(http.Header)
48416	}
48417	return c.header_
48418}
48419
48420func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
48421	reqHeaders := make(http.Header)
48422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48423	for k, v := range c.header_ {
48424		reqHeaders[k] = v
48425	}
48426	reqHeaders.Set("User-Agent", c.s.userAgent())
48427	if c.ifNoneMatch_ != "" {
48428		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48429	}
48430	var body io.Reader = nil
48431	c.urlParams_.Set("alt", alt)
48432	c.urlParams_.Set("prettyPrint", "false")
48433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
48434	urls += "?" + c.urlParams_.Encode()
48435	req, err := http.NewRequest("GET", urls, body)
48436	if err != nil {
48437		return nil, err
48438	}
48439	req.Header = reqHeaders
48440	googleapi.Expand(req.URL, map[string]string{
48441		"project": c.project,
48442	})
48443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48444}
48445
48446// Do executes the "compute.diskTypes.aggregatedList" call.
48447// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
48448// non-2xx status code is an error. Response headers are in either
48449// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
48450// returned at all) in error.(*googleapi.Error).Header. Use
48451// googleapi.IsNotModified to check whether the returned error was
48452// because http.StatusNotModified was returned.
48453func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
48454	gensupport.SetOptions(c.urlParams_, opts...)
48455	res, err := c.doRequest("json")
48456	if res != nil && res.StatusCode == http.StatusNotModified {
48457		if res.Body != nil {
48458			res.Body.Close()
48459		}
48460		return nil, &googleapi.Error{
48461			Code:   res.StatusCode,
48462			Header: res.Header,
48463		}
48464	}
48465	if err != nil {
48466		return nil, err
48467	}
48468	defer googleapi.CloseBody(res)
48469	if err := googleapi.CheckResponse(res); err != nil {
48470		return nil, err
48471	}
48472	ret := &DiskTypeAggregatedList{
48473		ServerResponse: googleapi.ServerResponse{
48474			Header:         res.Header,
48475			HTTPStatusCode: res.StatusCode,
48476		},
48477	}
48478	target := &ret
48479	if err := gensupport.DecodeResponse(target, res); err != nil {
48480		return nil, err
48481	}
48482	return ret, nil
48483	// {
48484	//   "description": "Retrieves an aggregated list of disk types.",
48485	//   "httpMethod": "GET",
48486	//   "id": "compute.diskTypes.aggregatedList",
48487	//   "parameterOrder": [
48488	//     "project"
48489	//   ],
48490	//   "parameters": {
48491	//     "filter": {
48492	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
48493	//       "location": "query",
48494	//       "type": "string"
48495	//     },
48496	//     "includeAllScopes": {
48497	//       "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.",
48498	//       "location": "query",
48499	//       "type": "boolean"
48500	//     },
48501	//     "maxResults": {
48502	//       "default": "500",
48503	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
48504	//       "format": "uint32",
48505	//       "location": "query",
48506	//       "minimum": "0",
48507	//       "type": "integer"
48508	//     },
48509	//     "orderBy": {
48510	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
48511	//       "location": "query",
48512	//       "type": "string"
48513	//     },
48514	//     "pageToken": {
48515	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
48516	//       "location": "query",
48517	//       "type": "string"
48518	//     },
48519	//     "project": {
48520	//       "description": "Project ID for this request.",
48521	//       "location": "path",
48522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48523	//       "required": true,
48524	//       "type": "string"
48525	//     }
48526	//   },
48527	//   "path": "{project}/aggregated/diskTypes",
48528	//   "response": {
48529	//     "$ref": "DiskTypeAggregatedList"
48530	//   },
48531	//   "scopes": [
48532	//     "https://www.googleapis.com/auth/cloud-platform",
48533	//     "https://www.googleapis.com/auth/compute",
48534	//     "https://www.googleapis.com/auth/compute.readonly"
48535	//   ]
48536	// }
48537
48538}
48539
48540// Pages invokes f for each page of results.
48541// A non-nil error returned from f will halt the iteration.
48542// The provided context supersedes any context provided to the Context method.
48543func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
48544	c.ctx_ = ctx
48545	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48546	for {
48547		x, err := c.Do()
48548		if err != nil {
48549			return err
48550		}
48551		if err := f(x); err != nil {
48552			return err
48553		}
48554		if x.NextPageToken == "" {
48555			return nil
48556		}
48557		c.PageToken(x.NextPageToken)
48558	}
48559}
48560
48561// method id "compute.diskTypes.get":
48562
48563type DiskTypesGetCall struct {
48564	s            *Service
48565	project      string
48566	zone         string
48567	diskType     string
48568	urlParams_   gensupport.URLParams
48569	ifNoneMatch_ string
48570	ctx_         context.Context
48571	header_      http.Header
48572}
48573
48574// Get: Returns the specified disk type. Gets a list of available disk
48575// types by making a list() request.
48576// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
48577func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
48578	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48579	c.project = project
48580	c.zone = zone
48581	c.diskType = diskType
48582	return c
48583}
48584
48585// Fields allows partial responses to be retrieved. See
48586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48587// for more information.
48588func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
48589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48590	return c
48591}
48592
48593// IfNoneMatch sets the optional parameter which makes the operation
48594// fail if the object's ETag matches the given value. This is useful for
48595// getting updates only after the object has changed since the last
48596// request. Use googleapi.IsNotModified to check whether the response
48597// error from Do is the result of In-None-Match.
48598func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
48599	c.ifNoneMatch_ = entityTag
48600	return c
48601}
48602
48603// Context sets the context to be used in this call's Do method. Any
48604// pending HTTP request will be aborted if the provided context is
48605// canceled.
48606func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
48607	c.ctx_ = ctx
48608	return c
48609}
48610
48611// Header returns an http.Header that can be modified by the caller to
48612// add HTTP headers to the request.
48613func (c *DiskTypesGetCall) Header() http.Header {
48614	if c.header_ == nil {
48615		c.header_ = make(http.Header)
48616	}
48617	return c.header_
48618}
48619
48620func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
48621	reqHeaders := make(http.Header)
48622	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48623	for k, v := range c.header_ {
48624		reqHeaders[k] = v
48625	}
48626	reqHeaders.Set("User-Agent", c.s.userAgent())
48627	if c.ifNoneMatch_ != "" {
48628		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48629	}
48630	var body io.Reader = nil
48631	c.urlParams_.Set("alt", alt)
48632	c.urlParams_.Set("prettyPrint", "false")
48633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
48634	urls += "?" + c.urlParams_.Encode()
48635	req, err := http.NewRequest("GET", urls, body)
48636	if err != nil {
48637		return nil, err
48638	}
48639	req.Header = reqHeaders
48640	googleapi.Expand(req.URL, map[string]string{
48641		"project":  c.project,
48642		"zone":     c.zone,
48643		"diskType": c.diskType,
48644	})
48645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48646}
48647
48648// Do executes the "compute.diskTypes.get" call.
48649// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
48650// code is an error. Response headers are in either
48651// *DiskType.ServerResponse.Header or (if a response was returned at
48652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48653// to check whether the returned error was because
48654// http.StatusNotModified was returned.
48655func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
48656	gensupport.SetOptions(c.urlParams_, opts...)
48657	res, err := c.doRequest("json")
48658	if res != nil && res.StatusCode == http.StatusNotModified {
48659		if res.Body != nil {
48660			res.Body.Close()
48661		}
48662		return nil, &googleapi.Error{
48663			Code:   res.StatusCode,
48664			Header: res.Header,
48665		}
48666	}
48667	if err != nil {
48668		return nil, err
48669	}
48670	defer googleapi.CloseBody(res)
48671	if err := googleapi.CheckResponse(res); err != nil {
48672		return nil, err
48673	}
48674	ret := &DiskType{
48675		ServerResponse: googleapi.ServerResponse{
48676			Header:         res.Header,
48677			HTTPStatusCode: res.StatusCode,
48678		},
48679	}
48680	target := &ret
48681	if err := gensupport.DecodeResponse(target, res); err != nil {
48682		return nil, err
48683	}
48684	return ret, nil
48685	// {
48686	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
48687	//   "httpMethod": "GET",
48688	//   "id": "compute.diskTypes.get",
48689	//   "parameterOrder": [
48690	//     "project",
48691	//     "zone",
48692	//     "diskType"
48693	//   ],
48694	//   "parameters": {
48695	//     "diskType": {
48696	//       "description": "Name of the disk type to return.",
48697	//       "location": "path",
48698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48699	//       "required": true,
48700	//       "type": "string"
48701	//     },
48702	//     "project": {
48703	//       "description": "Project ID for this request.",
48704	//       "location": "path",
48705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48706	//       "required": true,
48707	//       "type": "string"
48708	//     },
48709	//     "zone": {
48710	//       "description": "The name of the zone for this request.",
48711	//       "location": "path",
48712	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48713	//       "required": true,
48714	//       "type": "string"
48715	//     }
48716	//   },
48717	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
48718	//   "response": {
48719	//     "$ref": "DiskType"
48720	//   },
48721	//   "scopes": [
48722	//     "https://www.googleapis.com/auth/cloud-platform",
48723	//     "https://www.googleapis.com/auth/compute",
48724	//     "https://www.googleapis.com/auth/compute.readonly"
48725	//   ]
48726	// }
48727
48728}
48729
48730// method id "compute.diskTypes.list":
48731
48732type DiskTypesListCall struct {
48733	s            *Service
48734	project      string
48735	zone         string
48736	urlParams_   gensupport.URLParams
48737	ifNoneMatch_ string
48738	ctx_         context.Context
48739	header_      http.Header
48740}
48741
48742// List: Retrieves a list of disk types available to the specified
48743// project.
48744// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
48745func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
48746	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48747	c.project = project
48748	c.zone = zone
48749	return c
48750}
48751
48752// Filter sets the optional parameter "filter": A filter expression that
48753// filters resources listed in the response. The expression must specify
48754// the field name, a comparison operator, and the value that you want to
48755// use for filtering. The value must be a string, a number, or a
48756// boolean. The comparison operator must be either `=`, `!=`, `>`, or
48757// `<`.
48758//
48759// For example, if you are filtering Compute Engine instances, you can
48760// exclude instances named `example-instance` by specifying `name !=
48761// example-instance`.
48762//
48763// You can also filter nested fields. For example, you could specify
48764// `scheduling.automaticRestart = false` to include instances only if
48765// they are not scheduled for automatic restarts. You can use filtering
48766// on nested fields to filter based on resource labels.
48767//
48768// To filter on multiple expressions, provide each separate expression
48769// within parentheses. For example: ``` (scheduling.automaticRestart =
48770// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
48771// is an `AND` expression. However, you can include `AND` and `OR`
48772// expressions explicitly. For example: ``` (cpuPlatform = "Intel
48773// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
48774// (scheduling.automaticRestart = true) ```
48775func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
48776	c.urlParams_.Set("filter", filter)
48777	return c
48778}
48779
48780// MaxResults sets the optional parameter "maxResults": The maximum
48781// number of results per page that should be returned. If the number of
48782// available results is larger than `maxResults`, Compute Engine returns
48783// a `nextPageToken` that can be used to get the next page of results in
48784// subsequent list requests. Acceptable values are `0` to `500`,
48785// inclusive. (Default: `500`)
48786func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
48787	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48788	return c
48789}
48790
48791// OrderBy sets the optional parameter "orderBy": Sorts list results by
48792// a certain order. By default, results are returned in alphanumerical
48793// order based on the resource name.
48794//
48795// You can also sort results in descending order based on the creation
48796// timestamp using `orderBy="creationTimestamp desc". This sorts
48797// results based on the `creationTimestamp` field in reverse
48798// chronological order (newest result first). Use this to sort resources
48799// like operations so that the newest operation is returned
48800// first.
48801//
48802// Currently, only sorting by `name` or `creationTimestamp desc` is
48803// supported.
48804func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
48805	c.urlParams_.Set("orderBy", orderBy)
48806	return c
48807}
48808
48809// PageToken sets the optional parameter "pageToken": Specifies a page
48810// token to use. Set `pageToken` to the `nextPageToken` returned by a
48811// previous list request to get the next page of results.
48812func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
48813	c.urlParams_.Set("pageToken", pageToken)
48814	return c
48815}
48816
48817// Fields allows partial responses to be retrieved. See
48818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48819// for more information.
48820func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
48821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48822	return c
48823}
48824
48825// IfNoneMatch sets the optional parameter which makes the operation
48826// fail if the object's ETag matches the given value. This is useful for
48827// getting updates only after the object has changed since the last
48828// request. Use googleapi.IsNotModified to check whether the response
48829// error from Do is the result of In-None-Match.
48830func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
48831	c.ifNoneMatch_ = entityTag
48832	return c
48833}
48834
48835// Context sets the context to be used in this call's Do method. Any
48836// pending HTTP request will be aborted if the provided context is
48837// canceled.
48838func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
48839	c.ctx_ = ctx
48840	return c
48841}
48842
48843// Header returns an http.Header that can be modified by the caller to
48844// add HTTP headers to the request.
48845func (c *DiskTypesListCall) Header() http.Header {
48846	if c.header_ == nil {
48847		c.header_ = make(http.Header)
48848	}
48849	return c.header_
48850}
48851
48852func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
48853	reqHeaders := make(http.Header)
48854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48855	for k, v := range c.header_ {
48856		reqHeaders[k] = v
48857	}
48858	reqHeaders.Set("User-Agent", c.s.userAgent())
48859	if c.ifNoneMatch_ != "" {
48860		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48861	}
48862	var body io.Reader = nil
48863	c.urlParams_.Set("alt", alt)
48864	c.urlParams_.Set("prettyPrint", "false")
48865	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
48866	urls += "?" + c.urlParams_.Encode()
48867	req, err := http.NewRequest("GET", urls, body)
48868	if err != nil {
48869		return nil, err
48870	}
48871	req.Header = reqHeaders
48872	googleapi.Expand(req.URL, map[string]string{
48873		"project": c.project,
48874		"zone":    c.zone,
48875	})
48876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48877}
48878
48879// Do executes the "compute.diskTypes.list" call.
48880// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
48881// status code is an error. Response headers are in either
48882// *DiskTypeList.ServerResponse.Header or (if a response was returned at
48883// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48884// to check whether the returned error was because
48885// http.StatusNotModified was returned.
48886func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
48887	gensupport.SetOptions(c.urlParams_, opts...)
48888	res, err := c.doRequest("json")
48889	if res != nil && res.StatusCode == http.StatusNotModified {
48890		if res.Body != nil {
48891			res.Body.Close()
48892		}
48893		return nil, &googleapi.Error{
48894			Code:   res.StatusCode,
48895			Header: res.Header,
48896		}
48897	}
48898	if err != nil {
48899		return nil, err
48900	}
48901	defer googleapi.CloseBody(res)
48902	if err := googleapi.CheckResponse(res); err != nil {
48903		return nil, err
48904	}
48905	ret := &DiskTypeList{
48906		ServerResponse: googleapi.ServerResponse{
48907			Header:         res.Header,
48908			HTTPStatusCode: res.StatusCode,
48909		},
48910	}
48911	target := &ret
48912	if err := gensupport.DecodeResponse(target, res); err != nil {
48913		return nil, err
48914	}
48915	return ret, nil
48916	// {
48917	//   "description": "Retrieves a list of disk types available to the specified project.",
48918	//   "httpMethod": "GET",
48919	//   "id": "compute.diskTypes.list",
48920	//   "parameterOrder": [
48921	//     "project",
48922	//     "zone"
48923	//   ],
48924	//   "parameters": {
48925	//     "filter": {
48926	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
48927	//       "location": "query",
48928	//       "type": "string"
48929	//     },
48930	//     "maxResults": {
48931	//       "default": "500",
48932	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
48933	//       "format": "uint32",
48934	//       "location": "query",
48935	//       "minimum": "0",
48936	//       "type": "integer"
48937	//     },
48938	//     "orderBy": {
48939	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
48940	//       "location": "query",
48941	//       "type": "string"
48942	//     },
48943	//     "pageToken": {
48944	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
48945	//       "location": "query",
48946	//       "type": "string"
48947	//     },
48948	//     "project": {
48949	//       "description": "Project ID for this request.",
48950	//       "location": "path",
48951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48952	//       "required": true,
48953	//       "type": "string"
48954	//     },
48955	//     "zone": {
48956	//       "description": "The name of the zone for this request.",
48957	//       "location": "path",
48958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48959	//       "required": true,
48960	//       "type": "string"
48961	//     }
48962	//   },
48963	//   "path": "{project}/zones/{zone}/diskTypes",
48964	//   "response": {
48965	//     "$ref": "DiskTypeList"
48966	//   },
48967	//   "scopes": [
48968	//     "https://www.googleapis.com/auth/cloud-platform",
48969	//     "https://www.googleapis.com/auth/compute",
48970	//     "https://www.googleapis.com/auth/compute.readonly"
48971	//   ]
48972	// }
48973
48974}
48975
48976// Pages invokes f for each page of results.
48977// A non-nil error returned from f will halt the iteration.
48978// The provided context supersedes any context provided to the Context method.
48979func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
48980	c.ctx_ = ctx
48981	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48982	for {
48983		x, err := c.Do()
48984		if err != nil {
48985			return err
48986		}
48987		if err := f(x); err != nil {
48988			return err
48989		}
48990		if x.NextPageToken == "" {
48991			return nil
48992		}
48993		c.PageToken(x.NextPageToken)
48994	}
48995}
48996
48997// method id "compute.disks.addResourcePolicies":
48998
48999type DisksAddResourcePoliciesCall struct {
49000	s                               *Service
49001	project                         string
49002	zone                            string
49003	disk                            string
49004	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
49005	urlParams_                      gensupport.URLParams
49006	ctx_                            context.Context
49007	header_                         http.Header
49008}
49009
49010// AddResourcePolicies: Adds existing resource policies to a disk. You
49011// can only add one policy which will be applied to this disk for
49012// scheduling snapshot creation.
49013func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
49014	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49015	c.project = project
49016	c.zone = zone
49017	c.disk = disk
49018	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
49019	return c
49020}
49021
49022// RequestId sets the optional parameter "requestId": An optional
49023// request ID to identify requests. Specify a unique request ID so that
49024// if you must retry your request, the server will know to ignore the
49025// request if it has already been completed.
49026//
49027// For example, consider a situation where you make an initial request
49028// and the request times out. If you make the request again with the
49029// same request ID, the server can check if original operation with the
49030// same request ID was received, and if so, will ignore the second
49031// request. This prevents clients from accidentally creating duplicate
49032// commitments.
49033//
49034// The request ID must be a valid UUID with the exception that zero UUID
49035// is not supported (00000000-0000-0000-0000-000000000000).
49036func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
49037	c.urlParams_.Set("requestId", requestId)
49038	return c
49039}
49040
49041// Fields allows partial responses to be retrieved. See
49042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49043// for more information.
49044func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
49045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49046	return c
49047}
49048
49049// Context sets the context to be used in this call's Do method. Any
49050// pending HTTP request will be aborted if the provided context is
49051// canceled.
49052func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
49053	c.ctx_ = ctx
49054	return c
49055}
49056
49057// Header returns an http.Header that can be modified by the caller to
49058// add HTTP headers to the request.
49059func (c *DisksAddResourcePoliciesCall) Header() http.Header {
49060	if c.header_ == nil {
49061		c.header_ = make(http.Header)
49062	}
49063	return c.header_
49064}
49065
49066func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
49067	reqHeaders := make(http.Header)
49068	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49069	for k, v := range c.header_ {
49070		reqHeaders[k] = v
49071	}
49072	reqHeaders.Set("User-Agent", c.s.userAgent())
49073	var body io.Reader = nil
49074	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
49075	if err != nil {
49076		return nil, err
49077	}
49078	reqHeaders.Set("Content-Type", "application/json")
49079	c.urlParams_.Set("alt", alt)
49080	c.urlParams_.Set("prettyPrint", "false")
49081	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
49082	urls += "?" + c.urlParams_.Encode()
49083	req, err := http.NewRequest("POST", urls, body)
49084	if err != nil {
49085		return nil, err
49086	}
49087	req.Header = reqHeaders
49088	googleapi.Expand(req.URL, map[string]string{
49089		"project": c.project,
49090		"zone":    c.zone,
49091		"disk":    c.disk,
49092	})
49093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49094}
49095
49096// Do executes the "compute.disks.addResourcePolicies" call.
49097// Exactly one of *Operation or error will be non-nil. Any non-2xx
49098// status code is an error. Response headers are in either
49099// *Operation.ServerResponse.Header or (if a response was returned at
49100// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49101// to check whether the returned error was because
49102// http.StatusNotModified was returned.
49103func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49104	gensupport.SetOptions(c.urlParams_, opts...)
49105	res, err := c.doRequest("json")
49106	if res != nil && res.StatusCode == http.StatusNotModified {
49107		if res.Body != nil {
49108			res.Body.Close()
49109		}
49110		return nil, &googleapi.Error{
49111			Code:   res.StatusCode,
49112			Header: res.Header,
49113		}
49114	}
49115	if err != nil {
49116		return nil, err
49117	}
49118	defer googleapi.CloseBody(res)
49119	if err := googleapi.CheckResponse(res); err != nil {
49120		return nil, err
49121	}
49122	ret := &Operation{
49123		ServerResponse: googleapi.ServerResponse{
49124			Header:         res.Header,
49125			HTTPStatusCode: res.StatusCode,
49126		},
49127	}
49128	target := &ret
49129	if err := gensupport.DecodeResponse(target, res); err != nil {
49130		return nil, err
49131	}
49132	return ret, nil
49133	// {
49134	//   "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.",
49135	//   "httpMethod": "POST",
49136	//   "id": "compute.disks.addResourcePolicies",
49137	//   "parameterOrder": [
49138	//     "project",
49139	//     "zone",
49140	//     "disk"
49141	//   ],
49142	//   "parameters": {
49143	//     "disk": {
49144	//       "description": "The disk name for this request.",
49145	//       "location": "path",
49146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49147	//       "required": true,
49148	//       "type": "string"
49149	//     },
49150	//     "project": {
49151	//       "description": "Project ID for this request.",
49152	//       "location": "path",
49153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49154	//       "required": true,
49155	//       "type": "string"
49156	//     },
49157	//     "requestId": {
49158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49159	//       "location": "query",
49160	//       "type": "string"
49161	//     },
49162	//     "zone": {
49163	//       "description": "The name of the zone for this request.",
49164	//       "location": "path",
49165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49166	//       "required": true,
49167	//       "type": "string"
49168	//     }
49169	//   },
49170	//   "path": "{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
49171	//   "request": {
49172	//     "$ref": "DisksAddResourcePoliciesRequest"
49173	//   },
49174	//   "response": {
49175	//     "$ref": "Operation"
49176	//   },
49177	//   "scopes": [
49178	//     "https://www.googleapis.com/auth/cloud-platform",
49179	//     "https://www.googleapis.com/auth/compute"
49180	//   ]
49181	// }
49182
49183}
49184
49185// method id "compute.disks.aggregatedList":
49186
49187type DisksAggregatedListCall struct {
49188	s            *Service
49189	project      string
49190	urlParams_   gensupport.URLParams
49191	ifNoneMatch_ string
49192	ctx_         context.Context
49193	header_      http.Header
49194}
49195
49196// AggregatedList: Retrieves an aggregated list of persistent disks.
49197// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
49198func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
49199	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49200	c.project = project
49201	return c
49202}
49203
49204// Filter sets the optional parameter "filter": A filter expression that
49205// filters resources listed in the response. The expression must specify
49206// the field name, a comparison operator, and the value that you want to
49207// use for filtering. The value must be a string, a number, or a
49208// boolean. The comparison operator must be either `=`, `!=`, `>`, or
49209// `<`.
49210//
49211// For example, if you are filtering Compute Engine instances, you can
49212// exclude instances named `example-instance` by specifying `name !=
49213// example-instance`.
49214//
49215// You can also filter nested fields. For example, you could specify
49216// `scheduling.automaticRestart = false` to include instances only if
49217// they are not scheduled for automatic restarts. You can use filtering
49218// on nested fields to filter based on resource labels.
49219//
49220// To filter on multiple expressions, provide each separate expression
49221// within parentheses. For example: ``` (scheduling.automaticRestart =
49222// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
49223// is an `AND` expression. However, you can include `AND` and `OR`
49224// expressions explicitly. For example: ``` (cpuPlatform = "Intel
49225// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
49226// (scheduling.automaticRestart = true) ```
49227func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
49228	c.urlParams_.Set("filter", filter)
49229	return c
49230}
49231
49232// IncludeAllScopes sets the optional parameter "includeAllScopes":
49233// Indicates whether every visible scope for each scope type (zone,
49234// region, global) should be included in the response. For new resource
49235// types added after this field, the flag has no effect as new resource
49236// types will always include every visible scope for each scope type in
49237// response. For resource types which predate this field, if this flag
49238// is omitted or false, only scopes of the scope types where the
49239// resource type is expected to be found will be included.
49240func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
49241	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
49242	return c
49243}
49244
49245// MaxResults sets the optional parameter "maxResults": The maximum
49246// number of results per page that should be returned. If the number of
49247// available results is larger than `maxResults`, Compute Engine returns
49248// a `nextPageToken` that can be used to get the next page of results in
49249// subsequent list requests. Acceptable values are `0` to `500`,
49250// inclusive. (Default: `500`)
49251func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
49252	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49253	return c
49254}
49255
49256// OrderBy sets the optional parameter "orderBy": Sorts list results by
49257// a certain order. By default, results are returned in alphanumerical
49258// order based on the resource name.
49259//
49260// You can also sort results in descending order based on the creation
49261// timestamp using `orderBy="creationTimestamp desc". This sorts
49262// results based on the `creationTimestamp` field in reverse
49263// chronological order (newest result first). Use this to sort resources
49264// like operations so that the newest operation is returned
49265// first.
49266//
49267// Currently, only sorting by `name` or `creationTimestamp desc` is
49268// supported.
49269func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
49270	c.urlParams_.Set("orderBy", orderBy)
49271	return c
49272}
49273
49274// PageToken sets the optional parameter "pageToken": Specifies a page
49275// token to use. Set `pageToken` to the `nextPageToken` returned by a
49276// previous list request to get the next page of results.
49277func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
49278	c.urlParams_.Set("pageToken", pageToken)
49279	return c
49280}
49281
49282// Fields allows partial responses to be retrieved. See
49283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49284// for more information.
49285func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
49286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49287	return c
49288}
49289
49290// IfNoneMatch sets the optional parameter which makes the operation
49291// fail if the object's ETag matches the given value. This is useful for
49292// getting updates only after the object has changed since the last
49293// request. Use googleapi.IsNotModified to check whether the response
49294// error from Do is the result of In-None-Match.
49295func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
49296	c.ifNoneMatch_ = entityTag
49297	return c
49298}
49299
49300// Context sets the context to be used in this call's Do method. Any
49301// pending HTTP request will be aborted if the provided context is
49302// canceled.
49303func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
49304	c.ctx_ = ctx
49305	return c
49306}
49307
49308// Header returns an http.Header that can be modified by the caller to
49309// add HTTP headers to the request.
49310func (c *DisksAggregatedListCall) Header() http.Header {
49311	if c.header_ == nil {
49312		c.header_ = make(http.Header)
49313	}
49314	return c.header_
49315}
49316
49317func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
49318	reqHeaders := make(http.Header)
49319	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49320	for k, v := range c.header_ {
49321		reqHeaders[k] = v
49322	}
49323	reqHeaders.Set("User-Agent", c.s.userAgent())
49324	if c.ifNoneMatch_ != "" {
49325		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49326	}
49327	var body io.Reader = nil
49328	c.urlParams_.Set("alt", alt)
49329	c.urlParams_.Set("prettyPrint", "false")
49330	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
49331	urls += "?" + c.urlParams_.Encode()
49332	req, err := http.NewRequest("GET", urls, body)
49333	if err != nil {
49334		return nil, err
49335	}
49336	req.Header = reqHeaders
49337	googleapi.Expand(req.URL, map[string]string{
49338		"project": c.project,
49339	})
49340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49341}
49342
49343// Do executes the "compute.disks.aggregatedList" call.
49344// Exactly one of *DiskAggregatedList or error will be non-nil. Any
49345// non-2xx status code is an error. Response headers are in either
49346// *DiskAggregatedList.ServerResponse.Header or (if a response was
49347// returned at all) in error.(*googleapi.Error).Header. Use
49348// googleapi.IsNotModified to check whether the returned error was
49349// because http.StatusNotModified was returned.
49350func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
49351	gensupport.SetOptions(c.urlParams_, opts...)
49352	res, err := c.doRequest("json")
49353	if res != nil && res.StatusCode == http.StatusNotModified {
49354		if res.Body != nil {
49355			res.Body.Close()
49356		}
49357		return nil, &googleapi.Error{
49358			Code:   res.StatusCode,
49359			Header: res.Header,
49360		}
49361	}
49362	if err != nil {
49363		return nil, err
49364	}
49365	defer googleapi.CloseBody(res)
49366	if err := googleapi.CheckResponse(res); err != nil {
49367		return nil, err
49368	}
49369	ret := &DiskAggregatedList{
49370		ServerResponse: googleapi.ServerResponse{
49371			Header:         res.Header,
49372			HTTPStatusCode: res.StatusCode,
49373		},
49374	}
49375	target := &ret
49376	if err := gensupport.DecodeResponse(target, res); err != nil {
49377		return nil, err
49378	}
49379	return ret, nil
49380	// {
49381	//   "description": "Retrieves an aggregated list of persistent disks.",
49382	//   "httpMethod": "GET",
49383	//   "id": "compute.disks.aggregatedList",
49384	//   "parameterOrder": [
49385	//     "project"
49386	//   ],
49387	//   "parameters": {
49388	//     "filter": {
49389	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
49390	//       "location": "query",
49391	//       "type": "string"
49392	//     },
49393	//     "includeAllScopes": {
49394	//       "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.",
49395	//       "location": "query",
49396	//       "type": "boolean"
49397	//     },
49398	//     "maxResults": {
49399	//       "default": "500",
49400	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
49401	//       "format": "uint32",
49402	//       "location": "query",
49403	//       "minimum": "0",
49404	//       "type": "integer"
49405	//     },
49406	//     "orderBy": {
49407	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
49408	//       "location": "query",
49409	//       "type": "string"
49410	//     },
49411	//     "pageToken": {
49412	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
49413	//       "location": "query",
49414	//       "type": "string"
49415	//     },
49416	//     "project": {
49417	//       "description": "Project ID for this request.",
49418	//       "location": "path",
49419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49420	//       "required": true,
49421	//       "type": "string"
49422	//     }
49423	//   },
49424	//   "path": "{project}/aggregated/disks",
49425	//   "response": {
49426	//     "$ref": "DiskAggregatedList"
49427	//   },
49428	//   "scopes": [
49429	//     "https://www.googleapis.com/auth/cloud-platform",
49430	//     "https://www.googleapis.com/auth/compute",
49431	//     "https://www.googleapis.com/auth/compute.readonly"
49432	//   ]
49433	// }
49434
49435}
49436
49437// Pages invokes f for each page of results.
49438// A non-nil error returned from f will halt the iteration.
49439// The provided context supersedes any context provided to the Context method.
49440func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
49441	c.ctx_ = ctx
49442	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49443	for {
49444		x, err := c.Do()
49445		if err != nil {
49446			return err
49447		}
49448		if err := f(x); err != nil {
49449			return err
49450		}
49451		if x.NextPageToken == "" {
49452			return nil
49453		}
49454		c.PageToken(x.NextPageToken)
49455	}
49456}
49457
49458// method id "compute.disks.createSnapshot":
49459
49460type DisksCreateSnapshotCall struct {
49461	s          *Service
49462	project    string
49463	zone       string
49464	disk       string
49465	snapshot   *Snapshot
49466	urlParams_ gensupport.URLParams
49467	ctx_       context.Context
49468	header_    http.Header
49469}
49470
49471// CreateSnapshot: Creates a snapshot of a specified persistent disk.
49472// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
49473func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
49474	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49475	c.project = project
49476	c.zone = zone
49477	c.disk = disk
49478	c.snapshot = snapshot
49479	return c
49480}
49481
49482// GuestFlush sets the optional parameter "guestFlush": [Input Only]
49483// Specifies to create an application consistent snapshot by informing
49484// the OS to prepare for the snapshot process. Currently only supported
49485// on Windows instances using the Volume Shadow Copy Service (VSS).
49486func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
49487	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
49488	return c
49489}
49490
49491// RequestId sets the optional parameter "requestId": An optional
49492// request ID to identify requests. Specify a unique request ID so that
49493// if you must retry your request, the server will know to ignore the
49494// request if it has already been completed.
49495//
49496// For example, consider a situation where you make an initial request
49497// and the request times out. If you make the request again with the
49498// same request ID, the server can check if original operation with the
49499// same request ID was received, and if so, will ignore the second
49500// request. This prevents clients from accidentally creating duplicate
49501// commitments.
49502//
49503// The request ID must be a valid UUID with the exception that zero UUID
49504// is not supported (00000000-0000-0000-0000-000000000000).
49505func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
49506	c.urlParams_.Set("requestId", requestId)
49507	return c
49508}
49509
49510// Fields allows partial responses to be retrieved. See
49511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49512// for more information.
49513func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
49514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49515	return c
49516}
49517
49518// Context sets the context to be used in this call's Do method. Any
49519// pending HTTP request will be aborted if the provided context is
49520// canceled.
49521func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
49522	c.ctx_ = ctx
49523	return c
49524}
49525
49526// Header returns an http.Header that can be modified by the caller to
49527// add HTTP headers to the request.
49528func (c *DisksCreateSnapshotCall) Header() http.Header {
49529	if c.header_ == nil {
49530		c.header_ = make(http.Header)
49531	}
49532	return c.header_
49533}
49534
49535func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
49536	reqHeaders := make(http.Header)
49537	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49538	for k, v := range c.header_ {
49539		reqHeaders[k] = v
49540	}
49541	reqHeaders.Set("User-Agent", c.s.userAgent())
49542	var body io.Reader = nil
49543	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
49544	if err != nil {
49545		return nil, err
49546	}
49547	reqHeaders.Set("Content-Type", "application/json")
49548	c.urlParams_.Set("alt", alt)
49549	c.urlParams_.Set("prettyPrint", "false")
49550	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
49551	urls += "?" + c.urlParams_.Encode()
49552	req, err := http.NewRequest("POST", urls, body)
49553	if err != nil {
49554		return nil, err
49555	}
49556	req.Header = reqHeaders
49557	googleapi.Expand(req.URL, map[string]string{
49558		"project": c.project,
49559		"zone":    c.zone,
49560		"disk":    c.disk,
49561	})
49562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49563}
49564
49565// Do executes the "compute.disks.createSnapshot" call.
49566// Exactly one of *Operation or error will be non-nil. Any non-2xx
49567// status code is an error. Response headers are in either
49568// *Operation.ServerResponse.Header or (if a response was returned at
49569// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49570// to check whether the returned error was because
49571// http.StatusNotModified was returned.
49572func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49573	gensupport.SetOptions(c.urlParams_, opts...)
49574	res, err := c.doRequest("json")
49575	if res != nil && res.StatusCode == http.StatusNotModified {
49576		if res.Body != nil {
49577			res.Body.Close()
49578		}
49579		return nil, &googleapi.Error{
49580			Code:   res.StatusCode,
49581			Header: res.Header,
49582		}
49583	}
49584	if err != nil {
49585		return nil, err
49586	}
49587	defer googleapi.CloseBody(res)
49588	if err := googleapi.CheckResponse(res); err != nil {
49589		return nil, err
49590	}
49591	ret := &Operation{
49592		ServerResponse: googleapi.ServerResponse{
49593			Header:         res.Header,
49594			HTTPStatusCode: res.StatusCode,
49595		},
49596	}
49597	target := &ret
49598	if err := gensupport.DecodeResponse(target, res); err != nil {
49599		return nil, err
49600	}
49601	return ret, nil
49602	// {
49603	//   "description": "Creates a snapshot of a specified persistent disk.",
49604	//   "httpMethod": "POST",
49605	//   "id": "compute.disks.createSnapshot",
49606	//   "parameterOrder": [
49607	//     "project",
49608	//     "zone",
49609	//     "disk"
49610	//   ],
49611	//   "parameters": {
49612	//     "disk": {
49613	//       "description": "Name of the persistent disk to snapshot.",
49614	//       "location": "path",
49615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49616	//       "required": true,
49617	//       "type": "string"
49618	//     },
49619	//     "guestFlush": {
49620	//       "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).",
49621	//       "location": "query",
49622	//       "type": "boolean"
49623	//     },
49624	//     "project": {
49625	//       "description": "Project ID for this request.",
49626	//       "location": "path",
49627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49628	//       "required": true,
49629	//       "type": "string"
49630	//     },
49631	//     "requestId": {
49632	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49633	//       "location": "query",
49634	//       "type": "string"
49635	//     },
49636	//     "zone": {
49637	//       "description": "The name of the zone for this request.",
49638	//       "location": "path",
49639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49640	//       "required": true,
49641	//       "type": "string"
49642	//     }
49643	//   },
49644	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
49645	//   "request": {
49646	//     "$ref": "Snapshot"
49647	//   },
49648	//   "response": {
49649	//     "$ref": "Operation"
49650	//   },
49651	//   "scopes": [
49652	//     "https://www.googleapis.com/auth/cloud-platform",
49653	//     "https://www.googleapis.com/auth/compute"
49654	//   ]
49655	// }
49656
49657}
49658
49659// method id "compute.disks.delete":
49660
49661type DisksDeleteCall struct {
49662	s          *Service
49663	project    string
49664	zone       string
49665	disk       string
49666	urlParams_ gensupport.URLParams
49667	ctx_       context.Context
49668	header_    http.Header
49669}
49670
49671// Delete: Deletes the specified persistent disk. Deleting a disk
49672// removes its data permanently and is irreversible. However, deleting a
49673// disk does not delete any snapshots previously made from the disk. You
49674// must separately delete snapshots.
49675// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
49676func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
49677	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49678	c.project = project
49679	c.zone = zone
49680	c.disk = disk
49681	return c
49682}
49683
49684// RequestId sets the optional parameter "requestId": An optional
49685// request ID to identify requests. Specify a unique request ID so that
49686// if you must retry your request, the server will know to ignore the
49687// request if it has already been completed.
49688//
49689// For example, consider a situation where you make an initial request
49690// and the request times out. If you make the request again with the
49691// same request ID, the server can check if original operation with the
49692// same request ID was received, and if so, will ignore the second
49693// request. This prevents clients from accidentally creating duplicate
49694// commitments.
49695//
49696// The request ID must be a valid UUID with the exception that zero UUID
49697// is not supported (00000000-0000-0000-0000-000000000000).
49698func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
49699	c.urlParams_.Set("requestId", requestId)
49700	return c
49701}
49702
49703// Fields allows partial responses to be retrieved. See
49704// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49705// for more information.
49706func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
49707	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49708	return c
49709}
49710
49711// Context sets the context to be used in this call's Do method. Any
49712// pending HTTP request will be aborted if the provided context is
49713// canceled.
49714func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
49715	c.ctx_ = ctx
49716	return c
49717}
49718
49719// Header returns an http.Header that can be modified by the caller to
49720// add HTTP headers to the request.
49721func (c *DisksDeleteCall) Header() http.Header {
49722	if c.header_ == nil {
49723		c.header_ = make(http.Header)
49724	}
49725	return c.header_
49726}
49727
49728func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
49729	reqHeaders := make(http.Header)
49730	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49731	for k, v := range c.header_ {
49732		reqHeaders[k] = v
49733	}
49734	reqHeaders.Set("User-Agent", c.s.userAgent())
49735	var body io.Reader = nil
49736	c.urlParams_.Set("alt", alt)
49737	c.urlParams_.Set("prettyPrint", "false")
49738	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
49739	urls += "?" + c.urlParams_.Encode()
49740	req, err := http.NewRequest("DELETE", urls, body)
49741	if err != nil {
49742		return nil, err
49743	}
49744	req.Header = reqHeaders
49745	googleapi.Expand(req.URL, map[string]string{
49746		"project": c.project,
49747		"zone":    c.zone,
49748		"disk":    c.disk,
49749	})
49750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49751}
49752
49753// Do executes the "compute.disks.delete" call.
49754// Exactly one of *Operation or error will be non-nil. Any non-2xx
49755// status code is an error. Response headers are in either
49756// *Operation.ServerResponse.Header or (if a response was returned at
49757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49758// to check whether the returned error was because
49759// http.StatusNotModified was returned.
49760func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49761	gensupport.SetOptions(c.urlParams_, opts...)
49762	res, err := c.doRequest("json")
49763	if res != nil && res.StatusCode == http.StatusNotModified {
49764		if res.Body != nil {
49765			res.Body.Close()
49766		}
49767		return nil, &googleapi.Error{
49768			Code:   res.StatusCode,
49769			Header: res.Header,
49770		}
49771	}
49772	if err != nil {
49773		return nil, err
49774	}
49775	defer googleapi.CloseBody(res)
49776	if err := googleapi.CheckResponse(res); err != nil {
49777		return nil, err
49778	}
49779	ret := &Operation{
49780		ServerResponse: googleapi.ServerResponse{
49781			Header:         res.Header,
49782			HTTPStatusCode: res.StatusCode,
49783		},
49784	}
49785	target := &ret
49786	if err := gensupport.DecodeResponse(target, res); err != nil {
49787		return nil, err
49788	}
49789	return ret, nil
49790	// {
49791	//   "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.",
49792	//   "httpMethod": "DELETE",
49793	//   "id": "compute.disks.delete",
49794	//   "parameterOrder": [
49795	//     "project",
49796	//     "zone",
49797	//     "disk"
49798	//   ],
49799	//   "parameters": {
49800	//     "disk": {
49801	//       "description": "Name of the persistent disk to delete.",
49802	//       "location": "path",
49803	//       "required": true,
49804	//       "type": "string"
49805	//     },
49806	//     "project": {
49807	//       "description": "Project ID for this request.",
49808	//       "location": "path",
49809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49810	//       "required": true,
49811	//       "type": "string"
49812	//     },
49813	//     "requestId": {
49814	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49815	//       "location": "query",
49816	//       "type": "string"
49817	//     },
49818	//     "zone": {
49819	//       "description": "The name of the zone for this request.",
49820	//       "location": "path",
49821	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49822	//       "required": true,
49823	//       "type": "string"
49824	//     }
49825	//   },
49826	//   "path": "{project}/zones/{zone}/disks/{disk}",
49827	//   "response": {
49828	//     "$ref": "Operation"
49829	//   },
49830	//   "scopes": [
49831	//     "https://www.googleapis.com/auth/cloud-platform",
49832	//     "https://www.googleapis.com/auth/compute"
49833	//   ]
49834	// }
49835
49836}
49837
49838// method id "compute.disks.get":
49839
49840type DisksGetCall struct {
49841	s            *Service
49842	project      string
49843	zone         string
49844	disk         string
49845	urlParams_   gensupport.URLParams
49846	ifNoneMatch_ string
49847	ctx_         context.Context
49848	header_      http.Header
49849}
49850
49851// Get: Returns a specified persistent disk. Gets a list of available
49852// persistent disks by making a list() request.
49853// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
49854func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
49855	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49856	c.project = project
49857	c.zone = zone
49858	c.disk = disk
49859	return c
49860}
49861
49862// Fields allows partial responses to be retrieved. See
49863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49864// for more information.
49865func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
49866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49867	return c
49868}
49869
49870// IfNoneMatch sets the optional parameter which makes the operation
49871// fail if the object's ETag matches the given value. This is useful for
49872// getting updates only after the object has changed since the last
49873// request. Use googleapi.IsNotModified to check whether the response
49874// error from Do is the result of In-None-Match.
49875func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
49876	c.ifNoneMatch_ = entityTag
49877	return c
49878}
49879
49880// Context sets the context to be used in this call's Do method. Any
49881// pending HTTP request will be aborted if the provided context is
49882// canceled.
49883func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
49884	c.ctx_ = ctx
49885	return c
49886}
49887
49888// Header returns an http.Header that can be modified by the caller to
49889// add HTTP headers to the request.
49890func (c *DisksGetCall) Header() http.Header {
49891	if c.header_ == nil {
49892		c.header_ = make(http.Header)
49893	}
49894	return c.header_
49895}
49896
49897func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
49898	reqHeaders := make(http.Header)
49899	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49900	for k, v := range c.header_ {
49901		reqHeaders[k] = v
49902	}
49903	reqHeaders.Set("User-Agent", c.s.userAgent())
49904	if c.ifNoneMatch_ != "" {
49905		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49906	}
49907	var body io.Reader = nil
49908	c.urlParams_.Set("alt", alt)
49909	c.urlParams_.Set("prettyPrint", "false")
49910	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
49911	urls += "?" + c.urlParams_.Encode()
49912	req, err := http.NewRequest("GET", urls, body)
49913	if err != nil {
49914		return nil, err
49915	}
49916	req.Header = reqHeaders
49917	googleapi.Expand(req.URL, map[string]string{
49918		"project": c.project,
49919		"zone":    c.zone,
49920		"disk":    c.disk,
49921	})
49922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49923}
49924
49925// Do executes the "compute.disks.get" call.
49926// Exactly one of *Disk or error will be non-nil. Any non-2xx status
49927// code is an error. Response headers are in either
49928// *Disk.ServerResponse.Header or (if a response was returned at all) in
49929// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
49930// whether the returned error was because http.StatusNotModified was
49931// returned.
49932func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
49933	gensupport.SetOptions(c.urlParams_, opts...)
49934	res, err := c.doRequest("json")
49935	if res != nil && res.StatusCode == http.StatusNotModified {
49936		if res.Body != nil {
49937			res.Body.Close()
49938		}
49939		return nil, &googleapi.Error{
49940			Code:   res.StatusCode,
49941			Header: res.Header,
49942		}
49943	}
49944	if err != nil {
49945		return nil, err
49946	}
49947	defer googleapi.CloseBody(res)
49948	if err := googleapi.CheckResponse(res); err != nil {
49949		return nil, err
49950	}
49951	ret := &Disk{
49952		ServerResponse: googleapi.ServerResponse{
49953			Header:         res.Header,
49954			HTTPStatusCode: res.StatusCode,
49955		},
49956	}
49957	target := &ret
49958	if err := gensupport.DecodeResponse(target, res); err != nil {
49959		return nil, err
49960	}
49961	return ret, nil
49962	// {
49963	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
49964	//   "httpMethod": "GET",
49965	//   "id": "compute.disks.get",
49966	//   "parameterOrder": [
49967	//     "project",
49968	//     "zone",
49969	//     "disk"
49970	//   ],
49971	//   "parameters": {
49972	//     "disk": {
49973	//       "description": "Name of the persistent disk to return.",
49974	//       "location": "path",
49975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49976	//       "required": true,
49977	//       "type": "string"
49978	//     },
49979	//     "project": {
49980	//       "description": "Project ID for this request.",
49981	//       "location": "path",
49982	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49983	//       "required": true,
49984	//       "type": "string"
49985	//     },
49986	//     "zone": {
49987	//       "description": "The name of the zone for this request.",
49988	//       "location": "path",
49989	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49990	//       "required": true,
49991	//       "type": "string"
49992	//     }
49993	//   },
49994	//   "path": "{project}/zones/{zone}/disks/{disk}",
49995	//   "response": {
49996	//     "$ref": "Disk"
49997	//   },
49998	//   "scopes": [
49999	//     "https://www.googleapis.com/auth/cloud-platform",
50000	//     "https://www.googleapis.com/auth/compute",
50001	//     "https://www.googleapis.com/auth/compute.readonly"
50002	//   ]
50003	// }
50004
50005}
50006
50007// method id "compute.disks.getIamPolicy":
50008
50009type DisksGetIamPolicyCall struct {
50010	s            *Service
50011	project      string
50012	zone         string
50013	resource     string
50014	urlParams_   gensupport.URLParams
50015	ifNoneMatch_ string
50016	ctx_         context.Context
50017	header_      http.Header
50018}
50019
50020// GetIamPolicy: Gets the access control policy for a resource. May be
50021// empty if no such policy or resource exists.
50022func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
50023	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50024	c.project = project
50025	c.zone = zone
50026	c.resource = resource
50027	return c
50028}
50029
50030// Fields allows partial responses to be retrieved. See
50031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50032// for more information.
50033func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
50034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50035	return c
50036}
50037
50038// IfNoneMatch sets the optional parameter which makes the operation
50039// fail if the object's ETag matches the given value. This is useful for
50040// getting updates only after the object has changed since the last
50041// request. Use googleapi.IsNotModified to check whether the response
50042// error from Do is the result of In-None-Match.
50043func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
50044	c.ifNoneMatch_ = entityTag
50045	return c
50046}
50047
50048// Context sets the context to be used in this call's Do method. Any
50049// pending HTTP request will be aborted if the provided context is
50050// canceled.
50051func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
50052	c.ctx_ = ctx
50053	return c
50054}
50055
50056// Header returns an http.Header that can be modified by the caller to
50057// add HTTP headers to the request.
50058func (c *DisksGetIamPolicyCall) Header() http.Header {
50059	if c.header_ == nil {
50060		c.header_ = make(http.Header)
50061	}
50062	return c.header_
50063}
50064
50065func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
50066	reqHeaders := make(http.Header)
50067	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50068	for k, v := range c.header_ {
50069		reqHeaders[k] = v
50070	}
50071	reqHeaders.Set("User-Agent", c.s.userAgent())
50072	if c.ifNoneMatch_ != "" {
50073		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50074	}
50075	var body io.Reader = nil
50076	c.urlParams_.Set("alt", alt)
50077	c.urlParams_.Set("prettyPrint", "false")
50078	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/getIamPolicy")
50079	urls += "?" + c.urlParams_.Encode()
50080	req, err := http.NewRequest("GET", urls, body)
50081	if err != nil {
50082		return nil, err
50083	}
50084	req.Header = reqHeaders
50085	googleapi.Expand(req.URL, map[string]string{
50086		"project":  c.project,
50087		"zone":     c.zone,
50088		"resource": c.resource,
50089	})
50090	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50091}
50092
50093// Do executes the "compute.disks.getIamPolicy" call.
50094// Exactly one of *Policy or error will be non-nil. Any non-2xx status
50095// code is an error. Response headers are in either
50096// *Policy.ServerResponse.Header or (if a response was returned at all)
50097// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
50098// check whether the returned error was because http.StatusNotModified
50099// was returned.
50100func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
50101	gensupport.SetOptions(c.urlParams_, opts...)
50102	res, err := c.doRequest("json")
50103	if res != nil && res.StatusCode == http.StatusNotModified {
50104		if res.Body != nil {
50105			res.Body.Close()
50106		}
50107		return nil, &googleapi.Error{
50108			Code:   res.StatusCode,
50109			Header: res.Header,
50110		}
50111	}
50112	if err != nil {
50113		return nil, err
50114	}
50115	defer googleapi.CloseBody(res)
50116	if err := googleapi.CheckResponse(res); err != nil {
50117		return nil, err
50118	}
50119	ret := &Policy{
50120		ServerResponse: googleapi.ServerResponse{
50121			Header:         res.Header,
50122			HTTPStatusCode: res.StatusCode,
50123		},
50124	}
50125	target := &ret
50126	if err := gensupport.DecodeResponse(target, res); err != nil {
50127		return nil, err
50128	}
50129	return ret, nil
50130	// {
50131	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
50132	//   "httpMethod": "GET",
50133	//   "id": "compute.disks.getIamPolicy",
50134	//   "parameterOrder": [
50135	//     "project",
50136	//     "zone",
50137	//     "resource"
50138	//   ],
50139	//   "parameters": {
50140	//     "project": {
50141	//       "description": "Project ID for this request.",
50142	//       "location": "path",
50143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50144	//       "required": true,
50145	//       "type": "string"
50146	//     },
50147	//     "resource": {
50148	//       "description": "Name or id of the resource for this request.",
50149	//       "location": "path",
50150	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50151	//       "required": true,
50152	//       "type": "string"
50153	//     },
50154	//     "zone": {
50155	//       "description": "The name of the zone for this request.",
50156	//       "location": "path",
50157	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50158	//       "required": true,
50159	//       "type": "string"
50160	//     }
50161	//   },
50162	//   "path": "{project}/zones/{zone}/disks/{resource}/getIamPolicy",
50163	//   "response": {
50164	//     "$ref": "Policy"
50165	//   },
50166	//   "scopes": [
50167	//     "https://www.googleapis.com/auth/cloud-platform",
50168	//     "https://www.googleapis.com/auth/compute",
50169	//     "https://www.googleapis.com/auth/compute.readonly"
50170	//   ]
50171	// }
50172
50173}
50174
50175// method id "compute.disks.insert":
50176
50177type DisksInsertCall struct {
50178	s          *Service
50179	project    string
50180	zone       string
50181	disk       *Disk
50182	urlParams_ gensupport.URLParams
50183	ctx_       context.Context
50184	header_    http.Header
50185}
50186
50187// Insert: Creates a persistent disk in the specified project using the
50188// data in the request. You can create a disk with a sourceImage, a
50189// sourceSnapshot, or create an empty 500 GB data disk by omitting all
50190// properties. You can also create a disk that is larger than the
50191// default size by specifying the sizeGb property.
50192// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
50193func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
50194	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50195	c.project = project
50196	c.zone = zone
50197	c.disk = disk
50198	return c
50199}
50200
50201// RequestId sets the optional parameter "requestId": An optional
50202// request ID to identify requests. Specify a unique request ID so that
50203// if you must retry your request, the server will know to ignore the
50204// request if it has already been completed.
50205//
50206// For example, consider a situation where you make an initial request
50207// and the request times out. If you make the request again with the
50208// same request ID, the server can check if original operation with the
50209// same request ID was received, and if so, will ignore the second
50210// request. This prevents clients from accidentally creating duplicate
50211// commitments.
50212//
50213// The request ID must be a valid UUID with the exception that zero UUID
50214// is not supported (00000000-0000-0000-0000-000000000000).
50215func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
50216	c.urlParams_.Set("requestId", requestId)
50217	return c
50218}
50219
50220// SourceImage sets the optional parameter "sourceImage": Source image
50221// to restore onto a disk.
50222func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
50223	c.urlParams_.Set("sourceImage", sourceImage)
50224	return c
50225}
50226
50227// Fields allows partial responses to be retrieved. See
50228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50229// for more information.
50230func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
50231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50232	return c
50233}
50234
50235// Context sets the context to be used in this call's Do method. Any
50236// pending HTTP request will be aborted if the provided context is
50237// canceled.
50238func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
50239	c.ctx_ = ctx
50240	return c
50241}
50242
50243// Header returns an http.Header that can be modified by the caller to
50244// add HTTP headers to the request.
50245func (c *DisksInsertCall) Header() http.Header {
50246	if c.header_ == nil {
50247		c.header_ = make(http.Header)
50248	}
50249	return c.header_
50250}
50251
50252func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
50253	reqHeaders := make(http.Header)
50254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50255	for k, v := range c.header_ {
50256		reqHeaders[k] = v
50257	}
50258	reqHeaders.Set("User-Agent", c.s.userAgent())
50259	var body io.Reader = nil
50260	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
50261	if err != nil {
50262		return nil, err
50263	}
50264	reqHeaders.Set("Content-Type", "application/json")
50265	c.urlParams_.Set("alt", alt)
50266	c.urlParams_.Set("prettyPrint", "false")
50267	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
50268	urls += "?" + c.urlParams_.Encode()
50269	req, err := http.NewRequest("POST", urls, body)
50270	if err != nil {
50271		return nil, err
50272	}
50273	req.Header = reqHeaders
50274	googleapi.Expand(req.URL, map[string]string{
50275		"project": c.project,
50276		"zone":    c.zone,
50277	})
50278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50279}
50280
50281// Do executes the "compute.disks.insert" call.
50282// Exactly one of *Operation or error will be non-nil. Any non-2xx
50283// status code is an error. Response headers are in either
50284// *Operation.ServerResponse.Header or (if a response was returned at
50285// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50286// to check whether the returned error was because
50287// http.StatusNotModified was returned.
50288func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50289	gensupport.SetOptions(c.urlParams_, opts...)
50290	res, err := c.doRequest("json")
50291	if res != nil && res.StatusCode == http.StatusNotModified {
50292		if res.Body != nil {
50293			res.Body.Close()
50294		}
50295		return nil, &googleapi.Error{
50296			Code:   res.StatusCode,
50297			Header: res.Header,
50298		}
50299	}
50300	if err != nil {
50301		return nil, err
50302	}
50303	defer googleapi.CloseBody(res)
50304	if err := googleapi.CheckResponse(res); err != nil {
50305		return nil, err
50306	}
50307	ret := &Operation{
50308		ServerResponse: googleapi.ServerResponse{
50309			Header:         res.Header,
50310			HTTPStatusCode: res.StatusCode,
50311		},
50312	}
50313	target := &ret
50314	if err := gensupport.DecodeResponse(target, res); err != nil {
50315		return nil, err
50316	}
50317	return ret, nil
50318	// {
50319	//   "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.",
50320	//   "httpMethod": "POST",
50321	//   "id": "compute.disks.insert",
50322	//   "parameterOrder": [
50323	//     "project",
50324	//     "zone"
50325	//   ],
50326	//   "parameters": {
50327	//     "project": {
50328	//       "description": "Project ID for this request.",
50329	//       "location": "path",
50330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50331	//       "required": true,
50332	//       "type": "string"
50333	//     },
50334	//     "requestId": {
50335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50336	//       "location": "query",
50337	//       "type": "string"
50338	//     },
50339	//     "sourceImage": {
50340	//       "description": "Optional. Source image to restore onto a disk.",
50341	//       "location": "query",
50342	//       "type": "string"
50343	//     },
50344	//     "zone": {
50345	//       "description": "The name of the zone for this request.",
50346	//       "location": "path",
50347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50348	//       "required": true,
50349	//       "type": "string"
50350	//     }
50351	//   },
50352	//   "path": "{project}/zones/{zone}/disks",
50353	//   "request": {
50354	//     "$ref": "Disk"
50355	//   },
50356	//   "response": {
50357	//     "$ref": "Operation"
50358	//   },
50359	//   "scopes": [
50360	//     "https://www.googleapis.com/auth/cloud-platform",
50361	//     "https://www.googleapis.com/auth/compute"
50362	//   ]
50363	// }
50364
50365}
50366
50367// method id "compute.disks.list":
50368
50369type DisksListCall struct {
50370	s            *Service
50371	project      string
50372	zone         string
50373	urlParams_   gensupport.URLParams
50374	ifNoneMatch_ string
50375	ctx_         context.Context
50376	header_      http.Header
50377}
50378
50379// List: Retrieves a list of persistent disks contained within the
50380// specified zone.
50381// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
50382func (r *DisksService) List(project string, zone string) *DisksListCall {
50383	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50384	c.project = project
50385	c.zone = zone
50386	return c
50387}
50388
50389// Filter sets the optional parameter "filter": A filter expression that
50390// filters resources listed in the response. The expression must specify
50391// the field name, a comparison operator, and the value that you want to
50392// use for filtering. The value must be a string, a number, or a
50393// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50394// `<`.
50395//
50396// For example, if you are filtering Compute Engine instances, you can
50397// exclude instances named `example-instance` by specifying `name !=
50398// example-instance`.
50399//
50400// You can also filter nested fields. For example, you could specify
50401// `scheduling.automaticRestart = false` to include instances only if
50402// they are not scheduled for automatic restarts. You can use filtering
50403// on nested fields to filter based on resource labels.
50404//
50405// To filter on multiple expressions, provide each separate expression
50406// within parentheses. For example: ``` (scheduling.automaticRestart =
50407// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50408// is an `AND` expression. However, you can include `AND` and `OR`
50409// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50410// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50411// (scheduling.automaticRestart = true) ```
50412func (c *DisksListCall) Filter(filter string) *DisksListCall {
50413	c.urlParams_.Set("filter", filter)
50414	return c
50415}
50416
50417// MaxResults sets the optional parameter "maxResults": The maximum
50418// number of results per page that should be returned. If the number of
50419// available results is larger than `maxResults`, Compute Engine returns
50420// a `nextPageToken` that can be used to get the next page of results in
50421// subsequent list requests. Acceptable values are `0` to `500`,
50422// inclusive. (Default: `500`)
50423func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
50424	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50425	return c
50426}
50427
50428// OrderBy sets the optional parameter "orderBy": Sorts list results by
50429// a certain order. By default, results are returned in alphanumerical
50430// order based on the resource name.
50431//
50432// You can also sort results in descending order based on the creation
50433// timestamp using `orderBy="creationTimestamp desc". This sorts
50434// results based on the `creationTimestamp` field in reverse
50435// chronological order (newest result first). Use this to sort resources
50436// like operations so that the newest operation is returned
50437// first.
50438//
50439// Currently, only sorting by `name` or `creationTimestamp desc` is
50440// supported.
50441func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
50442	c.urlParams_.Set("orderBy", orderBy)
50443	return c
50444}
50445
50446// PageToken sets the optional parameter "pageToken": Specifies a page
50447// token to use. Set `pageToken` to the `nextPageToken` returned by a
50448// previous list request to get the next page of results.
50449func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
50450	c.urlParams_.Set("pageToken", pageToken)
50451	return c
50452}
50453
50454// Fields allows partial responses to be retrieved. See
50455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50456// for more information.
50457func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
50458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50459	return c
50460}
50461
50462// IfNoneMatch sets the optional parameter which makes the operation
50463// fail if the object's ETag matches the given value. This is useful for
50464// getting updates only after the object has changed since the last
50465// request. Use googleapi.IsNotModified to check whether the response
50466// error from Do is the result of In-None-Match.
50467func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
50468	c.ifNoneMatch_ = entityTag
50469	return c
50470}
50471
50472// Context sets the context to be used in this call's Do method. Any
50473// pending HTTP request will be aborted if the provided context is
50474// canceled.
50475func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
50476	c.ctx_ = ctx
50477	return c
50478}
50479
50480// Header returns an http.Header that can be modified by the caller to
50481// add HTTP headers to the request.
50482func (c *DisksListCall) Header() http.Header {
50483	if c.header_ == nil {
50484		c.header_ = make(http.Header)
50485	}
50486	return c.header_
50487}
50488
50489func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
50490	reqHeaders := make(http.Header)
50491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50492	for k, v := range c.header_ {
50493		reqHeaders[k] = v
50494	}
50495	reqHeaders.Set("User-Agent", c.s.userAgent())
50496	if c.ifNoneMatch_ != "" {
50497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50498	}
50499	var body io.Reader = nil
50500	c.urlParams_.Set("alt", alt)
50501	c.urlParams_.Set("prettyPrint", "false")
50502	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
50503	urls += "?" + c.urlParams_.Encode()
50504	req, err := http.NewRequest("GET", urls, body)
50505	if err != nil {
50506		return nil, err
50507	}
50508	req.Header = reqHeaders
50509	googleapi.Expand(req.URL, map[string]string{
50510		"project": c.project,
50511		"zone":    c.zone,
50512	})
50513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50514}
50515
50516// Do executes the "compute.disks.list" call.
50517// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
50518// code is an error. Response headers are in either
50519// *DiskList.ServerResponse.Header or (if a response was returned at
50520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50521// to check whether the returned error was because
50522// http.StatusNotModified was returned.
50523func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
50524	gensupport.SetOptions(c.urlParams_, opts...)
50525	res, err := c.doRequest("json")
50526	if res != nil && res.StatusCode == http.StatusNotModified {
50527		if res.Body != nil {
50528			res.Body.Close()
50529		}
50530		return nil, &googleapi.Error{
50531			Code:   res.StatusCode,
50532			Header: res.Header,
50533		}
50534	}
50535	if err != nil {
50536		return nil, err
50537	}
50538	defer googleapi.CloseBody(res)
50539	if err := googleapi.CheckResponse(res); err != nil {
50540		return nil, err
50541	}
50542	ret := &DiskList{
50543		ServerResponse: googleapi.ServerResponse{
50544			Header:         res.Header,
50545			HTTPStatusCode: res.StatusCode,
50546		},
50547	}
50548	target := &ret
50549	if err := gensupport.DecodeResponse(target, res); err != nil {
50550		return nil, err
50551	}
50552	return ret, nil
50553	// {
50554	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
50555	//   "httpMethod": "GET",
50556	//   "id": "compute.disks.list",
50557	//   "parameterOrder": [
50558	//     "project",
50559	//     "zone"
50560	//   ],
50561	//   "parameters": {
50562	//     "filter": {
50563	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
50564	//       "location": "query",
50565	//       "type": "string"
50566	//     },
50567	//     "maxResults": {
50568	//       "default": "500",
50569	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50570	//       "format": "uint32",
50571	//       "location": "query",
50572	//       "minimum": "0",
50573	//       "type": "integer"
50574	//     },
50575	//     "orderBy": {
50576	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50577	//       "location": "query",
50578	//       "type": "string"
50579	//     },
50580	//     "pageToken": {
50581	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50582	//       "location": "query",
50583	//       "type": "string"
50584	//     },
50585	//     "project": {
50586	//       "description": "Project ID for this request.",
50587	//       "location": "path",
50588	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50589	//       "required": true,
50590	//       "type": "string"
50591	//     },
50592	//     "zone": {
50593	//       "description": "The name of the zone for this request.",
50594	//       "location": "path",
50595	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50596	//       "required": true,
50597	//       "type": "string"
50598	//     }
50599	//   },
50600	//   "path": "{project}/zones/{zone}/disks",
50601	//   "response": {
50602	//     "$ref": "DiskList"
50603	//   },
50604	//   "scopes": [
50605	//     "https://www.googleapis.com/auth/cloud-platform",
50606	//     "https://www.googleapis.com/auth/compute",
50607	//     "https://www.googleapis.com/auth/compute.readonly"
50608	//   ]
50609	// }
50610
50611}
50612
50613// Pages invokes f for each page of results.
50614// A non-nil error returned from f will halt the iteration.
50615// The provided context supersedes any context provided to the Context method.
50616func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
50617	c.ctx_ = ctx
50618	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50619	for {
50620		x, err := c.Do()
50621		if err != nil {
50622			return err
50623		}
50624		if err := f(x); err != nil {
50625			return err
50626		}
50627		if x.NextPageToken == "" {
50628			return nil
50629		}
50630		c.PageToken(x.NextPageToken)
50631	}
50632}
50633
50634// method id "compute.disks.removeResourcePolicies":
50635
50636type DisksRemoveResourcePoliciesCall struct {
50637	s                                  *Service
50638	project                            string
50639	zone                               string
50640	disk                               string
50641	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
50642	urlParams_                         gensupport.URLParams
50643	ctx_                               context.Context
50644	header_                            http.Header
50645}
50646
50647// RemoveResourcePolicies: Removes resource policies from a disk.
50648func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
50649	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50650	c.project = project
50651	c.zone = zone
50652	c.disk = disk
50653	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
50654	return c
50655}
50656
50657// RequestId sets the optional parameter "requestId": An optional
50658// request ID to identify requests. Specify a unique request ID so that
50659// if you must retry your request, the server will know to ignore the
50660// request if it has already been completed.
50661//
50662// For example, consider a situation where you make an initial request
50663// and the request times out. If you make the request again with the
50664// same request ID, the server can check if original operation with the
50665// same request ID was received, and if so, will ignore the second
50666// request. This prevents clients from accidentally creating duplicate
50667// commitments.
50668//
50669// The request ID must be a valid UUID with the exception that zero UUID
50670// is not supported (00000000-0000-0000-0000-000000000000).
50671func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
50672	c.urlParams_.Set("requestId", requestId)
50673	return c
50674}
50675
50676// Fields allows partial responses to be retrieved. See
50677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50678// for more information.
50679func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
50680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50681	return c
50682}
50683
50684// Context sets the context to be used in this call's Do method. Any
50685// pending HTTP request will be aborted if the provided context is
50686// canceled.
50687func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
50688	c.ctx_ = ctx
50689	return c
50690}
50691
50692// Header returns an http.Header that can be modified by the caller to
50693// add HTTP headers to the request.
50694func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
50695	if c.header_ == nil {
50696		c.header_ = make(http.Header)
50697	}
50698	return c.header_
50699}
50700
50701func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
50702	reqHeaders := make(http.Header)
50703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50704	for k, v := range c.header_ {
50705		reqHeaders[k] = v
50706	}
50707	reqHeaders.Set("User-Agent", c.s.userAgent())
50708	var body io.Reader = nil
50709	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
50710	if err != nil {
50711		return nil, err
50712	}
50713	reqHeaders.Set("Content-Type", "application/json")
50714	c.urlParams_.Set("alt", alt)
50715	c.urlParams_.Set("prettyPrint", "false")
50716	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
50717	urls += "?" + c.urlParams_.Encode()
50718	req, err := http.NewRequest("POST", urls, body)
50719	if err != nil {
50720		return nil, err
50721	}
50722	req.Header = reqHeaders
50723	googleapi.Expand(req.URL, map[string]string{
50724		"project": c.project,
50725		"zone":    c.zone,
50726		"disk":    c.disk,
50727	})
50728	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50729}
50730
50731// Do executes the "compute.disks.removeResourcePolicies" call.
50732// Exactly one of *Operation or error will be non-nil. Any non-2xx
50733// status code is an error. Response headers are in either
50734// *Operation.ServerResponse.Header or (if a response was returned at
50735// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50736// to check whether the returned error was because
50737// http.StatusNotModified was returned.
50738func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50739	gensupport.SetOptions(c.urlParams_, opts...)
50740	res, err := c.doRequest("json")
50741	if res != nil && res.StatusCode == http.StatusNotModified {
50742		if res.Body != nil {
50743			res.Body.Close()
50744		}
50745		return nil, &googleapi.Error{
50746			Code:   res.StatusCode,
50747			Header: res.Header,
50748		}
50749	}
50750	if err != nil {
50751		return nil, err
50752	}
50753	defer googleapi.CloseBody(res)
50754	if err := googleapi.CheckResponse(res); err != nil {
50755		return nil, err
50756	}
50757	ret := &Operation{
50758		ServerResponse: googleapi.ServerResponse{
50759			Header:         res.Header,
50760			HTTPStatusCode: res.StatusCode,
50761		},
50762	}
50763	target := &ret
50764	if err := gensupport.DecodeResponse(target, res); err != nil {
50765		return nil, err
50766	}
50767	return ret, nil
50768	// {
50769	//   "description": "Removes resource policies from a disk.",
50770	//   "httpMethod": "POST",
50771	//   "id": "compute.disks.removeResourcePolicies",
50772	//   "parameterOrder": [
50773	//     "project",
50774	//     "zone",
50775	//     "disk"
50776	//   ],
50777	//   "parameters": {
50778	//     "disk": {
50779	//       "description": "The disk name for this request.",
50780	//       "location": "path",
50781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50782	//       "required": true,
50783	//       "type": "string"
50784	//     },
50785	//     "project": {
50786	//       "description": "Project ID for this request.",
50787	//       "location": "path",
50788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50789	//       "required": true,
50790	//       "type": "string"
50791	//     },
50792	//     "requestId": {
50793	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50794	//       "location": "query",
50795	//       "type": "string"
50796	//     },
50797	//     "zone": {
50798	//       "description": "The name of the zone for this request.",
50799	//       "location": "path",
50800	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50801	//       "required": true,
50802	//       "type": "string"
50803	//     }
50804	//   },
50805	//   "path": "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
50806	//   "request": {
50807	//     "$ref": "DisksRemoveResourcePoliciesRequest"
50808	//   },
50809	//   "response": {
50810	//     "$ref": "Operation"
50811	//   },
50812	//   "scopes": [
50813	//     "https://www.googleapis.com/auth/cloud-platform",
50814	//     "https://www.googleapis.com/auth/compute"
50815	//   ]
50816	// }
50817
50818}
50819
50820// method id "compute.disks.resize":
50821
50822type DisksResizeCall struct {
50823	s                  *Service
50824	project            string
50825	zone               string
50826	disk               string
50827	disksresizerequest *DisksResizeRequest
50828	urlParams_         gensupport.URLParams
50829	ctx_               context.Context
50830	header_            http.Header
50831}
50832
50833// Resize: Resizes the specified persistent disk. You can only increase
50834// the size of the disk.
50835func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
50836	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50837	c.project = project
50838	c.zone = zone
50839	c.disk = disk
50840	c.disksresizerequest = disksresizerequest
50841	return c
50842}
50843
50844// RequestId sets the optional parameter "requestId": An optional
50845// request ID to identify requests. Specify a unique request ID so that
50846// if you must retry your request, the server will know to ignore the
50847// request if it has already been completed.
50848//
50849// For example, consider a situation where you make an initial request
50850// and the request times out. If you make the request again with the
50851// same request ID, the server can check if original operation with the
50852// same request ID was received, and if so, will ignore the second
50853// request. This prevents clients from accidentally creating duplicate
50854// commitments.
50855//
50856// The request ID must be a valid UUID with the exception that zero UUID
50857// is not supported (00000000-0000-0000-0000-000000000000).
50858func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
50859	c.urlParams_.Set("requestId", requestId)
50860	return c
50861}
50862
50863// Fields allows partial responses to be retrieved. See
50864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50865// for more information.
50866func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
50867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50868	return c
50869}
50870
50871// Context sets the context to be used in this call's Do method. Any
50872// pending HTTP request will be aborted if the provided context is
50873// canceled.
50874func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
50875	c.ctx_ = ctx
50876	return c
50877}
50878
50879// Header returns an http.Header that can be modified by the caller to
50880// add HTTP headers to the request.
50881func (c *DisksResizeCall) Header() http.Header {
50882	if c.header_ == nil {
50883		c.header_ = make(http.Header)
50884	}
50885	return c.header_
50886}
50887
50888func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
50889	reqHeaders := make(http.Header)
50890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50891	for k, v := range c.header_ {
50892		reqHeaders[k] = v
50893	}
50894	reqHeaders.Set("User-Agent", c.s.userAgent())
50895	var body io.Reader = nil
50896	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
50897	if err != nil {
50898		return nil, err
50899	}
50900	reqHeaders.Set("Content-Type", "application/json")
50901	c.urlParams_.Set("alt", alt)
50902	c.urlParams_.Set("prettyPrint", "false")
50903	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
50904	urls += "?" + c.urlParams_.Encode()
50905	req, err := http.NewRequest("POST", urls, body)
50906	if err != nil {
50907		return nil, err
50908	}
50909	req.Header = reqHeaders
50910	googleapi.Expand(req.URL, map[string]string{
50911		"project": c.project,
50912		"zone":    c.zone,
50913		"disk":    c.disk,
50914	})
50915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50916}
50917
50918// Do executes the "compute.disks.resize" call.
50919// Exactly one of *Operation or error will be non-nil. Any non-2xx
50920// status code is an error. Response headers are in either
50921// *Operation.ServerResponse.Header or (if a response was returned at
50922// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50923// to check whether the returned error was because
50924// http.StatusNotModified was returned.
50925func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50926	gensupport.SetOptions(c.urlParams_, opts...)
50927	res, err := c.doRequest("json")
50928	if res != nil && res.StatusCode == http.StatusNotModified {
50929		if res.Body != nil {
50930			res.Body.Close()
50931		}
50932		return nil, &googleapi.Error{
50933			Code:   res.StatusCode,
50934			Header: res.Header,
50935		}
50936	}
50937	if err != nil {
50938		return nil, err
50939	}
50940	defer googleapi.CloseBody(res)
50941	if err := googleapi.CheckResponse(res); err != nil {
50942		return nil, err
50943	}
50944	ret := &Operation{
50945		ServerResponse: googleapi.ServerResponse{
50946			Header:         res.Header,
50947			HTTPStatusCode: res.StatusCode,
50948		},
50949	}
50950	target := &ret
50951	if err := gensupport.DecodeResponse(target, res); err != nil {
50952		return nil, err
50953	}
50954	return ret, nil
50955	// {
50956	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
50957	//   "httpMethod": "POST",
50958	//   "id": "compute.disks.resize",
50959	//   "parameterOrder": [
50960	//     "project",
50961	//     "zone",
50962	//     "disk"
50963	//   ],
50964	//   "parameters": {
50965	//     "disk": {
50966	//       "description": "The name of the persistent disk.",
50967	//       "location": "path",
50968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50969	//       "required": true,
50970	//       "type": "string"
50971	//     },
50972	//     "project": {
50973	//       "description": "Project ID for this request.",
50974	//       "location": "path",
50975	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50976	//       "required": true,
50977	//       "type": "string"
50978	//     },
50979	//     "requestId": {
50980	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50981	//       "location": "query",
50982	//       "type": "string"
50983	//     },
50984	//     "zone": {
50985	//       "description": "The name of the zone for this request.",
50986	//       "location": "path",
50987	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50988	//       "required": true,
50989	//       "type": "string"
50990	//     }
50991	//   },
50992	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
50993	//   "request": {
50994	//     "$ref": "DisksResizeRequest"
50995	//   },
50996	//   "response": {
50997	//     "$ref": "Operation"
50998	//   },
50999	//   "scopes": [
51000	//     "https://www.googleapis.com/auth/cloud-platform",
51001	//     "https://www.googleapis.com/auth/compute"
51002	//   ]
51003	// }
51004
51005}
51006
51007// method id "compute.disks.setIamPolicy":
51008
51009type DisksSetIamPolicyCall struct {
51010	s                    *Service
51011	project              string
51012	zone                 string
51013	resource             string
51014	zonesetpolicyrequest *ZoneSetPolicyRequest
51015	urlParams_           gensupport.URLParams
51016	ctx_                 context.Context
51017	header_              http.Header
51018}
51019
51020// SetIamPolicy: Sets the access control policy on the specified
51021// resource. Replaces any existing policy.
51022func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
51023	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51024	c.project = project
51025	c.zone = zone
51026	c.resource = resource
51027	c.zonesetpolicyrequest = zonesetpolicyrequest
51028	return c
51029}
51030
51031// Fields allows partial responses to be retrieved. See
51032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51033// for more information.
51034func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
51035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51036	return c
51037}
51038
51039// Context sets the context to be used in this call's Do method. Any
51040// pending HTTP request will be aborted if the provided context is
51041// canceled.
51042func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
51043	c.ctx_ = ctx
51044	return c
51045}
51046
51047// Header returns an http.Header that can be modified by the caller to
51048// add HTTP headers to the request.
51049func (c *DisksSetIamPolicyCall) Header() http.Header {
51050	if c.header_ == nil {
51051		c.header_ = make(http.Header)
51052	}
51053	return c.header_
51054}
51055
51056func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
51057	reqHeaders := make(http.Header)
51058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51059	for k, v := range c.header_ {
51060		reqHeaders[k] = v
51061	}
51062	reqHeaders.Set("User-Agent", c.s.userAgent())
51063	var body io.Reader = nil
51064	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
51065	if err != nil {
51066		return nil, err
51067	}
51068	reqHeaders.Set("Content-Type", "application/json")
51069	c.urlParams_.Set("alt", alt)
51070	c.urlParams_.Set("prettyPrint", "false")
51071	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setIamPolicy")
51072	urls += "?" + c.urlParams_.Encode()
51073	req, err := http.NewRequest("POST", urls, body)
51074	if err != nil {
51075		return nil, err
51076	}
51077	req.Header = reqHeaders
51078	googleapi.Expand(req.URL, map[string]string{
51079		"project":  c.project,
51080		"zone":     c.zone,
51081		"resource": c.resource,
51082	})
51083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51084}
51085
51086// Do executes the "compute.disks.setIamPolicy" call.
51087// Exactly one of *Policy or error will be non-nil. Any non-2xx status
51088// code is an error. Response headers are in either
51089// *Policy.ServerResponse.Header or (if a response was returned at all)
51090// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
51091// check whether the returned error was because http.StatusNotModified
51092// was returned.
51093func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
51094	gensupport.SetOptions(c.urlParams_, opts...)
51095	res, err := c.doRequest("json")
51096	if res != nil && res.StatusCode == http.StatusNotModified {
51097		if res.Body != nil {
51098			res.Body.Close()
51099		}
51100		return nil, &googleapi.Error{
51101			Code:   res.StatusCode,
51102			Header: res.Header,
51103		}
51104	}
51105	if err != nil {
51106		return nil, err
51107	}
51108	defer googleapi.CloseBody(res)
51109	if err := googleapi.CheckResponse(res); err != nil {
51110		return nil, err
51111	}
51112	ret := &Policy{
51113		ServerResponse: googleapi.ServerResponse{
51114			Header:         res.Header,
51115			HTTPStatusCode: res.StatusCode,
51116		},
51117	}
51118	target := &ret
51119	if err := gensupport.DecodeResponse(target, res); err != nil {
51120		return nil, err
51121	}
51122	return ret, nil
51123	// {
51124	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
51125	//   "httpMethod": "POST",
51126	//   "id": "compute.disks.setIamPolicy",
51127	//   "parameterOrder": [
51128	//     "project",
51129	//     "zone",
51130	//     "resource"
51131	//   ],
51132	//   "parameters": {
51133	//     "project": {
51134	//       "description": "Project ID for this request.",
51135	//       "location": "path",
51136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51137	//       "required": true,
51138	//       "type": "string"
51139	//     },
51140	//     "resource": {
51141	//       "description": "Name or id of the resource for this request.",
51142	//       "location": "path",
51143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51144	//       "required": true,
51145	//       "type": "string"
51146	//     },
51147	//     "zone": {
51148	//       "description": "The name of the zone for this request.",
51149	//       "location": "path",
51150	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51151	//       "required": true,
51152	//       "type": "string"
51153	//     }
51154	//   },
51155	//   "path": "{project}/zones/{zone}/disks/{resource}/setIamPolicy",
51156	//   "request": {
51157	//     "$ref": "ZoneSetPolicyRequest"
51158	//   },
51159	//   "response": {
51160	//     "$ref": "Policy"
51161	//   },
51162	//   "scopes": [
51163	//     "https://www.googleapis.com/auth/cloud-platform",
51164	//     "https://www.googleapis.com/auth/compute"
51165	//   ]
51166	// }
51167
51168}
51169
51170// method id "compute.disks.setLabels":
51171
51172type DisksSetLabelsCall struct {
51173	s                    *Service
51174	project              string
51175	zone                 string
51176	resource             string
51177	zonesetlabelsrequest *ZoneSetLabelsRequest
51178	urlParams_           gensupport.URLParams
51179	ctx_                 context.Context
51180	header_              http.Header
51181}
51182
51183// SetLabels: Sets the labels on a disk. To learn more about labels,
51184// read the Labeling Resources documentation.
51185func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
51186	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51187	c.project = project
51188	c.zone = zone
51189	c.resource = resource
51190	c.zonesetlabelsrequest = zonesetlabelsrequest
51191	return c
51192}
51193
51194// RequestId sets the optional parameter "requestId": An optional
51195// request ID to identify requests. Specify a unique request ID so that
51196// if you must retry your request, the server will know to ignore the
51197// request if it has already been completed.
51198//
51199// For example, consider a situation where you make an initial request
51200// and the request times out. If you make the request again with the
51201// same request ID, the server can check if original operation with the
51202// same request ID was received, and if so, will ignore the second
51203// request. This prevents clients from accidentally creating duplicate
51204// commitments.
51205//
51206// The request ID must be a valid UUID with the exception that zero UUID
51207// is not supported (00000000-0000-0000-0000-000000000000).
51208func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
51209	c.urlParams_.Set("requestId", requestId)
51210	return c
51211}
51212
51213// Fields allows partial responses to be retrieved. See
51214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51215// for more information.
51216func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
51217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51218	return c
51219}
51220
51221// Context sets the context to be used in this call's Do method. Any
51222// pending HTTP request will be aborted if the provided context is
51223// canceled.
51224func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
51225	c.ctx_ = ctx
51226	return c
51227}
51228
51229// Header returns an http.Header that can be modified by the caller to
51230// add HTTP headers to the request.
51231func (c *DisksSetLabelsCall) Header() http.Header {
51232	if c.header_ == nil {
51233		c.header_ = make(http.Header)
51234	}
51235	return c.header_
51236}
51237
51238func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
51239	reqHeaders := make(http.Header)
51240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51241	for k, v := range c.header_ {
51242		reqHeaders[k] = v
51243	}
51244	reqHeaders.Set("User-Agent", c.s.userAgent())
51245	var body io.Reader = nil
51246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
51247	if err != nil {
51248		return nil, err
51249	}
51250	reqHeaders.Set("Content-Type", "application/json")
51251	c.urlParams_.Set("alt", alt)
51252	c.urlParams_.Set("prettyPrint", "false")
51253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
51254	urls += "?" + c.urlParams_.Encode()
51255	req, err := http.NewRequest("POST", urls, body)
51256	if err != nil {
51257		return nil, err
51258	}
51259	req.Header = reqHeaders
51260	googleapi.Expand(req.URL, map[string]string{
51261		"project":  c.project,
51262		"zone":     c.zone,
51263		"resource": c.resource,
51264	})
51265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51266}
51267
51268// Do executes the "compute.disks.setLabels" call.
51269// Exactly one of *Operation or error will be non-nil. Any non-2xx
51270// status code is an error. Response headers are in either
51271// *Operation.ServerResponse.Header or (if a response was returned at
51272// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51273// to check whether the returned error was because
51274// http.StatusNotModified was returned.
51275func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51276	gensupport.SetOptions(c.urlParams_, opts...)
51277	res, err := c.doRequest("json")
51278	if res != nil && res.StatusCode == http.StatusNotModified {
51279		if res.Body != nil {
51280			res.Body.Close()
51281		}
51282		return nil, &googleapi.Error{
51283			Code:   res.StatusCode,
51284			Header: res.Header,
51285		}
51286	}
51287	if err != nil {
51288		return nil, err
51289	}
51290	defer googleapi.CloseBody(res)
51291	if err := googleapi.CheckResponse(res); err != nil {
51292		return nil, err
51293	}
51294	ret := &Operation{
51295		ServerResponse: googleapi.ServerResponse{
51296			Header:         res.Header,
51297			HTTPStatusCode: res.StatusCode,
51298		},
51299	}
51300	target := &ret
51301	if err := gensupport.DecodeResponse(target, res); err != nil {
51302		return nil, err
51303	}
51304	return ret, nil
51305	// {
51306	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
51307	//   "httpMethod": "POST",
51308	//   "id": "compute.disks.setLabels",
51309	//   "parameterOrder": [
51310	//     "project",
51311	//     "zone",
51312	//     "resource"
51313	//   ],
51314	//   "parameters": {
51315	//     "project": {
51316	//       "description": "Project ID for this request.",
51317	//       "location": "path",
51318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51319	//       "required": true,
51320	//       "type": "string"
51321	//     },
51322	//     "requestId": {
51323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51324	//       "location": "query",
51325	//       "type": "string"
51326	//     },
51327	//     "resource": {
51328	//       "description": "Name or id of the resource for this request.",
51329	//       "location": "path",
51330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51331	//       "required": true,
51332	//       "type": "string"
51333	//     },
51334	//     "zone": {
51335	//       "description": "The name of the zone for this request.",
51336	//       "location": "path",
51337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51338	//       "required": true,
51339	//       "type": "string"
51340	//     }
51341	//   },
51342	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
51343	//   "request": {
51344	//     "$ref": "ZoneSetLabelsRequest"
51345	//   },
51346	//   "response": {
51347	//     "$ref": "Operation"
51348	//   },
51349	//   "scopes": [
51350	//     "https://www.googleapis.com/auth/cloud-platform",
51351	//     "https://www.googleapis.com/auth/compute"
51352	//   ]
51353	// }
51354
51355}
51356
51357// method id "compute.disks.testIamPermissions":
51358
51359type DisksTestIamPermissionsCall struct {
51360	s                      *Service
51361	project                string
51362	zone                   string
51363	resource               string
51364	testpermissionsrequest *TestPermissionsRequest
51365	urlParams_             gensupport.URLParams
51366	ctx_                   context.Context
51367	header_                http.Header
51368}
51369
51370// TestIamPermissions: Returns permissions that a caller has on the
51371// specified resource.
51372func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
51373	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51374	c.project = project
51375	c.zone = zone
51376	c.resource = resource
51377	c.testpermissionsrequest = testpermissionsrequest
51378	return c
51379}
51380
51381// Fields allows partial responses to be retrieved. See
51382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51383// for more information.
51384func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
51385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51386	return c
51387}
51388
51389// Context sets the context to be used in this call's Do method. Any
51390// pending HTTP request will be aborted if the provided context is
51391// canceled.
51392func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
51393	c.ctx_ = ctx
51394	return c
51395}
51396
51397// Header returns an http.Header that can be modified by the caller to
51398// add HTTP headers to the request.
51399func (c *DisksTestIamPermissionsCall) Header() http.Header {
51400	if c.header_ == nil {
51401		c.header_ = make(http.Header)
51402	}
51403	return c.header_
51404}
51405
51406func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
51407	reqHeaders := make(http.Header)
51408	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51409	for k, v := range c.header_ {
51410		reqHeaders[k] = v
51411	}
51412	reqHeaders.Set("User-Agent", c.s.userAgent())
51413	var body io.Reader = nil
51414	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
51415	if err != nil {
51416		return nil, err
51417	}
51418	reqHeaders.Set("Content-Type", "application/json")
51419	c.urlParams_.Set("alt", alt)
51420	c.urlParams_.Set("prettyPrint", "false")
51421	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/testIamPermissions")
51422	urls += "?" + c.urlParams_.Encode()
51423	req, err := http.NewRequest("POST", urls, body)
51424	if err != nil {
51425		return nil, err
51426	}
51427	req.Header = reqHeaders
51428	googleapi.Expand(req.URL, map[string]string{
51429		"project":  c.project,
51430		"zone":     c.zone,
51431		"resource": c.resource,
51432	})
51433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51434}
51435
51436// Do executes the "compute.disks.testIamPermissions" call.
51437// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
51438// non-2xx status code is an error. Response headers are in either
51439// *TestPermissionsResponse.ServerResponse.Header or (if a response was
51440// returned at all) in error.(*googleapi.Error).Header. Use
51441// googleapi.IsNotModified to check whether the returned error was
51442// because http.StatusNotModified was returned.
51443func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
51444	gensupport.SetOptions(c.urlParams_, opts...)
51445	res, err := c.doRequest("json")
51446	if res != nil && res.StatusCode == http.StatusNotModified {
51447		if res.Body != nil {
51448			res.Body.Close()
51449		}
51450		return nil, &googleapi.Error{
51451			Code:   res.StatusCode,
51452			Header: res.Header,
51453		}
51454	}
51455	if err != nil {
51456		return nil, err
51457	}
51458	defer googleapi.CloseBody(res)
51459	if err := googleapi.CheckResponse(res); err != nil {
51460		return nil, err
51461	}
51462	ret := &TestPermissionsResponse{
51463		ServerResponse: googleapi.ServerResponse{
51464			Header:         res.Header,
51465			HTTPStatusCode: res.StatusCode,
51466		},
51467	}
51468	target := &ret
51469	if err := gensupport.DecodeResponse(target, res); err != nil {
51470		return nil, err
51471	}
51472	return ret, nil
51473	// {
51474	//   "description": "Returns permissions that a caller has on the specified resource.",
51475	//   "httpMethod": "POST",
51476	//   "id": "compute.disks.testIamPermissions",
51477	//   "parameterOrder": [
51478	//     "project",
51479	//     "zone",
51480	//     "resource"
51481	//   ],
51482	//   "parameters": {
51483	//     "project": {
51484	//       "description": "Project ID for this request.",
51485	//       "location": "path",
51486	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51487	//       "required": true,
51488	//       "type": "string"
51489	//     },
51490	//     "resource": {
51491	//       "description": "Name or id of the resource for this request.",
51492	//       "location": "path",
51493	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51494	//       "required": true,
51495	//       "type": "string"
51496	//     },
51497	//     "zone": {
51498	//       "description": "The name of the zone for this request.",
51499	//       "location": "path",
51500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51501	//       "required": true,
51502	//       "type": "string"
51503	//     }
51504	//   },
51505	//   "path": "{project}/zones/{zone}/disks/{resource}/testIamPermissions",
51506	//   "request": {
51507	//     "$ref": "TestPermissionsRequest"
51508	//   },
51509	//   "response": {
51510	//     "$ref": "TestPermissionsResponse"
51511	//   },
51512	//   "scopes": [
51513	//     "https://www.googleapis.com/auth/cloud-platform",
51514	//     "https://www.googleapis.com/auth/compute",
51515	//     "https://www.googleapis.com/auth/compute.readonly"
51516	//   ]
51517	// }
51518
51519}
51520
51521// method id "compute.externalVpnGateways.delete":
51522
51523type ExternalVpnGatewaysDeleteCall struct {
51524	s                  *Service
51525	project            string
51526	externalVpnGateway string
51527	urlParams_         gensupport.URLParams
51528	ctx_               context.Context
51529	header_            http.Header
51530}
51531
51532// Delete: Deletes the specified externalVpnGateway.
51533func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
51534	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51535	c.project = project
51536	c.externalVpnGateway = externalVpnGateway
51537	return c
51538}
51539
51540// RequestId sets the optional parameter "requestId": An optional
51541// request ID to identify requests. Specify a unique request ID so that
51542// if you must retry your request, the server will know to ignore the
51543// request if it has already been completed.
51544//
51545// For example, consider a situation where you make an initial request
51546// and the request times out. If you make the request again with the
51547// same request ID, the server can check if original operation with the
51548// same request ID was received, and if so, will ignore the second
51549// request. This prevents clients from accidentally creating duplicate
51550// commitments.
51551//
51552// The request ID must be a valid UUID with the exception that zero UUID
51553// is not supported (00000000-0000-0000-0000-000000000000).
51554func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
51555	c.urlParams_.Set("requestId", requestId)
51556	return c
51557}
51558
51559// Fields allows partial responses to be retrieved. See
51560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51561// for more information.
51562func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
51563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51564	return c
51565}
51566
51567// Context sets the context to be used in this call's Do method. Any
51568// pending HTTP request will be aborted if the provided context is
51569// canceled.
51570func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
51571	c.ctx_ = ctx
51572	return c
51573}
51574
51575// Header returns an http.Header that can be modified by the caller to
51576// add HTTP headers to the request.
51577func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
51578	if c.header_ == nil {
51579		c.header_ = make(http.Header)
51580	}
51581	return c.header_
51582}
51583
51584func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
51585	reqHeaders := make(http.Header)
51586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51587	for k, v := range c.header_ {
51588		reqHeaders[k] = v
51589	}
51590	reqHeaders.Set("User-Agent", c.s.userAgent())
51591	var body io.Reader = nil
51592	c.urlParams_.Set("alt", alt)
51593	c.urlParams_.Set("prettyPrint", "false")
51594	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
51595	urls += "?" + c.urlParams_.Encode()
51596	req, err := http.NewRequest("DELETE", urls, body)
51597	if err != nil {
51598		return nil, err
51599	}
51600	req.Header = reqHeaders
51601	googleapi.Expand(req.URL, map[string]string{
51602		"project":            c.project,
51603		"externalVpnGateway": c.externalVpnGateway,
51604	})
51605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51606}
51607
51608// Do executes the "compute.externalVpnGateways.delete" call.
51609// Exactly one of *Operation or error will be non-nil. Any non-2xx
51610// status code is an error. Response headers are in either
51611// *Operation.ServerResponse.Header or (if a response was returned at
51612// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51613// to check whether the returned error was because
51614// http.StatusNotModified was returned.
51615func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51616	gensupport.SetOptions(c.urlParams_, opts...)
51617	res, err := c.doRequest("json")
51618	if res != nil && res.StatusCode == http.StatusNotModified {
51619		if res.Body != nil {
51620			res.Body.Close()
51621		}
51622		return nil, &googleapi.Error{
51623			Code:   res.StatusCode,
51624			Header: res.Header,
51625		}
51626	}
51627	if err != nil {
51628		return nil, err
51629	}
51630	defer googleapi.CloseBody(res)
51631	if err := googleapi.CheckResponse(res); err != nil {
51632		return nil, err
51633	}
51634	ret := &Operation{
51635		ServerResponse: googleapi.ServerResponse{
51636			Header:         res.Header,
51637			HTTPStatusCode: res.StatusCode,
51638		},
51639	}
51640	target := &ret
51641	if err := gensupport.DecodeResponse(target, res); err != nil {
51642		return nil, err
51643	}
51644	return ret, nil
51645	// {
51646	//   "description": "Deletes the specified externalVpnGateway.",
51647	//   "httpMethod": "DELETE",
51648	//   "id": "compute.externalVpnGateways.delete",
51649	//   "parameterOrder": [
51650	//     "project",
51651	//     "externalVpnGateway"
51652	//   ],
51653	//   "parameters": {
51654	//     "externalVpnGateway": {
51655	//       "description": "Name of the externalVpnGateways to delete.",
51656	//       "location": "path",
51657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51658	//       "required": true,
51659	//       "type": "string"
51660	//     },
51661	//     "project": {
51662	//       "description": "Project ID for this request.",
51663	//       "location": "path",
51664	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51665	//       "required": true,
51666	//       "type": "string"
51667	//     },
51668	//     "requestId": {
51669	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51670	//       "location": "query",
51671	//       "type": "string"
51672	//     }
51673	//   },
51674	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
51675	//   "response": {
51676	//     "$ref": "Operation"
51677	//   },
51678	//   "scopes": [
51679	//     "https://www.googleapis.com/auth/cloud-platform",
51680	//     "https://www.googleapis.com/auth/compute"
51681	//   ]
51682	// }
51683
51684}
51685
51686// method id "compute.externalVpnGateways.get":
51687
51688type ExternalVpnGatewaysGetCall struct {
51689	s                  *Service
51690	project            string
51691	externalVpnGateway string
51692	urlParams_         gensupport.URLParams
51693	ifNoneMatch_       string
51694	ctx_               context.Context
51695	header_            http.Header
51696}
51697
51698// Get: Returns the specified externalVpnGateway. Get a list of
51699// available externalVpnGateways by making a list() request.
51700func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
51701	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51702	c.project = project
51703	c.externalVpnGateway = externalVpnGateway
51704	return c
51705}
51706
51707// Fields allows partial responses to be retrieved. See
51708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51709// for more information.
51710func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
51711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51712	return c
51713}
51714
51715// IfNoneMatch sets the optional parameter which makes the operation
51716// fail if the object's ETag matches the given value. This is useful for
51717// getting updates only after the object has changed since the last
51718// request. Use googleapi.IsNotModified to check whether the response
51719// error from Do is the result of In-None-Match.
51720func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
51721	c.ifNoneMatch_ = entityTag
51722	return c
51723}
51724
51725// Context sets the context to be used in this call's Do method. Any
51726// pending HTTP request will be aborted if the provided context is
51727// canceled.
51728func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
51729	c.ctx_ = ctx
51730	return c
51731}
51732
51733// Header returns an http.Header that can be modified by the caller to
51734// add HTTP headers to the request.
51735func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
51736	if c.header_ == nil {
51737		c.header_ = make(http.Header)
51738	}
51739	return c.header_
51740}
51741
51742func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
51743	reqHeaders := make(http.Header)
51744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51745	for k, v := range c.header_ {
51746		reqHeaders[k] = v
51747	}
51748	reqHeaders.Set("User-Agent", c.s.userAgent())
51749	if c.ifNoneMatch_ != "" {
51750		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51751	}
51752	var body io.Reader = nil
51753	c.urlParams_.Set("alt", alt)
51754	c.urlParams_.Set("prettyPrint", "false")
51755	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
51756	urls += "?" + c.urlParams_.Encode()
51757	req, err := http.NewRequest("GET", urls, body)
51758	if err != nil {
51759		return nil, err
51760	}
51761	req.Header = reqHeaders
51762	googleapi.Expand(req.URL, map[string]string{
51763		"project":            c.project,
51764		"externalVpnGateway": c.externalVpnGateway,
51765	})
51766	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51767}
51768
51769// Do executes the "compute.externalVpnGateways.get" call.
51770// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
51771// non-2xx status code is an error. Response headers are in either
51772// *ExternalVpnGateway.ServerResponse.Header or (if a response was
51773// returned at all) in error.(*googleapi.Error).Header. Use
51774// googleapi.IsNotModified to check whether the returned error was
51775// because http.StatusNotModified was returned.
51776func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
51777	gensupport.SetOptions(c.urlParams_, opts...)
51778	res, err := c.doRequest("json")
51779	if res != nil && res.StatusCode == http.StatusNotModified {
51780		if res.Body != nil {
51781			res.Body.Close()
51782		}
51783		return nil, &googleapi.Error{
51784			Code:   res.StatusCode,
51785			Header: res.Header,
51786		}
51787	}
51788	if err != nil {
51789		return nil, err
51790	}
51791	defer googleapi.CloseBody(res)
51792	if err := googleapi.CheckResponse(res); err != nil {
51793		return nil, err
51794	}
51795	ret := &ExternalVpnGateway{
51796		ServerResponse: googleapi.ServerResponse{
51797			Header:         res.Header,
51798			HTTPStatusCode: res.StatusCode,
51799		},
51800	}
51801	target := &ret
51802	if err := gensupport.DecodeResponse(target, res); err != nil {
51803		return nil, err
51804	}
51805	return ret, nil
51806	// {
51807	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
51808	//   "httpMethod": "GET",
51809	//   "id": "compute.externalVpnGateways.get",
51810	//   "parameterOrder": [
51811	//     "project",
51812	//     "externalVpnGateway"
51813	//   ],
51814	//   "parameters": {
51815	//     "externalVpnGateway": {
51816	//       "description": "Name of the externalVpnGateway to return.",
51817	//       "location": "path",
51818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51819	//       "required": true,
51820	//       "type": "string"
51821	//     },
51822	//     "project": {
51823	//       "description": "Project ID for this request.",
51824	//       "location": "path",
51825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51826	//       "required": true,
51827	//       "type": "string"
51828	//     }
51829	//   },
51830	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
51831	//   "response": {
51832	//     "$ref": "ExternalVpnGateway"
51833	//   },
51834	//   "scopes": [
51835	//     "https://www.googleapis.com/auth/cloud-platform",
51836	//     "https://www.googleapis.com/auth/compute",
51837	//     "https://www.googleapis.com/auth/compute.readonly"
51838	//   ]
51839	// }
51840
51841}
51842
51843// method id "compute.externalVpnGateways.insert":
51844
51845type ExternalVpnGatewaysInsertCall struct {
51846	s                  *Service
51847	project            string
51848	externalvpngateway *ExternalVpnGateway
51849	urlParams_         gensupport.URLParams
51850	ctx_               context.Context
51851	header_            http.Header
51852}
51853
51854// Insert: Creates a ExternalVpnGateway in the specified project using
51855// the data included in the request.
51856func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
51857	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51858	c.project = project
51859	c.externalvpngateway = externalvpngateway
51860	return c
51861}
51862
51863// RequestId sets the optional parameter "requestId": An optional
51864// request ID to identify requests. Specify a unique request ID so that
51865// if you must retry your request, the server will know to ignore the
51866// request if it has already been completed.
51867//
51868// For example, consider a situation where you make an initial request
51869// and the request times out. If you make the request again with the
51870// same request ID, the server can check if original operation with the
51871// same request ID was received, and if so, will ignore the second
51872// request. This prevents clients from accidentally creating duplicate
51873// commitments.
51874//
51875// The request ID must be a valid UUID with the exception that zero UUID
51876// is not supported (00000000-0000-0000-0000-000000000000).
51877func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
51878	c.urlParams_.Set("requestId", requestId)
51879	return c
51880}
51881
51882// Fields allows partial responses to be retrieved. See
51883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51884// for more information.
51885func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
51886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51887	return c
51888}
51889
51890// Context sets the context to be used in this call's Do method. Any
51891// pending HTTP request will be aborted if the provided context is
51892// canceled.
51893func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
51894	c.ctx_ = ctx
51895	return c
51896}
51897
51898// Header returns an http.Header that can be modified by the caller to
51899// add HTTP headers to the request.
51900func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
51901	if c.header_ == nil {
51902		c.header_ = make(http.Header)
51903	}
51904	return c.header_
51905}
51906
51907func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
51908	reqHeaders := make(http.Header)
51909	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51910	for k, v := range c.header_ {
51911		reqHeaders[k] = v
51912	}
51913	reqHeaders.Set("User-Agent", c.s.userAgent())
51914	var body io.Reader = nil
51915	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
51916	if err != nil {
51917		return nil, err
51918	}
51919	reqHeaders.Set("Content-Type", "application/json")
51920	c.urlParams_.Set("alt", alt)
51921	c.urlParams_.Set("prettyPrint", "false")
51922	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
51923	urls += "?" + c.urlParams_.Encode()
51924	req, err := http.NewRequest("POST", urls, body)
51925	if err != nil {
51926		return nil, err
51927	}
51928	req.Header = reqHeaders
51929	googleapi.Expand(req.URL, map[string]string{
51930		"project": c.project,
51931	})
51932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51933}
51934
51935// Do executes the "compute.externalVpnGateways.insert" call.
51936// Exactly one of *Operation or error will be non-nil. Any non-2xx
51937// status code is an error. Response headers are in either
51938// *Operation.ServerResponse.Header or (if a response was returned at
51939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51940// to check whether the returned error was because
51941// http.StatusNotModified was returned.
51942func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51943	gensupport.SetOptions(c.urlParams_, opts...)
51944	res, err := c.doRequest("json")
51945	if res != nil && res.StatusCode == http.StatusNotModified {
51946		if res.Body != nil {
51947			res.Body.Close()
51948		}
51949		return nil, &googleapi.Error{
51950			Code:   res.StatusCode,
51951			Header: res.Header,
51952		}
51953	}
51954	if err != nil {
51955		return nil, err
51956	}
51957	defer googleapi.CloseBody(res)
51958	if err := googleapi.CheckResponse(res); err != nil {
51959		return nil, err
51960	}
51961	ret := &Operation{
51962		ServerResponse: googleapi.ServerResponse{
51963			Header:         res.Header,
51964			HTTPStatusCode: res.StatusCode,
51965		},
51966	}
51967	target := &ret
51968	if err := gensupport.DecodeResponse(target, res); err != nil {
51969		return nil, err
51970	}
51971	return ret, nil
51972	// {
51973	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
51974	//   "httpMethod": "POST",
51975	//   "id": "compute.externalVpnGateways.insert",
51976	//   "parameterOrder": [
51977	//     "project"
51978	//   ],
51979	//   "parameters": {
51980	//     "project": {
51981	//       "description": "Project ID for this request.",
51982	//       "location": "path",
51983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51984	//       "required": true,
51985	//       "type": "string"
51986	//     },
51987	//     "requestId": {
51988	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51989	//       "location": "query",
51990	//       "type": "string"
51991	//     }
51992	//   },
51993	//   "path": "{project}/global/externalVpnGateways",
51994	//   "request": {
51995	//     "$ref": "ExternalVpnGateway"
51996	//   },
51997	//   "response": {
51998	//     "$ref": "Operation"
51999	//   },
52000	//   "scopes": [
52001	//     "https://www.googleapis.com/auth/cloud-platform",
52002	//     "https://www.googleapis.com/auth/compute"
52003	//   ]
52004	// }
52005
52006}
52007
52008// method id "compute.externalVpnGateways.list":
52009
52010type ExternalVpnGatewaysListCall struct {
52011	s            *Service
52012	project      string
52013	urlParams_   gensupport.URLParams
52014	ifNoneMatch_ string
52015	ctx_         context.Context
52016	header_      http.Header
52017}
52018
52019// List: Retrieves the list of ExternalVpnGateway available to the
52020// specified project.
52021func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
52022	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52023	c.project = project
52024	return c
52025}
52026
52027// Filter sets the optional parameter "filter": A filter expression that
52028// filters resources listed in the response. The expression must specify
52029// the field name, a comparison operator, and the value that you want to
52030// use for filtering. The value must be a string, a number, or a
52031// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52032// `<`.
52033//
52034// For example, if you are filtering Compute Engine instances, you can
52035// exclude instances named `example-instance` by specifying `name !=
52036// example-instance`.
52037//
52038// You can also filter nested fields. For example, you could specify
52039// `scheduling.automaticRestart = false` to include instances only if
52040// they are not scheduled for automatic restarts. You can use filtering
52041// on nested fields to filter based on resource labels.
52042//
52043// To filter on multiple expressions, provide each separate expression
52044// within parentheses. For example: ``` (scheduling.automaticRestart =
52045// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52046// is an `AND` expression. However, you can include `AND` and `OR`
52047// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52048// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52049// (scheduling.automaticRestart = true) ```
52050func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
52051	c.urlParams_.Set("filter", filter)
52052	return c
52053}
52054
52055// MaxResults sets the optional parameter "maxResults": The maximum
52056// number of results per page that should be returned. If the number of
52057// available results is larger than `maxResults`, Compute Engine returns
52058// a `nextPageToken` that can be used to get the next page of results in
52059// subsequent list requests. Acceptable values are `0` to `500`,
52060// inclusive. (Default: `500`)
52061func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
52062	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52063	return c
52064}
52065
52066// OrderBy sets the optional parameter "orderBy": Sorts list results by
52067// a certain order. By default, results are returned in alphanumerical
52068// order based on the resource name.
52069//
52070// You can also sort results in descending order based on the creation
52071// timestamp using `orderBy="creationTimestamp desc". This sorts
52072// results based on the `creationTimestamp` field in reverse
52073// chronological order (newest result first). Use this to sort resources
52074// like operations so that the newest operation is returned
52075// first.
52076//
52077// Currently, only sorting by `name` or `creationTimestamp desc` is
52078// supported.
52079func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
52080	c.urlParams_.Set("orderBy", orderBy)
52081	return c
52082}
52083
52084// PageToken sets the optional parameter "pageToken": Specifies a page
52085// token to use. Set `pageToken` to the `nextPageToken` returned by a
52086// previous list request to get the next page of results.
52087func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
52088	c.urlParams_.Set("pageToken", pageToken)
52089	return c
52090}
52091
52092// Fields allows partial responses to be retrieved. See
52093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52094// for more information.
52095func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
52096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52097	return c
52098}
52099
52100// IfNoneMatch sets the optional parameter which makes the operation
52101// fail if the object's ETag matches the given value. This is useful for
52102// getting updates only after the object has changed since the last
52103// request. Use googleapi.IsNotModified to check whether the response
52104// error from Do is the result of In-None-Match.
52105func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
52106	c.ifNoneMatch_ = entityTag
52107	return c
52108}
52109
52110// Context sets the context to be used in this call's Do method. Any
52111// pending HTTP request will be aborted if the provided context is
52112// canceled.
52113func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
52114	c.ctx_ = ctx
52115	return c
52116}
52117
52118// Header returns an http.Header that can be modified by the caller to
52119// add HTTP headers to the request.
52120func (c *ExternalVpnGatewaysListCall) Header() http.Header {
52121	if c.header_ == nil {
52122		c.header_ = make(http.Header)
52123	}
52124	return c.header_
52125}
52126
52127func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
52128	reqHeaders := make(http.Header)
52129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52130	for k, v := range c.header_ {
52131		reqHeaders[k] = v
52132	}
52133	reqHeaders.Set("User-Agent", c.s.userAgent())
52134	if c.ifNoneMatch_ != "" {
52135		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52136	}
52137	var body io.Reader = nil
52138	c.urlParams_.Set("alt", alt)
52139	c.urlParams_.Set("prettyPrint", "false")
52140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
52141	urls += "?" + c.urlParams_.Encode()
52142	req, err := http.NewRequest("GET", urls, body)
52143	if err != nil {
52144		return nil, err
52145	}
52146	req.Header = reqHeaders
52147	googleapi.Expand(req.URL, map[string]string{
52148		"project": c.project,
52149	})
52150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52151}
52152
52153// Do executes the "compute.externalVpnGateways.list" call.
52154// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
52155// non-2xx status code is an error. Response headers are in either
52156// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
52157// returned at all) in error.(*googleapi.Error).Header. Use
52158// googleapi.IsNotModified to check whether the returned error was
52159// because http.StatusNotModified was returned.
52160func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
52161	gensupport.SetOptions(c.urlParams_, opts...)
52162	res, err := c.doRequest("json")
52163	if res != nil && res.StatusCode == http.StatusNotModified {
52164		if res.Body != nil {
52165			res.Body.Close()
52166		}
52167		return nil, &googleapi.Error{
52168			Code:   res.StatusCode,
52169			Header: res.Header,
52170		}
52171	}
52172	if err != nil {
52173		return nil, err
52174	}
52175	defer googleapi.CloseBody(res)
52176	if err := googleapi.CheckResponse(res); err != nil {
52177		return nil, err
52178	}
52179	ret := &ExternalVpnGatewayList{
52180		ServerResponse: googleapi.ServerResponse{
52181			Header:         res.Header,
52182			HTTPStatusCode: res.StatusCode,
52183		},
52184	}
52185	target := &ret
52186	if err := gensupport.DecodeResponse(target, res); err != nil {
52187		return nil, err
52188	}
52189	return ret, nil
52190	// {
52191	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
52192	//   "httpMethod": "GET",
52193	//   "id": "compute.externalVpnGateways.list",
52194	//   "parameterOrder": [
52195	//     "project"
52196	//   ],
52197	//   "parameters": {
52198	//     "filter": {
52199	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52200	//       "location": "query",
52201	//       "type": "string"
52202	//     },
52203	//     "maxResults": {
52204	//       "default": "500",
52205	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52206	//       "format": "uint32",
52207	//       "location": "query",
52208	//       "minimum": "0",
52209	//       "type": "integer"
52210	//     },
52211	//     "orderBy": {
52212	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
52213	//       "location": "query",
52214	//       "type": "string"
52215	//     },
52216	//     "pageToken": {
52217	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52218	//       "location": "query",
52219	//       "type": "string"
52220	//     },
52221	//     "project": {
52222	//       "description": "Project ID for this request.",
52223	//       "location": "path",
52224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52225	//       "required": true,
52226	//       "type": "string"
52227	//     }
52228	//   },
52229	//   "path": "{project}/global/externalVpnGateways",
52230	//   "response": {
52231	//     "$ref": "ExternalVpnGatewayList"
52232	//   },
52233	//   "scopes": [
52234	//     "https://www.googleapis.com/auth/cloud-platform",
52235	//     "https://www.googleapis.com/auth/compute",
52236	//     "https://www.googleapis.com/auth/compute.readonly"
52237	//   ]
52238	// }
52239
52240}
52241
52242// Pages invokes f for each page of results.
52243// A non-nil error returned from f will halt the iteration.
52244// The provided context supersedes any context provided to the Context method.
52245func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
52246	c.ctx_ = ctx
52247	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52248	for {
52249		x, err := c.Do()
52250		if err != nil {
52251			return err
52252		}
52253		if err := f(x); err != nil {
52254			return err
52255		}
52256		if x.NextPageToken == "" {
52257			return nil
52258		}
52259		c.PageToken(x.NextPageToken)
52260	}
52261}
52262
52263// method id "compute.externalVpnGateways.setLabels":
52264
52265type ExternalVpnGatewaysSetLabelsCall struct {
52266	s                      *Service
52267	project                string
52268	resource               string
52269	globalsetlabelsrequest *GlobalSetLabelsRequest
52270	urlParams_             gensupport.URLParams
52271	ctx_                   context.Context
52272	header_                http.Header
52273}
52274
52275// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
52276// about labels, read the Labeling Resources documentation.
52277func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
52278	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52279	c.project = project
52280	c.resource = resource
52281	c.globalsetlabelsrequest = globalsetlabelsrequest
52282	return c
52283}
52284
52285// Fields allows partial responses to be retrieved. See
52286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52287// for more information.
52288func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
52289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52290	return c
52291}
52292
52293// Context sets the context to be used in this call's Do method. Any
52294// pending HTTP request will be aborted if the provided context is
52295// canceled.
52296func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
52297	c.ctx_ = ctx
52298	return c
52299}
52300
52301// Header returns an http.Header that can be modified by the caller to
52302// add HTTP headers to the request.
52303func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
52304	if c.header_ == nil {
52305		c.header_ = make(http.Header)
52306	}
52307	return c.header_
52308}
52309
52310func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
52311	reqHeaders := make(http.Header)
52312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52313	for k, v := range c.header_ {
52314		reqHeaders[k] = v
52315	}
52316	reqHeaders.Set("User-Agent", c.s.userAgent())
52317	var body io.Reader = nil
52318	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
52319	if err != nil {
52320		return nil, err
52321	}
52322	reqHeaders.Set("Content-Type", "application/json")
52323	c.urlParams_.Set("alt", alt)
52324	c.urlParams_.Set("prettyPrint", "false")
52325	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/setLabels")
52326	urls += "?" + c.urlParams_.Encode()
52327	req, err := http.NewRequest("POST", urls, body)
52328	if err != nil {
52329		return nil, err
52330	}
52331	req.Header = reqHeaders
52332	googleapi.Expand(req.URL, map[string]string{
52333		"project":  c.project,
52334		"resource": c.resource,
52335	})
52336	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52337}
52338
52339// Do executes the "compute.externalVpnGateways.setLabels" call.
52340// Exactly one of *Operation or error will be non-nil. Any non-2xx
52341// status code is an error. Response headers are in either
52342// *Operation.ServerResponse.Header or (if a response was returned at
52343// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52344// to check whether the returned error was because
52345// http.StatusNotModified was returned.
52346func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52347	gensupport.SetOptions(c.urlParams_, opts...)
52348	res, err := c.doRequest("json")
52349	if res != nil && res.StatusCode == http.StatusNotModified {
52350		if res.Body != nil {
52351			res.Body.Close()
52352		}
52353		return nil, &googleapi.Error{
52354			Code:   res.StatusCode,
52355			Header: res.Header,
52356		}
52357	}
52358	if err != nil {
52359		return nil, err
52360	}
52361	defer googleapi.CloseBody(res)
52362	if err := googleapi.CheckResponse(res); err != nil {
52363		return nil, err
52364	}
52365	ret := &Operation{
52366		ServerResponse: googleapi.ServerResponse{
52367			Header:         res.Header,
52368			HTTPStatusCode: res.StatusCode,
52369		},
52370	}
52371	target := &ret
52372	if err := gensupport.DecodeResponse(target, res); err != nil {
52373		return nil, err
52374	}
52375	return ret, nil
52376	// {
52377	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
52378	//   "httpMethod": "POST",
52379	//   "id": "compute.externalVpnGateways.setLabels",
52380	//   "parameterOrder": [
52381	//     "project",
52382	//     "resource"
52383	//   ],
52384	//   "parameters": {
52385	//     "project": {
52386	//       "description": "Project ID for this request.",
52387	//       "location": "path",
52388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52389	//       "required": true,
52390	//       "type": "string"
52391	//     },
52392	//     "resource": {
52393	//       "description": "Name or id of the resource for this request.",
52394	//       "location": "path",
52395	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52396	//       "required": true,
52397	//       "type": "string"
52398	//     }
52399	//   },
52400	//   "path": "{project}/global/externalVpnGateways/{resource}/setLabels",
52401	//   "request": {
52402	//     "$ref": "GlobalSetLabelsRequest"
52403	//   },
52404	//   "response": {
52405	//     "$ref": "Operation"
52406	//   },
52407	//   "scopes": [
52408	//     "https://www.googleapis.com/auth/cloud-platform",
52409	//     "https://www.googleapis.com/auth/compute"
52410	//   ]
52411	// }
52412
52413}
52414
52415// method id "compute.externalVpnGateways.testIamPermissions":
52416
52417type ExternalVpnGatewaysTestIamPermissionsCall struct {
52418	s                      *Service
52419	project                string
52420	resource               string
52421	testpermissionsrequest *TestPermissionsRequest
52422	urlParams_             gensupport.URLParams
52423	ctx_                   context.Context
52424	header_                http.Header
52425}
52426
52427// TestIamPermissions: Returns permissions that a caller has on the
52428// specified resource.
52429func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
52430	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52431	c.project = project
52432	c.resource = resource
52433	c.testpermissionsrequest = testpermissionsrequest
52434	return c
52435}
52436
52437// Fields allows partial responses to be retrieved. See
52438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52439// for more information.
52440func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
52441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52442	return c
52443}
52444
52445// Context sets the context to be used in this call's Do method. Any
52446// pending HTTP request will be aborted if the provided context is
52447// canceled.
52448func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
52449	c.ctx_ = ctx
52450	return c
52451}
52452
52453// Header returns an http.Header that can be modified by the caller to
52454// add HTTP headers to the request.
52455func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
52456	if c.header_ == nil {
52457		c.header_ = make(http.Header)
52458	}
52459	return c.header_
52460}
52461
52462func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
52463	reqHeaders := make(http.Header)
52464	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52465	for k, v := range c.header_ {
52466		reqHeaders[k] = v
52467	}
52468	reqHeaders.Set("User-Agent", c.s.userAgent())
52469	var body io.Reader = nil
52470	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
52471	if err != nil {
52472		return nil, err
52473	}
52474	reqHeaders.Set("Content-Type", "application/json")
52475	c.urlParams_.Set("alt", alt)
52476	c.urlParams_.Set("prettyPrint", "false")
52477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/testIamPermissions")
52478	urls += "?" + c.urlParams_.Encode()
52479	req, err := http.NewRequest("POST", urls, body)
52480	if err != nil {
52481		return nil, err
52482	}
52483	req.Header = reqHeaders
52484	googleapi.Expand(req.URL, map[string]string{
52485		"project":  c.project,
52486		"resource": c.resource,
52487	})
52488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52489}
52490
52491// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
52492// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
52493// non-2xx status code is an error. Response headers are in either
52494// *TestPermissionsResponse.ServerResponse.Header or (if a response was
52495// returned at all) in error.(*googleapi.Error).Header. Use
52496// googleapi.IsNotModified to check whether the returned error was
52497// because http.StatusNotModified was returned.
52498func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
52499	gensupport.SetOptions(c.urlParams_, opts...)
52500	res, err := c.doRequest("json")
52501	if res != nil && res.StatusCode == http.StatusNotModified {
52502		if res.Body != nil {
52503			res.Body.Close()
52504		}
52505		return nil, &googleapi.Error{
52506			Code:   res.StatusCode,
52507			Header: res.Header,
52508		}
52509	}
52510	if err != nil {
52511		return nil, err
52512	}
52513	defer googleapi.CloseBody(res)
52514	if err := googleapi.CheckResponse(res); err != nil {
52515		return nil, err
52516	}
52517	ret := &TestPermissionsResponse{
52518		ServerResponse: googleapi.ServerResponse{
52519			Header:         res.Header,
52520			HTTPStatusCode: res.StatusCode,
52521		},
52522	}
52523	target := &ret
52524	if err := gensupport.DecodeResponse(target, res); err != nil {
52525		return nil, err
52526	}
52527	return ret, nil
52528	// {
52529	//   "description": "Returns permissions that a caller has on the specified resource.",
52530	//   "httpMethod": "POST",
52531	//   "id": "compute.externalVpnGateways.testIamPermissions",
52532	//   "parameterOrder": [
52533	//     "project",
52534	//     "resource"
52535	//   ],
52536	//   "parameters": {
52537	//     "project": {
52538	//       "description": "Project ID for this request.",
52539	//       "location": "path",
52540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52541	//       "required": true,
52542	//       "type": "string"
52543	//     },
52544	//     "resource": {
52545	//       "description": "Name or id of the resource for this request.",
52546	//       "location": "path",
52547	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52548	//       "required": true,
52549	//       "type": "string"
52550	//     }
52551	//   },
52552	//   "path": "{project}/global/externalVpnGateways/{resource}/testIamPermissions",
52553	//   "request": {
52554	//     "$ref": "TestPermissionsRequest"
52555	//   },
52556	//   "response": {
52557	//     "$ref": "TestPermissionsResponse"
52558	//   },
52559	//   "scopes": [
52560	//     "https://www.googleapis.com/auth/cloud-platform",
52561	//     "https://www.googleapis.com/auth/compute",
52562	//     "https://www.googleapis.com/auth/compute.readonly"
52563	//   ]
52564	// }
52565
52566}
52567
52568// method id "compute.firewalls.delete":
52569
52570type FirewallsDeleteCall struct {
52571	s          *Service
52572	project    string
52573	firewall   string
52574	urlParams_ gensupport.URLParams
52575	ctx_       context.Context
52576	header_    http.Header
52577}
52578
52579// Delete: Deletes the specified firewall.
52580// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
52581func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
52582	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52583	c.project = project
52584	c.firewall = firewall
52585	return c
52586}
52587
52588// RequestId sets the optional parameter "requestId": An optional
52589// request ID to identify requests. Specify a unique request ID so that
52590// if you must retry your request, the server will know to ignore the
52591// request if it has already been completed.
52592//
52593// For example, consider a situation where you make an initial request
52594// and the request times out. If you make the request again with the
52595// same request ID, the server can check if original operation with the
52596// same request ID was received, and if so, will ignore the second
52597// request. This prevents clients from accidentally creating duplicate
52598// commitments.
52599//
52600// The request ID must be a valid UUID with the exception that zero UUID
52601// is not supported (00000000-0000-0000-0000-000000000000).
52602func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
52603	c.urlParams_.Set("requestId", requestId)
52604	return c
52605}
52606
52607// Fields allows partial responses to be retrieved. See
52608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52609// for more information.
52610func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
52611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52612	return c
52613}
52614
52615// Context sets the context to be used in this call's Do method. Any
52616// pending HTTP request will be aborted if the provided context is
52617// canceled.
52618func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
52619	c.ctx_ = ctx
52620	return c
52621}
52622
52623// Header returns an http.Header that can be modified by the caller to
52624// add HTTP headers to the request.
52625func (c *FirewallsDeleteCall) Header() http.Header {
52626	if c.header_ == nil {
52627		c.header_ = make(http.Header)
52628	}
52629	return c.header_
52630}
52631
52632func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
52633	reqHeaders := make(http.Header)
52634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52635	for k, v := range c.header_ {
52636		reqHeaders[k] = v
52637	}
52638	reqHeaders.Set("User-Agent", c.s.userAgent())
52639	var body io.Reader = nil
52640	c.urlParams_.Set("alt", alt)
52641	c.urlParams_.Set("prettyPrint", "false")
52642	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
52643	urls += "?" + c.urlParams_.Encode()
52644	req, err := http.NewRequest("DELETE", urls, body)
52645	if err != nil {
52646		return nil, err
52647	}
52648	req.Header = reqHeaders
52649	googleapi.Expand(req.URL, map[string]string{
52650		"project":  c.project,
52651		"firewall": c.firewall,
52652	})
52653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52654}
52655
52656// Do executes the "compute.firewalls.delete" call.
52657// Exactly one of *Operation or error will be non-nil. Any non-2xx
52658// status code is an error. Response headers are in either
52659// *Operation.ServerResponse.Header or (if a response was returned at
52660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52661// to check whether the returned error was because
52662// http.StatusNotModified was returned.
52663func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52664	gensupport.SetOptions(c.urlParams_, opts...)
52665	res, err := c.doRequest("json")
52666	if res != nil && res.StatusCode == http.StatusNotModified {
52667		if res.Body != nil {
52668			res.Body.Close()
52669		}
52670		return nil, &googleapi.Error{
52671			Code:   res.StatusCode,
52672			Header: res.Header,
52673		}
52674	}
52675	if err != nil {
52676		return nil, err
52677	}
52678	defer googleapi.CloseBody(res)
52679	if err := googleapi.CheckResponse(res); err != nil {
52680		return nil, err
52681	}
52682	ret := &Operation{
52683		ServerResponse: googleapi.ServerResponse{
52684			Header:         res.Header,
52685			HTTPStatusCode: res.StatusCode,
52686		},
52687	}
52688	target := &ret
52689	if err := gensupport.DecodeResponse(target, res); err != nil {
52690		return nil, err
52691	}
52692	return ret, nil
52693	// {
52694	//   "description": "Deletes the specified firewall.",
52695	//   "httpMethod": "DELETE",
52696	//   "id": "compute.firewalls.delete",
52697	//   "parameterOrder": [
52698	//     "project",
52699	//     "firewall"
52700	//   ],
52701	//   "parameters": {
52702	//     "firewall": {
52703	//       "description": "Name of the firewall rule to delete.",
52704	//       "location": "path",
52705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52706	//       "required": true,
52707	//       "type": "string"
52708	//     },
52709	//     "project": {
52710	//       "description": "Project ID for this request.",
52711	//       "location": "path",
52712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52713	//       "required": true,
52714	//       "type": "string"
52715	//     },
52716	//     "requestId": {
52717	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52718	//       "location": "query",
52719	//       "type": "string"
52720	//     }
52721	//   },
52722	//   "path": "{project}/global/firewalls/{firewall}",
52723	//   "response": {
52724	//     "$ref": "Operation"
52725	//   },
52726	//   "scopes": [
52727	//     "https://www.googleapis.com/auth/cloud-platform",
52728	//     "https://www.googleapis.com/auth/compute"
52729	//   ]
52730	// }
52731
52732}
52733
52734// method id "compute.firewalls.get":
52735
52736type FirewallsGetCall struct {
52737	s            *Service
52738	project      string
52739	firewall     string
52740	urlParams_   gensupport.URLParams
52741	ifNoneMatch_ string
52742	ctx_         context.Context
52743	header_      http.Header
52744}
52745
52746// Get: Returns the specified firewall.
52747// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
52748func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
52749	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52750	c.project = project
52751	c.firewall = firewall
52752	return c
52753}
52754
52755// Fields allows partial responses to be retrieved. See
52756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52757// for more information.
52758func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
52759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52760	return c
52761}
52762
52763// IfNoneMatch sets the optional parameter which makes the operation
52764// fail if the object's ETag matches the given value. This is useful for
52765// getting updates only after the object has changed since the last
52766// request. Use googleapi.IsNotModified to check whether the response
52767// error from Do is the result of In-None-Match.
52768func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
52769	c.ifNoneMatch_ = entityTag
52770	return c
52771}
52772
52773// Context sets the context to be used in this call's Do method. Any
52774// pending HTTP request will be aborted if the provided context is
52775// canceled.
52776func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
52777	c.ctx_ = ctx
52778	return c
52779}
52780
52781// Header returns an http.Header that can be modified by the caller to
52782// add HTTP headers to the request.
52783func (c *FirewallsGetCall) Header() http.Header {
52784	if c.header_ == nil {
52785		c.header_ = make(http.Header)
52786	}
52787	return c.header_
52788}
52789
52790func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
52791	reqHeaders := make(http.Header)
52792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52793	for k, v := range c.header_ {
52794		reqHeaders[k] = v
52795	}
52796	reqHeaders.Set("User-Agent", c.s.userAgent())
52797	if c.ifNoneMatch_ != "" {
52798		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52799	}
52800	var body io.Reader = nil
52801	c.urlParams_.Set("alt", alt)
52802	c.urlParams_.Set("prettyPrint", "false")
52803	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
52804	urls += "?" + c.urlParams_.Encode()
52805	req, err := http.NewRequest("GET", urls, body)
52806	if err != nil {
52807		return nil, err
52808	}
52809	req.Header = reqHeaders
52810	googleapi.Expand(req.URL, map[string]string{
52811		"project":  c.project,
52812		"firewall": c.firewall,
52813	})
52814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52815}
52816
52817// Do executes the "compute.firewalls.get" call.
52818// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
52819// code is an error. Response headers are in either
52820// *Firewall.ServerResponse.Header or (if a response was returned at
52821// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52822// to check whether the returned error was because
52823// http.StatusNotModified was returned.
52824func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
52825	gensupport.SetOptions(c.urlParams_, opts...)
52826	res, err := c.doRequest("json")
52827	if res != nil && res.StatusCode == http.StatusNotModified {
52828		if res.Body != nil {
52829			res.Body.Close()
52830		}
52831		return nil, &googleapi.Error{
52832			Code:   res.StatusCode,
52833			Header: res.Header,
52834		}
52835	}
52836	if err != nil {
52837		return nil, err
52838	}
52839	defer googleapi.CloseBody(res)
52840	if err := googleapi.CheckResponse(res); err != nil {
52841		return nil, err
52842	}
52843	ret := &Firewall{
52844		ServerResponse: googleapi.ServerResponse{
52845			Header:         res.Header,
52846			HTTPStatusCode: res.StatusCode,
52847		},
52848	}
52849	target := &ret
52850	if err := gensupport.DecodeResponse(target, res); err != nil {
52851		return nil, err
52852	}
52853	return ret, nil
52854	// {
52855	//   "description": "Returns the specified firewall.",
52856	//   "httpMethod": "GET",
52857	//   "id": "compute.firewalls.get",
52858	//   "parameterOrder": [
52859	//     "project",
52860	//     "firewall"
52861	//   ],
52862	//   "parameters": {
52863	//     "firewall": {
52864	//       "description": "Name of the firewall rule to return.",
52865	//       "location": "path",
52866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52867	//       "required": true,
52868	//       "type": "string"
52869	//     },
52870	//     "project": {
52871	//       "description": "Project ID for this request.",
52872	//       "location": "path",
52873	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52874	//       "required": true,
52875	//       "type": "string"
52876	//     }
52877	//   },
52878	//   "path": "{project}/global/firewalls/{firewall}",
52879	//   "response": {
52880	//     "$ref": "Firewall"
52881	//   },
52882	//   "scopes": [
52883	//     "https://www.googleapis.com/auth/cloud-platform",
52884	//     "https://www.googleapis.com/auth/compute",
52885	//     "https://www.googleapis.com/auth/compute.readonly"
52886	//   ]
52887	// }
52888
52889}
52890
52891// method id "compute.firewalls.insert":
52892
52893type FirewallsInsertCall struct {
52894	s          *Service
52895	project    string
52896	firewall   *Firewall
52897	urlParams_ gensupport.URLParams
52898	ctx_       context.Context
52899	header_    http.Header
52900}
52901
52902// Insert: Creates a firewall rule in the specified project using the
52903// data included in the request.
52904// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
52905func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
52906	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52907	c.project = project
52908	c.firewall = firewall
52909	return c
52910}
52911
52912// RequestId sets the optional parameter "requestId": An optional
52913// request ID to identify requests. Specify a unique request ID so that
52914// if you must retry your request, the server will know to ignore the
52915// request if it has already been completed.
52916//
52917// For example, consider a situation where you make an initial request
52918// and the request times out. If you make the request again with the
52919// same request ID, the server can check if original operation with the
52920// same request ID was received, and if so, will ignore the second
52921// request. This prevents clients from accidentally creating duplicate
52922// commitments.
52923//
52924// The request ID must be a valid UUID with the exception that zero UUID
52925// is not supported (00000000-0000-0000-0000-000000000000).
52926func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
52927	c.urlParams_.Set("requestId", requestId)
52928	return c
52929}
52930
52931// Fields allows partial responses to be retrieved. See
52932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52933// for more information.
52934func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
52935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52936	return c
52937}
52938
52939// Context sets the context to be used in this call's Do method. Any
52940// pending HTTP request will be aborted if the provided context is
52941// canceled.
52942func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
52943	c.ctx_ = ctx
52944	return c
52945}
52946
52947// Header returns an http.Header that can be modified by the caller to
52948// add HTTP headers to the request.
52949func (c *FirewallsInsertCall) Header() http.Header {
52950	if c.header_ == nil {
52951		c.header_ = make(http.Header)
52952	}
52953	return c.header_
52954}
52955
52956func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
52957	reqHeaders := make(http.Header)
52958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52959	for k, v := range c.header_ {
52960		reqHeaders[k] = v
52961	}
52962	reqHeaders.Set("User-Agent", c.s.userAgent())
52963	var body io.Reader = nil
52964	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
52965	if err != nil {
52966		return nil, err
52967	}
52968	reqHeaders.Set("Content-Type", "application/json")
52969	c.urlParams_.Set("alt", alt)
52970	c.urlParams_.Set("prettyPrint", "false")
52971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
52972	urls += "?" + c.urlParams_.Encode()
52973	req, err := http.NewRequest("POST", urls, body)
52974	if err != nil {
52975		return nil, err
52976	}
52977	req.Header = reqHeaders
52978	googleapi.Expand(req.URL, map[string]string{
52979		"project": c.project,
52980	})
52981	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52982}
52983
52984// Do executes the "compute.firewalls.insert" call.
52985// Exactly one of *Operation or error will be non-nil. Any non-2xx
52986// status code is an error. Response headers are in either
52987// *Operation.ServerResponse.Header or (if a response was returned at
52988// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52989// to check whether the returned error was because
52990// http.StatusNotModified was returned.
52991func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52992	gensupport.SetOptions(c.urlParams_, opts...)
52993	res, err := c.doRequest("json")
52994	if res != nil && res.StatusCode == http.StatusNotModified {
52995		if res.Body != nil {
52996			res.Body.Close()
52997		}
52998		return nil, &googleapi.Error{
52999			Code:   res.StatusCode,
53000			Header: res.Header,
53001		}
53002	}
53003	if err != nil {
53004		return nil, err
53005	}
53006	defer googleapi.CloseBody(res)
53007	if err := googleapi.CheckResponse(res); err != nil {
53008		return nil, err
53009	}
53010	ret := &Operation{
53011		ServerResponse: googleapi.ServerResponse{
53012			Header:         res.Header,
53013			HTTPStatusCode: res.StatusCode,
53014		},
53015	}
53016	target := &ret
53017	if err := gensupport.DecodeResponse(target, res); err != nil {
53018		return nil, err
53019	}
53020	return ret, nil
53021	// {
53022	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
53023	//   "httpMethod": "POST",
53024	//   "id": "compute.firewalls.insert",
53025	//   "parameterOrder": [
53026	//     "project"
53027	//   ],
53028	//   "parameters": {
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	//     "requestId": {
53037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53038	//       "location": "query",
53039	//       "type": "string"
53040	//     }
53041	//   },
53042	//   "path": "{project}/global/firewalls",
53043	//   "request": {
53044	//     "$ref": "Firewall"
53045	//   },
53046	//   "response": {
53047	//     "$ref": "Operation"
53048	//   },
53049	//   "scopes": [
53050	//     "https://www.googleapis.com/auth/cloud-platform",
53051	//     "https://www.googleapis.com/auth/compute"
53052	//   ]
53053	// }
53054
53055}
53056
53057// method id "compute.firewalls.list":
53058
53059type FirewallsListCall struct {
53060	s            *Service
53061	project      string
53062	urlParams_   gensupport.URLParams
53063	ifNoneMatch_ string
53064	ctx_         context.Context
53065	header_      http.Header
53066}
53067
53068// List: Retrieves the list of firewall rules available to the specified
53069// project.
53070// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
53071func (r *FirewallsService) List(project string) *FirewallsListCall {
53072	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53073	c.project = project
53074	return c
53075}
53076
53077// Filter sets the optional parameter "filter": A filter expression that
53078// filters resources listed in the response. The expression must specify
53079// the field name, a comparison operator, and the value that you want to
53080// use for filtering. The value must be a string, a number, or a
53081// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53082// `<`.
53083//
53084// For example, if you are filtering Compute Engine instances, you can
53085// exclude instances named `example-instance` by specifying `name !=
53086// example-instance`.
53087//
53088// You can also filter nested fields. For example, you could specify
53089// `scheduling.automaticRestart = false` to include instances only if
53090// they are not scheduled for automatic restarts. You can use filtering
53091// on nested fields to filter based on resource labels.
53092//
53093// To filter on multiple expressions, provide each separate expression
53094// within parentheses. For example: ``` (scheduling.automaticRestart =
53095// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
53096// is an `AND` expression. However, you can include `AND` and `OR`
53097// expressions explicitly. For example: ``` (cpuPlatform = "Intel
53098// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
53099// (scheduling.automaticRestart = true) ```
53100func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
53101	c.urlParams_.Set("filter", filter)
53102	return c
53103}
53104
53105// MaxResults sets the optional parameter "maxResults": The maximum
53106// number of results per page that should be returned. If the number of
53107// available results is larger than `maxResults`, Compute Engine returns
53108// a `nextPageToken` that can be used to get the next page of results in
53109// subsequent list requests. Acceptable values are `0` to `500`,
53110// inclusive. (Default: `500`)
53111func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
53112	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53113	return c
53114}
53115
53116// OrderBy sets the optional parameter "orderBy": Sorts list results by
53117// a certain order. By default, results are returned in alphanumerical
53118// order based on the resource name.
53119//
53120// You can also sort results in descending order based on the creation
53121// timestamp using `orderBy="creationTimestamp desc". This sorts
53122// results based on the `creationTimestamp` field in reverse
53123// chronological order (newest result first). Use this to sort resources
53124// like operations so that the newest operation is returned
53125// first.
53126//
53127// Currently, only sorting by `name` or `creationTimestamp desc` is
53128// supported.
53129func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
53130	c.urlParams_.Set("orderBy", orderBy)
53131	return c
53132}
53133
53134// PageToken sets the optional parameter "pageToken": Specifies a page
53135// token to use. Set `pageToken` to the `nextPageToken` returned by a
53136// previous list request to get the next page of results.
53137func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
53138	c.urlParams_.Set("pageToken", pageToken)
53139	return c
53140}
53141
53142// Fields allows partial responses to be retrieved. See
53143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53144// for more information.
53145func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
53146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53147	return c
53148}
53149
53150// IfNoneMatch sets the optional parameter which makes the operation
53151// fail if the object's ETag matches the given value. This is useful for
53152// getting updates only after the object has changed since the last
53153// request. Use googleapi.IsNotModified to check whether the response
53154// error from Do is the result of In-None-Match.
53155func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
53156	c.ifNoneMatch_ = entityTag
53157	return c
53158}
53159
53160// Context sets the context to be used in this call's Do method. Any
53161// pending HTTP request will be aborted if the provided context is
53162// canceled.
53163func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
53164	c.ctx_ = ctx
53165	return c
53166}
53167
53168// Header returns an http.Header that can be modified by the caller to
53169// add HTTP headers to the request.
53170func (c *FirewallsListCall) Header() http.Header {
53171	if c.header_ == nil {
53172		c.header_ = make(http.Header)
53173	}
53174	return c.header_
53175}
53176
53177func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
53178	reqHeaders := make(http.Header)
53179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53180	for k, v := range c.header_ {
53181		reqHeaders[k] = v
53182	}
53183	reqHeaders.Set("User-Agent", c.s.userAgent())
53184	if c.ifNoneMatch_ != "" {
53185		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53186	}
53187	var body io.Reader = nil
53188	c.urlParams_.Set("alt", alt)
53189	c.urlParams_.Set("prettyPrint", "false")
53190	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
53191	urls += "?" + c.urlParams_.Encode()
53192	req, err := http.NewRequest("GET", urls, body)
53193	if err != nil {
53194		return nil, err
53195	}
53196	req.Header = reqHeaders
53197	googleapi.Expand(req.URL, map[string]string{
53198		"project": c.project,
53199	})
53200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53201}
53202
53203// Do executes the "compute.firewalls.list" call.
53204// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
53205// status code is an error. Response headers are in either
53206// *FirewallList.ServerResponse.Header or (if a response was returned at
53207// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53208// to check whether the returned error was because
53209// http.StatusNotModified was returned.
53210func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
53211	gensupport.SetOptions(c.urlParams_, opts...)
53212	res, err := c.doRequest("json")
53213	if res != nil && res.StatusCode == http.StatusNotModified {
53214		if res.Body != nil {
53215			res.Body.Close()
53216		}
53217		return nil, &googleapi.Error{
53218			Code:   res.StatusCode,
53219			Header: res.Header,
53220		}
53221	}
53222	if err != nil {
53223		return nil, err
53224	}
53225	defer googleapi.CloseBody(res)
53226	if err := googleapi.CheckResponse(res); err != nil {
53227		return nil, err
53228	}
53229	ret := &FirewallList{
53230		ServerResponse: googleapi.ServerResponse{
53231			Header:         res.Header,
53232			HTTPStatusCode: res.StatusCode,
53233		},
53234	}
53235	target := &ret
53236	if err := gensupport.DecodeResponse(target, res); err != nil {
53237		return nil, err
53238	}
53239	return ret, nil
53240	// {
53241	//   "description": "Retrieves the list of firewall rules available to the specified project.",
53242	//   "httpMethod": "GET",
53243	//   "id": "compute.firewalls.list",
53244	//   "parameterOrder": [
53245	//     "project"
53246	//   ],
53247	//   "parameters": {
53248	//     "filter": {
53249	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
53250	//       "location": "query",
53251	//       "type": "string"
53252	//     },
53253	//     "maxResults": {
53254	//       "default": "500",
53255	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53256	//       "format": "uint32",
53257	//       "location": "query",
53258	//       "minimum": "0",
53259	//       "type": "integer"
53260	//     },
53261	//     "orderBy": {
53262	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
53263	//       "location": "query",
53264	//       "type": "string"
53265	//     },
53266	//     "pageToken": {
53267	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53268	//       "location": "query",
53269	//       "type": "string"
53270	//     },
53271	//     "project": {
53272	//       "description": "Project ID for this request.",
53273	//       "location": "path",
53274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53275	//       "required": true,
53276	//       "type": "string"
53277	//     }
53278	//   },
53279	//   "path": "{project}/global/firewalls",
53280	//   "response": {
53281	//     "$ref": "FirewallList"
53282	//   },
53283	//   "scopes": [
53284	//     "https://www.googleapis.com/auth/cloud-platform",
53285	//     "https://www.googleapis.com/auth/compute",
53286	//     "https://www.googleapis.com/auth/compute.readonly"
53287	//   ]
53288	// }
53289
53290}
53291
53292// Pages invokes f for each page of results.
53293// A non-nil error returned from f will halt the iteration.
53294// The provided context supersedes any context provided to the Context method.
53295func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
53296	c.ctx_ = ctx
53297	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53298	for {
53299		x, err := c.Do()
53300		if err != nil {
53301			return err
53302		}
53303		if err := f(x); err != nil {
53304			return err
53305		}
53306		if x.NextPageToken == "" {
53307			return nil
53308		}
53309		c.PageToken(x.NextPageToken)
53310	}
53311}
53312
53313// method id "compute.firewalls.patch":
53314
53315type FirewallsPatchCall struct {
53316	s          *Service
53317	project    string
53318	firewall   string
53319	firewall2  *Firewall
53320	urlParams_ gensupport.URLParams
53321	ctx_       context.Context
53322	header_    http.Header
53323}
53324
53325// Patch: Updates the specified firewall rule with the data included in
53326// the request. This method supports PATCH semantics and uses the JSON
53327// merge patch format and processing rules.
53328// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
53329func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
53330	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53331	c.project = project
53332	c.firewall = firewall
53333	c.firewall2 = firewall2
53334	return c
53335}
53336
53337// RequestId sets the optional parameter "requestId": An optional
53338// request ID to identify requests. Specify a unique request ID so that
53339// if you must retry your request, the server will know to ignore the
53340// request if it has already been completed.
53341//
53342// For example, consider a situation where you make an initial request
53343// and the request times out. If you make the request again with the
53344// same request ID, the server can check if original operation with the
53345// same request ID was received, and if so, will ignore the second
53346// request. This prevents clients from accidentally creating duplicate
53347// commitments.
53348//
53349// The request ID must be a valid UUID with the exception that zero UUID
53350// is not supported (00000000-0000-0000-0000-000000000000).
53351func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
53352	c.urlParams_.Set("requestId", requestId)
53353	return c
53354}
53355
53356// Fields allows partial responses to be retrieved. See
53357// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53358// for more information.
53359func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
53360	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53361	return c
53362}
53363
53364// Context sets the context to be used in this call's Do method. Any
53365// pending HTTP request will be aborted if the provided context is
53366// canceled.
53367func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
53368	c.ctx_ = ctx
53369	return c
53370}
53371
53372// Header returns an http.Header that can be modified by the caller to
53373// add HTTP headers to the request.
53374func (c *FirewallsPatchCall) Header() http.Header {
53375	if c.header_ == nil {
53376		c.header_ = make(http.Header)
53377	}
53378	return c.header_
53379}
53380
53381func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
53382	reqHeaders := make(http.Header)
53383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53384	for k, v := range c.header_ {
53385		reqHeaders[k] = v
53386	}
53387	reqHeaders.Set("User-Agent", c.s.userAgent())
53388	var body io.Reader = nil
53389	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
53390	if err != nil {
53391		return nil, err
53392	}
53393	reqHeaders.Set("Content-Type", "application/json")
53394	c.urlParams_.Set("alt", alt)
53395	c.urlParams_.Set("prettyPrint", "false")
53396	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
53397	urls += "?" + c.urlParams_.Encode()
53398	req, err := http.NewRequest("PATCH", urls, body)
53399	if err != nil {
53400		return nil, err
53401	}
53402	req.Header = reqHeaders
53403	googleapi.Expand(req.URL, map[string]string{
53404		"project":  c.project,
53405		"firewall": c.firewall,
53406	})
53407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53408}
53409
53410// Do executes the "compute.firewalls.patch" call.
53411// Exactly one of *Operation or error will be non-nil. Any non-2xx
53412// status code is an error. Response headers are in either
53413// *Operation.ServerResponse.Header or (if a response was returned at
53414// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53415// to check whether the returned error was because
53416// http.StatusNotModified was returned.
53417func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53418	gensupport.SetOptions(c.urlParams_, opts...)
53419	res, err := c.doRequest("json")
53420	if res != nil && res.StatusCode == http.StatusNotModified {
53421		if res.Body != nil {
53422			res.Body.Close()
53423		}
53424		return nil, &googleapi.Error{
53425			Code:   res.StatusCode,
53426			Header: res.Header,
53427		}
53428	}
53429	if err != nil {
53430		return nil, err
53431	}
53432	defer googleapi.CloseBody(res)
53433	if err := googleapi.CheckResponse(res); err != nil {
53434		return nil, err
53435	}
53436	ret := &Operation{
53437		ServerResponse: googleapi.ServerResponse{
53438			Header:         res.Header,
53439			HTTPStatusCode: res.StatusCode,
53440		},
53441	}
53442	target := &ret
53443	if err := gensupport.DecodeResponse(target, res); err != nil {
53444		return nil, err
53445	}
53446	return ret, nil
53447	// {
53448	//   "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.",
53449	//   "httpMethod": "PATCH",
53450	//   "id": "compute.firewalls.patch",
53451	//   "parameterOrder": [
53452	//     "project",
53453	//     "firewall"
53454	//   ],
53455	//   "parameters": {
53456	//     "firewall": {
53457	//       "description": "Name of the firewall rule to patch.",
53458	//       "location": "path",
53459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53460	//       "required": true,
53461	//       "type": "string"
53462	//     },
53463	//     "project": {
53464	//       "description": "Project ID for this request.",
53465	//       "location": "path",
53466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53467	//       "required": true,
53468	//       "type": "string"
53469	//     },
53470	//     "requestId": {
53471	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53472	//       "location": "query",
53473	//       "type": "string"
53474	//     }
53475	//   },
53476	//   "path": "{project}/global/firewalls/{firewall}",
53477	//   "request": {
53478	//     "$ref": "Firewall"
53479	//   },
53480	//   "response": {
53481	//     "$ref": "Operation"
53482	//   },
53483	//   "scopes": [
53484	//     "https://www.googleapis.com/auth/cloud-platform",
53485	//     "https://www.googleapis.com/auth/compute"
53486	//   ]
53487	// }
53488
53489}
53490
53491// method id "compute.firewalls.update":
53492
53493type FirewallsUpdateCall struct {
53494	s          *Service
53495	project    string
53496	firewall   string
53497	firewall2  *Firewall
53498	urlParams_ gensupport.URLParams
53499	ctx_       context.Context
53500	header_    http.Header
53501}
53502
53503// Update: Updates the specified firewall rule with the data included in
53504// the request. Note that all fields will be updated if using PUT, even
53505// fields that are not specified. To update individual fields, please
53506// use PATCH instead.
53507// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
53508func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
53509	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53510	c.project = project
53511	c.firewall = firewall
53512	c.firewall2 = firewall2
53513	return c
53514}
53515
53516// RequestId sets the optional parameter "requestId": An optional
53517// request ID to identify requests. Specify a unique request ID so that
53518// if you must retry your request, the server will know to ignore the
53519// request if it has already been completed.
53520//
53521// For example, consider a situation where you make an initial request
53522// and the request times out. If you make the request again with the
53523// same request ID, the server can check if original operation with the
53524// same request ID was received, and if so, will ignore the second
53525// request. This prevents clients from accidentally creating duplicate
53526// commitments.
53527//
53528// The request ID must be a valid UUID with the exception that zero UUID
53529// is not supported (00000000-0000-0000-0000-000000000000).
53530func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
53531	c.urlParams_.Set("requestId", requestId)
53532	return c
53533}
53534
53535// Fields allows partial responses to be retrieved. See
53536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53537// for more information.
53538func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
53539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53540	return c
53541}
53542
53543// Context sets the context to be used in this call's Do method. Any
53544// pending HTTP request will be aborted if the provided context is
53545// canceled.
53546func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
53547	c.ctx_ = ctx
53548	return c
53549}
53550
53551// Header returns an http.Header that can be modified by the caller to
53552// add HTTP headers to the request.
53553func (c *FirewallsUpdateCall) Header() http.Header {
53554	if c.header_ == nil {
53555		c.header_ = make(http.Header)
53556	}
53557	return c.header_
53558}
53559
53560func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
53561	reqHeaders := make(http.Header)
53562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53563	for k, v := range c.header_ {
53564		reqHeaders[k] = v
53565	}
53566	reqHeaders.Set("User-Agent", c.s.userAgent())
53567	var body io.Reader = nil
53568	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
53569	if err != nil {
53570		return nil, err
53571	}
53572	reqHeaders.Set("Content-Type", "application/json")
53573	c.urlParams_.Set("alt", alt)
53574	c.urlParams_.Set("prettyPrint", "false")
53575	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
53576	urls += "?" + c.urlParams_.Encode()
53577	req, err := http.NewRequest("PUT", urls, body)
53578	if err != nil {
53579		return nil, err
53580	}
53581	req.Header = reqHeaders
53582	googleapi.Expand(req.URL, map[string]string{
53583		"project":  c.project,
53584		"firewall": c.firewall,
53585	})
53586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53587}
53588
53589// Do executes the "compute.firewalls.update" call.
53590// Exactly one of *Operation or error will be non-nil. Any non-2xx
53591// status code is an error. Response headers are in either
53592// *Operation.ServerResponse.Header or (if a response was returned at
53593// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53594// to check whether the returned error was because
53595// http.StatusNotModified was returned.
53596func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53597	gensupport.SetOptions(c.urlParams_, opts...)
53598	res, err := c.doRequest("json")
53599	if res != nil && res.StatusCode == http.StatusNotModified {
53600		if res.Body != nil {
53601			res.Body.Close()
53602		}
53603		return nil, &googleapi.Error{
53604			Code:   res.StatusCode,
53605			Header: res.Header,
53606		}
53607	}
53608	if err != nil {
53609		return nil, err
53610	}
53611	defer googleapi.CloseBody(res)
53612	if err := googleapi.CheckResponse(res); err != nil {
53613		return nil, err
53614	}
53615	ret := &Operation{
53616		ServerResponse: googleapi.ServerResponse{
53617			Header:         res.Header,
53618			HTTPStatusCode: res.StatusCode,
53619		},
53620	}
53621	target := &ret
53622	if err := gensupport.DecodeResponse(target, res); err != nil {
53623		return nil, err
53624	}
53625	return ret, nil
53626	// {
53627	//   "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.",
53628	//   "httpMethod": "PUT",
53629	//   "id": "compute.firewalls.update",
53630	//   "parameterOrder": [
53631	//     "project",
53632	//     "firewall"
53633	//   ],
53634	//   "parameters": {
53635	//     "firewall": {
53636	//       "description": "Name of the firewall rule to update.",
53637	//       "location": "path",
53638	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53639	//       "required": true,
53640	//       "type": "string"
53641	//     },
53642	//     "project": {
53643	//       "description": "Project ID for this request.",
53644	//       "location": "path",
53645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53646	//       "required": true,
53647	//       "type": "string"
53648	//     },
53649	//     "requestId": {
53650	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53651	//       "location": "query",
53652	//       "type": "string"
53653	//     }
53654	//   },
53655	//   "path": "{project}/global/firewalls/{firewall}",
53656	//   "request": {
53657	//     "$ref": "Firewall"
53658	//   },
53659	//   "response": {
53660	//     "$ref": "Operation"
53661	//   },
53662	//   "scopes": [
53663	//     "https://www.googleapis.com/auth/cloud-platform",
53664	//     "https://www.googleapis.com/auth/compute"
53665	//   ]
53666	// }
53667
53668}
53669
53670// method id "compute.forwardingRules.aggregatedList":
53671
53672type ForwardingRulesAggregatedListCall struct {
53673	s            *Service
53674	project      string
53675	urlParams_   gensupport.URLParams
53676	ifNoneMatch_ string
53677	ctx_         context.Context
53678	header_      http.Header
53679}
53680
53681// AggregatedList: Retrieves an aggregated list of forwarding rules.
53682// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
53683func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
53684	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53685	c.project = project
53686	return c
53687}
53688
53689// Filter sets the optional parameter "filter": A filter expression that
53690// filters resources listed in the response. The expression must specify
53691// the field name, a comparison operator, and the value that you want to
53692// use for filtering. The value must be a string, a number, or a
53693// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53694// `<`.
53695//
53696// For example, if you are filtering Compute Engine instances, you can
53697// exclude instances named `example-instance` by specifying `name !=
53698// example-instance`.
53699//
53700// You can also filter nested fields. For example, you could specify
53701// `scheduling.automaticRestart = false` to include instances only if
53702// they are not scheduled for automatic restarts. You can use filtering
53703// on nested fields to filter based on resource labels.
53704//
53705// To filter on multiple expressions, provide each separate expression
53706// within parentheses. For example: ``` (scheduling.automaticRestart =
53707// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
53708// is an `AND` expression. However, you can include `AND` and `OR`
53709// expressions explicitly. For example: ``` (cpuPlatform = "Intel
53710// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
53711// (scheduling.automaticRestart = true) ```
53712func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
53713	c.urlParams_.Set("filter", filter)
53714	return c
53715}
53716
53717// IncludeAllScopes sets the optional parameter "includeAllScopes":
53718// Indicates whether every visible scope for each scope type (zone,
53719// region, global) should be included in the response. For new resource
53720// types added after this field, the flag has no effect as new resource
53721// types will always include every visible scope for each scope type in
53722// response. For resource types which predate this field, if this flag
53723// is omitted or false, only scopes of the scope types where the
53724// resource type is expected to be found will be included.
53725func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
53726	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
53727	return c
53728}
53729
53730// MaxResults sets the optional parameter "maxResults": The maximum
53731// number of results per page that should be returned. If the number of
53732// available results is larger than `maxResults`, Compute Engine returns
53733// a `nextPageToken` that can be used to get the next page of results in
53734// subsequent list requests. Acceptable values are `0` to `500`,
53735// inclusive. (Default: `500`)
53736func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
53737	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53738	return c
53739}
53740
53741// OrderBy sets the optional parameter "orderBy": Sorts list results by
53742// a certain order. By default, results are returned in alphanumerical
53743// order based on the resource name.
53744//
53745// You can also sort results in descending order based on the creation
53746// timestamp using `orderBy="creationTimestamp desc". This sorts
53747// results based on the `creationTimestamp` field in reverse
53748// chronological order (newest result first). Use this to sort resources
53749// like operations so that the newest operation is returned
53750// first.
53751//
53752// Currently, only sorting by `name` or `creationTimestamp desc` is
53753// supported.
53754func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
53755	c.urlParams_.Set("orderBy", orderBy)
53756	return c
53757}
53758
53759// PageToken sets the optional parameter "pageToken": Specifies a page
53760// token to use. Set `pageToken` to the `nextPageToken` returned by a
53761// previous list request to get the next page of results.
53762func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
53763	c.urlParams_.Set("pageToken", pageToken)
53764	return c
53765}
53766
53767// Fields allows partial responses to be retrieved. See
53768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53769// for more information.
53770func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
53771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53772	return c
53773}
53774
53775// IfNoneMatch sets the optional parameter which makes the operation
53776// fail if the object's ETag matches the given value. This is useful for
53777// getting updates only after the object has changed since the last
53778// request. Use googleapi.IsNotModified to check whether the response
53779// error from Do is the result of In-None-Match.
53780func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
53781	c.ifNoneMatch_ = entityTag
53782	return c
53783}
53784
53785// Context sets the context to be used in this call's Do method. Any
53786// pending HTTP request will be aborted if the provided context is
53787// canceled.
53788func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
53789	c.ctx_ = ctx
53790	return c
53791}
53792
53793// Header returns an http.Header that can be modified by the caller to
53794// add HTTP headers to the request.
53795func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
53796	if c.header_ == nil {
53797		c.header_ = make(http.Header)
53798	}
53799	return c.header_
53800}
53801
53802func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
53803	reqHeaders := make(http.Header)
53804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53805	for k, v := range c.header_ {
53806		reqHeaders[k] = v
53807	}
53808	reqHeaders.Set("User-Agent", c.s.userAgent())
53809	if c.ifNoneMatch_ != "" {
53810		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53811	}
53812	var body io.Reader = nil
53813	c.urlParams_.Set("alt", alt)
53814	c.urlParams_.Set("prettyPrint", "false")
53815	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
53816	urls += "?" + c.urlParams_.Encode()
53817	req, err := http.NewRequest("GET", urls, body)
53818	if err != nil {
53819		return nil, err
53820	}
53821	req.Header = reqHeaders
53822	googleapi.Expand(req.URL, map[string]string{
53823		"project": c.project,
53824	})
53825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53826}
53827
53828// Do executes the "compute.forwardingRules.aggregatedList" call.
53829// Exactly one of *ForwardingRuleAggregatedList or error will be
53830// non-nil. Any non-2xx status code is an error. Response headers are in
53831// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
53832// response was returned at all) in error.(*googleapi.Error).Header. Use
53833// googleapi.IsNotModified to check whether the returned error was
53834// because http.StatusNotModified was returned.
53835func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
53836	gensupport.SetOptions(c.urlParams_, opts...)
53837	res, err := c.doRequest("json")
53838	if res != nil && res.StatusCode == http.StatusNotModified {
53839		if res.Body != nil {
53840			res.Body.Close()
53841		}
53842		return nil, &googleapi.Error{
53843			Code:   res.StatusCode,
53844			Header: res.Header,
53845		}
53846	}
53847	if err != nil {
53848		return nil, err
53849	}
53850	defer googleapi.CloseBody(res)
53851	if err := googleapi.CheckResponse(res); err != nil {
53852		return nil, err
53853	}
53854	ret := &ForwardingRuleAggregatedList{
53855		ServerResponse: googleapi.ServerResponse{
53856			Header:         res.Header,
53857			HTTPStatusCode: res.StatusCode,
53858		},
53859	}
53860	target := &ret
53861	if err := gensupport.DecodeResponse(target, res); err != nil {
53862		return nil, err
53863	}
53864	return ret, nil
53865	// {
53866	//   "description": "Retrieves an aggregated list of forwarding rules.",
53867	//   "httpMethod": "GET",
53868	//   "id": "compute.forwardingRules.aggregatedList",
53869	//   "parameterOrder": [
53870	//     "project"
53871	//   ],
53872	//   "parameters": {
53873	//     "filter": {
53874	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
53875	//       "location": "query",
53876	//       "type": "string"
53877	//     },
53878	//     "includeAllScopes": {
53879	//       "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.",
53880	//       "location": "query",
53881	//       "type": "boolean"
53882	//     },
53883	//     "maxResults": {
53884	//       "default": "500",
53885	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53886	//       "format": "uint32",
53887	//       "location": "query",
53888	//       "minimum": "0",
53889	//       "type": "integer"
53890	//     },
53891	//     "orderBy": {
53892	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
53893	//       "location": "query",
53894	//       "type": "string"
53895	//     },
53896	//     "pageToken": {
53897	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53898	//       "location": "query",
53899	//       "type": "string"
53900	//     },
53901	//     "project": {
53902	//       "description": "Project ID for this request.",
53903	//       "location": "path",
53904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53905	//       "required": true,
53906	//       "type": "string"
53907	//     }
53908	//   },
53909	//   "path": "{project}/aggregated/forwardingRules",
53910	//   "response": {
53911	//     "$ref": "ForwardingRuleAggregatedList"
53912	//   },
53913	//   "scopes": [
53914	//     "https://www.googleapis.com/auth/cloud-platform",
53915	//     "https://www.googleapis.com/auth/compute",
53916	//     "https://www.googleapis.com/auth/compute.readonly"
53917	//   ]
53918	// }
53919
53920}
53921
53922// Pages invokes f for each page of results.
53923// A non-nil error returned from f will halt the iteration.
53924// The provided context supersedes any context provided to the Context method.
53925func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
53926	c.ctx_ = ctx
53927	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53928	for {
53929		x, err := c.Do()
53930		if err != nil {
53931			return err
53932		}
53933		if err := f(x); err != nil {
53934			return err
53935		}
53936		if x.NextPageToken == "" {
53937			return nil
53938		}
53939		c.PageToken(x.NextPageToken)
53940	}
53941}
53942
53943// method id "compute.forwardingRules.delete":
53944
53945type ForwardingRulesDeleteCall struct {
53946	s              *Service
53947	project        string
53948	region         string
53949	forwardingRule string
53950	urlParams_     gensupport.URLParams
53951	ctx_           context.Context
53952	header_        http.Header
53953}
53954
53955// Delete: Deletes the specified ForwardingRule resource.
53956// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
53957func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
53958	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53959	c.project = project
53960	c.region = region
53961	c.forwardingRule = forwardingRule
53962	return c
53963}
53964
53965// RequestId sets the optional parameter "requestId": An optional
53966// request ID to identify requests. Specify a unique request ID so that
53967// if you must retry your request, the server will know to ignore the
53968// request if it has already been completed.
53969//
53970// For example, consider a situation where you make an initial request
53971// and the request times out. If you make the request again with the
53972// same request ID, the server can check if original operation with the
53973// same request ID was received, and if so, will ignore the second
53974// request. This prevents clients from accidentally creating duplicate
53975// commitments.
53976//
53977// The request ID must be a valid UUID with the exception that zero UUID
53978// is not supported (00000000-0000-0000-0000-000000000000).
53979func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
53980	c.urlParams_.Set("requestId", requestId)
53981	return c
53982}
53983
53984// Fields allows partial responses to be retrieved. See
53985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53986// for more information.
53987func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
53988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53989	return c
53990}
53991
53992// Context sets the context to be used in this call's Do method. Any
53993// pending HTTP request will be aborted if the provided context is
53994// canceled.
53995func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
53996	c.ctx_ = ctx
53997	return c
53998}
53999
54000// Header returns an http.Header that can be modified by the caller to
54001// add HTTP headers to the request.
54002func (c *ForwardingRulesDeleteCall) Header() http.Header {
54003	if c.header_ == nil {
54004		c.header_ = make(http.Header)
54005	}
54006	return c.header_
54007}
54008
54009func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
54010	reqHeaders := make(http.Header)
54011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54012	for k, v := range c.header_ {
54013		reqHeaders[k] = v
54014	}
54015	reqHeaders.Set("User-Agent", c.s.userAgent())
54016	var body io.Reader = nil
54017	c.urlParams_.Set("alt", alt)
54018	c.urlParams_.Set("prettyPrint", "false")
54019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
54020	urls += "?" + c.urlParams_.Encode()
54021	req, err := http.NewRequest("DELETE", urls, body)
54022	if err != nil {
54023		return nil, err
54024	}
54025	req.Header = reqHeaders
54026	googleapi.Expand(req.URL, map[string]string{
54027		"project":        c.project,
54028		"region":         c.region,
54029		"forwardingRule": c.forwardingRule,
54030	})
54031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54032}
54033
54034// Do executes the "compute.forwardingRules.delete" call.
54035// Exactly one of *Operation or error will be non-nil. Any non-2xx
54036// status code is an error. Response headers are in either
54037// *Operation.ServerResponse.Header or (if a response was returned at
54038// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54039// to check whether the returned error was because
54040// http.StatusNotModified was returned.
54041func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54042	gensupport.SetOptions(c.urlParams_, opts...)
54043	res, err := c.doRequest("json")
54044	if res != nil && res.StatusCode == http.StatusNotModified {
54045		if res.Body != nil {
54046			res.Body.Close()
54047		}
54048		return nil, &googleapi.Error{
54049			Code:   res.StatusCode,
54050			Header: res.Header,
54051		}
54052	}
54053	if err != nil {
54054		return nil, err
54055	}
54056	defer googleapi.CloseBody(res)
54057	if err := googleapi.CheckResponse(res); err != nil {
54058		return nil, err
54059	}
54060	ret := &Operation{
54061		ServerResponse: googleapi.ServerResponse{
54062			Header:         res.Header,
54063			HTTPStatusCode: res.StatusCode,
54064		},
54065	}
54066	target := &ret
54067	if err := gensupport.DecodeResponse(target, res); err != nil {
54068		return nil, err
54069	}
54070	return ret, nil
54071	// {
54072	//   "description": "Deletes the specified ForwardingRule resource.",
54073	//   "httpMethod": "DELETE",
54074	//   "id": "compute.forwardingRules.delete",
54075	//   "parameterOrder": [
54076	//     "project",
54077	//     "region",
54078	//     "forwardingRule"
54079	//   ],
54080	//   "parameters": {
54081	//     "forwardingRule": {
54082	//       "description": "Name of the ForwardingRule resource to delete.",
54083	//       "location": "path",
54084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54085	//       "required": true,
54086	//       "type": "string"
54087	//     },
54088	//     "project": {
54089	//       "description": "Project ID for this request.",
54090	//       "location": "path",
54091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54092	//       "required": true,
54093	//       "type": "string"
54094	//     },
54095	//     "region": {
54096	//       "description": "Name of the region scoping this request.",
54097	//       "location": "path",
54098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54099	//       "required": true,
54100	//       "type": "string"
54101	//     },
54102	//     "requestId": {
54103	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54104	//       "location": "query",
54105	//       "type": "string"
54106	//     }
54107	//   },
54108	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
54109	//   "response": {
54110	//     "$ref": "Operation"
54111	//   },
54112	//   "scopes": [
54113	//     "https://www.googleapis.com/auth/cloud-platform",
54114	//     "https://www.googleapis.com/auth/compute"
54115	//   ]
54116	// }
54117
54118}
54119
54120// method id "compute.forwardingRules.get":
54121
54122type ForwardingRulesGetCall struct {
54123	s              *Service
54124	project        string
54125	region         string
54126	forwardingRule string
54127	urlParams_     gensupport.URLParams
54128	ifNoneMatch_   string
54129	ctx_           context.Context
54130	header_        http.Header
54131}
54132
54133// Get: Returns the specified ForwardingRule resource.
54134// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
54135func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
54136	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54137	c.project = project
54138	c.region = region
54139	c.forwardingRule = forwardingRule
54140	return c
54141}
54142
54143// Fields allows partial responses to be retrieved. See
54144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54145// for more information.
54146func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
54147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54148	return c
54149}
54150
54151// IfNoneMatch sets the optional parameter which makes the operation
54152// fail if the object's ETag matches the given value. This is useful for
54153// getting updates only after the object has changed since the last
54154// request. Use googleapi.IsNotModified to check whether the response
54155// error from Do is the result of In-None-Match.
54156func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
54157	c.ifNoneMatch_ = entityTag
54158	return c
54159}
54160
54161// Context sets the context to be used in this call's Do method. Any
54162// pending HTTP request will be aborted if the provided context is
54163// canceled.
54164func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
54165	c.ctx_ = ctx
54166	return c
54167}
54168
54169// Header returns an http.Header that can be modified by the caller to
54170// add HTTP headers to the request.
54171func (c *ForwardingRulesGetCall) Header() http.Header {
54172	if c.header_ == nil {
54173		c.header_ = make(http.Header)
54174	}
54175	return c.header_
54176}
54177
54178func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
54179	reqHeaders := make(http.Header)
54180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54181	for k, v := range c.header_ {
54182		reqHeaders[k] = v
54183	}
54184	reqHeaders.Set("User-Agent", c.s.userAgent())
54185	if c.ifNoneMatch_ != "" {
54186		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54187	}
54188	var body io.Reader = nil
54189	c.urlParams_.Set("alt", alt)
54190	c.urlParams_.Set("prettyPrint", "false")
54191	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
54192	urls += "?" + c.urlParams_.Encode()
54193	req, err := http.NewRequest("GET", urls, body)
54194	if err != nil {
54195		return nil, err
54196	}
54197	req.Header = reqHeaders
54198	googleapi.Expand(req.URL, map[string]string{
54199		"project":        c.project,
54200		"region":         c.region,
54201		"forwardingRule": c.forwardingRule,
54202	})
54203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54204}
54205
54206// Do executes the "compute.forwardingRules.get" call.
54207// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
54208// status code is an error. Response headers are in either
54209// *ForwardingRule.ServerResponse.Header or (if a response was returned
54210// at all) in error.(*googleapi.Error).Header. Use
54211// googleapi.IsNotModified to check whether the returned error was
54212// because http.StatusNotModified was returned.
54213func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
54214	gensupport.SetOptions(c.urlParams_, opts...)
54215	res, err := c.doRequest("json")
54216	if res != nil && res.StatusCode == http.StatusNotModified {
54217		if res.Body != nil {
54218			res.Body.Close()
54219		}
54220		return nil, &googleapi.Error{
54221			Code:   res.StatusCode,
54222			Header: res.Header,
54223		}
54224	}
54225	if err != nil {
54226		return nil, err
54227	}
54228	defer googleapi.CloseBody(res)
54229	if err := googleapi.CheckResponse(res); err != nil {
54230		return nil, err
54231	}
54232	ret := &ForwardingRule{
54233		ServerResponse: googleapi.ServerResponse{
54234			Header:         res.Header,
54235			HTTPStatusCode: res.StatusCode,
54236		},
54237	}
54238	target := &ret
54239	if err := gensupport.DecodeResponse(target, res); err != nil {
54240		return nil, err
54241	}
54242	return ret, nil
54243	// {
54244	//   "description": "Returns the specified ForwardingRule resource.",
54245	//   "httpMethod": "GET",
54246	//   "id": "compute.forwardingRules.get",
54247	//   "parameterOrder": [
54248	//     "project",
54249	//     "region",
54250	//     "forwardingRule"
54251	//   ],
54252	//   "parameters": {
54253	//     "forwardingRule": {
54254	//       "description": "Name of the ForwardingRule resource to return.",
54255	//       "location": "path",
54256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54257	//       "required": true,
54258	//       "type": "string"
54259	//     },
54260	//     "project": {
54261	//       "description": "Project ID for this request.",
54262	//       "location": "path",
54263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54264	//       "required": true,
54265	//       "type": "string"
54266	//     },
54267	//     "region": {
54268	//       "description": "Name of the region scoping this request.",
54269	//       "location": "path",
54270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54271	//       "required": true,
54272	//       "type": "string"
54273	//     }
54274	//   },
54275	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
54276	//   "response": {
54277	//     "$ref": "ForwardingRule"
54278	//   },
54279	//   "scopes": [
54280	//     "https://www.googleapis.com/auth/cloud-platform",
54281	//     "https://www.googleapis.com/auth/compute",
54282	//     "https://www.googleapis.com/auth/compute.readonly"
54283	//   ]
54284	// }
54285
54286}
54287
54288// method id "compute.forwardingRules.insert":
54289
54290type ForwardingRulesInsertCall struct {
54291	s              *Service
54292	project        string
54293	region         string
54294	forwardingrule *ForwardingRule
54295	urlParams_     gensupport.URLParams
54296	ctx_           context.Context
54297	header_        http.Header
54298}
54299
54300// Insert: Creates a ForwardingRule resource in the specified project
54301// and region using the data included in the request.
54302// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
54303func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
54304	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54305	c.project = project
54306	c.region = region
54307	c.forwardingrule = forwardingrule
54308	return c
54309}
54310
54311// RequestId sets the optional parameter "requestId": An optional
54312// request ID to identify requests. Specify a unique request ID so that
54313// if you must retry your request, the server will know to ignore the
54314// request if it has already been completed.
54315//
54316// For example, consider a situation where you make an initial request
54317// and the request times out. If you make the request again with the
54318// same request ID, the server can check if original operation with the
54319// same request ID was received, and if so, will ignore the second
54320// request. This prevents clients from accidentally creating duplicate
54321// commitments.
54322//
54323// The request ID must be a valid UUID with the exception that zero UUID
54324// is not supported (00000000-0000-0000-0000-000000000000).
54325func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
54326	c.urlParams_.Set("requestId", requestId)
54327	return c
54328}
54329
54330// Fields allows partial responses to be retrieved. See
54331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54332// for more information.
54333func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
54334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54335	return c
54336}
54337
54338// Context sets the context to be used in this call's Do method. Any
54339// pending HTTP request will be aborted if the provided context is
54340// canceled.
54341func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
54342	c.ctx_ = ctx
54343	return c
54344}
54345
54346// Header returns an http.Header that can be modified by the caller to
54347// add HTTP headers to the request.
54348func (c *ForwardingRulesInsertCall) Header() http.Header {
54349	if c.header_ == nil {
54350		c.header_ = make(http.Header)
54351	}
54352	return c.header_
54353}
54354
54355func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
54356	reqHeaders := make(http.Header)
54357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54358	for k, v := range c.header_ {
54359		reqHeaders[k] = v
54360	}
54361	reqHeaders.Set("User-Agent", c.s.userAgent())
54362	var body io.Reader = nil
54363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
54364	if err != nil {
54365		return nil, err
54366	}
54367	reqHeaders.Set("Content-Type", "application/json")
54368	c.urlParams_.Set("alt", alt)
54369	c.urlParams_.Set("prettyPrint", "false")
54370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
54371	urls += "?" + c.urlParams_.Encode()
54372	req, err := http.NewRequest("POST", urls, body)
54373	if err != nil {
54374		return nil, err
54375	}
54376	req.Header = reqHeaders
54377	googleapi.Expand(req.URL, map[string]string{
54378		"project": c.project,
54379		"region":  c.region,
54380	})
54381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54382}
54383
54384// Do executes the "compute.forwardingRules.insert" call.
54385// Exactly one of *Operation or error will be non-nil. Any non-2xx
54386// status code is an error. Response headers are in either
54387// *Operation.ServerResponse.Header or (if a response was returned at
54388// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54389// to check whether the returned error was because
54390// http.StatusNotModified was returned.
54391func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54392	gensupport.SetOptions(c.urlParams_, opts...)
54393	res, err := c.doRequest("json")
54394	if res != nil && res.StatusCode == http.StatusNotModified {
54395		if res.Body != nil {
54396			res.Body.Close()
54397		}
54398		return nil, &googleapi.Error{
54399			Code:   res.StatusCode,
54400			Header: res.Header,
54401		}
54402	}
54403	if err != nil {
54404		return nil, err
54405	}
54406	defer googleapi.CloseBody(res)
54407	if err := googleapi.CheckResponse(res); err != nil {
54408		return nil, err
54409	}
54410	ret := &Operation{
54411		ServerResponse: googleapi.ServerResponse{
54412			Header:         res.Header,
54413			HTTPStatusCode: res.StatusCode,
54414		},
54415	}
54416	target := &ret
54417	if err := gensupport.DecodeResponse(target, res); err != nil {
54418		return nil, err
54419	}
54420	return ret, nil
54421	// {
54422	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
54423	//   "httpMethod": "POST",
54424	//   "id": "compute.forwardingRules.insert",
54425	//   "parameterOrder": [
54426	//     "project",
54427	//     "region"
54428	//   ],
54429	//   "parameters": {
54430	//     "project": {
54431	//       "description": "Project ID for this request.",
54432	//       "location": "path",
54433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54434	//       "required": true,
54435	//       "type": "string"
54436	//     },
54437	//     "region": {
54438	//       "description": "Name of the region scoping this request.",
54439	//       "location": "path",
54440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54441	//       "required": true,
54442	//       "type": "string"
54443	//     },
54444	//     "requestId": {
54445	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54446	//       "location": "query",
54447	//       "type": "string"
54448	//     }
54449	//   },
54450	//   "path": "{project}/regions/{region}/forwardingRules",
54451	//   "request": {
54452	//     "$ref": "ForwardingRule"
54453	//   },
54454	//   "response": {
54455	//     "$ref": "Operation"
54456	//   },
54457	//   "scopes": [
54458	//     "https://www.googleapis.com/auth/cloud-platform",
54459	//     "https://www.googleapis.com/auth/compute"
54460	//   ]
54461	// }
54462
54463}
54464
54465// method id "compute.forwardingRules.list":
54466
54467type ForwardingRulesListCall struct {
54468	s            *Service
54469	project      string
54470	region       string
54471	urlParams_   gensupport.URLParams
54472	ifNoneMatch_ string
54473	ctx_         context.Context
54474	header_      http.Header
54475}
54476
54477// List: Retrieves a list of ForwardingRule resources available to the
54478// specified project and region.
54479// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
54480func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
54481	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54482	c.project = project
54483	c.region = region
54484	return c
54485}
54486
54487// Filter sets the optional parameter "filter": A filter expression that
54488// filters resources listed in the response. The expression must specify
54489// the field name, a comparison operator, and the value that you want to
54490// use for filtering. The value must be a string, a number, or a
54491// boolean. The comparison operator must be either `=`, `!=`, `>`, or
54492// `<`.
54493//
54494// For example, if you are filtering Compute Engine instances, you can
54495// exclude instances named `example-instance` by specifying `name !=
54496// example-instance`.
54497//
54498// You can also filter nested fields. For example, you could specify
54499// `scheduling.automaticRestart = false` to include instances only if
54500// they are not scheduled for automatic restarts. You can use filtering
54501// on nested fields to filter based on resource labels.
54502//
54503// To filter on multiple expressions, provide each separate expression
54504// within parentheses. For example: ``` (scheduling.automaticRestart =
54505// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
54506// is an `AND` expression. However, you can include `AND` and `OR`
54507// expressions explicitly. For example: ``` (cpuPlatform = "Intel
54508// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
54509// (scheduling.automaticRestart = true) ```
54510func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
54511	c.urlParams_.Set("filter", filter)
54512	return c
54513}
54514
54515// MaxResults sets the optional parameter "maxResults": The maximum
54516// number of results per page that should be returned. If the number of
54517// available results is larger than `maxResults`, Compute Engine returns
54518// a `nextPageToken` that can be used to get the next page of results in
54519// subsequent list requests. Acceptable values are `0` to `500`,
54520// inclusive. (Default: `500`)
54521func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
54522	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54523	return c
54524}
54525
54526// OrderBy sets the optional parameter "orderBy": Sorts list results by
54527// a certain order. By default, results are returned in alphanumerical
54528// order based on the resource name.
54529//
54530// You can also sort results in descending order based on the creation
54531// timestamp using `orderBy="creationTimestamp desc". This sorts
54532// results based on the `creationTimestamp` field in reverse
54533// chronological order (newest result first). Use this to sort resources
54534// like operations so that the newest operation is returned
54535// first.
54536//
54537// Currently, only sorting by `name` or `creationTimestamp desc` is
54538// supported.
54539func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
54540	c.urlParams_.Set("orderBy", orderBy)
54541	return c
54542}
54543
54544// PageToken sets the optional parameter "pageToken": Specifies a page
54545// token to use. Set `pageToken` to the `nextPageToken` returned by a
54546// previous list request to get the next page of results.
54547func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
54548	c.urlParams_.Set("pageToken", pageToken)
54549	return c
54550}
54551
54552// Fields allows partial responses to be retrieved. See
54553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54554// for more information.
54555func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
54556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54557	return c
54558}
54559
54560// IfNoneMatch sets the optional parameter which makes the operation
54561// fail if the object's ETag matches the given value. This is useful for
54562// getting updates only after the object has changed since the last
54563// request. Use googleapi.IsNotModified to check whether the response
54564// error from Do is the result of In-None-Match.
54565func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
54566	c.ifNoneMatch_ = entityTag
54567	return c
54568}
54569
54570// Context sets the context to be used in this call's Do method. Any
54571// pending HTTP request will be aborted if the provided context is
54572// canceled.
54573func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
54574	c.ctx_ = ctx
54575	return c
54576}
54577
54578// Header returns an http.Header that can be modified by the caller to
54579// add HTTP headers to the request.
54580func (c *ForwardingRulesListCall) Header() http.Header {
54581	if c.header_ == nil {
54582		c.header_ = make(http.Header)
54583	}
54584	return c.header_
54585}
54586
54587func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
54588	reqHeaders := make(http.Header)
54589	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54590	for k, v := range c.header_ {
54591		reqHeaders[k] = v
54592	}
54593	reqHeaders.Set("User-Agent", c.s.userAgent())
54594	if c.ifNoneMatch_ != "" {
54595		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54596	}
54597	var body io.Reader = nil
54598	c.urlParams_.Set("alt", alt)
54599	c.urlParams_.Set("prettyPrint", "false")
54600	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
54601	urls += "?" + c.urlParams_.Encode()
54602	req, err := http.NewRequest("GET", urls, body)
54603	if err != nil {
54604		return nil, err
54605	}
54606	req.Header = reqHeaders
54607	googleapi.Expand(req.URL, map[string]string{
54608		"project": c.project,
54609		"region":  c.region,
54610	})
54611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54612}
54613
54614// Do executes the "compute.forwardingRules.list" call.
54615// Exactly one of *ForwardingRuleList or error will be non-nil. Any
54616// non-2xx status code is an error. Response headers are in either
54617// *ForwardingRuleList.ServerResponse.Header or (if a response was
54618// returned at all) in error.(*googleapi.Error).Header. Use
54619// googleapi.IsNotModified to check whether the returned error was
54620// because http.StatusNotModified was returned.
54621func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
54622	gensupport.SetOptions(c.urlParams_, opts...)
54623	res, err := c.doRequest("json")
54624	if res != nil && res.StatusCode == http.StatusNotModified {
54625		if res.Body != nil {
54626			res.Body.Close()
54627		}
54628		return nil, &googleapi.Error{
54629			Code:   res.StatusCode,
54630			Header: res.Header,
54631		}
54632	}
54633	if err != nil {
54634		return nil, err
54635	}
54636	defer googleapi.CloseBody(res)
54637	if err := googleapi.CheckResponse(res); err != nil {
54638		return nil, err
54639	}
54640	ret := &ForwardingRuleList{
54641		ServerResponse: googleapi.ServerResponse{
54642			Header:         res.Header,
54643			HTTPStatusCode: res.StatusCode,
54644		},
54645	}
54646	target := &ret
54647	if err := gensupport.DecodeResponse(target, res); err != nil {
54648		return nil, err
54649	}
54650	return ret, nil
54651	// {
54652	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
54653	//   "httpMethod": "GET",
54654	//   "id": "compute.forwardingRules.list",
54655	//   "parameterOrder": [
54656	//     "project",
54657	//     "region"
54658	//   ],
54659	//   "parameters": {
54660	//     "filter": {
54661	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
54662	//       "location": "query",
54663	//       "type": "string"
54664	//     },
54665	//     "maxResults": {
54666	//       "default": "500",
54667	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54668	//       "format": "uint32",
54669	//       "location": "query",
54670	//       "minimum": "0",
54671	//       "type": "integer"
54672	//     },
54673	//     "orderBy": {
54674	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
54675	//       "location": "query",
54676	//       "type": "string"
54677	//     },
54678	//     "pageToken": {
54679	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54680	//       "location": "query",
54681	//       "type": "string"
54682	//     },
54683	//     "project": {
54684	//       "description": "Project ID for this request.",
54685	//       "location": "path",
54686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54687	//       "required": true,
54688	//       "type": "string"
54689	//     },
54690	//     "region": {
54691	//       "description": "Name of the region scoping this request.",
54692	//       "location": "path",
54693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54694	//       "required": true,
54695	//       "type": "string"
54696	//     }
54697	//   },
54698	//   "path": "{project}/regions/{region}/forwardingRules",
54699	//   "response": {
54700	//     "$ref": "ForwardingRuleList"
54701	//   },
54702	//   "scopes": [
54703	//     "https://www.googleapis.com/auth/cloud-platform",
54704	//     "https://www.googleapis.com/auth/compute",
54705	//     "https://www.googleapis.com/auth/compute.readonly"
54706	//   ]
54707	// }
54708
54709}
54710
54711// Pages invokes f for each page of results.
54712// A non-nil error returned from f will halt the iteration.
54713// The provided context supersedes any context provided to the Context method.
54714func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
54715	c.ctx_ = ctx
54716	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54717	for {
54718		x, err := c.Do()
54719		if err != nil {
54720			return err
54721		}
54722		if err := f(x); err != nil {
54723			return err
54724		}
54725		if x.NextPageToken == "" {
54726			return nil
54727		}
54728		c.PageToken(x.NextPageToken)
54729	}
54730}
54731
54732// method id "compute.forwardingRules.patch":
54733
54734type ForwardingRulesPatchCall struct {
54735	s              *Service
54736	project        string
54737	region         string
54738	forwardingRule string
54739	forwardingrule *ForwardingRule
54740	urlParams_     gensupport.URLParams
54741	ctx_           context.Context
54742	header_        http.Header
54743}
54744
54745// Patch: Updates the specified forwarding rule with the data included
54746// in the request. This method supports PATCH semantics and uses the
54747// JSON merge patch format and processing rules. Currently, you can only
54748// patch the network_tier field.
54749func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
54750	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54751	c.project = project
54752	c.region = region
54753	c.forwardingRule = forwardingRule
54754	c.forwardingrule = forwardingrule
54755	return c
54756}
54757
54758// RequestId sets the optional parameter "requestId": An optional
54759// request ID to identify requests. Specify a unique request ID so that
54760// if you must retry your request, the server will know to ignore the
54761// request if it has already been completed.
54762//
54763// For example, consider a situation where you make an initial request
54764// and the request times out. If you make the request again with the
54765// same request ID, the server can check if original operation with the
54766// same request ID was received, and if so, will ignore the second
54767// request. This prevents clients from accidentally creating duplicate
54768// commitments.
54769//
54770// The request ID must be a valid UUID with the exception that zero UUID
54771// is not supported (00000000-0000-0000-0000-000000000000).
54772func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
54773	c.urlParams_.Set("requestId", requestId)
54774	return c
54775}
54776
54777// Fields allows partial responses to be retrieved. See
54778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54779// for more information.
54780func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
54781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54782	return c
54783}
54784
54785// Context sets the context to be used in this call's Do method. Any
54786// pending HTTP request will be aborted if the provided context is
54787// canceled.
54788func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
54789	c.ctx_ = ctx
54790	return c
54791}
54792
54793// Header returns an http.Header that can be modified by the caller to
54794// add HTTP headers to the request.
54795func (c *ForwardingRulesPatchCall) Header() http.Header {
54796	if c.header_ == nil {
54797		c.header_ = make(http.Header)
54798	}
54799	return c.header_
54800}
54801
54802func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
54803	reqHeaders := make(http.Header)
54804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54805	for k, v := range c.header_ {
54806		reqHeaders[k] = v
54807	}
54808	reqHeaders.Set("User-Agent", c.s.userAgent())
54809	var body io.Reader = nil
54810	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
54811	if err != nil {
54812		return nil, err
54813	}
54814	reqHeaders.Set("Content-Type", "application/json")
54815	c.urlParams_.Set("alt", alt)
54816	c.urlParams_.Set("prettyPrint", "false")
54817	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
54818	urls += "?" + c.urlParams_.Encode()
54819	req, err := http.NewRequest("PATCH", urls, body)
54820	if err != nil {
54821		return nil, err
54822	}
54823	req.Header = reqHeaders
54824	googleapi.Expand(req.URL, map[string]string{
54825		"project":        c.project,
54826		"region":         c.region,
54827		"forwardingRule": c.forwardingRule,
54828	})
54829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54830}
54831
54832// Do executes the "compute.forwardingRules.patch" call.
54833// Exactly one of *Operation or error will be non-nil. Any non-2xx
54834// status code is an error. Response headers are in either
54835// *Operation.ServerResponse.Header or (if a response was returned at
54836// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54837// to check whether the returned error was because
54838// http.StatusNotModified was returned.
54839func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54840	gensupport.SetOptions(c.urlParams_, opts...)
54841	res, err := c.doRequest("json")
54842	if res != nil && res.StatusCode == http.StatusNotModified {
54843		if res.Body != nil {
54844			res.Body.Close()
54845		}
54846		return nil, &googleapi.Error{
54847			Code:   res.StatusCode,
54848			Header: res.Header,
54849		}
54850	}
54851	if err != nil {
54852		return nil, err
54853	}
54854	defer googleapi.CloseBody(res)
54855	if err := googleapi.CheckResponse(res); err != nil {
54856		return nil, err
54857	}
54858	ret := &Operation{
54859		ServerResponse: googleapi.ServerResponse{
54860			Header:         res.Header,
54861			HTTPStatusCode: res.StatusCode,
54862		},
54863	}
54864	target := &ret
54865	if err := gensupport.DecodeResponse(target, res); err != nil {
54866		return nil, err
54867	}
54868	return ret, nil
54869	// {
54870	//   "description": "Updates 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.",
54871	//   "httpMethod": "PATCH",
54872	//   "id": "compute.forwardingRules.patch",
54873	//   "parameterOrder": [
54874	//     "project",
54875	//     "region",
54876	//     "forwardingRule"
54877	//   ],
54878	//   "parameters": {
54879	//     "forwardingRule": {
54880	//       "description": "Name of the ForwardingRule resource to patch.",
54881	//       "location": "path",
54882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54883	//       "required": true,
54884	//       "type": "string"
54885	//     },
54886	//     "project": {
54887	//       "description": "Project ID for this request.",
54888	//       "location": "path",
54889	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54890	//       "required": true,
54891	//       "type": "string"
54892	//     },
54893	//     "region": {
54894	//       "description": "Name of the region scoping this request.",
54895	//       "location": "path",
54896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54897	//       "required": true,
54898	//       "type": "string"
54899	//     },
54900	//     "requestId": {
54901	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54902	//       "location": "query",
54903	//       "type": "string"
54904	//     }
54905	//   },
54906	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
54907	//   "request": {
54908	//     "$ref": "ForwardingRule"
54909	//   },
54910	//   "response": {
54911	//     "$ref": "Operation"
54912	//   },
54913	//   "scopes": [
54914	//     "https://www.googleapis.com/auth/cloud-platform",
54915	//     "https://www.googleapis.com/auth/compute"
54916	//   ]
54917	// }
54918
54919}
54920
54921// method id "compute.forwardingRules.setTarget":
54922
54923type ForwardingRulesSetTargetCall struct {
54924	s               *Service
54925	project         string
54926	region          string
54927	forwardingRule  string
54928	targetreference *TargetReference
54929	urlParams_      gensupport.URLParams
54930	ctx_            context.Context
54931	header_         http.Header
54932}
54933
54934// SetTarget: Changes target URL for forwarding rule. The new target
54935// should be of the same type as the old target.
54936// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
54937func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
54938	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54939	c.project = project
54940	c.region = region
54941	c.forwardingRule = forwardingRule
54942	c.targetreference = targetreference
54943	return c
54944}
54945
54946// RequestId sets the optional parameter "requestId": An optional
54947// request ID to identify requests. Specify a unique request ID so that
54948// if you must retry your request, the server will know to ignore the
54949// request if it has already been completed.
54950//
54951// For example, consider a situation where you make an initial request
54952// and the request times out. If you make the request again with the
54953// same request ID, the server can check if original operation with the
54954// same request ID was received, and if so, will ignore the second
54955// request. This prevents clients from accidentally creating duplicate
54956// commitments.
54957//
54958// The request ID must be a valid UUID with the exception that zero UUID
54959// is not supported (00000000-0000-0000-0000-000000000000).
54960func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
54961	c.urlParams_.Set("requestId", requestId)
54962	return c
54963}
54964
54965// Fields allows partial responses to be retrieved. See
54966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54967// for more information.
54968func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
54969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54970	return c
54971}
54972
54973// Context sets the context to be used in this call's Do method. Any
54974// pending HTTP request will be aborted if the provided context is
54975// canceled.
54976func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
54977	c.ctx_ = ctx
54978	return c
54979}
54980
54981// Header returns an http.Header that can be modified by the caller to
54982// add HTTP headers to the request.
54983func (c *ForwardingRulesSetTargetCall) Header() http.Header {
54984	if c.header_ == nil {
54985		c.header_ = make(http.Header)
54986	}
54987	return c.header_
54988}
54989
54990func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
54991	reqHeaders := make(http.Header)
54992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54993	for k, v := range c.header_ {
54994		reqHeaders[k] = v
54995	}
54996	reqHeaders.Set("User-Agent", c.s.userAgent())
54997	var body io.Reader = nil
54998	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
54999	if err != nil {
55000		return nil, err
55001	}
55002	reqHeaders.Set("Content-Type", "application/json")
55003	c.urlParams_.Set("alt", alt)
55004	c.urlParams_.Set("prettyPrint", "false")
55005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
55006	urls += "?" + c.urlParams_.Encode()
55007	req, err := http.NewRequest("POST", urls, body)
55008	if err != nil {
55009		return nil, err
55010	}
55011	req.Header = reqHeaders
55012	googleapi.Expand(req.URL, map[string]string{
55013		"project":        c.project,
55014		"region":         c.region,
55015		"forwardingRule": c.forwardingRule,
55016	})
55017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55018}
55019
55020// Do executes the "compute.forwardingRules.setTarget" call.
55021// Exactly one of *Operation or error will be non-nil. Any non-2xx
55022// status code is an error. Response headers are in either
55023// *Operation.ServerResponse.Header or (if a response was returned at
55024// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55025// to check whether the returned error was because
55026// http.StatusNotModified was returned.
55027func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55028	gensupport.SetOptions(c.urlParams_, opts...)
55029	res, err := c.doRequest("json")
55030	if res != nil && res.StatusCode == http.StatusNotModified {
55031		if res.Body != nil {
55032			res.Body.Close()
55033		}
55034		return nil, &googleapi.Error{
55035			Code:   res.StatusCode,
55036			Header: res.Header,
55037		}
55038	}
55039	if err != nil {
55040		return nil, err
55041	}
55042	defer googleapi.CloseBody(res)
55043	if err := googleapi.CheckResponse(res); err != nil {
55044		return nil, err
55045	}
55046	ret := &Operation{
55047		ServerResponse: googleapi.ServerResponse{
55048			Header:         res.Header,
55049			HTTPStatusCode: res.StatusCode,
55050		},
55051	}
55052	target := &ret
55053	if err := gensupport.DecodeResponse(target, res); err != nil {
55054		return nil, err
55055	}
55056	return ret, nil
55057	// {
55058	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
55059	//   "httpMethod": "POST",
55060	//   "id": "compute.forwardingRules.setTarget",
55061	//   "parameterOrder": [
55062	//     "project",
55063	//     "region",
55064	//     "forwardingRule"
55065	//   ],
55066	//   "parameters": {
55067	//     "forwardingRule": {
55068	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
55069	//       "location": "path",
55070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55071	//       "required": true,
55072	//       "type": "string"
55073	//     },
55074	//     "project": {
55075	//       "description": "Project ID for this request.",
55076	//       "location": "path",
55077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55078	//       "required": true,
55079	//       "type": "string"
55080	//     },
55081	//     "region": {
55082	//       "description": "Name of the region scoping this request.",
55083	//       "location": "path",
55084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55085	//       "required": true,
55086	//       "type": "string"
55087	//     },
55088	//     "requestId": {
55089	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55090	//       "location": "query",
55091	//       "type": "string"
55092	//     }
55093	//   },
55094	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
55095	//   "request": {
55096	//     "$ref": "TargetReference"
55097	//   },
55098	//   "response": {
55099	//     "$ref": "Operation"
55100	//   },
55101	//   "scopes": [
55102	//     "https://www.googleapis.com/auth/cloud-platform",
55103	//     "https://www.googleapis.com/auth/compute"
55104	//   ]
55105	// }
55106
55107}
55108
55109// method id "compute.globalAddresses.delete":
55110
55111type GlobalAddressesDeleteCall struct {
55112	s          *Service
55113	project    string
55114	address    string
55115	urlParams_ gensupport.URLParams
55116	ctx_       context.Context
55117	header_    http.Header
55118}
55119
55120// Delete: Deletes the specified address resource.
55121// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
55122func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
55123	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55124	c.project = project
55125	c.address = address
55126	return c
55127}
55128
55129// RequestId sets the optional parameter "requestId": An optional
55130// request ID to identify requests. Specify a unique request ID so that
55131// if you must retry your request, the server will know to ignore the
55132// request if it has already been completed.
55133//
55134// For example, consider a situation where you make an initial request
55135// and the request times out. If you make the request again with the
55136// same request ID, the server can check if original operation with the
55137// same request ID was received, and if so, will ignore the second
55138// request. This prevents clients from accidentally creating duplicate
55139// commitments.
55140//
55141// The request ID must be a valid UUID with the exception that zero UUID
55142// is not supported (00000000-0000-0000-0000-000000000000).
55143func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
55144	c.urlParams_.Set("requestId", requestId)
55145	return c
55146}
55147
55148// Fields allows partial responses to be retrieved. See
55149// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55150// for more information.
55151func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
55152	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55153	return c
55154}
55155
55156// Context sets the context to be used in this call's Do method. Any
55157// pending HTTP request will be aborted if the provided context is
55158// canceled.
55159func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
55160	c.ctx_ = ctx
55161	return c
55162}
55163
55164// Header returns an http.Header that can be modified by the caller to
55165// add HTTP headers to the request.
55166func (c *GlobalAddressesDeleteCall) Header() http.Header {
55167	if c.header_ == nil {
55168		c.header_ = make(http.Header)
55169	}
55170	return c.header_
55171}
55172
55173func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
55174	reqHeaders := make(http.Header)
55175	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55176	for k, v := range c.header_ {
55177		reqHeaders[k] = v
55178	}
55179	reqHeaders.Set("User-Agent", c.s.userAgent())
55180	var body io.Reader = nil
55181	c.urlParams_.Set("alt", alt)
55182	c.urlParams_.Set("prettyPrint", "false")
55183	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
55184	urls += "?" + c.urlParams_.Encode()
55185	req, err := http.NewRequest("DELETE", urls, body)
55186	if err != nil {
55187		return nil, err
55188	}
55189	req.Header = reqHeaders
55190	googleapi.Expand(req.URL, map[string]string{
55191		"project": c.project,
55192		"address": c.address,
55193	})
55194	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55195}
55196
55197// Do executes the "compute.globalAddresses.delete" call.
55198// Exactly one of *Operation or error will be non-nil. Any non-2xx
55199// status code is an error. Response headers are in either
55200// *Operation.ServerResponse.Header or (if a response was returned at
55201// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55202// to check whether the returned error was because
55203// http.StatusNotModified was returned.
55204func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55205	gensupport.SetOptions(c.urlParams_, opts...)
55206	res, err := c.doRequest("json")
55207	if res != nil && res.StatusCode == http.StatusNotModified {
55208		if res.Body != nil {
55209			res.Body.Close()
55210		}
55211		return nil, &googleapi.Error{
55212			Code:   res.StatusCode,
55213			Header: res.Header,
55214		}
55215	}
55216	if err != nil {
55217		return nil, err
55218	}
55219	defer googleapi.CloseBody(res)
55220	if err := googleapi.CheckResponse(res); err != nil {
55221		return nil, err
55222	}
55223	ret := &Operation{
55224		ServerResponse: googleapi.ServerResponse{
55225			Header:         res.Header,
55226			HTTPStatusCode: res.StatusCode,
55227		},
55228	}
55229	target := &ret
55230	if err := gensupport.DecodeResponse(target, res); err != nil {
55231		return nil, err
55232	}
55233	return ret, nil
55234	// {
55235	//   "description": "Deletes the specified address resource.",
55236	//   "httpMethod": "DELETE",
55237	//   "id": "compute.globalAddresses.delete",
55238	//   "parameterOrder": [
55239	//     "project",
55240	//     "address"
55241	//   ],
55242	//   "parameters": {
55243	//     "address": {
55244	//       "description": "Name of the address resource to delete.",
55245	//       "location": "path",
55246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55247	//       "required": true,
55248	//       "type": "string"
55249	//     },
55250	//     "project": {
55251	//       "description": "Project ID for this request.",
55252	//       "location": "path",
55253	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55254	//       "required": true,
55255	//       "type": "string"
55256	//     },
55257	//     "requestId": {
55258	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55259	//       "location": "query",
55260	//       "type": "string"
55261	//     }
55262	//   },
55263	//   "path": "{project}/global/addresses/{address}",
55264	//   "response": {
55265	//     "$ref": "Operation"
55266	//   },
55267	//   "scopes": [
55268	//     "https://www.googleapis.com/auth/cloud-platform",
55269	//     "https://www.googleapis.com/auth/compute"
55270	//   ]
55271	// }
55272
55273}
55274
55275// method id "compute.globalAddresses.get":
55276
55277type GlobalAddressesGetCall struct {
55278	s            *Service
55279	project      string
55280	address      string
55281	urlParams_   gensupport.URLParams
55282	ifNoneMatch_ string
55283	ctx_         context.Context
55284	header_      http.Header
55285}
55286
55287// Get: Returns the specified address resource. Gets a list of available
55288// addresses by making a list() request.
55289// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
55290func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
55291	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55292	c.project = project
55293	c.address = address
55294	return c
55295}
55296
55297// Fields allows partial responses to be retrieved. See
55298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55299// for more information.
55300func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
55301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55302	return c
55303}
55304
55305// IfNoneMatch sets the optional parameter which makes the operation
55306// fail if the object's ETag matches the given value. This is useful for
55307// getting updates only after the object has changed since the last
55308// request. Use googleapi.IsNotModified to check whether the response
55309// error from Do is the result of In-None-Match.
55310func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
55311	c.ifNoneMatch_ = entityTag
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 *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
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 *GlobalAddressesGetCall) Header() http.Header {
55326	if c.header_ == nil {
55327		c.header_ = make(http.Header)
55328	}
55329	return c.header_
55330}
55331
55332func (c *GlobalAddressesGetCall) 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	if c.ifNoneMatch_ != "" {
55340		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55341	}
55342	var body io.Reader = nil
55343	c.urlParams_.Set("alt", alt)
55344	c.urlParams_.Set("prettyPrint", "false")
55345	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
55346	urls += "?" + c.urlParams_.Encode()
55347	req, err := http.NewRequest("GET", urls, body)
55348	if err != nil {
55349		return nil, err
55350	}
55351	req.Header = reqHeaders
55352	googleapi.Expand(req.URL, map[string]string{
55353		"project": c.project,
55354		"address": c.address,
55355	})
55356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55357}
55358
55359// Do executes the "compute.globalAddresses.get" call.
55360// Exactly one of *Address or error will be non-nil. Any non-2xx status
55361// code is an error. Response headers are in either
55362// *Address.ServerResponse.Header or (if a response was returned at all)
55363// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55364// check whether the returned error was because http.StatusNotModified
55365// was returned.
55366func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
55367	gensupport.SetOptions(c.urlParams_, opts...)
55368	res, err := c.doRequest("json")
55369	if res != nil && res.StatusCode == http.StatusNotModified {
55370		if res.Body != nil {
55371			res.Body.Close()
55372		}
55373		return nil, &googleapi.Error{
55374			Code:   res.StatusCode,
55375			Header: res.Header,
55376		}
55377	}
55378	if err != nil {
55379		return nil, err
55380	}
55381	defer googleapi.CloseBody(res)
55382	if err := googleapi.CheckResponse(res); err != nil {
55383		return nil, err
55384	}
55385	ret := &Address{
55386		ServerResponse: googleapi.ServerResponse{
55387			Header:         res.Header,
55388			HTTPStatusCode: res.StatusCode,
55389		},
55390	}
55391	target := &ret
55392	if err := gensupport.DecodeResponse(target, res); err != nil {
55393		return nil, err
55394	}
55395	return ret, nil
55396	// {
55397	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
55398	//   "httpMethod": "GET",
55399	//   "id": "compute.globalAddresses.get",
55400	//   "parameterOrder": [
55401	//     "project",
55402	//     "address"
55403	//   ],
55404	//   "parameters": {
55405	//     "address": {
55406	//       "description": "Name of the address resource to return.",
55407	//       "location": "path",
55408	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55409	//       "required": true,
55410	//       "type": "string"
55411	//     },
55412	//     "project": {
55413	//       "description": "Project ID for this request.",
55414	//       "location": "path",
55415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55416	//       "required": true,
55417	//       "type": "string"
55418	//     }
55419	//   },
55420	//   "path": "{project}/global/addresses/{address}",
55421	//   "response": {
55422	//     "$ref": "Address"
55423	//   },
55424	//   "scopes": [
55425	//     "https://www.googleapis.com/auth/cloud-platform",
55426	//     "https://www.googleapis.com/auth/compute",
55427	//     "https://www.googleapis.com/auth/compute.readonly"
55428	//   ]
55429	// }
55430
55431}
55432
55433// method id "compute.globalAddresses.insert":
55434
55435type GlobalAddressesInsertCall struct {
55436	s          *Service
55437	project    string
55438	address    *Address
55439	urlParams_ gensupport.URLParams
55440	ctx_       context.Context
55441	header_    http.Header
55442}
55443
55444// Insert: Creates an address resource in the specified project by using
55445// the data included in the request.
55446// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
55447func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
55448	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55449	c.project = project
55450	c.address = address
55451	return c
55452}
55453
55454// RequestId sets the optional parameter "requestId": An optional
55455// request ID to identify requests. Specify a unique request ID so that
55456// if you must retry your request, the server will know to ignore the
55457// request if it has already been completed.
55458//
55459// For example, consider a situation where you make an initial request
55460// and the request times out. If you make the request again with the
55461// same request ID, the server can check if original operation with the
55462// same request ID was received, and if so, will ignore the second
55463// request. This prevents clients from accidentally creating duplicate
55464// commitments.
55465//
55466// The request ID must be a valid UUID with the exception that zero UUID
55467// is not supported (00000000-0000-0000-0000-000000000000).
55468func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
55469	c.urlParams_.Set("requestId", requestId)
55470	return c
55471}
55472
55473// Fields allows partial responses to be retrieved. See
55474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55475// for more information.
55476func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
55477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55478	return c
55479}
55480
55481// Context sets the context to be used in this call's Do method. Any
55482// pending HTTP request will be aborted if the provided context is
55483// canceled.
55484func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
55485	c.ctx_ = ctx
55486	return c
55487}
55488
55489// Header returns an http.Header that can be modified by the caller to
55490// add HTTP headers to the request.
55491func (c *GlobalAddressesInsertCall) Header() http.Header {
55492	if c.header_ == nil {
55493		c.header_ = make(http.Header)
55494	}
55495	return c.header_
55496}
55497
55498func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
55499	reqHeaders := make(http.Header)
55500	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55501	for k, v := range c.header_ {
55502		reqHeaders[k] = v
55503	}
55504	reqHeaders.Set("User-Agent", c.s.userAgent())
55505	var body io.Reader = nil
55506	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
55507	if err != nil {
55508		return nil, err
55509	}
55510	reqHeaders.Set("Content-Type", "application/json")
55511	c.urlParams_.Set("alt", alt)
55512	c.urlParams_.Set("prettyPrint", "false")
55513	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
55514	urls += "?" + c.urlParams_.Encode()
55515	req, err := http.NewRequest("POST", urls, body)
55516	if err != nil {
55517		return nil, err
55518	}
55519	req.Header = reqHeaders
55520	googleapi.Expand(req.URL, map[string]string{
55521		"project": c.project,
55522	})
55523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55524}
55525
55526// Do executes the "compute.globalAddresses.insert" call.
55527// Exactly one of *Operation or error will be non-nil. Any non-2xx
55528// status code is an error. Response headers are in either
55529// *Operation.ServerResponse.Header or (if a response was returned at
55530// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55531// to check whether the returned error was because
55532// http.StatusNotModified was returned.
55533func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55534	gensupport.SetOptions(c.urlParams_, opts...)
55535	res, err := c.doRequest("json")
55536	if res != nil && res.StatusCode == http.StatusNotModified {
55537		if res.Body != nil {
55538			res.Body.Close()
55539		}
55540		return nil, &googleapi.Error{
55541			Code:   res.StatusCode,
55542			Header: res.Header,
55543		}
55544	}
55545	if err != nil {
55546		return nil, err
55547	}
55548	defer googleapi.CloseBody(res)
55549	if err := googleapi.CheckResponse(res); err != nil {
55550		return nil, err
55551	}
55552	ret := &Operation{
55553		ServerResponse: googleapi.ServerResponse{
55554			Header:         res.Header,
55555			HTTPStatusCode: res.StatusCode,
55556		},
55557	}
55558	target := &ret
55559	if err := gensupport.DecodeResponse(target, res); err != nil {
55560		return nil, err
55561	}
55562	return ret, nil
55563	// {
55564	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
55565	//   "httpMethod": "POST",
55566	//   "id": "compute.globalAddresses.insert",
55567	//   "parameterOrder": [
55568	//     "project"
55569	//   ],
55570	//   "parameters": {
55571	//     "project": {
55572	//       "description": "Project ID for this request.",
55573	//       "location": "path",
55574	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55575	//       "required": true,
55576	//       "type": "string"
55577	//     },
55578	//     "requestId": {
55579	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55580	//       "location": "query",
55581	//       "type": "string"
55582	//     }
55583	//   },
55584	//   "path": "{project}/global/addresses",
55585	//   "request": {
55586	//     "$ref": "Address"
55587	//   },
55588	//   "response": {
55589	//     "$ref": "Operation"
55590	//   },
55591	//   "scopes": [
55592	//     "https://www.googleapis.com/auth/cloud-platform",
55593	//     "https://www.googleapis.com/auth/compute"
55594	//   ]
55595	// }
55596
55597}
55598
55599// method id "compute.globalAddresses.list":
55600
55601type GlobalAddressesListCall struct {
55602	s            *Service
55603	project      string
55604	urlParams_   gensupport.URLParams
55605	ifNoneMatch_ string
55606	ctx_         context.Context
55607	header_      http.Header
55608}
55609
55610// List: Retrieves a list of global addresses.
55611// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
55612func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
55613	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55614	c.project = project
55615	return c
55616}
55617
55618// Filter sets the optional parameter "filter": A filter expression that
55619// filters resources listed in the response. The expression must specify
55620// the field name, a comparison operator, and the value that you want to
55621// use for filtering. The value must be a string, a number, or a
55622// boolean. The comparison operator must be either `=`, `!=`, `>`, or
55623// `<`.
55624//
55625// For example, if you are filtering Compute Engine instances, you can
55626// exclude instances named `example-instance` by specifying `name !=
55627// example-instance`.
55628//
55629// You can also filter nested fields. For example, you could specify
55630// `scheduling.automaticRestart = false` to include instances only if
55631// they are not scheduled for automatic restarts. You can use filtering
55632// on nested fields to filter based on resource labels.
55633//
55634// To filter on multiple expressions, provide each separate expression
55635// within parentheses. For example: ``` (scheduling.automaticRestart =
55636// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
55637// is an `AND` expression. However, you can include `AND` and `OR`
55638// expressions explicitly. For example: ``` (cpuPlatform = "Intel
55639// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
55640// (scheduling.automaticRestart = true) ```
55641func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
55642	c.urlParams_.Set("filter", filter)
55643	return c
55644}
55645
55646// MaxResults sets the optional parameter "maxResults": The maximum
55647// number of results per page that should be returned. If the number of
55648// available results is larger than `maxResults`, Compute Engine returns
55649// a `nextPageToken` that can be used to get the next page of results in
55650// subsequent list requests. Acceptable values are `0` to `500`,
55651// inclusive. (Default: `500`)
55652func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
55653	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55654	return c
55655}
55656
55657// OrderBy sets the optional parameter "orderBy": Sorts list results by
55658// a certain order. By default, results are returned in alphanumerical
55659// order based on the resource name.
55660//
55661// You can also sort results in descending order based on the creation
55662// timestamp using `orderBy="creationTimestamp desc". This sorts
55663// results based on the `creationTimestamp` field in reverse
55664// chronological order (newest result first). Use this to sort resources
55665// like operations so that the newest operation is returned
55666// first.
55667//
55668// Currently, only sorting by `name` or `creationTimestamp desc` is
55669// supported.
55670func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
55671	c.urlParams_.Set("orderBy", orderBy)
55672	return c
55673}
55674
55675// PageToken sets the optional parameter "pageToken": Specifies a page
55676// token to use. Set `pageToken` to the `nextPageToken` returned by a
55677// previous list request to get the next page of results.
55678func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
55679	c.urlParams_.Set("pageToken", pageToken)
55680	return c
55681}
55682
55683// Fields allows partial responses to be retrieved. See
55684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55685// for more information.
55686func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
55687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55688	return c
55689}
55690
55691// IfNoneMatch sets the optional parameter which makes the operation
55692// fail if the object's ETag matches the given value. This is useful for
55693// getting updates only after the object has changed since the last
55694// request. Use googleapi.IsNotModified to check whether the response
55695// error from Do is the result of In-None-Match.
55696func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
55697	c.ifNoneMatch_ = entityTag
55698	return c
55699}
55700
55701// Context sets the context to be used in this call's Do method. Any
55702// pending HTTP request will be aborted if the provided context is
55703// canceled.
55704func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
55705	c.ctx_ = ctx
55706	return c
55707}
55708
55709// Header returns an http.Header that can be modified by the caller to
55710// add HTTP headers to the request.
55711func (c *GlobalAddressesListCall) Header() http.Header {
55712	if c.header_ == nil {
55713		c.header_ = make(http.Header)
55714	}
55715	return c.header_
55716}
55717
55718func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
55719	reqHeaders := make(http.Header)
55720	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55721	for k, v := range c.header_ {
55722		reqHeaders[k] = v
55723	}
55724	reqHeaders.Set("User-Agent", c.s.userAgent())
55725	if c.ifNoneMatch_ != "" {
55726		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55727	}
55728	var body io.Reader = nil
55729	c.urlParams_.Set("alt", alt)
55730	c.urlParams_.Set("prettyPrint", "false")
55731	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
55732	urls += "?" + c.urlParams_.Encode()
55733	req, err := http.NewRequest("GET", urls, body)
55734	if err != nil {
55735		return nil, err
55736	}
55737	req.Header = reqHeaders
55738	googleapi.Expand(req.URL, map[string]string{
55739		"project": c.project,
55740	})
55741	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55742}
55743
55744// Do executes the "compute.globalAddresses.list" call.
55745// Exactly one of *AddressList or error will be non-nil. Any non-2xx
55746// status code is an error. Response headers are in either
55747// *AddressList.ServerResponse.Header or (if a response was returned at
55748// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55749// to check whether the returned error was because
55750// http.StatusNotModified was returned.
55751func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
55752	gensupport.SetOptions(c.urlParams_, opts...)
55753	res, err := c.doRequest("json")
55754	if res != nil && res.StatusCode == http.StatusNotModified {
55755		if res.Body != nil {
55756			res.Body.Close()
55757		}
55758		return nil, &googleapi.Error{
55759			Code:   res.StatusCode,
55760			Header: res.Header,
55761		}
55762	}
55763	if err != nil {
55764		return nil, err
55765	}
55766	defer googleapi.CloseBody(res)
55767	if err := googleapi.CheckResponse(res); err != nil {
55768		return nil, err
55769	}
55770	ret := &AddressList{
55771		ServerResponse: googleapi.ServerResponse{
55772			Header:         res.Header,
55773			HTTPStatusCode: res.StatusCode,
55774		},
55775	}
55776	target := &ret
55777	if err := gensupport.DecodeResponse(target, res); err != nil {
55778		return nil, err
55779	}
55780	return ret, nil
55781	// {
55782	//   "description": "Retrieves a list of global addresses.",
55783	//   "httpMethod": "GET",
55784	//   "id": "compute.globalAddresses.list",
55785	//   "parameterOrder": [
55786	//     "project"
55787	//   ],
55788	//   "parameters": {
55789	//     "filter": {
55790	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
55791	//       "location": "query",
55792	//       "type": "string"
55793	//     },
55794	//     "maxResults": {
55795	//       "default": "500",
55796	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
55797	//       "format": "uint32",
55798	//       "location": "query",
55799	//       "minimum": "0",
55800	//       "type": "integer"
55801	//     },
55802	//     "orderBy": {
55803	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
55804	//       "location": "query",
55805	//       "type": "string"
55806	//     },
55807	//     "pageToken": {
55808	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
55809	//       "location": "query",
55810	//       "type": "string"
55811	//     },
55812	//     "project": {
55813	//       "description": "Project ID for this request.",
55814	//       "location": "path",
55815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55816	//       "required": true,
55817	//       "type": "string"
55818	//     }
55819	//   },
55820	//   "path": "{project}/global/addresses",
55821	//   "response": {
55822	//     "$ref": "AddressList"
55823	//   },
55824	//   "scopes": [
55825	//     "https://www.googleapis.com/auth/cloud-platform",
55826	//     "https://www.googleapis.com/auth/compute",
55827	//     "https://www.googleapis.com/auth/compute.readonly"
55828	//   ]
55829	// }
55830
55831}
55832
55833// Pages invokes f for each page of results.
55834// A non-nil error returned from f will halt the iteration.
55835// The provided context supersedes any context provided to the Context method.
55836func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
55837	c.ctx_ = ctx
55838	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55839	for {
55840		x, err := c.Do()
55841		if err != nil {
55842			return err
55843		}
55844		if err := f(x); err != nil {
55845			return err
55846		}
55847		if x.NextPageToken == "" {
55848			return nil
55849		}
55850		c.PageToken(x.NextPageToken)
55851	}
55852}
55853
55854// method id "compute.globalForwardingRules.delete":
55855
55856type GlobalForwardingRulesDeleteCall struct {
55857	s              *Service
55858	project        string
55859	forwardingRule string
55860	urlParams_     gensupport.URLParams
55861	ctx_           context.Context
55862	header_        http.Header
55863}
55864
55865// Delete: Deletes the specified GlobalForwardingRule resource.
55866// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
55867func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
55868	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55869	c.project = project
55870	c.forwardingRule = forwardingRule
55871	return c
55872}
55873
55874// RequestId sets the optional parameter "requestId": An optional
55875// request ID to identify requests. Specify a unique request ID so that
55876// if you must retry your request, the server will know to ignore the
55877// request if it has already been completed.
55878//
55879// For example, consider a situation where you make an initial request
55880// and the request times out. If you make the request again with the
55881// same request ID, the server can check if original operation with the
55882// same request ID was received, and if so, will ignore the second
55883// request. This prevents clients from accidentally creating duplicate
55884// commitments.
55885//
55886// The request ID must be a valid UUID with the exception that zero UUID
55887// is not supported (00000000-0000-0000-0000-000000000000).
55888func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
55889	c.urlParams_.Set("requestId", requestId)
55890	return c
55891}
55892
55893// Fields allows partial responses to be retrieved. See
55894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55895// for more information.
55896func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
55897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55898	return c
55899}
55900
55901// Context sets the context to be used in this call's Do method. Any
55902// pending HTTP request will be aborted if the provided context is
55903// canceled.
55904func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
55905	c.ctx_ = ctx
55906	return c
55907}
55908
55909// Header returns an http.Header that can be modified by the caller to
55910// add HTTP headers to the request.
55911func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
55912	if c.header_ == nil {
55913		c.header_ = make(http.Header)
55914	}
55915	return c.header_
55916}
55917
55918func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
55919	reqHeaders := make(http.Header)
55920	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55921	for k, v := range c.header_ {
55922		reqHeaders[k] = v
55923	}
55924	reqHeaders.Set("User-Agent", c.s.userAgent())
55925	var body io.Reader = nil
55926	c.urlParams_.Set("alt", alt)
55927	c.urlParams_.Set("prettyPrint", "false")
55928	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
55929	urls += "?" + c.urlParams_.Encode()
55930	req, err := http.NewRequest("DELETE", urls, body)
55931	if err != nil {
55932		return nil, err
55933	}
55934	req.Header = reqHeaders
55935	googleapi.Expand(req.URL, map[string]string{
55936		"project":        c.project,
55937		"forwardingRule": c.forwardingRule,
55938	})
55939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55940}
55941
55942// Do executes the "compute.globalForwardingRules.delete" call.
55943// Exactly one of *Operation or error will be non-nil. Any non-2xx
55944// status code is an error. Response headers are in either
55945// *Operation.ServerResponse.Header or (if a response was returned at
55946// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55947// to check whether the returned error was because
55948// http.StatusNotModified was returned.
55949func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55950	gensupport.SetOptions(c.urlParams_, opts...)
55951	res, err := c.doRequest("json")
55952	if res != nil && res.StatusCode == http.StatusNotModified {
55953		if res.Body != nil {
55954			res.Body.Close()
55955		}
55956		return nil, &googleapi.Error{
55957			Code:   res.StatusCode,
55958			Header: res.Header,
55959		}
55960	}
55961	if err != nil {
55962		return nil, err
55963	}
55964	defer googleapi.CloseBody(res)
55965	if err := googleapi.CheckResponse(res); err != nil {
55966		return nil, err
55967	}
55968	ret := &Operation{
55969		ServerResponse: googleapi.ServerResponse{
55970			Header:         res.Header,
55971			HTTPStatusCode: res.StatusCode,
55972		},
55973	}
55974	target := &ret
55975	if err := gensupport.DecodeResponse(target, res); err != nil {
55976		return nil, err
55977	}
55978	return ret, nil
55979	// {
55980	//   "description": "Deletes the specified GlobalForwardingRule resource.",
55981	//   "httpMethod": "DELETE",
55982	//   "id": "compute.globalForwardingRules.delete",
55983	//   "parameterOrder": [
55984	//     "project",
55985	//     "forwardingRule"
55986	//   ],
55987	//   "parameters": {
55988	//     "forwardingRule": {
55989	//       "description": "Name of the ForwardingRule resource to delete.",
55990	//       "location": "path",
55991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55992	//       "required": true,
55993	//       "type": "string"
55994	//     },
55995	//     "project": {
55996	//       "description": "Project ID for this request.",
55997	//       "location": "path",
55998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55999	//       "required": true,
56000	//       "type": "string"
56001	//     },
56002	//     "requestId": {
56003	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56004	//       "location": "query",
56005	//       "type": "string"
56006	//     }
56007	//   },
56008	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
56009	//   "response": {
56010	//     "$ref": "Operation"
56011	//   },
56012	//   "scopes": [
56013	//     "https://www.googleapis.com/auth/cloud-platform",
56014	//     "https://www.googleapis.com/auth/compute"
56015	//   ]
56016	// }
56017
56018}
56019
56020// method id "compute.globalForwardingRules.get":
56021
56022type GlobalForwardingRulesGetCall struct {
56023	s              *Service
56024	project        string
56025	forwardingRule string
56026	urlParams_     gensupport.URLParams
56027	ifNoneMatch_   string
56028	ctx_           context.Context
56029	header_        http.Header
56030}
56031
56032// Get: Returns the specified GlobalForwardingRule resource. Gets a list
56033// of available forwarding rules by making a list() request.
56034// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
56035func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
56036	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56037	c.project = project
56038	c.forwardingRule = forwardingRule
56039	return c
56040}
56041
56042// Fields allows partial responses to be retrieved. See
56043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56044// for more information.
56045func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
56046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56047	return c
56048}
56049
56050// IfNoneMatch sets the optional parameter which makes the operation
56051// fail if the object's ETag matches the given value. This is useful for
56052// getting updates only after the object has changed since the last
56053// request. Use googleapi.IsNotModified to check whether the response
56054// error from Do is the result of In-None-Match.
56055func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
56056	c.ifNoneMatch_ = entityTag
56057	return c
56058}
56059
56060// Context sets the context to be used in this call's Do method. Any
56061// pending HTTP request will be aborted if the provided context is
56062// canceled.
56063func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
56064	c.ctx_ = ctx
56065	return c
56066}
56067
56068// Header returns an http.Header that can be modified by the caller to
56069// add HTTP headers to the request.
56070func (c *GlobalForwardingRulesGetCall) Header() http.Header {
56071	if c.header_ == nil {
56072		c.header_ = make(http.Header)
56073	}
56074	return c.header_
56075}
56076
56077func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
56078	reqHeaders := make(http.Header)
56079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56080	for k, v := range c.header_ {
56081		reqHeaders[k] = v
56082	}
56083	reqHeaders.Set("User-Agent", c.s.userAgent())
56084	if c.ifNoneMatch_ != "" {
56085		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56086	}
56087	var body io.Reader = nil
56088	c.urlParams_.Set("alt", alt)
56089	c.urlParams_.Set("prettyPrint", "false")
56090	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
56091	urls += "?" + c.urlParams_.Encode()
56092	req, err := http.NewRequest("GET", urls, body)
56093	if err != nil {
56094		return nil, err
56095	}
56096	req.Header = reqHeaders
56097	googleapi.Expand(req.URL, map[string]string{
56098		"project":        c.project,
56099		"forwardingRule": c.forwardingRule,
56100	})
56101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56102}
56103
56104// Do executes the "compute.globalForwardingRules.get" call.
56105// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
56106// status code is an error. Response headers are in either
56107// *ForwardingRule.ServerResponse.Header or (if a response was returned
56108// at all) in error.(*googleapi.Error).Header. Use
56109// googleapi.IsNotModified to check whether the returned error was
56110// because http.StatusNotModified was returned.
56111func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
56112	gensupport.SetOptions(c.urlParams_, opts...)
56113	res, err := c.doRequest("json")
56114	if res != nil && res.StatusCode == http.StatusNotModified {
56115		if res.Body != nil {
56116			res.Body.Close()
56117		}
56118		return nil, &googleapi.Error{
56119			Code:   res.StatusCode,
56120			Header: res.Header,
56121		}
56122	}
56123	if err != nil {
56124		return nil, err
56125	}
56126	defer googleapi.CloseBody(res)
56127	if err := googleapi.CheckResponse(res); err != nil {
56128		return nil, err
56129	}
56130	ret := &ForwardingRule{
56131		ServerResponse: googleapi.ServerResponse{
56132			Header:         res.Header,
56133			HTTPStatusCode: res.StatusCode,
56134		},
56135	}
56136	target := &ret
56137	if err := gensupport.DecodeResponse(target, res); err != nil {
56138		return nil, err
56139	}
56140	return ret, nil
56141	// {
56142	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
56143	//   "httpMethod": "GET",
56144	//   "id": "compute.globalForwardingRules.get",
56145	//   "parameterOrder": [
56146	//     "project",
56147	//     "forwardingRule"
56148	//   ],
56149	//   "parameters": {
56150	//     "forwardingRule": {
56151	//       "description": "Name of the ForwardingRule resource to return.",
56152	//       "location": "path",
56153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56154	//       "required": true,
56155	//       "type": "string"
56156	//     },
56157	//     "project": {
56158	//       "description": "Project ID for this request.",
56159	//       "location": "path",
56160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56161	//       "required": true,
56162	//       "type": "string"
56163	//     }
56164	//   },
56165	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
56166	//   "response": {
56167	//     "$ref": "ForwardingRule"
56168	//   },
56169	//   "scopes": [
56170	//     "https://www.googleapis.com/auth/cloud-platform",
56171	//     "https://www.googleapis.com/auth/compute",
56172	//     "https://www.googleapis.com/auth/compute.readonly"
56173	//   ]
56174	// }
56175
56176}
56177
56178// method id "compute.globalForwardingRules.insert":
56179
56180type GlobalForwardingRulesInsertCall struct {
56181	s              *Service
56182	project        string
56183	forwardingrule *ForwardingRule
56184	urlParams_     gensupport.URLParams
56185	ctx_           context.Context
56186	header_        http.Header
56187}
56188
56189// Insert: Creates a GlobalForwardingRule resource in the specified
56190// project using the data included in the request.
56191// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
56192func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
56193	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56194	c.project = project
56195	c.forwardingrule = forwardingrule
56196	return c
56197}
56198
56199// RequestId sets the optional parameter "requestId": An optional
56200// request ID to identify requests. Specify a unique request ID so that
56201// if you must retry your request, the server will know to ignore the
56202// request if it has already been completed.
56203//
56204// For example, consider a situation where you make an initial request
56205// and the request times out. If you make the request again with the
56206// same request ID, the server can check if original operation with the
56207// same request ID was received, and if so, will ignore the second
56208// request. This prevents clients from accidentally creating duplicate
56209// commitments.
56210//
56211// The request ID must be a valid UUID with the exception that zero UUID
56212// is not supported (00000000-0000-0000-0000-000000000000).
56213func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
56214	c.urlParams_.Set("requestId", requestId)
56215	return c
56216}
56217
56218// Fields allows partial responses to be retrieved. See
56219// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56220// for more information.
56221func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
56222	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56223	return c
56224}
56225
56226// Context sets the context to be used in this call's Do method. Any
56227// pending HTTP request will be aborted if the provided context is
56228// canceled.
56229func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
56230	c.ctx_ = ctx
56231	return c
56232}
56233
56234// Header returns an http.Header that can be modified by the caller to
56235// add HTTP headers to the request.
56236func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
56237	if c.header_ == nil {
56238		c.header_ = make(http.Header)
56239	}
56240	return c.header_
56241}
56242
56243func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
56244	reqHeaders := make(http.Header)
56245	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56246	for k, v := range c.header_ {
56247		reqHeaders[k] = v
56248	}
56249	reqHeaders.Set("User-Agent", c.s.userAgent())
56250	var body io.Reader = nil
56251	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
56252	if err != nil {
56253		return nil, err
56254	}
56255	reqHeaders.Set("Content-Type", "application/json")
56256	c.urlParams_.Set("alt", alt)
56257	c.urlParams_.Set("prettyPrint", "false")
56258	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
56259	urls += "?" + c.urlParams_.Encode()
56260	req, err := http.NewRequest("POST", urls, body)
56261	if err != nil {
56262		return nil, err
56263	}
56264	req.Header = reqHeaders
56265	googleapi.Expand(req.URL, map[string]string{
56266		"project": c.project,
56267	})
56268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56269}
56270
56271// Do executes the "compute.globalForwardingRules.insert" call.
56272// Exactly one of *Operation or error will be non-nil. Any non-2xx
56273// status code is an error. Response headers are in either
56274// *Operation.ServerResponse.Header or (if a response was returned at
56275// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56276// to check whether the returned error was because
56277// http.StatusNotModified was returned.
56278func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56279	gensupport.SetOptions(c.urlParams_, opts...)
56280	res, err := c.doRequest("json")
56281	if res != nil && res.StatusCode == http.StatusNotModified {
56282		if res.Body != nil {
56283			res.Body.Close()
56284		}
56285		return nil, &googleapi.Error{
56286			Code:   res.StatusCode,
56287			Header: res.Header,
56288		}
56289	}
56290	if err != nil {
56291		return nil, err
56292	}
56293	defer googleapi.CloseBody(res)
56294	if err := googleapi.CheckResponse(res); err != nil {
56295		return nil, err
56296	}
56297	ret := &Operation{
56298		ServerResponse: googleapi.ServerResponse{
56299			Header:         res.Header,
56300			HTTPStatusCode: res.StatusCode,
56301		},
56302	}
56303	target := &ret
56304	if err := gensupport.DecodeResponse(target, res); err != nil {
56305		return nil, err
56306	}
56307	return ret, nil
56308	// {
56309	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
56310	//   "httpMethod": "POST",
56311	//   "id": "compute.globalForwardingRules.insert",
56312	//   "parameterOrder": [
56313	//     "project"
56314	//   ],
56315	//   "parameters": {
56316	//     "project": {
56317	//       "description": "Project ID for this request.",
56318	//       "location": "path",
56319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56320	//       "required": true,
56321	//       "type": "string"
56322	//     },
56323	//     "requestId": {
56324	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56325	//       "location": "query",
56326	//       "type": "string"
56327	//     }
56328	//   },
56329	//   "path": "{project}/global/forwardingRules",
56330	//   "request": {
56331	//     "$ref": "ForwardingRule"
56332	//   },
56333	//   "response": {
56334	//     "$ref": "Operation"
56335	//   },
56336	//   "scopes": [
56337	//     "https://www.googleapis.com/auth/cloud-platform",
56338	//     "https://www.googleapis.com/auth/compute"
56339	//   ]
56340	// }
56341
56342}
56343
56344// method id "compute.globalForwardingRules.list":
56345
56346type GlobalForwardingRulesListCall struct {
56347	s            *Service
56348	project      string
56349	urlParams_   gensupport.URLParams
56350	ifNoneMatch_ string
56351	ctx_         context.Context
56352	header_      http.Header
56353}
56354
56355// List: Retrieves a list of GlobalForwardingRule resources available to
56356// the specified project.
56357// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
56358func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
56359	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56360	c.project = project
56361	return c
56362}
56363
56364// Filter sets the optional parameter "filter": A filter expression that
56365// filters resources listed in the response. The expression must specify
56366// the field name, a comparison operator, and the value that you want to
56367// use for filtering. The value must be a string, a number, or a
56368// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56369// `<`.
56370//
56371// For example, if you are filtering Compute Engine instances, you can
56372// exclude instances named `example-instance` by specifying `name !=
56373// example-instance`.
56374//
56375// You can also filter nested fields. For example, you could specify
56376// `scheduling.automaticRestart = false` to include instances only if
56377// they are not scheduled for automatic restarts. You can use filtering
56378// on nested fields to filter based on resource labels.
56379//
56380// To filter on multiple expressions, provide each separate expression
56381// within parentheses. For example: ``` (scheduling.automaticRestart =
56382// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
56383// is an `AND` expression. However, you can include `AND` and `OR`
56384// expressions explicitly. For example: ``` (cpuPlatform = "Intel
56385// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
56386// (scheduling.automaticRestart = true) ```
56387func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
56388	c.urlParams_.Set("filter", filter)
56389	return c
56390}
56391
56392// MaxResults sets the optional parameter "maxResults": The maximum
56393// number of results per page that should be returned. If the number of
56394// available results is larger than `maxResults`, Compute Engine returns
56395// a `nextPageToken` that can be used to get the next page of results in
56396// subsequent list requests. Acceptable values are `0` to `500`,
56397// inclusive. (Default: `500`)
56398func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
56399	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56400	return c
56401}
56402
56403// OrderBy sets the optional parameter "orderBy": Sorts list results by
56404// a certain order. By default, results are returned in alphanumerical
56405// order based on the resource name.
56406//
56407// You can also sort results in descending order based on the creation
56408// timestamp using `orderBy="creationTimestamp desc". This sorts
56409// results based on the `creationTimestamp` field in reverse
56410// chronological order (newest result first). Use this to sort resources
56411// like operations so that the newest operation is returned
56412// first.
56413//
56414// Currently, only sorting by `name` or `creationTimestamp desc` is
56415// supported.
56416func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
56417	c.urlParams_.Set("orderBy", orderBy)
56418	return c
56419}
56420
56421// PageToken sets the optional parameter "pageToken": Specifies a page
56422// token to use. Set `pageToken` to the `nextPageToken` returned by a
56423// previous list request to get the next page of results.
56424func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
56425	c.urlParams_.Set("pageToken", pageToken)
56426	return c
56427}
56428
56429// Fields allows partial responses to be retrieved. See
56430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56431// for more information.
56432func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
56433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56434	return c
56435}
56436
56437// IfNoneMatch sets the optional parameter which makes the operation
56438// fail if the object's ETag matches the given value. This is useful for
56439// getting updates only after the object has changed since the last
56440// request. Use googleapi.IsNotModified to check whether the response
56441// error from Do is the result of In-None-Match.
56442func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
56443	c.ifNoneMatch_ = entityTag
56444	return c
56445}
56446
56447// Context sets the context to be used in this call's Do method. Any
56448// pending HTTP request will be aborted if the provided context is
56449// canceled.
56450func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
56451	c.ctx_ = ctx
56452	return c
56453}
56454
56455// Header returns an http.Header that can be modified by the caller to
56456// add HTTP headers to the request.
56457func (c *GlobalForwardingRulesListCall) Header() http.Header {
56458	if c.header_ == nil {
56459		c.header_ = make(http.Header)
56460	}
56461	return c.header_
56462}
56463
56464func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
56465	reqHeaders := make(http.Header)
56466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56467	for k, v := range c.header_ {
56468		reqHeaders[k] = v
56469	}
56470	reqHeaders.Set("User-Agent", c.s.userAgent())
56471	if c.ifNoneMatch_ != "" {
56472		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56473	}
56474	var body io.Reader = nil
56475	c.urlParams_.Set("alt", alt)
56476	c.urlParams_.Set("prettyPrint", "false")
56477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
56478	urls += "?" + c.urlParams_.Encode()
56479	req, err := http.NewRequest("GET", urls, body)
56480	if err != nil {
56481		return nil, err
56482	}
56483	req.Header = reqHeaders
56484	googleapi.Expand(req.URL, map[string]string{
56485		"project": c.project,
56486	})
56487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56488}
56489
56490// Do executes the "compute.globalForwardingRules.list" call.
56491// Exactly one of *ForwardingRuleList or error will be non-nil. Any
56492// non-2xx status code is an error. Response headers are in either
56493// *ForwardingRuleList.ServerResponse.Header or (if a response was
56494// returned at all) in error.(*googleapi.Error).Header. Use
56495// googleapi.IsNotModified to check whether the returned error was
56496// because http.StatusNotModified was returned.
56497func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
56498	gensupport.SetOptions(c.urlParams_, opts...)
56499	res, err := c.doRequest("json")
56500	if res != nil && res.StatusCode == http.StatusNotModified {
56501		if res.Body != nil {
56502			res.Body.Close()
56503		}
56504		return nil, &googleapi.Error{
56505			Code:   res.StatusCode,
56506			Header: res.Header,
56507		}
56508	}
56509	if err != nil {
56510		return nil, err
56511	}
56512	defer googleapi.CloseBody(res)
56513	if err := googleapi.CheckResponse(res); err != nil {
56514		return nil, err
56515	}
56516	ret := &ForwardingRuleList{
56517		ServerResponse: googleapi.ServerResponse{
56518			Header:         res.Header,
56519			HTTPStatusCode: res.StatusCode,
56520		},
56521	}
56522	target := &ret
56523	if err := gensupport.DecodeResponse(target, res); err != nil {
56524		return nil, err
56525	}
56526	return ret, nil
56527	// {
56528	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
56529	//   "httpMethod": "GET",
56530	//   "id": "compute.globalForwardingRules.list",
56531	//   "parameterOrder": [
56532	//     "project"
56533	//   ],
56534	//   "parameters": {
56535	//     "filter": {
56536	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
56537	//       "location": "query",
56538	//       "type": "string"
56539	//     },
56540	//     "maxResults": {
56541	//       "default": "500",
56542	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
56543	//       "format": "uint32",
56544	//       "location": "query",
56545	//       "minimum": "0",
56546	//       "type": "integer"
56547	//     },
56548	//     "orderBy": {
56549	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
56550	//       "location": "query",
56551	//       "type": "string"
56552	//     },
56553	//     "pageToken": {
56554	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
56555	//       "location": "query",
56556	//       "type": "string"
56557	//     },
56558	//     "project": {
56559	//       "description": "Project ID for this request.",
56560	//       "location": "path",
56561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56562	//       "required": true,
56563	//       "type": "string"
56564	//     }
56565	//   },
56566	//   "path": "{project}/global/forwardingRules",
56567	//   "response": {
56568	//     "$ref": "ForwardingRuleList"
56569	//   },
56570	//   "scopes": [
56571	//     "https://www.googleapis.com/auth/cloud-platform",
56572	//     "https://www.googleapis.com/auth/compute",
56573	//     "https://www.googleapis.com/auth/compute.readonly"
56574	//   ]
56575	// }
56576
56577}
56578
56579// Pages invokes f for each page of results.
56580// A non-nil error returned from f will halt the iteration.
56581// The provided context supersedes any context provided to the Context method.
56582func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
56583	c.ctx_ = ctx
56584	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56585	for {
56586		x, err := c.Do()
56587		if err != nil {
56588			return err
56589		}
56590		if err := f(x); err != nil {
56591			return err
56592		}
56593		if x.NextPageToken == "" {
56594			return nil
56595		}
56596		c.PageToken(x.NextPageToken)
56597	}
56598}
56599
56600// method id "compute.globalForwardingRules.patch":
56601
56602type GlobalForwardingRulesPatchCall struct {
56603	s              *Service
56604	project        string
56605	forwardingRule string
56606	forwardingrule *ForwardingRule
56607	urlParams_     gensupport.URLParams
56608	ctx_           context.Context
56609	header_        http.Header
56610}
56611
56612// Patch: Updates the specified forwarding rule with the data included
56613// in the request. This method supports PATCH semantics and uses the
56614// JSON merge patch format and processing rules. Currently, you can only
56615// patch the network_tier field.
56616func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
56617	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56618	c.project = project
56619	c.forwardingRule = forwardingRule
56620	c.forwardingrule = forwardingrule
56621	return c
56622}
56623
56624// RequestId sets the optional parameter "requestId": An optional
56625// request ID to identify requests. Specify a unique request ID so that
56626// if you must retry your request, the server will know to ignore the
56627// request if it has already been completed.
56628//
56629// For example, consider a situation where you make an initial request
56630// and the request times out. If you make the request again with the
56631// same request ID, the server can check if original operation with the
56632// same request ID was received, and if so, will ignore the second
56633// request. This prevents clients from accidentally creating duplicate
56634// commitments.
56635//
56636// The request ID must be a valid UUID with the exception that zero UUID
56637// is not supported (00000000-0000-0000-0000-000000000000).
56638func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
56639	c.urlParams_.Set("requestId", requestId)
56640	return c
56641}
56642
56643// Fields allows partial responses to be retrieved. See
56644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56645// for more information.
56646func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
56647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56648	return c
56649}
56650
56651// Context sets the context to be used in this call's Do method. Any
56652// pending HTTP request will be aborted if the provided context is
56653// canceled.
56654func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
56655	c.ctx_ = ctx
56656	return c
56657}
56658
56659// Header returns an http.Header that can be modified by the caller to
56660// add HTTP headers to the request.
56661func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
56662	if c.header_ == nil {
56663		c.header_ = make(http.Header)
56664	}
56665	return c.header_
56666}
56667
56668func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
56669	reqHeaders := make(http.Header)
56670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56671	for k, v := range c.header_ {
56672		reqHeaders[k] = v
56673	}
56674	reqHeaders.Set("User-Agent", c.s.userAgent())
56675	var body io.Reader = nil
56676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
56677	if err != nil {
56678		return nil, err
56679	}
56680	reqHeaders.Set("Content-Type", "application/json")
56681	c.urlParams_.Set("alt", alt)
56682	c.urlParams_.Set("prettyPrint", "false")
56683	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
56684	urls += "?" + c.urlParams_.Encode()
56685	req, err := http.NewRequest("PATCH", urls, body)
56686	if err != nil {
56687		return nil, err
56688	}
56689	req.Header = reqHeaders
56690	googleapi.Expand(req.URL, map[string]string{
56691		"project":        c.project,
56692		"forwardingRule": c.forwardingRule,
56693	})
56694	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56695}
56696
56697// Do executes the "compute.globalForwardingRules.patch" call.
56698// Exactly one of *Operation or error will be non-nil. Any non-2xx
56699// status code is an error. Response headers are in either
56700// *Operation.ServerResponse.Header or (if a response was returned at
56701// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56702// to check whether the returned error was because
56703// http.StatusNotModified was returned.
56704func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56705	gensupport.SetOptions(c.urlParams_, opts...)
56706	res, err := c.doRequest("json")
56707	if res != nil && res.StatusCode == http.StatusNotModified {
56708		if res.Body != nil {
56709			res.Body.Close()
56710		}
56711		return nil, &googleapi.Error{
56712			Code:   res.StatusCode,
56713			Header: res.Header,
56714		}
56715	}
56716	if err != nil {
56717		return nil, err
56718	}
56719	defer googleapi.CloseBody(res)
56720	if err := googleapi.CheckResponse(res); err != nil {
56721		return nil, err
56722	}
56723	ret := &Operation{
56724		ServerResponse: googleapi.ServerResponse{
56725			Header:         res.Header,
56726			HTTPStatusCode: res.StatusCode,
56727		},
56728	}
56729	target := &ret
56730	if err := gensupport.DecodeResponse(target, res); err != nil {
56731		return nil, err
56732	}
56733	return ret, nil
56734	// {
56735	//   "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.",
56736	//   "httpMethod": "PATCH",
56737	//   "id": "compute.globalForwardingRules.patch",
56738	//   "parameterOrder": [
56739	//     "project",
56740	//     "forwardingRule"
56741	//   ],
56742	//   "parameters": {
56743	//     "forwardingRule": {
56744	//       "description": "Name of the ForwardingRule resource to patch.",
56745	//       "location": "path",
56746	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56747	//       "required": true,
56748	//       "type": "string"
56749	//     },
56750	//     "project": {
56751	//       "description": "Project ID for this request.",
56752	//       "location": "path",
56753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56754	//       "required": true,
56755	//       "type": "string"
56756	//     },
56757	//     "requestId": {
56758	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56759	//       "location": "query",
56760	//       "type": "string"
56761	//     }
56762	//   },
56763	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
56764	//   "request": {
56765	//     "$ref": "ForwardingRule"
56766	//   },
56767	//   "response": {
56768	//     "$ref": "Operation"
56769	//   },
56770	//   "scopes": [
56771	//     "https://www.googleapis.com/auth/cloud-platform",
56772	//     "https://www.googleapis.com/auth/compute"
56773	//   ]
56774	// }
56775
56776}
56777
56778// method id "compute.globalForwardingRules.setTarget":
56779
56780type GlobalForwardingRulesSetTargetCall struct {
56781	s               *Service
56782	project         string
56783	forwardingRule  string
56784	targetreference *TargetReference
56785	urlParams_      gensupport.URLParams
56786	ctx_            context.Context
56787	header_         http.Header
56788}
56789
56790// SetTarget: Changes target URL for the GlobalForwardingRule resource.
56791// The new target should be of the same type as the old target.
56792// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
56793func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
56794	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56795	c.project = project
56796	c.forwardingRule = forwardingRule
56797	c.targetreference = targetreference
56798	return c
56799}
56800
56801// RequestId sets the optional parameter "requestId": An optional
56802// request ID to identify requests. Specify a unique request ID so that
56803// if you must retry your request, the server will know to ignore the
56804// request if it has already been completed.
56805//
56806// For example, consider a situation where you make an initial request
56807// and the request times out. If you make the request again with the
56808// same request ID, the server can check if original operation with the
56809// same request ID was received, and if so, will ignore the second
56810// request. This prevents clients from accidentally creating duplicate
56811// commitments.
56812//
56813// The request ID must be a valid UUID with the exception that zero UUID
56814// is not supported (00000000-0000-0000-0000-000000000000).
56815func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
56816	c.urlParams_.Set("requestId", requestId)
56817	return c
56818}
56819
56820// Fields allows partial responses to be retrieved. See
56821// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56822// for more information.
56823func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
56824	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56825	return c
56826}
56827
56828// Context sets the context to be used in this call's Do method. Any
56829// pending HTTP request will be aborted if the provided context is
56830// canceled.
56831func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
56832	c.ctx_ = ctx
56833	return c
56834}
56835
56836// Header returns an http.Header that can be modified by the caller to
56837// add HTTP headers to the request.
56838func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
56839	if c.header_ == nil {
56840		c.header_ = make(http.Header)
56841	}
56842	return c.header_
56843}
56844
56845func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
56846	reqHeaders := make(http.Header)
56847	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56848	for k, v := range c.header_ {
56849		reqHeaders[k] = v
56850	}
56851	reqHeaders.Set("User-Agent", c.s.userAgent())
56852	var body io.Reader = nil
56853	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
56854	if err != nil {
56855		return nil, err
56856	}
56857	reqHeaders.Set("Content-Type", "application/json")
56858	c.urlParams_.Set("alt", alt)
56859	c.urlParams_.Set("prettyPrint", "false")
56860	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
56861	urls += "?" + c.urlParams_.Encode()
56862	req, err := http.NewRequest("POST", urls, body)
56863	if err != nil {
56864		return nil, err
56865	}
56866	req.Header = reqHeaders
56867	googleapi.Expand(req.URL, map[string]string{
56868		"project":        c.project,
56869		"forwardingRule": c.forwardingRule,
56870	})
56871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56872}
56873
56874// Do executes the "compute.globalForwardingRules.setTarget" call.
56875// Exactly one of *Operation or error will be non-nil. Any non-2xx
56876// status code is an error. Response headers are in either
56877// *Operation.ServerResponse.Header or (if a response was returned at
56878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56879// to check whether the returned error was because
56880// http.StatusNotModified was returned.
56881func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56882	gensupport.SetOptions(c.urlParams_, opts...)
56883	res, err := c.doRequest("json")
56884	if res != nil && res.StatusCode == http.StatusNotModified {
56885		if res.Body != nil {
56886			res.Body.Close()
56887		}
56888		return nil, &googleapi.Error{
56889			Code:   res.StatusCode,
56890			Header: res.Header,
56891		}
56892	}
56893	if err != nil {
56894		return nil, err
56895	}
56896	defer googleapi.CloseBody(res)
56897	if err := googleapi.CheckResponse(res); err != nil {
56898		return nil, err
56899	}
56900	ret := &Operation{
56901		ServerResponse: googleapi.ServerResponse{
56902			Header:         res.Header,
56903			HTTPStatusCode: res.StatusCode,
56904		},
56905	}
56906	target := &ret
56907	if err := gensupport.DecodeResponse(target, res); err != nil {
56908		return nil, err
56909	}
56910	return ret, nil
56911	// {
56912	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
56913	//   "httpMethod": "POST",
56914	//   "id": "compute.globalForwardingRules.setTarget",
56915	//   "parameterOrder": [
56916	//     "project",
56917	//     "forwardingRule"
56918	//   ],
56919	//   "parameters": {
56920	//     "forwardingRule": {
56921	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
56922	//       "location": "path",
56923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56924	//       "required": true,
56925	//       "type": "string"
56926	//     },
56927	//     "project": {
56928	//       "description": "Project ID for this request.",
56929	//       "location": "path",
56930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56931	//       "required": true,
56932	//       "type": "string"
56933	//     },
56934	//     "requestId": {
56935	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56936	//       "location": "query",
56937	//       "type": "string"
56938	//     }
56939	//   },
56940	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
56941	//   "request": {
56942	//     "$ref": "TargetReference"
56943	//   },
56944	//   "response": {
56945	//     "$ref": "Operation"
56946	//   },
56947	//   "scopes": [
56948	//     "https://www.googleapis.com/auth/cloud-platform",
56949	//     "https://www.googleapis.com/auth/compute"
56950	//   ]
56951	// }
56952
56953}
56954
56955// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
56956
56957type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
56958	s                                                 *Service
56959	project                                           string
56960	networkEndpointGroup                              string
56961	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
56962	urlParams_                                        gensupport.URLParams
56963	ctx_                                              context.Context
56964	header_                                           http.Header
56965}
56966
56967// AttachNetworkEndpoints: Attach a network endpoint to the specified
56968// network endpoint group.
56969func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
56970	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56971	c.project = project
56972	c.networkEndpointGroup = networkEndpointGroup
56973	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
56974	return c
56975}
56976
56977// RequestId sets the optional parameter "requestId": An optional
56978// request ID to identify requests. Specify a unique request ID so that
56979// if you must retry your request, the server will know to ignore the
56980// request if it has already been completed.
56981//
56982// For example, consider a situation where you make an initial request
56983// and the request times out. If you make the request again with the
56984// same request ID, the server can check if original operation with the
56985// same request ID was received, and if so, will ignore the second
56986// request. This prevents clients from accidentally creating duplicate
56987// commitments.
56988//
56989// The request ID must be a valid UUID with the exception that zero UUID
56990// is not supported (00000000-0000-0000-0000-000000000000).
56991func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
56992	c.urlParams_.Set("requestId", requestId)
56993	return c
56994}
56995
56996// Fields allows partial responses to be retrieved. See
56997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56998// for more information.
56999func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
57000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57001	return c
57002}
57003
57004// Context sets the context to be used in this call's Do method. Any
57005// pending HTTP request will be aborted if the provided context is
57006// canceled.
57007func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
57008	c.ctx_ = ctx
57009	return c
57010}
57011
57012// Header returns an http.Header that can be modified by the caller to
57013// add HTTP headers to the request.
57014func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
57015	if c.header_ == nil {
57016		c.header_ = make(http.Header)
57017	}
57018	return c.header_
57019}
57020
57021func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
57022	reqHeaders := make(http.Header)
57023	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57024	for k, v := range c.header_ {
57025		reqHeaders[k] = v
57026	}
57027	reqHeaders.Set("User-Agent", c.s.userAgent())
57028	var body io.Reader = nil
57029	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
57030	if err != nil {
57031		return nil, err
57032	}
57033	reqHeaders.Set("Content-Type", "application/json")
57034	c.urlParams_.Set("alt", alt)
57035	c.urlParams_.Set("prettyPrint", "false")
57036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
57037	urls += "?" + c.urlParams_.Encode()
57038	req, err := http.NewRequest("POST", urls, body)
57039	if err != nil {
57040		return nil, err
57041	}
57042	req.Header = reqHeaders
57043	googleapi.Expand(req.URL, map[string]string{
57044		"project":              c.project,
57045		"networkEndpointGroup": c.networkEndpointGroup,
57046	})
57047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57048}
57049
57050// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
57051// Exactly one of *Operation or error will be non-nil. Any non-2xx
57052// status code is an error. Response headers are in either
57053// *Operation.ServerResponse.Header or (if a response was returned at
57054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57055// to check whether the returned error was because
57056// http.StatusNotModified was returned.
57057func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57058	gensupport.SetOptions(c.urlParams_, opts...)
57059	res, err := c.doRequest("json")
57060	if res != nil && res.StatusCode == http.StatusNotModified {
57061		if res.Body != nil {
57062			res.Body.Close()
57063		}
57064		return nil, &googleapi.Error{
57065			Code:   res.StatusCode,
57066			Header: res.Header,
57067		}
57068	}
57069	if err != nil {
57070		return nil, err
57071	}
57072	defer googleapi.CloseBody(res)
57073	if err := googleapi.CheckResponse(res); err != nil {
57074		return nil, err
57075	}
57076	ret := &Operation{
57077		ServerResponse: googleapi.ServerResponse{
57078			Header:         res.Header,
57079			HTTPStatusCode: res.StatusCode,
57080		},
57081	}
57082	target := &ret
57083	if err := gensupport.DecodeResponse(target, res); err != nil {
57084		return nil, err
57085	}
57086	return ret, nil
57087	// {
57088	//   "description": "Attach a network endpoint to the specified network endpoint group.",
57089	//   "httpMethod": "POST",
57090	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
57091	//   "parameterOrder": [
57092	//     "project",
57093	//     "networkEndpointGroup"
57094	//   ],
57095	//   "parameters": {
57096	//     "networkEndpointGroup": {
57097	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
57098	//       "location": "path",
57099	//       "required": true,
57100	//       "type": "string"
57101	//     },
57102	//     "project": {
57103	//       "description": "Project ID for this request.",
57104	//       "location": "path",
57105	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57106	//       "required": true,
57107	//       "type": "string"
57108	//     },
57109	//     "requestId": {
57110	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57111	//       "location": "query",
57112	//       "type": "string"
57113	//     }
57114	//   },
57115	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
57116	//   "request": {
57117	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
57118	//   },
57119	//   "response": {
57120	//     "$ref": "Operation"
57121	//   },
57122	//   "scopes": [
57123	//     "https://www.googleapis.com/auth/cloud-platform",
57124	//     "https://www.googleapis.com/auth/compute"
57125	//   ]
57126	// }
57127
57128}
57129
57130// method id "compute.globalNetworkEndpointGroups.delete":
57131
57132type GlobalNetworkEndpointGroupsDeleteCall struct {
57133	s                    *Service
57134	project              string
57135	networkEndpointGroup string
57136	urlParams_           gensupport.URLParams
57137	ctx_                 context.Context
57138	header_              http.Header
57139}
57140
57141// Delete: Deletes the specified network endpoint group.Note that the
57142// NEG cannot be deleted if there are backend services referencing it.
57143func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
57144	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57145	c.project = project
57146	c.networkEndpointGroup = networkEndpointGroup
57147	return c
57148}
57149
57150// RequestId sets the optional parameter "requestId": An optional
57151// request ID to identify requests. Specify a unique request ID so that
57152// if you must retry your request, the server will know to ignore the
57153// request if it has already been completed.
57154//
57155// For example, consider a situation where you make an initial request
57156// and the request times out. If you make the request again with the
57157// same request ID, the server can check if original operation with the
57158// same request ID was received, and if so, will ignore the second
57159// request. This prevents clients from accidentally creating duplicate
57160// commitments.
57161//
57162// The request ID must be a valid UUID with the exception that zero UUID
57163// is not supported (00000000-0000-0000-0000-000000000000).
57164func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
57165	c.urlParams_.Set("requestId", requestId)
57166	return c
57167}
57168
57169// Fields allows partial responses to be retrieved. See
57170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57171// for more information.
57172func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
57173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57174	return c
57175}
57176
57177// Context sets the context to be used in this call's Do method. Any
57178// pending HTTP request will be aborted if the provided context is
57179// canceled.
57180func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
57181	c.ctx_ = ctx
57182	return c
57183}
57184
57185// Header returns an http.Header that can be modified by the caller to
57186// add HTTP headers to the request.
57187func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
57188	if c.header_ == nil {
57189		c.header_ = make(http.Header)
57190	}
57191	return c.header_
57192}
57193
57194func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
57195	reqHeaders := make(http.Header)
57196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57197	for k, v := range c.header_ {
57198		reqHeaders[k] = v
57199	}
57200	reqHeaders.Set("User-Agent", c.s.userAgent())
57201	var body io.Reader = nil
57202	c.urlParams_.Set("alt", alt)
57203	c.urlParams_.Set("prettyPrint", "false")
57204	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
57205	urls += "?" + c.urlParams_.Encode()
57206	req, err := http.NewRequest("DELETE", urls, body)
57207	if err != nil {
57208		return nil, err
57209	}
57210	req.Header = reqHeaders
57211	googleapi.Expand(req.URL, map[string]string{
57212		"project":              c.project,
57213		"networkEndpointGroup": c.networkEndpointGroup,
57214	})
57215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57216}
57217
57218// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
57219// Exactly one of *Operation or error will be non-nil. Any non-2xx
57220// status code is an error. Response headers are in either
57221// *Operation.ServerResponse.Header or (if a response was returned at
57222// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57223// to check whether the returned error was because
57224// http.StatusNotModified was returned.
57225func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57226	gensupport.SetOptions(c.urlParams_, opts...)
57227	res, err := c.doRequest("json")
57228	if res != nil && res.StatusCode == http.StatusNotModified {
57229		if res.Body != nil {
57230			res.Body.Close()
57231		}
57232		return nil, &googleapi.Error{
57233			Code:   res.StatusCode,
57234			Header: res.Header,
57235		}
57236	}
57237	if err != nil {
57238		return nil, err
57239	}
57240	defer googleapi.CloseBody(res)
57241	if err := googleapi.CheckResponse(res); err != nil {
57242		return nil, err
57243	}
57244	ret := &Operation{
57245		ServerResponse: googleapi.ServerResponse{
57246			Header:         res.Header,
57247			HTTPStatusCode: res.StatusCode,
57248		},
57249	}
57250	target := &ret
57251	if err := gensupport.DecodeResponse(target, res); err != nil {
57252		return nil, err
57253	}
57254	return ret, nil
57255	// {
57256	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
57257	//   "httpMethod": "DELETE",
57258	//   "id": "compute.globalNetworkEndpointGroups.delete",
57259	//   "parameterOrder": [
57260	//     "project",
57261	//     "networkEndpointGroup"
57262	//   ],
57263	//   "parameters": {
57264	//     "networkEndpointGroup": {
57265	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
57266	//       "location": "path",
57267	//       "required": true,
57268	//       "type": "string"
57269	//     },
57270	//     "project": {
57271	//       "description": "Project ID for this request.",
57272	//       "location": "path",
57273	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57274	//       "required": true,
57275	//       "type": "string"
57276	//     },
57277	//     "requestId": {
57278	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57279	//       "location": "query",
57280	//       "type": "string"
57281	//     }
57282	//   },
57283	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
57284	//   "response": {
57285	//     "$ref": "Operation"
57286	//   },
57287	//   "scopes": [
57288	//     "https://www.googleapis.com/auth/cloud-platform",
57289	//     "https://www.googleapis.com/auth/compute"
57290	//   ]
57291	// }
57292
57293}
57294
57295// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
57296
57297type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
57298	s                                                 *Service
57299	project                                           string
57300	networkEndpointGroup                              string
57301	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
57302	urlParams_                                        gensupport.URLParams
57303	ctx_                                              context.Context
57304	header_                                           http.Header
57305}
57306
57307// DetachNetworkEndpoints: Detach the network endpoint from the
57308// specified network endpoint group.
57309func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
57310	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57311	c.project = project
57312	c.networkEndpointGroup = networkEndpointGroup
57313	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
57314	return c
57315}
57316
57317// RequestId sets the optional parameter "requestId": An optional
57318// request ID to identify requests. Specify a unique request ID so that
57319// if you must retry your request, the server will know to ignore the
57320// request if it has already been completed.
57321//
57322// For example, consider a situation where you make an initial request
57323// and the request times out. If you make the request again with the
57324// same request ID, the server can check if original operation with the
57325// same request ID was received, and if so, will ignore the second
57326// request. This prevents clients from accidentally creating duplicate
57327// commitments.
57328//
57329// The request ID must be a valid UUID with the exception that zero UUID
57330// is not supported (00000000-0000-0000-0000-000000000000).
57331func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
57332	c.urlParams_.Set("requestId", requestId)
57333	return c
57334}
57335
57336// Fields allows partial responses to be retrieved. See
57337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57338// for more information.
57339func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
57340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57341	return c
57342}
57343
57344// Context sets the context to be used in this call's Do method. Any
57345// pending HTTP request will be aborted if the provided context is
57346// canceled.
57347func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
57348	c.ctx_ = ctx
57349	return c
57350}
57351
57352// Header returns an http.Header that can be modified by the caller to
57353// add HTTP headers to the request.
57354func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
57355	if c.header_ == nil {
57356		c.header_ = make(http.Header)
57357	}
57358	return c.header_
57359}
57360
57361func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
57362	reqHeaders := make(http.Header)
57363	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57364	for k, v := range c.header_ {
57365		reqHeaders[k] = v
57366	}
57367	reqHeaders.Set("User-Agent", c.s.userAgent())
57368	var body io.Reader = nil
57369	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
57370	if err != nil {
57371		return nil, err
57372	}
57373	reqHeaders.Set("Content-Type", "application/json")
57374	c.urlParams_.Set("alt", alt)
57375	c.urlParams_.Set("prettyPrint", "false")
57376	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
57377	urls += "?" + c.urlParams_.Encode()
57378	req, err := http.NewRequest("POST", urls, body)
57379	if err != nil {
57380		return nil, err
57381	}
57382	req.Header = reqHeaders
57383	googleapi.Expand(req.URL, map[string]string{
57384		"project":              c.project,
57385		"networkEndpointGroup": c.networkEndpointGroup,
57386	})
57387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57388}
57389
57390// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
57391// Exactly one of *Operation or error will be non-nil. Any non-2xx
57392// status code is an error. Response headers are in either
57393// *Operation.ServerResponse.Header or (if a response was returned at
57394// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57395// to check whether the returned error was because
57396// http.StatusNotModified was returned.
57397func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57398	gensupport.SetOptions(c.urlParams_, opts...)
57399	res, err := c.doRequest("json")
57400	if res != nil && res.StatusCode == http.StatusNotModified {
57401		if res.Body != nil {
57402			res.Body.Close()
57403		}
57404		return nil, &googleapi.Error{
57405			Code:   res.StatusCode,
57406			Header: res.Header,
57407		}
57408	}
57409	if err != nil {
57410		return nil, err
57411	}
57412	defer googleapi.CloseBody(res)
57413	if err := googleapi.CheckResponse(res); err != nil {
57414		return nil, err
57415	}
57416	ret := &Operation{
57417		ServerResponse: googleapi.ServerResponse{
57418			Header:         res.Header,
57419			HTTPStatusCode: res.StatusCode,
57420		},
57421	}
57422	target := &ret
57423	if err := gensupport.DecodeResponse(target, res); err != nil {
57424		return nil, err
57425	}
57426	return ret, nil
57427	// {
57428	//   "description": "Detach the network endpoint from the specified network endpoint group.",
57429	//   "httpMethod": "POST",
57430	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
57431	//   "parameterOrder": [
57432	//     "project",
57433	//     "networkEndpointGroup"
57434	//   ],
57435	//   "parameters": {
57436	//     "networkEndpointGroup": {
57437	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
57438	//       "location": "path",
57439	//       "required": true,
57440	//       "type": "string"
57441	//     },
57442	//     "project": {
57443	//       "description": "Project ID for this request.",
57444	//       "location": "path",
57445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57446	//       "required": true,
57447	//       "type": "string"
57448	//     },
57449	//     "requestId": {
57450	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57451	//       "location": "query",
57452	//       "type": "string"
57453	//     }
57454	//   },
57455	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
57456	//   "request": {
57457	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
57458	//   },
57459	//   "response": {
57460	//     "$ref": "Operation"
57461	//   },
57462	//   "scopes": [
57463	//     "https://www.googleapis.com/auth/cloud-platform",
57464	//     "https://www.googleapis.com/auth/compute"
57465	//   ]
57466	// }
57467
57468}
57469
57470// method id "compute.globalNetworkEndpointGroups.get":
57471
57472type GlobalNetworkEndpointGroupsGetCall struct {
57473	s                    *Service
57474	project              string
57475	networkEndpointGroup string
57476	urlParams_           gensupport.URLParams
57477	ifNoneMatch_         string
57478	ctx_                 context.Context
57479	header_              http.Header
57480}
57481
57482// Get: Returns the specified network endpoint group. Gets a list of
57483// available network endpoint groups by making a list() request.
57484func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
57485	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57486	c.project = project
57487	c.networkEndpointGroup = networkEndpointGroup
57488	return c
57489}
57490
57491// Fields allows partial responses to be retrieved. See
57492// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57493// for more information.
57494func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
57495	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57496	return c
57497}
57498
57499// IfNoneMatch sets the optional parameter which makes the operation
57500// fail if the object's ETag matches the given value. This is useful for
57501// getting updates only after the object has changed since the last
57502// request. Use googleapi.IsNotModified to check whether the response
57503// error from Do is the result of In-None-Match.
57504func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
57505	c.ifNoneMatch_ = entityTag
57506	return c
57507}
57508
57509// Context sets the context to be used in this call's Do method. Any
57510// pending HTTP request will be aborted if the provided context is
57511// canceled.
57512func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
57513	c.ctx_ = ctx
57514	return c
57515}
57516
57517// Header returns an http.Header that can be modified by the caller to
57518// add HTTP headers to the request.
57519func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
57520	if c.header_ == nil {
57521		c.header_ = make(http.Header)
57522	}
57523	return c.header_
57524}
57525
57526func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
57527	reqHeaders := make(http.Header)
57528	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57529	for k, v := range c.header_ {
57530		reqHeaders[k] = v
57531	}
57532	reqHeaders.Set("User-Agent", c.s.userAgent())
57533	if c.ifNoneMatch_ != "" {
57534		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57535	}
57536	var body io.Reader = nil
57537	c.urlParams_.Set("alt", alt)
57538	c.urlParams_.Set("prettyPrint", "false")
57539	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
57540	urls += "?" + c.urlParams_.Encode()
57541	req, err := http.NewRequest("GET", urls, body)
57542	if err != nil {
57543		return nil, err
57544	}
57545	req.Header = reqHeaders
57546	googleapi.Expand(req.URL, map[string]string{
57547		"project":              c.project,
57548		"networkEndpointGroup": c.networkEndpointGroup,
57549	})
57550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57551}
57552
57553// Do executes the "compute.globalNetworkEndpointGroups.get" call.
57554// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
57555// non-2xx status code is an error. Response headers are in either
57556// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
57557// returned at all) in error.(*googleapi.Error).Header. Use
57558// googleapi.IsNotModified to check whether the returned error was
57559// because http.StatusNotModified was returned.
57560func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
57561	gensupport.SetOptions(c.urlParams_, opts...)
57562	res, err := c.doRequest("json")
57563	if res != nil && res.StatusCode == http.StatusNotModified {
57564		if res.Body != nil {
57565			res.Body.Close()
57566		}
57567		return nil, &googleapi.Error{
57568			Code:   res.StatusCode,
57569			Header: res.Header,
57570		}
57571	}
57572	if err != nil {
57573		return nil, err
57574	}
57575	defer googleapi.CloseBody(res)
57576	if err := googleapi.CheckResponse(res); err != nil {
57577		return nil, err
57578	}
57579	ret := &NetworkEndpointGroup{
57580		ServerResponse: googleapi.ServerResponse{
57581			Header:         res.Header,
57582			HTTPStatusCode: res.StatusCode,
57583		},
57584	}
57585	target := &ret
57586	if err := gensupport.DecodeResponse(target, res); err != nil {
57587		return nil, err
57588	}
57589	return ret, nil
57590	// {
57591	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
57592	//   "httpMethod": "GET",
57593	//   "id": "compute.globalNetworkEndpointGroups.get",
57594	//   "parameterOrder": [
57595	//     "project",
57596	//     "networkEndpointGroup"
57597	//   ],
57598	//   "parameters": {
57599	//     "networkEndpointGroup": {
57600	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
57601	//       "location": "path",
57602	//       "required": true,
57603	//       "type": "string"
57604	//     },
57605	//     "project": {
57606	//       "description": "Project ID for this request.",
57607	//       "location": "path",
57608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57609	//       "required": true,
57610	//       "type": "string"
57611	//     }
57612	//   },
57613	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
57614	//   "response": {
57615	//     "$ref": "NetworkEndpointGroup"
57616	//   },
57617	//   "scopes": [
57618	//     "https://www.googleapis.com/auth/cloud-platform",
57619	//     "https://www.googleapis.com/auth/compute",
57620	//     "https://www.googleapis.com/auth/compute.readonly"
57621	//   ]
57622	// }
57623
57624}
57625
57626// method id "compute.globalNetworkEndpointGroups.insert":
57627
57628type GlobalNetworkEndpointGroupsInsertCall struct {
57629	s                    *Service
57630	project              string
57631	networkendpointgroup *NetworkEndpointGroup
57632	urlParams_           gensupport.URLParams
57633	ctx_                 context.Context
57634	header_              http.Header
57635}
57636
57637// Insert: Creates a network endpoint group in the specified project
57638// using the parameters that are included in the request.
57639func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
57640	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57641	c.project = project
57642	c.networkendpointgroup = networkendpointgroup
57643	return c
57644}
57645
57646// RequestId sets the optional parameter "requestId": An optional
57647// request ID to identify requests. Specify a unique request ID so that
57648// if you must retry your request, the server will know to ignore the
57649// request if it has already been completed.
57650//
57651// For example, consider a situation where you make an initial request
57652// and the request times out. If you make the request again with the
57653// same request ID, the server can check if original operation with the
57654// same request ID was received, and if so, will ignore the second
57655// request. This prevents clients from accidentally creating duplicate
57656// commitments.
57657//
57658// The request ID must be a valid UUID with the exception that zero UUID
57659// is not supported (00000000-0000-0000-0000-000000000000).
57660func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
57661	c.urlParams_.Set("requestId", requestId)
57662	return c
57663}
57664
57665// Fields allows partial responses to be retrieved. See
57666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57667// for more information.
57668func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
57669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57670	return c
57671}
57672
57673// Context sets the context to be used in this call's Do method. Any
57674// pending HTTP request will be aborted if the provided context is
57675// canceled.
57676func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
57677	c.ctx_ = ctx
57678	return c
57679}
57680
57681// Header returns an http.Header that can be modified by the caller to
57682// add HTTP headers to the request.
57683func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
57684	if c.header_ == nil {
57685		c.header_ = make(http.Header)
57686	}
57687	return c.header_
57688}
57689
57690func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
57691	reqHeaders := make(http.Header)
57692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57693	for k, v := range c.header_ {
57694		reqHeaders[k] = v
57695	}
57696	reqHeaders.Set("User-Agent", c.s.userAgent())
57697	var body io.Reader = nil
57698	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
57699	if err != nil {
57700		return nil, err
57701	}
57702	reqHeaders.Set("Content-Type", "application/json")
57703	c.urlParams_.Set("alt", alt)
57704	c.urlParams_.Set("prettyPrint", "false")
57705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
57706	urls += "?" + c.urlParams_.Encode()
57707	req, err := http.NewRequest("POST", urls, body)
57708	if err != nil {
57709		return nil, err
57710	}
57711	req.Header = reqHeaders
57712	googleapi.Expand(req.URL, map[string]string{
57713		"project": c.project,
57714	})
57715	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57716}
57717
57718// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
57719// Exactly one of *Operation or error will be non-nil. Any non-2xx
57720// status code is an error. Response headers are in either
57721// *Operation.ServerResponse.Header or (if a response was returned at
57722// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57723// to check whether the returned error was because
57724// http.StatusNotModified was returned.
57725func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57726	gensupport.SetOptions(c.urlParams_, opts...)
57727	res, err := c.doRequest("json")
57728	if res != nil && res.StatusCode == http.StatusNotModified {
57729		if res.Body != nil {
57730			res.Body.Close()
57731		}
57732		return nil, &googleapi.Error{
57733			Code:   res.StatusCode,
57734			Header: res.Header,
57735		}
57736	}
57737	if err != nil {
57738		return nil, err
57739	}
57740	defer googleapi.CloseBody(res)
57741	if err := googleapi.CheckResponse(res); err != nil {
57742		return nil, err
57743	}
57744	ret := &Operation{
57745		ServerResponse: googleapi.ServerResponse{
57746			Header:         res.Header,
57747			HTTPStatusCode: res.StatusCode,
57748		},
57749	}
57750	target := &ret
57751	if err := gensupport.DecodeResponse(target, res); err != nil {
57752		return nil, err
57753	}
57754	return ret, nil
57755	// {
57756	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
57757	//   "httpMethod": "POST",
57758	//   "id": "compute.globalNetworkEndpointGroups.insert",
57759	//   "parameterOrder": [
57760	//     "project"
57761	//   ],
57762	//   "parameters": {
57763	//     "project": {
57764	//       "description": "Project ID for this request.",
57765	//       "location": "path",
57766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57767	//       "required": true,
57768	//       "type": "string"
57769	//     },
57770	//     "requestId": {
57771	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57772	//       "location": "query",
57773	//       "type": "string"
57774	//     }
57775	//   },
57776	//   "path": "{project}/global/networkEndpointGroups",
57777	//   "request": {
57778	//     "$ref": "NetworkEndpointGroup"
57779	//   },
57780	//   "response": {
57781	//     "$ref": "Operation"
57782	//   },
57783	//   "scopes": [
57784	//     "https://www.googleapis.com/auth/cloud-platform",
57785	//     "https://www.googleapis.com/auth/compute"
57786	//   ]
57787	// }
57788
57789}
57790
57791// method id "compute.globalNetworkEndpointGroups.list":
57792
57793type GlobalNetworkEndpointGroupsListCall struct {
57794	s            *Service
57795	project      string
57796	urlParams_   gensupport.URLParams
57797	ifNoneMatch_ string
57798	ctx_         context.Context
57799	header_      http.Header
57800}
57801
57802// List: Retrieves the list of network endpoint groups that are located
57803// in the specified project.
57804func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
57805	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57806	c.project = project
57807	return c
57808}
57809
57810// Filter sets the optional parameter "filter": A filter expression that
57811// filters resources listed in the response. The expression must specify
57812// the field name, a comparison operator, and the value that you want to
57813// use for filtering. The value must be a string, a number, or a
57814// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57815// `<`.
57816//
57817// For example, if you are filtering Compute Engine instances, you can
57818// exclude instances named `example-instance` by specifying `name !=
57819// example-instance`.
57820//
57821// You can also filter nested fields. For example, you could specify
57822// `scheduling.automaticRestart = false` to include instances only if
57823// they are not scheduled for automatic restarts. You can use filtering
57824// on nested fields to filter based on resource labels.
57825//
57826// To filter on multiple expressions, provide each separate expression
57827// within parentheses. For example: ``` (scheduling.automaticRestart =
57828// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
57829// is an `AND` expression. However, you can include `AND` and `OR`
57830// expressions explicitly. For example: ``` (cpuPlatform = "Intel
57831// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
57832// (scheduling.automaticRestart = true) ```
57833func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
57834	c.urlParams_.Set("filter", filter)
57835	return c
57836}
57837
57838// MaxResults sets the optional parameter "maxResults": The maximum
57839// number of results per page that should be returned. If the number of
57840// available results is larger than `maxResults`, Compute Engine returns
57841// a `nextPageToken` that can be used to get the next page of results in
57842// subsequent list requests. Acceptable values are `0` to `500`,
57843// inclusive. (Default: `500`)
57844func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
57845	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57846	return c
57847}
57848
57849// OrderBy sets the optional parameter "orderBy": Sorts list results by
57850// a certain order. By default, results are returned in alphanumerical
57851// order based on the resource name.
57852//
57853// You can also sort results in descending order based on the creation
57854// timestamp using `orderBy="creationTimestamp desc". This sorts
57855// results based on the `creationTimestamp` field in reverse
57856// chronological order (newest result first). Use this to sort resources
57857// like operations so that the newest operation is returned
57858// first.
57859//
57860// Currently, only sorting by `name` or `creationTimestamp desc` is
57861// supported.
57862func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
57863	c.urlParams_.Set("orderBy", orderBy)
57864	return c
57865}
57866
57867// PageToken sets the optional parameter "pageToken": Specifies a page
57868// token to use. Set `pageToken` to the `nextPageToken` returned by a
57869// previous list request to get the next page of results.
57870func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
57871	c.urlParams_.Set("pageToken", pageToken)
57872	return c
57873}
57874
57875// Fields allows partial responses to be retrieved. See
57876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57877// for more information.
57878func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
57879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57880	return c
57881}
57882
57883// IfNoneMatch sets the optional parameter which makes the operation
57884// fail if the object's ETag matches the given value. This is useful for
57885// getting updates only after the object has changed since the last
57886// request. Use googleapi.IsNotModified to check whether the response
57887// error from Do is the result of In-None-Match.
57888func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
57889	c.ifNoneMatch_ = entityTag
57890	return c
57891}
57892
57893// Context sets the context to be used in this call's Do method. Any
57894// pending HTTP request will be aborted if the provided context is
57895// canceled.
57896func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
57897	c.ctx_ = ctx
57898	return c
57899}
57900
57901// Header returns an http.Header that can be modified by the caller to
57902// add HTTP headers to the request.
57903func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
57904	if c.header_ == nil {
57905		c.header_ = make(http.Header)
57906	}
57907	return c.header_
57908}
57909
57910func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
57911	reqHeaders := make(http.Header)
57912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57913	for k, v := range c.header_ {
57914		reqHeaders[k] = v
57915	}
57916	reqHeaders.Set("User-Agent", c.s.userAgent())
57917	if c.ifNoneMatch_ != "" {
57918		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57919	}
57920	var body io.Reader = nil
57921	c.urlParams_.Set("alt", alt)
57922	c.urlParams_.Set("prettyPrint", "false")
57923	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
57924	urls += "?" + c.urlParams_.Encode()
57925	req, err := http.NewRequest("GET", urls, body)
57926	if err != nil {
57927		return nil, err
57928	}
57929	req.Header = reqHeaders
57930	googleapi.Expand(req.URL, map[string]string{
57931		"project": c.project,
57932	})
57933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57934}
57935
57936// Do executes the "compute.globalNetworkEndpointGroups.list" call.
57937// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
57938// Any non-2xx status code is an error. Response headers are in either
57939// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
57940// returned at all) in error.(*googleapi.Error).Header. Use
57941// googleapi.IsNotModified to check whether the returned error was
57942// because http.StatusNotModified was returned.
57943func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
57944	gensupport.SetOptions(c.urlParams_, opts...)
57945	res, err := c.doRequest("json")
57946	if res != nil && res.StatusCode == http.StatusNotModified {
57947		if res.Body != nil {
57948			res.Body.Close()
57949		}
57950		return nil, &googleapi.Error{
57951			Code:   res.StatusCode,
57952			Header: res.Header,
57953		}
57954	}
57955	if err != nil {
57956		return nil, err
57957	}
57958	defer googleapi.CloseBody(res)
57959	if err := googleapi.CheckResponse(res); err != nil {
57960		return nil, err
57961	}
57962	ret := &NetworkEndpointGroupList{
57963		ServerResponse: googleapi.ServerResponse{
57964			Header:         res.Header,
57965			HTTPStatusCode: res.StatusCode,
57966		},
57967	}
57968	target := &ret
57969	if err := gensupport.DecodeResponse(target, res); err != nil {
57970		return nil, err
57971	}
57972	return ret, nil
57973	// {
57974	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
57975	//   "httpMethod": "GET",
57976	//   "id": "compute.globalNetworkEndpointGroups.list",
57977	//   "parameterOrder": [
57978	//     "project"
57979	//   ],
57980	//   "parameters": {
57981	//     "filter": {
57982	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
57983	//       "location": "query",
57984	//       "type": "string"
57985	//     },
57986	//     "maxResults": {
57987	//       "default": "500",
57988	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
57989	//       "format": "uint32",
57990	//       "location": "query",
57991	//       "minimum": "0",
57992	//       "type": "integer"
57993	//     },
57994	//     "orderBy": {
57995	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
57996	//       "location": "query",
57997	//       "type": "string"
57998	//     },
57999	//     "pageToken": {
58000	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58001	//       "location": "query",
58002	//       "type": "string"
58003	//     },
58004	//     "project": {
58005	//       "description": "Project ID for this request.",
58006	//       "location": "path",
58007	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58008	//       "required": true,
58009	//       "type": "string"
58010	//     }
58011	//   },
58012	//   "path": "{project}/global/networkEndpointGroups",
58013	//   "response": {
58014	//     "$ref": "NetworkEndpointGroupList"
58015	//   },
58016	//   "scopes": [
58017	//     "https://www.googleapis.com/auth/cloud-platform",
58018	//     "https://www.googleapis.com/auth/compute",
58019	//     "https://www.googleapis.com/auth/compute.readonly"
58020	//   ]
58021	// }
58022
58023}
58024
58025// Pages invokes f for each page of results.
58026// A non-nil error returned from f will halt the iteration.
58027// The provided context supersedes any context provided to the Context method.
58028func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
58029	c.ctx_ = ctx
58030	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58031	for {
58032		x, err := c.Do()
58033		if err != nil {
58034			return err
58035		}
58036		if err := f(x); err != nil {
58037			return err
58038		}
58039		if x.NextPageToken == "" {
58040			return nil
58041		}
58042		c.PageToken(x.NextPageToken)
58043	}
58044}
58045
58046// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
58047
58048type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
58049	s                    *Service
58050	project              string
58051	networkEndpointGroup string
58052	urlParams_           gensupport.URLParams
58053	ctx_                 context.Context
58054	header_              http.Header
58055}
58056
58057// ListNetworkEndpoints: Lists the network endpoints in the specified
58058// network endpoint group.
58059func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
58060	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58061	c.project = project
58062	c.networkEndpointGroup = networkEndpointGroup
58063	return c
58064}
58065
58066// Filter sets the optional parameter "filter": A filter expression that
58067// filters resources listed in the response. The expression must specify
58068// the field name, a comparison operator, and the value that you want to
58069// use for filtering. The value must be a string, a number, or a
58070// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58071// `<`.
58072//
58073// For example, if you are filtering Compute Engine instances, you can
58074// exclude instances named `example-instance` by specifying `name !=
58075// example-instance`.
58076//
58077// You can also filter nested fields. For example, you could specify
58078// `scheduling.automaticRestart = false` to include instances only if
58079// they are not scheduled for automatic restarts. You can use filtering
58080// on nested fields to filter based on resource labels.
58081//
58082// To filter on multiple expressions, provide each separate expression
58083// within parentheses. For example: ``` (scheduling.automaticRestart =
58084// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58085// is an `AND` expression. However, you can include `AND` and `OR`
58086// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58087// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58088// (scheduling.automaticRestart = true) ```
58089func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
58090	c.urlParams_.Set("filter", filter)
58091	return c
58092}
58093
58094// MaxResults sets the optional parameter "maxResults": The maximum
58095// number of results per page that should be returned. If the number of
58096// available results is larger than `maxResults`, Compute Engine returns
58097// a `nextPageToken` that can be used to get the next page of results in
58098// subsequent list requests. Acceptable values are `0` to `500`,
58099// inclusive. (Default: `500`)
58100func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
58101	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58102	return c
58103}
58104
58105// OrderBy sets the optional parameter "orderBy": Sorts list results by
58106// a certain order. By default, results are returned in alphanumerical
58107// order based on the resource name.
58108//
58109// You can also sort results in descending order based on the creation
58110// timestamp using `orderBy="creationTimestamp desc". This sorts
58111// results based on the `creationTimestamp` field in reverse
58112// chronological order (newest result first). Use this to sort resources
58113// like operations so that the newest operation is returned
58114// first.
58115//
58116// Currently, only sorting by `name` or `creationTimestamp desc` is
58117// supported.
58118func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
58119	c.urlParams_.Set("orderBy", orderBy)
58120	return c
58121}
58122
58123// PageToken sets the optional parameter "pageToken": Specifies a page
58124// token to use. Set `pageToken` to the `nextPageToken` returned by a
58125// previous list request to get the next page of results.
58126func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
58127	c.urlParams_.Set("pageToken", pageToken)
58128	return c
58129}
58130
58131// Fields allows partial responses to be retrieved. See
58132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58133// for more information.
58134func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
58135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58136	return c
58137}
58138
58139// Context sets the context to be used in this call's Do method. Any
58140// pending HTTP request will be aborted if the provided context is
58141// canceled.
58142func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
58143	c.ctx_ = ctx
58144	return c
58145}
58146
58147// Header returns an http.Header that can be modified by the caller to
58148// add HTTP headers to the request.
58149func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
58150	if c.header_ == nil {
58151		c.header_ = make(http.Header)
58152	}
58153	return c.header_
58154}
58155
58156func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
58157	reqHeaders := make(http.Header)
58158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58159	for k, v := range c.header_ {
58160		reqHeaders[k] = v
58161	}
58162	reqHeaders.Set("User-Agent", c.s.userAgent())
58163	var body io.Reader = nil
58164	c.urlParams_.Set("alt", alt)
58165	c.urlParams_.Set("prettyPrint", "false")
58166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
58167	urls += "?" + c.urlParams_.Encode()
58168	req, err := http.NewRequest("POST", urls, body)
58169	if err != nil {
58170		return nil, err
58171	}
58172	req.Header = reqHeaders
58173	googleapi.Expand(req.URL, map[string]string{
58174		"project":              c.project,
58175		"networkEndpointGroup": c.networkEndpointGroup,
58176	})
58177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58178}
58179
58180// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
58181// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
58182// will be non-nil. Any non-2xx status code is an error. Response
58183// headers are in either
58184// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
58185// (if a response was returned at all) in
58186// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
58187// whether the returned error was because http.StatusNotModified was
58188// returned.
58189func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
58190	gensupport.SetOptions(c.urlParams_, opts...)
58191	res, err := c.doRequest("json")
58192	if res != nil && res.StatusCode == http.StatusNotModified {
58193		if res.Body != nil {
58194			res.Body.Close()
58195		}
58196		return nil, &googleapi.Error{
58197			Code:   res.StatusCode,
58198			Header: res.Header,
58199		}
58200	}
58201	if err != nil {
58202		return nil, err
58203	}
58204	defer googleapi.CloseBody(res)
58205	if err := googleapi.CheckResponse(res); err != nil {
58206		return nil, err
58207	}
58208	ret := &NetworkEndpointGroupsListNetworkEndpoints{
58209		ServerResponse: googleapi.ServerResponse{
58210			Header:         res.Header,
58211			HTTPStatusCode: res.StatusCode,
58212		},
58213	}
58214	target := &ret
58215	if err := gensupport.DecodeResponse(target, res); err != nil {
58216		return nil, err
58217	}
58218	return ret, nil
58219	// {
58220	//   "description": "Lists the network endpoints in the specified network endpoint group.",
58221	//   "httpMethod": "POST",
58222	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
58223	//   "parameterOrder": [
58224	//     "project",
58225	//     "networkEndpointGroup"
58226	//   ],
58227	//   "parameters": {
58228	//     "filter": {
58229	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58230	//       "location": "query",
58231	//       "type": "string"
58232	//     },
58233	//     "maxResults": {
58234	//       "default": "500",
58235	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58236	//       "format": "uint32",
58237	//       "location": "query",
58238	//       "minimum": "0",
58239	//       "type": "integer"
58240	//     },
58241	//     "networkEndpointGroup": {
58242	//       "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.",
58243	//       "location": "path",
58244	//       "required": true,
58245	//       "type": "string"
58246	//     },
58247	//     "orderBy": {
58248	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58249	//       "location": "query",
58250	//       "type": "string"
58251	//     },
58252	//     "pageToken": {
58253	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58254	//       "location": "query",
58255	//       "type": "string"
58256	//     },
58257	//     "project": {
58258	//       "description": "Project ID for this request.",
58259	//       "location": "path",
58260	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58261	//       "required": true,
58262	//       "type": "string"
58263	//     }
58264	//   },
58265	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
58266	//   "response": {
58267	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
58268	//   },
58269	//   "scopes": [
58270	//     "https://www.googleapis.com/auth/cloud-platform",
58271	//     "https://www.googleapis.com/auth/compute",
58272	//     "https://www.googleapis.com/auth/compute.readonly"
58273	//   ]
58274	// }
58275
58276}
58277
58278// Pages invokes f for each page of results.
58279// A non-nil error returned from f will halt the iteration.
58280// The provided context supersedes any context provided to the Context method.
58281func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
58282	c.ctx_ = ctx
58283	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58284	for {
58285		x, err := c.Do()
58286		if err != nil {
58287			return err
58288		}
58289		if err := f(x); err != nil {
58290			return err
58291		}
58292		if x.NextPageToken == "" {
58293			return nil
58294		}
58295		c.PageToken(x.NextPageToken)
58296	}
58297}
58298
58299// method id "compute.globalOperations.aggregatedList":
58300
58301type GlobalOperationsAggregatedListCall struct {
58302	s            *Service
58303	project      string
58304	urlParams_   gensupport.URLParams
58305	ifNoneMatch_ string
58306	ctx_         context.Context
58307	header_      http.Header
58308}
58309
58310// AggregatedList: Retrieves an aggregated list of all operations.
58311// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
58312func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
58313	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58314	c.project = project
58315	return c
58316}
58317
58318// Filter sets the optional parameter "filter": A filter expression that
58319// filters resources listed in the response. The expression must specify
58320// the field name, a comparison operator, and the value that you want to
58321// use for filtering. The value must be a string, a number, or a
58322// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58323// `<`.
58324//
58325// For example, if you are filtering Compute Engine instances, you can
58326// exclude instances named `example-instance` by specifying `name !=
58327// example-instance`.
58328//
58329// You can also filter nested fields. For example, you could specify
58330// `scheduling.automaticRestart = false` to include instances only if
58331// they are not scheduled for automatic restarts. You can use filtering
58332// on nested fields to filter based on resource labels.
58333//
58334// To filter on multiple expressions, provide each separate expression
58335// within parentheses. For example: ``` (scheduling.automaticRestart =
58336// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58337// is an `AND` expression. However, you can include `AND` and `OR`
58338// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58339// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58340// (scheduling.automaticRestart = true) ```
58341func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
58342	c.urlParams_.Set("filter", filter)
58343	return c
58344}
58345
58346// IncludeAllScopes sets the optional parameter "includeAllScopes":
58347// Indicates whether every visible scope for each scope type (zone,
58348// region, global) should be included in the response. For new resource
58349// types added after this field, the flag has no effect as new resource
58350// types will always include every visible scope for each scope type in
58351// response. For resource types which predate this field, if this flag
58352// is omitted or false, only scopes of the scope types where the
58353// resource type is expected to be found will be included.
58354func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
58355	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
58356	return c
58357}
58358
58359// MaxResults sets the optional parameter "maxResults": The maximum
58360// number of results per page that should be returned. If the number of
58361// available results is larger than `maxResults`, Compute Engine returns
58362// a `nextPageToken` that can be used to get the next page of results in
58363// subsequent list requests. Acceptable values are `0` to `500`,
58364// inclusive. (Default: `500`)
58365func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
58366	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58367	return c
58368}
58369
58370// OrderBy sets the optional parameter "orderBy": Sorts list results by
58371// a certain order. By default, results are returned in alphanumerical
58372// order based on the resource name.
58373//
58374// You can also sort results in descending order based on the creation
58375// timestamp using `orderBy="creationTimestamp desc". This sorts
58376// results based on the `creationTimestamp` field in reverse
58377// chronological order (newest result first). Use this to sort resources
58378// like operations so that the newest operation is returned
58379// first.
58380//
58381// Currently, only sorting by `name` or `creationTimestamp desc` is
58382// supported.
58383func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
58384	c.urlParams_.Set("orderBy", orderBy)
58385	return c
58386}
58387
58388// PageToken sets the optional parameter "pageToken": Specifies a page
58389// token to use. Set `pageToken` to the `nextPageToken` returned by a
58390// previous list request to get the next page of results.
58391func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
58392	c.urlParams_.Set("pageToken", pageToken)
58393	return c
58394}
58395
58396// Fields allows partial responses to be retrieved. See
58397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58398// for more information.
58399func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
58400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58401	return c
58402}
58403
58404// IfNoneMatch sets the optional parameter which makes the operation
58405// fail if the object's ETag matches the given value. This is useful for
58406// getting updates only after the object has changed since the last
58407// request. Use googleapi.IsNotModified to check whether the response
58408// error from Do is the result of In-None-Match.
58409func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
58410	c.ifNoneMatch_ = entityTag
58411	return c
58412}
58413
58414// Context sets the context to be used in this call's Do method. Any
58415// pending HTTP request will be aborted if the provided context is
58416// canceled.
58417func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
58418	c.ctx_ = ctx
58419	return c
58420}
58421
58422// Header returns an http.Header that can be modified by the caller to
58423// add HTTP headers to the request.
58424func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
58425	if c.header_ == nil {
58426		c.header_ = make(http.Header)
58427	}
58428	return c.header_
58429}
58430
58431func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
58432	reqHeaders := make(http.Header)
58433	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58434	for k, v := range c.header_ {
58435		reqHeaders[k] = v
58436	}
58437	reqHeaders.Set("User-Agent", c.s.userAgent())
58438	if c.ifNoneMatch_ != "" {
58439		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58440	}
58441	var body io.Reader = nil
58442	c.urlParams_.Set("alt", alt)
58443	c.urlParams_.Set("prettyPrint", "false")
58444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
58445	urls += "?" + c.urlParams_.Encode()
58446	req, err := http.NewRequest("GET", urls, body)
58447	if err != nil {
58448		return nil, err
58449	}
58450	req.Header = reqHeaders
58451	googleapi.Expand(req.URL, map[string]string{
58452		"project": c.project,
58453	})
58454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58455}
58456
58457// Do executes the "compute.globalOperations.aggregatedList" call.
58458// Exactly one of *OperationAggregatedList or error will be non-nil. Any
58459// non-2xx status code is an error. Response headers are in either
58460// *OperationAggregatedList.ServerResponse.Header or (if a response was
58461// returned at all) in error.(*googleapi.Error).Header. Use
58462// googleapi.IsNotModified to check whether the returned error was
58463// because http.StatusNotModified was returned.
58464func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
58465	gensupport.SetOptions(c.urlParams_, opts...)
58466	res, err := c.doRequest("json")
58467	if res != nil && res.StatusCode == http.StatusNotModified {
58468		if res.Body != nil {
58469			res.Body.Close()
58470		}
58471		return nil, &googleapi.Error{
58472			Code:   res.StatusCode,
58473			Header: res.Header,
58474		}
58475	}
58476	if err != nil {
58477		return nil, err
58478	}
58479	defer googleapi.CloseBody(res)
58480	if err := googleapi.CheckResponse(res); err != nil {
58481		return nil, err
58482	}
58483	ret := &OperationAggregatedList{
58484		ServerResponse: googleapi.ServerResponse{
58485			Header:         res.Header,
58486			HTTPStatusCode: res.StatusCode,
58487		},
58488	}
58489	target := &ret
58490	if err := gensupport.DecodeResponse(target, res); err != nil {
58491		return nil, err
58492	}
58493	return ret, nil
58494	// {
58495	//   "description": "Retrieves an aggregated list of all operations.",
58496	//   "httpMethod": "GET",
58497	//   "id": "compute.globalOperations.aggregatedList",
58498	//   "parameterOrder": [
58499	//     "project"
58500	//   ],
58501	//   "parameters": {
58502	//     "filter": {
58503	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58504	//       "location": "query",
58505	//       "type": "string"
58506	//     },
58507	//     "includeAllScopes": {
58508	//       "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.",
58509	//       "location": "query",
58510	//       "type": "boolean"
58511	//     },
58512	//     "maxResults": {
58513	//       "default": "500",
58514	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58515	//       "format": "uint32",
58516	//       "location": "query",
58517	//       "minimum": "0",
58518	//       "type": "integer"
58519	//     },
58520	//     "orderBy": {
58521	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58522	//       "location": "query",
58523	//       "type": "string"
58524	//     },
58525	//     "pageToken": {
58526	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58527	//       "location": "query",
58528	//       "type": "string"
58529	//     },
58530	//     "project": {
58531	//       "description": "Project ID for this request.",
58532	//       "location": "path",
58533	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58534	//       "required": true,
58535	//       "type": "string"
58536	//     }
58537	//   },
58538	//   "path": "{project}/aggregated/operations",
58539	//   "response": {
58540	//     "$ref": "OperationAggregatedList"
58541	//   },
58542	//   "scopes": [
58543	//     "https://www.googleapis.com/auth/cloud-platform",
58544	//     "https://www.googleapis.com/auth/compute",
58545	//     "https://www.googleapis.com/auth/compute.readonly"
58546	//   ]
58547	// }
58548
58549}
58550
58551// Pages invokes f for each page of results.
58552// A non-nil error returned from f will halt the iteration.
58553// The provided context supersedes any context provided to the Context method.
58554func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
58555	c.ctx_ = ctx
58556	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58557	for {
58558		x, err := c.Do()
58559		if err != nil {
58560			return err
58561		}
58562		if err := f(x); err != nil {
58563			return err
58564		}
58565		if x.NextPageToken == "" {
58566			return nil
58567		}
58568		c.PageToken(x.NextPageToken)
58569	}
58570}
58571
58572// method id "compute.globalOperations.delete":
58573
58574type GlobalOperationsDeleteCall struct {
58575	s          *Service
58576	project    string
58577	operation  string
58578	urlParams_ gensupport.URLParams
58579	ctx_       context.Context
58580	header_    http.Header
58581}
58582
58583// Delete: Deletes the specified Operations resource.
58584// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
58585func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
58586	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58587	c.project = project
58588	c.operation = operation
58589	return c
58590}
58591
58592// Fields allows partial responses to be retrieved. See
58593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58594// for more information.
58595func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
58596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58597	return c
58598}
58599
58600// Context sets the context to be used in this call's Do method. Any
58601// pending HTTP request will be aborted if the provided context is
58602// canceled.
58603func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
58604	c.ctx_ = ctx
58605	return c
58606}
58607
58608// Header returns an http.Header that can be modified by the caller to
58609// add HTTP headers to the request.
58610func (c *GlobalOperationsDeleteCall) Header() http.Header {
58611	if c.header_ == nil {
58612		c.header_ = make(http.Header)
58613	}
58614	return c.header_
58615}
58616
58617func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
58618	reqHeaders := make(http.Header)
58619	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58620	for k, v := range c.header_ {
58621		reqHeaders[k] = v
58622	}
58623	reqHeaders.Set("User-Agent", c.s.userAgent())
58624	var body io.Reader = nil
58625	c.urlParams_.Set("alt", alt)
58626	c.urlParams_.Set("prettyPrint", "false")
58627	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
58628	urls += "?" + c.urlParams_.Encode()
58629	req, err := http.NewRequest("DELETE", urls, body)
58630	if err != nil {
58631		return nil, err
58632	}
58633	req.Header = reqHeaders
58634	googleapi.Expand(req.URL, map[string]string{
58635		"project":   c.project,
58636		"operation": c.operation,
58637	})
58638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58639}
58640
58641// Do executes the "compute.globalOperations.delete" call.
58642func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
58643	gensupport.SetOptions(c.urlParams_, opts...)
58644	res, err := c.doRequest("json")
58645	if err != nil {
58646		return err
58647	}
58648	defer googleapi.CloseBody(res)
58649	if err := googleapi.CheckResponse(res); err != nil {
58650		return err
58651	}
58652	return nil
58653	// {
58654	//   "description": "Deletes the specified Operations resource.",
58655	//   "httpMethod": "DELETE",
58656	//   "id": "compute.globalOperations.delete",
58657	//   "parameterOrder": [
58658	//     "project",
58659	//     "operation"
58660	//   ],
58661	//   "parameters": {
58662	//     "operation": {
58663	//       "description": "Name of the Operations resource to delete.",
58664	//       "location": "path",
58665	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58666	//       "required": true,
58667	//       "type": "string"
58668	//     },
58669	//     "project": {
58670	//       "description": "Project ID for this request.",
58671	//       "location": "path",
58672	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58673	//       "required": true,
58674	//       "type": "string"
58675	//     }
58676	//   },
58677	//   "path": "{project}/global/operations/{operation}",
58678	//   "scopes": [
58679	//     "https://www.googleapis.com/auth/cloud-platform",
58680	//     "https://www.googleapis.com/auth/compute"
58681	//   ]
58682	// }
58683
58684}
58685
58686// method id "compute.globalOperations.get":
58687
58688type GlobalOperationsGetCall struct {
58689	s            *Service
58690	project      string
58691	operation    string
58692	urlParams_   gensupport.URLParams
58693	ifNoneMatch_ string
58694	ctx_         context.Context
58695	header_      http.Header
58696}
58697
58698// Get: Retrieves the specified Operations resource. Gets a list of
58699// operations by making a `list()` request.
58700// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
58701func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
58702	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58703	c.project = project
58704	c.operation = operation
58705	return c
58706}
58707
58708// Fields allows partial responses to be retrieved. See
58709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58710// for more information.
58711func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
58712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58713	return c
58714}
58715
58716// IfNoneMatch sets the optional parameter which makes the operation
58717// fail if the object's ETag matches the given value. This is useful for
58718// getting updates only after the object has changed since the last
58719// request. Use googleapi.IsNotModified to check whether the response
58720// error from Do is the result of In-None-Match.
58721func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
58722	c.ifNoneMatch_ = entityTag
58723	return c
58724}
58725
58726// Context sets the context to be used in this call's Do method. Any
58727// pending HTTP request will be aborted if the provided context is
58728// canceled.
58729func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
58730	c.ctx_ = ctx
58731	return c
58732}
58733
58734// Header returns an http.Header that can be modified by the caller to
58735// add HTTP headers to the request.
58736func (c *GlobalOperationsGetCall) Header() http.Header {
58737	if c.header_ == nil {
58738		c.header_ = make(http.Header)
58739	}
58740	return c.header_
58741}
58742
58743func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
58744	reqHeaders := make(http.Header)
58745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58746	for k, v := range c.header_ {
58747		reqHeaders[k] = v
58748	}
58749	reqHeaders.Set("User-Agent", c.s.userAgent())
58750	if c.ifNoneMatch_ != "" {
58751		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58752	}
58753	var body io.Reader = nil
58754	c.urlParams_.Set("alt", alt)
58755	c.urlParams_.Set("prettyPrint", "false")
58756	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
58757	urls += "?" + c.urlParams_.Encode()
58758	req, err := http.NewRequest("GET", urls, body)
58759	if err != nil {
58760		return nil, err
58761	}
58762	req.Header = reqHeaders
58763	googleapi.Expand(req.URL, map[string]string{
58764		"project":   c.project,
58765		"operation": c.operation,
58766	})
58767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58768}
58769
58770// Do executes the "compute.globalOperations.get" call.
58771// Exactly one of *Operation or error will be non-nil. Any non-2xx
58772// status code is an error. Response headers are in either
58773// *Operation.ServerResponse.Header or (if a response was returned at
58774// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58775// to check whether the returned error was because
58776// http.StatusNotModified was returned.
58777func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58778	gensupport.SetOptions(c.urlParams_, opts...)
58779	res, err := c.doRequest("json")
58780	if res != nil && res.StatusCode == http.StatusNotModified {
58781		if res.Body != nil {
58782			res.Body.Close()
58783		}
58784		return nil, &googleapi.Error{
58785			Code:   res.StatusCode,
58786			Header: res.Header,
58787		}
58788	}
58789	if err != nil {
58790		return nil, err
58791	}
58792	defer googleapi.CloseBody(res)
58793	if err := googleapi.CheckResponse(res); err != nil {
58794		return nil, err
58795	}
58796	ret := &Operation{
58797		ServerResponse: googleapi.ServerResponse{
58798			Header:         res.Header,
58799			HTTPStatusCode: res.StatusCode,
58800		},
58801	}
58802	target := &ret
58803	if err := gensupport.DecodeResponse(target, res); err != nil {
58804		return nil, err
58805	}
58806	return ret, nil
58807	// {
58808	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
58809	//   "httpMethod": "GET",
58810	//   "id": "compute.globalOperations.get",
58811	//   "parameterOrder": [
58812	//     "project",
58813	//     "operation"
58814	//   ],
58815	//   "parameters": {
58816	//     "operation": {
58817	//       "description": "Name of the Operations resource to return.",
58818	//       "location": "path",
58819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58820	//       "required": true,
58821	//       "type": "string"
58822	//     },
58823	//     "project": {
58824	//       "description": "Project ID for this request.",
58825	//       "location": "path",
58826	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58827	//       "required": true,
58828	//       "type": "string"
58829	//     }
58830	//   },
58831	//   "path": "{project}/global/operations/{operation}",
58832	//   "response": {
58833	//     "$ref": "Operation"
58834	//   },
58835	//   "scopes": [
58836	//     "https://www.googleapis.com/auth/cloud-platform",
58837	//     "https://www.googleapis.com/auth/compute",
58838	//     "https://www.googleapis.com/auth/compute.readonly"
58839	//   ]
58840	// }
58841
58842}
58843
58844// method id "compute.globalOperations.list":
58845
58846type GlobalOperationsListCall struct {
58847	s            *Service
58848	project      string
58849	urlParams_   gensupport.URLParams
58850	ifNoneMatch_ string
58851	ctx_         context.Context
58852	header_      http.Header
58853}
58854
58855// List: Retrieves a list of Operation resources contained within the
58856// specified project.
58857// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
58858func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
58859	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58860	c.project = project
58861	return c
58862}
58863
58864// Filter sets the optional parameter "filter": A filter expression that
58865// filters resources listed in the response. The expression must specify
58866// the field name, a comparison operator, and the value that you want to
58867// use for filtering. The value must be a string, a number, or a
58868// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58869// `<`.
58870//
58871// For example, if you are filtering Compute Engine instances, you can
58872// exclude instances named `example-instance` by specifying `name !=
58873// example-instance`.
58874//
58875// You can also filter nested fields. For example, you could specify
58876// `scheduling.automaticRestart = false` to include instances only if
58877// they are not scheduled for automatic restarts. You can use filtering
58878// on nested fields to filter based on resource labels.
58879//
58880// To filter on multiple expressions, provide each separate expression
58881// within parentheses. For example: ``` (scheduling.automaticRestart =
58882// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58883// is an `AND` expression. However, you can include `AND` and `OR`
58884// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58885// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58886// (scheduling.automaticRestart = true) ```
58887func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
58888	c.urlParams_.Set("filter", filter)
58889	return c
58890}
58891
58892// MaxResults sets the optional parameter "maxResults": The maximum
58893// number of results per page that should be returned. If the number of
58894// available results is larger than `maxResults`, Compute Engine returns
58895// a `nextPageToken` that can be used to get the next page of results in
58896// subsequent list requests. Acceptable values are `0` to `500`,
58897// inclusive. (Default: `500`)
58898func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
58899	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58900	return c
58901}
58902
58903// OrderBy sets the optional parameter "orderBy": Sorts list results by
58904// a certain order. By default, results are returned in alphanumerical
58905// order based on the resource name.
58906//
58907// You can also sort results in descending order based on the creation
58908// timestamp using `orderBy="creationTimestamp desc". This sorts
58909// results based on the `creationTimestamp` field in reverse
58910// chronological order (newest result first). Use this to sort resources
58911// like operations so that the newest operation is returned
58912// first.
58913//
58914// Currently, only sorting by `name` or `creationTimestamp desc` is
58915// supported.
58916func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
58917	c.urlParams_.Set("orderBy", orderBy)
58918	return c
58919}
58920
58921// PageToken sets the optional parameter "pageToken": Specifies a page
58922// token to use. Set `pageToken` to the `nextPageToken` returned by a
58923// previous list request to get the next page of results.
58924func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
58925	c.urlParams_.Set("pageToken", pageToken)
58926	return c
58927}
58928
58929// Fields allows partial responses to be retrieved. See
58930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58931// for more information.
58932func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
58933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58934	return c
58935}
58936
58937// IfNoneMatch sets the optional parameter which makes the operation
58938// fail if the object's ETag matches the given value. This is useful for
58939// getting updates only after the object has changed since the last
58940// request. Use googleapi.IsNotModified to check whether the response
58941// error from Do is the result of In-None-Match.
58942func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
58943	c.ifNoneMatch_ = entityTag
58944	return c
58945}
58946
58947// Context sets the context to be used in this call's Do method. Any
58948// pending HTTP request will be aborted if the provided context is
58949// canceled.
58950func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
58951	c.ctx_ = ctx
58952	return c
58953}
58954
58955// Header returns an http.Header that can be modified by the caller to
58956// add HTTP headers to the request.
58957func (c *GlobalOperationsListCall) Header() http.Header {
58958	if c.header_ == nil {
58959		c.header_ = make(http.Header)
58960	}
58961	return c.header_
58962}
58963
58964func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
58965	reqHeaders := make(http.Header)
58966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58967	for k, v := range c.header_ {
58968		reqHeaders[k] = v
58969	}
58970	reqHeaders.Set("User-Agent", c.s.userAgent())
58971	if c.ifNoneMatch_ != "" {
58972		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58973	}
58974	var body io.Reader = nil
58975	c.urlParams_.Set("alt", alt)
58976	c.urlParams_.Set("prettyPrint", "false")
58977	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
58978	urls += "?" + c.urlParams_.Encode()
58979	req, err := http.NewRequest("GET", urls, body)
58980	if err != nil {
58981		return nil, err
58982	}
58983	req.Header = reqHeaders
58984	googleapi.Expand(req.URL, map[string]string{
58985		"project": c.project,
58986	})
58987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58988}
58989
58990// Do executes the "compute.globalOperations.list" call.
58991// Exactly one of *OperationList or error will be non-nil. Any non-2xx
58992// status code is an error. Response headers are in either
58993// *OperationList.ServerResponse.Header or (if a response was returned
58994// at all) in error.(*googleapi.Error).Header. Use
58995// googleapi.IsNotModified to check whether the returned error was
58996// because http.StatusNotModified was returned.
58997func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
58998	gensupport.SetOptions(c.urlParams_, opts...)
58999	res, err := c.doRequest("json")
59000	if res != nil && res.StatusCode == http.StatusNotModified {
59001		if res.Body != nil {
59002			res.Body.Close()
59003		}
59004		return nil, &googleapi.Error{
59005			Code:   res.StatusCode,
59006			Header: res.Header,
59007		}
59008	}
59009	if err != nil {
59010		return nil, err
59011	}
59012	defer googleapi.CloseBody(res)
59013	if err := googleapi.CheckResponse(res); err != nil {
59014		return nil, err
59015	}
59016	ret := &OperationList{
59017		ServerResponse: googleapi.ServerResponse{
59018			Header:         res.Header,
59019			HTTPStatusCode: res.StatusCode,
59020		},
59021	}
59022	target := &ret
59023	if err := gensupport.DecodeResponse(target, res); err != nil {
59024		return nil, err
59025	}
59026	return ret, nil
59027	// {
59028	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
59029	//   "httpMethod": "GET",
59030	//   "id": "compute.globalOperations.list",
59031	//   "parameterOrder": [
59032	//     "project"
59033	//   ],
59034	//   "parameters": {
59035	//     "filter": {
59036	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
59037	//       "location": "query",
59038	//       "type": "string"
59039	//     },
59040	//     "maxResults": {
59041	//       "default": "500",
59042	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
59043	//       "format": "uint32",
59044	//       "location": "query",
59045	//       "minimum": "0",
59046	//       "type": "integer"
59047	//     },
59048	//     "orderBy": {
59049	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
59050	//       "location": "query",
59051	//       "type": "string"
59052	//     },
59053	//     "pageToken": {
59054	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
59055	//       "location": "query",
59056	//       "type": "string"
59057	//     },
59058	//     "project": {
59059	//       "description": "Project ID for this request.",
59060	//       "location": "path",
59061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59062	//       "required": true,
59063	//       "type": "string"
59064	//     }
59065	//   },
59066	//   "path": "{project}/global/operations",
59067	//   "response": {
59068	//     "$ref": "OperationList"
59069	//   },
59070	//   "scopes": [
59071	//     "https://www.googleapis.com/auth/cloud-platform",
59072	//     "https://www.googleapis.com/auth/compute",
59073	//     "https://www.googleapis.com/auth/compute.readonly"
59074	//   ]
59075	// }
59076
59077}
59078
59079// Pages invokes f for each page of results.
59080// A non-nil error returned from f will halt the iteration.
59081// The provided context supersedes any context provided to the Context method.
59082func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
59083	c.ctx_ = ctx
59084	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59085	for {
59086		x, err := c.Do()
59087		if err != nil {
59088			return err
59089		}
59090		if err := f(x); err != nil {
59091			return err
59092		}
59093		if x.NextPageToken == "" {
59094			return nil
59095		}
59096		c.PageToken(x.NextPageToken)
59097	}
59098}
59099
59100// method id "compute.globalOperations.wait":
59101
59102type GlobalOperationsWaitCall struct {
59103	s          *Service
59104	project    string
59105	operation  string
59106	urlParams_ gensupport.URLParams
59107	ctx_       context.Context
59108	header_    http.Header
59109}
59110
59111// Wait: Waits for the specified Operation resource to return as `DONE`
59112// or for the request to approach the 2 minute deadline, and retrieves
59113// the specified Operation resource. This method differs from the `GET`
59114// method in that it waits for no more than the default deadline (2
59115// minutes) and then returns the current state of the operation, which
59116// might be `DONE` or still in progress.
59117//
59118// This method is called on a best-effort basis. Specifically:
59119// - In uncommon cases, when the server is overloaded, the request might
59120// return before the default deadline is reached, or might return after
59121// zero seconds.
59122// - If the default deadline is reached, there is no guarantee that the
59123// operation is actually done when the method returns. Be prepared to
59124// retry if the operation is not `DONE`.
59125func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
59126	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59127	c.project = project
59128	c.operation = operation
59129	return c
59130}
59131
59132// Fields allows partial responses to be retrieved. See
59133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59134// for more information.
59135func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
59136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59137	return c
59138}
59139
59140// Context sets the context to be used in this call's Do method. Any
59141// pending HTTP request will be aborted if the provided context is
59142// canceled.
59143func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
59144	c.ctx_ = ctx
59145	return c
59146}
59147
59148// Header returns an http.Header that can be modified by the caller to
59149// add HTTP headers to the request.
59150func (c *GlobalOperationsWaitCall) Header() http.Header {
59151	if c.header_ == nil {
59152		c.header_ = make(http.Header)
59153	}
59154	return c.header_
59155}
59156
59157func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
59158	reqHeaders := make(http.Header)
59159	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59160	for k, v := range c.header_ {
59161		reqHeaders[k] = v
59162	}
59163	reqHeaders.Set("User-Agent", c.s.userAgent())
59164	var body io.Reader = nil
59165	c.urlParams_.Set("alt", alt)
59166	c.urlParams_.Set("prettyPrint", "false")
59167	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}/wait")
59168	urls += "?" + c.urlParams_.Encode()
59169	req, err := http.NewRequest("POST", urls, body)
59170	if err != nil {
59171		return nil, err
59172	}
59173	req.Header = reqHeaders
59174	googleapi.Expand(req.URL, map[string]string{
59175		"project":   c.project,
59176		"operation": c.operation,
59177	})
59178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59179}
59180
59181// Do executes the "compute.globalOperations.wait" call.
59182// Exactly one of *Operation or error will be non-nil. Any non-2xx
59183// status code is an error. Response headers are in either
59184// *Operation.ServerResponse.Header or (if a response was returned at
59185// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59186// to check whether the returned error was because
59187// http.StatusNotModified was returned.
59188func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59189	gensupport.SetOptions(c.urlParams_, opts...)
59190	res, err := c.doRequest("json")
59191	if res != nil && res.StatusCode == http.StatusNotModified {
59192		if res.Body != nil {
59193			res.Body.Close()
59194		}
59195		return nil, &googleapi.Error{
59196			Code:   res.StatusCode,
59197			Header: res.Header,
59198		}
59199	}
59200	if err != nil {
59201		return nil, err
59202	}
59203	defer googleapi.CloseBody(res)
59204	if err := googleapi.CheckResponse(res); err != nil {
59205		return nil, err
59206	}
59207	ret := &Operation{
59208		ServerResponse: googleapi.ServerResponse{
59209			Header:         res.Header,
59210			HTTPStatusCode: res.StatusCode,
59211		},
59212	}
59213	target := &ret
59214	if err := gensupport.DecodeResponse(target, res); err != nil {
59215		return nil, err
59216	}
59217	return ret, nil
59218	// {
59219	//   "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`.",
59220	//   "httpMethod": "POST",
59221	//   "id": "compute.globalOperations.wait",
59222	//   "parameterOrder": [
59223	//     "project",
59224	//     "operation"
59225	//   ],
59226	//   "parameters": {
59227	//     "operation": {
59228	//       "description": "Name of the Operations resource to return.",
59229	//       "location": "path",
59230	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59231	//       "required": true,
59232	//       "type": "string"
59233	//     },
59234	//     "project": {
59235	//       "description": "Project ID for this request.",
59236	//       "location": "path",
59237	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59238	//       "required": true,
59239	//       "type": "string"
59240	//     }
59241	//   },
59242	//   "path": "{project}/global/operations/{operation}/wait",
59243	//   "response": {
59244	//     "$ref": "Operation"
59245	//   },
59246	//   "scopes": [
59247	//     "https://www.googleapis.com/auth/cloud-platform",
59248	//     "https://www.googleapis.com/auth/compute",
59249	//     "https://www.googleapis.com/auth/compute.readonly"
59250	//   ]
59251	// }
59252
59253}
59254
59255// method id "compute.healthChecks.aggregatedList":
59256
59257type HealthChecksAggregatedListCall struct {
59258	s            *Service
59259	project      string
59260	urlParams_   gensupport.URLParams
59261	ifNoneMatch_ string
59262	ctx_         context.Context
59263	header_      http.Header
59264}
59265
59266// AggregatedList: Retrieves the list of all HealthCheck resources,
59267// regional and global, available to the specified project.
59268func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
59269	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59270	c.project = project
59271	return c
59272}
59273
59274// Filter sets the optional parameter "filter": A filter expression that
59275// filters resources listed in the response. The expression must specify
59276// the field name, a comparison operator, and the value that you want to
59277// use for filtering. The value must be a string, a number, or a
59278// boolean. The comparison operator must be either `=`, `!=`, `>`, or
59279// `<`.
59280//
59281// For example, if you are filtering Compute Engine instances, you can
59282// exclude instances named `example-instance` by specifying `name !=
59283// example-instance`.
59284//
59285// You can also filter nested fields. For example, you could specify
59286// `scheduling.automaticRestart = false` to include instances only if
59287// they are not scheduled for automatic restarts. You can use filtering
59288// on nested fields to filter based on resource labels.
59289//
59290// To filter on multiple expressions, provide each separate expression
59291// within parentheses. For example: ``` (scheduling.automaticRestart =
59292// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
59293// is an `AND` expression. However, you can include `AND` and `OR`
59294// expressions explicitly. For example: ``` (cpuPlatform = "Intel
59295// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
59296// (scheduling.automaticRestart = true) ```
59297func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
59298	c.urlParams_.Set("filter", filter)
59299	return c
59300}
59301
59302// IncludeAllScopes sets the optional parameter "includeAllScopes":
59303// Indicates whether every visible scope for each scope type (zone,
59304// region, global) should be included in the response. For new resource
59305// types added after this field, the flag has no effect as new resource
59306// types will always include every visible scope for each scope type in
59307// response. For resource types which predate this field, if this flag
59308// is omitted or false, only scopes of the scope types where the
59309// resource type is expected to be found will be included.
59310func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
59311	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
59312	return c
59313}
59314
59315// MaxResults sets the optional parameter "maxResults": The maximum
59316// number of results per page that should be returned. If the number of
59317// available results is larger than `maxResults`, Compute Engine returns
59318// a `nextPageToken` that can be used to get the next page of results in
59319// subsequent list requests. Acceptable values are `0` to `500`,
59320// inclusive. (Default: `500`)
59321func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
59322	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59323	return c
59324}
59325
59326// OrderBy sets the optional parameter "orderBy": Sorts list results by
59327// a certain order. By default, results are returned in alphanumerical
59328// order based on the resource name.
59329//
59330// You can also sort results in descending order based on the creation
59331// timestamp using `orderBy="creationTimestamp desc". This sorts
59332// results based on the `creationTimestamp` field in reverse
59333// chronological order (newest result first). Use this to sort resources
59334// like operations so that the newest operation is returned
59335// first.
59336//
59337// Currently, only sorting by `name` or `creationTimestamp desc` is
59338// supported.
59339func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
59340	c.urlParams_.Set("orderBy", orderBy)
59341	return c
59342}
59343
59344// PageToken sets the optional parameter "pageToken": Specifies a page
59345// token to use. Set `pageToken` to the `nextPageToken` returned by a
59346// previous list request to get the next page of results.
59347func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
59348	c.urlParams_.Set("pageToken", pageToken)
59349	return c
59350}
59351
59352// Fields allows partial responses to be retrieved. See
59353// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59354// for more information.
59355func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
59356	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59357	return c
59358}
59359
59360// IfNoneMatch sets the optional parameter which makes the operation
59361// fail if the object's ETag matches the given value. This is useful for
59362// getting updates only after the object has changed since the last
59363// request. Use googleapi.IsNotModified to check whether the response
59364// error from Do is the result of In-None-Match.
59365func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
59366	c.ifNoneMatch_ = entityTag
59367	return c
59368}
59369
59370// Context sets the context to be used in this call's Do method. Any
59371// pending HTTP request will be aborted if the provided context is
59372// canceled.
59373func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
59374	c.ctx_ = ctx
59375	return c
59376}
59377
59378// Header returns an http.Header that can be modified by the caller to
59379// add HTTP headers to the request.
59380func (c *HealthChecksAggregatedListCall) Header() http.Header {
59381	if c.header_ == nil {
59382		c.header_ = make(http.Header)
59383	}
59384	return c.header_
59385}
59386
59387func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
59388	reqHeaders := make(http.Header)
59389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59390	for k, v := range c.header_ {
59391		reqHeaders[k] = v
59392	}
59393	reqHeaders.Set("User-Agent", c.s.userAgent())
59394	if c.ifNoneMatch_ != "" {
59395		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59396	}
59397	var body io.Reader = nil
59398	c.urlParams_.Set("alt", alt)
59399	c.urlParams_.Set("prettyPrint", "false")
59400	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/healthChecks")
59401	urls += "?" + c.urlParams_.Encode()
59402	req, err := http.NewRequest("GET", urls, body)
59403	if err != nil {
59404		return nil, err
59405	}
59406	req.Header = reqHeaders
59407	googleapi.Expand(req.URL, map[string]string{
59408		"project": c.project,
59409	})
59410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59411}
59412
59413// Do executes the "compute.healthChecks.aggregatedList" call.
59414// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
59415// Any non-2xx status code is an error. Response headers are in either
59416// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
59417// was returned at all) in error.(*googleapi.Error).Header. Use
59418// googleapi.IsNotModified to check whether the returned error was
59419// because http.StatusNotModified was returned.
59420func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
59421	gensupport.SetOptions(c.urlParams_, opts...)
59422	res, err := c.doRequest("json")
59423	if res != nil && res.StatusCode == http.StatusNotModified {
59424		if res.Body != nil {
59425			res.Body.Close()
59426		}
59427		return nil, &googleapi.Error{
59428			Code:   res.StatusCode,
59429			Header: res.Header,
59430		}
59431	}
59432	if err != nil {
59433		return nil, err
59434	}
59435	defer googleapi.CloseBody(res)
59436	if err := googleapi.CheckResponse(res); err != nil {
59437		return nil, err
59438	}
59439	ret := &HealthChecksAggregatedList{
59440		ServerResponse: googleapi.ServerResponse{
59441			Header:         res.Header,
59442			HTTPStatusCode: res.StatusCode,
59443		},
59444	}
59445	target := &ret
59446	if err := gensupport.DecodeResponse(target, res); err != nil {
59447		return nil, err
59448	}
59449	return ret, nil
59450	// {
59451	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
59452	//   "httpMethod": "GET",
59453	//   "id": "compute.healthChecks.aggregatedList",
59454	//   "parameterOrder": [
59455	//     "project"
59456	//   ],
59457	//   "parameters": {
59458	//     "filter": {
59459	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
59460	//       "location": "query",
59461	//       "type": "string"
59462	//     },
59463	//     "includeAllScopes": {
59464	//       "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.",
59465	//       "location": "query",
59466	//       "type": "boolean"
59467	//     },
59468	//     "maxResults": {
59469	//       "default": "500",
59470	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
59471	//       "format": "uint32",
59472	//       "location": "query",
59473	//       "minimum": "0",
59474	//       "type": "integer"
59475	//     },
59476	//     "orderBy": {
59477	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
59478	//       "location": "query",
59479	//       "type": "string"
59480	//     },
59481	//     "pageToken": {
59482	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
59483	//       "location": "query",
59484	//       "type": "string"
59485	//     },
59486	//     "project": {
59487	//       "description": "Name of the project scoping this request.",
59488	//       "location": "path",
59489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59490	//       "required": true,
59491	//       "type": "string"
59492	//     }
59493	//   },
59494	//   "path": "{project}/aggregated/healthChecks",
59495	//   "response": {
59496	//     "$ref": "HealthChecksAggregatedList"
59497	//   },
59498	//   "scopes": [
59499	//     "https://www.googleapis.com/auth/cloud-platform",
59500	//     "https://www.googleapis.com/auth/compute",
59501	//     "https://www.googleapis.com/auth/compute.readonly"
59502	//   ]
59503	// }
59504
59505}
59506
59507// Pages invokes f for each page of results.
59508// A non-nil error returned from f will halt the iteration.
59509// The provided context supersedes any context provided to the Context method.
59510func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
59511	c.ctx_ = ctx
59512	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59513	for {
59514		x, err := c.Do()
59515		if err != nil {
59516			return err
59517		}
59518		if err := f(x); err != nil {
59519			return err
59520		}
59521		if x.NextPageToken == "" {
59522			return nil
59523		}
59524		c.PageToken(x.NextPageToken)
59525	}
59526}
59527
59528// method id "compute.healthChecks.delete":
59529
59530type HealthChecksDeleteCall struct {
59531	s           *Service
59532	project     string
59533	healthCheck string
59534	urlParams_  gensupport.URLParams
59535	ctx_        context.Context
59536	header_     http.Header
59537}
59538
59539// Delete: Deletes the specified HealthCheck resource.
59540func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
59541	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59542	c.project = project
59543	c.healthCheck = healthCheck
59544	return c
59545}
59546
59547// RequestId sets the optional parameter "requestId": An optional
59548// request ID to identify requests. Specify a unique request ID so that
59549// if you must retry your request, the server will know to ignore the
59550// request if it has already been completed.
59551//
59552// For example, consider a situation where you make an initial request
59553// and the request times out. If you make the request again with the
59554// same request ID, the server can check if original operation with the
59555// same request ID was received, and if so, will ignore the second
59556// request. This prevents clients from accidentally creating duplicate
59557// commitments.
59558//
59559// The request ID must be a valid UUID with the exception that zero UUID
59560// is not supported (00000000-0000-0000-0000-000000000000).
59561func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
59562	c.urlParams_.Set("requestId", requestId)
59563	return c
59564}
59565
59566// Fields allows partial responses to be retrieved. See
59567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59568// for more information.
59569func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
59570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59571	return c
59572}
59573
59574// Context sets the context to be used in this call's Do method. Any
59575// pending HTTP request will be aborted if the provided context is
59576// canceled.
59577func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
59578	c.ctx_ = ctx
59579	return c
59580}
59581
59582// Header returns an http.Header that can be modified by the caller to
59583// add HTTP headers to the request.
59584func (c *HealthChecksDeleteCall) Header() http.Header {
59585	if c.header_ == nil {
59586		c.header_ = make(http.Header)
59587	}
59588	return c.header_
59589}
59590
59591func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
59592	reqHeaders := make(http.Header)
59593	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59594	for k, v := range c.header_ {
59595		reqHeaders[k] = v
59596	}
59597	reqHeaders.Set("User-Agent", c.s.userAgent())
59598	var body io.Reader = nil
59599	c.urlParams_.Set("alt", alt)
59600	c.urlParams_.Set("prettyPrint", "false")
59601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
59602	urls += "?" + c.urlParams_.Encode()
59603	req, err := http.NewRequest("DELETE", urls, body)
59604	if err != nil {
59605		return nil, err
59606	}
59607	req.Header = reqHeaders
59608	googleapi.Expand(req.URL, map[string]string{
59609		"project":     c.project,
59610		"healthCheck": c.healthCheck,
59611	})
59612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59613}
59614
59615// Do executes the "compute.healthChecks.delete" call.
59616// Exactly one of *Operation or error will be non-nil. Any non-2xx
59617// status code is an error. Response headers are in either
59618// *Operation.ServerResponse.Header or (if a response was returned at
59619// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59620// to check whether the returned error was because
59621// http.StatusNotModified was returned.
59622func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59623	gensupport.SetOptions(c.urlParams_, opts...)
59624	res, err := c.doRequest("json")
59625	if res != nil && res.StatusCode == http.StatusNotModified {
59626		if res.Body != nil {
59627			res.Body.Close()
59628		}
59629		return nil, &googleapi.Error{
59630			Code:   res.StatusCode,
59631			Header: res.Header,
59632		}
59633	}
59634	if err != nil {
59635		return nil, err
59636	}
59637	defer googleapi.CloseBody(res)
59638	if err := googleapi.CheckResponse(res); err != nil {
59639		return nil, err
59640	}
59641	ret := &Operation{
59642		ServerResponse: googleapi.ServerResponse{
59643			Header:         res.Header,
59644			HTTPStatusCode: res.StatusCode,
59645		},
59646	}
59647	target := &ret
59648	if err := gensupport.DecodeResponse(target, res); err != nil {
59649		return nil, err
59650	}
59651	return ret, nil
59652	// {
59653	//   "description": "Deletes the specified HealthCheck resource.",
59654	//   "httpMethod": "DELETE",
59655	//   "id": "compute.healthChecks.delete",
59656	//   "parameterOrder": [
59657	//     "project",
59658	//     "healthCheck"
59659	//   ],
59660	//   "parameters": {
59661	//     "healthCheck": {
59662	//       "description": "Name of the HealthCheck resource to delete.",
59663	//       "location": "path",
59664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59665	//       "required": true,
59666	//       "type": "string"
59667	//     },
59668	//     "project": {
59669	//       "description": "Project ID for this request.",
59670	//       "location": "path",
59671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59672	//       "required": true,
59673	//       "type": "string"
59674	//     },
59675	//     "requestId": {
59676	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59677	//       "location": "query",
59678	//       "type": "string"
59679	//     }
59680	//   },
59681	//   "path": "{project}/global/healthChecks/{healthCheck}",
59682	//   "response": {
59683	//     "$ref": "Operation"
59684	//   },
59685	//   "scopes": [
59686	//     "https://www.googleapis.com/auth/cloud-platform",
59687	//     "https://www.googleapis.com/auth/compute"
59688	//   ]
59689	// }
59690
59691}
59692
59693// method id "compute.healthChecks.get":
59694
59695type HealthChecksGetCall struct {
59696	s            *Service
59697	project      string
59698	healthCheck  string
59699	urlParams_   gensupport.URLParams
59700	ifNoneMatch_ string
59701	ctx_         context.Context
59702	header_      http.Header
59703}
59704
59705// Get: Returns the specified HealthCheck resource. Gets a list of
59706// available health checks by making a list() request.
59707func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
59708	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59709	c.project = project
59710	c.healthCheck = healthCheck
59711	return c
59712}
59713
59714// Fields allows partial responses to be retrieved. See
59715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59716// for more information.
59717func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
59718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59719	return c
59720}
59721
59722// IfNoneMatch sets the optional parameter which makes the operation
59723// fail if the object's ETag matches the given value. This is useful for
59724// getting updates only after the object has changed since the last
59725// request. Use googleapi.IsNotModified to check whether the response
59726// error from Do is the result of In-None-Match.
59727func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
59728	c.ifNoneMatch_ = entityTag
59729	return c
59730}
59731
59732// Context sets the context to be used in this call's Do method. Any
59733// pending HTTP request will be aborted if the provided context is
59734// canceled.
59735func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
59736	c.ctx_ = ctx
59737	return c
59738}
59739
59740// Header returns an http.Header that can be modified by the caller to
59741// add HTTP headers to the request.
59742func (c *HealthChecksGetCall) Header() http.Header {
59743	if c.header_ == nil {
59744		c.header_ = make(http.Header)
59745	}
59746	return c.header_
59747}
59748
59749func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
59750	reqHeaders := make(http.Header)
59751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59752	for k, v := range c.header_ {
59753		reqHeaders[k] = v
59754	}
59755	reqHeaders.Set("User-Agent", c.s.userAgent())
59756	if c.ifNoneMatch_ != "" {
59757		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59758	}
59759	var body io.Reader = nil
59760	c.urlParams_.Set("alt", alt)
59761	c.urlParams_.Set("prettyPrint", "false")
59762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
59763	urls += "?" + c.urlParams_.Encode()
59764	req, err := http.NewRequest("GET", urls, body)
59765	if err != nil {
59766		return nil, err
59767	}
59768	req.Header = reqHeaders
59769	googleapi.Expand(req.URL, map[string]string{
59770		"project":     c.project,
59771		"healthCheck": c.healthCheck,
59772	})
59773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59774}
59775
59776// Do executes the "compute.healthChecks.get" call.
59777// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
59778// status code is an error. Response headers are in either
59779// *HealthCheck.ServerResponse.Header or (if a response was returned at
59780// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59781// to check whether the returned error was because
59782// http.StatusNotModified was returned.
59783func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
59784	gensupport.SetOptions(c.urlParams_, opts...)
59785	res, err := c.doRequest("json")
59786	if res != nil && res.StatusCode == http.StatusNotModified {
59787		if res.Body != nil {
59788			res.Body.Close()
59789		}
59790		return nil, &googleapi.Error{
59791			Code:   res.StatusCode,
59792			Header: res.Header,
59793		}
59794	}
59795	if err != nil {
59796		return nil, err
59797	}
59798	defer googleapi.CloseBody(res)
59799	if err := googleapi.CheckResponse(res); err != nil {
59800		return nil, err
59801	}
59802	ret := &HealthCheck{
59803		ServerResponse: googleapi.ServerResponse{
59804			Header:         res.Header,
59805			HTTPStatusCode: res.StatusCode,
59806		},
59807	}
59808	target := &ret
59809	if err := gensupport.DecodeResponse(target, res); err != nil {
59810		return nil, err
59811	}
59812	return ret, nil
59813	// {
59814	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
59815	//   "httpMethod": "GET",
59816	//   "id": "compute.healthChecks.get",
59817	//   "parameterOrder": [
59818	//     "project",
59819	//     "healthCheck"
59820	//   ],
59821	//   "parameters": {
59822	//     "healthCheck": {
59823	//       "description": "Name of the HealthCheck resource to return.",
59824	//       "location": "path",
59825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59826	//       "required": true,
59827	//       "type": "string"
59828	//     },
59829	//     "project": {
59830	//       "description": "Project ID for this request.",
59831	//       "location": "path",
59832	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59833	//       "required": true,
59834	//       "type": "string"
59835	//     }
59836	//   },
59837	//   "path": "{project}/global/healthChecks/{healthCheck}",
59838	//   "response": {
59839	//     "$ref": "HealthCheck"
59840	//   },
59841	//   "scopes": [
59842	//     "https://www.googleapis.com/auth/cloud-platform",
59843	//     "https://www.googleapis.com/auth/compute",
59844	//     "https://www.googleapis.com/auth/compute.readonly"
59845	//   ]
59846	// }
59847
59848}
59849
59850// method id "compute.healthChecks.insert":
59851
59852type HealthChecksInsertCall struct {
59853	s           *Service
59854	project     string
59855	healthcheck *HealthCheck
59856	urlParams_  gensupport.URLParams
59857	ctx_        context.Context
59858	header_     http.Header
59859}
59860
59861// Insert: Creates a HealthCheck resource in the specified project using
59862// the data included in the request.
59863func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
59864	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59865	c.project = project
59866	c.healthcheck = healthcheck
59867	return c
59868}
59869
59870// RequestId sets the optional parameter "requestId": An optional
59871// request ID to identify requests. Specify a unique request ID so that
59872// if you must retry your request, the server will know to ignore the
59873// request if it has already been completed.
59874//
59875// For example, consider a situation where you make an initial request
59876// and the request times out. If you make the request again with the
59877// same request ID, the server can check if original operation with the
59878// same request ID was received, and if so, will ignore the second
59879// request. This prevents clients from accidentally creating duplicate
59880// commitments.
59881//
59882// The request ID must be a valid UUID with the exception that zero UUID
59883// is not supported (00000000-0000-0000-0000-000000000000).
59884func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
59885	c.urlParams_.Set("requestId", requestId)
59886	return c
59887}
59888
59889// Fields allows partial responses to be retrieved. See
59890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59891// for more information.
59892func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
59893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59894	return c
59895}
59896
59897// Context sets the context to be used in this call's Do method. Any
59898// pending HTTP request will be aborted if the provided context is
59899// canceled.
59900func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
59901	c.ctx_ = ctx
59902	return c
59903}
59904
59905// Header returns an http.Header that can be modified by the caller to
59906// add HTTP headers to the request.
59907func (c *HealthChecksInsertCall) Header() http.Header {
59908	if c.header_ == nil {
59909		c.header_ = make(http.Header)
59910	}
59911	return c.header_
59912}
59913
59914func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
59915	reqHeaders := make(http.Header)
59916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59917	for k, v := range c.header_ {
59918		reqHeaders[k] = v
59919	}
59920	reqHeaders.Set("User-Agent", c.s.userAgent())
59921	var body io.Reader = nil
59922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
59923	if err != nil {
59924		return nil, err
59925	}
59926	reqHeaders.Set("Content-Type", "application/json")
59927	c.urlParams_.Set("alt", alt)
59928	c.urlParams_.Set("prettyPrint", "false")
59929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
59930	urls += "?" + c.urlParams_.Encode()
59931	req, err := http.NewRequest("POST", urls, body)
59932	if err != nil {
59933		return nil, err
59934	}
59935	req.Header = reqHeaders
59936	googleapi.Expand(req.URL, map[string]string{
59937		"project": c.project,
59938	})
59939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59940}
59941
59942// Do executes the "compute.healthChecks.insert" call.
59943// Exactly one of *Operation or error will be non-nil. Any non-2xx
59944// status code is an error. Response headers are in either
59945// *Operation.ServerResponse.Header or (if a response was returned at
59946// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59947// to check whether the returned error was because
59948// http.StatusNotModified was returned.
59949func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59950	gensupport.SetOptions(c.urlParams_, opts...)
59951	res, err := c.doRequest("json")
59952	if res != nil && res.StatusCode == http.StatusNotModified {
59953		if res.Body != nil {
59954			res.Body.Close()
59955		}
59956		return nil, &googleapi.Error{
59957			Code:   res.StatusCode,
59958			Header: res.Header,
59959		}
59960	}
59961	if err != nil {
59962		return nil, err
59963	}
59964	defer googleapi.CloseBody(res)
59965	if err := googleapi.CheckResponse(res); err != nil {
59966		return nil, err
59967	}
59968	ret := &Operation{
59969		ServerResponse: googleapi.ServerResponse{
59970			Header:         res.Header,
59971			HTTPStatusCode: res.StatusCode,
59972		},
59973	}
59974	target := &ret
59975	if err := gensupport.DecodeResponse(target, res); err != nil {
59976		return nil, err
59977	}
59978	return ret, nil
59979	// {
59980	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
59981	//   "httpMethod": "POST",
59982	//   "id": "compute.healthChecks.insert",
59983	//   "parameterOrder": [
59984	//     "project"
59985	//   ],
59986	//   "parameters": {
59987	//     "project": {
59988	//       "description": "Project ID for this request.",
59989	//       "location": "path",
59990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59991	//       "required": true,
59992	//       "type": "string"
59993	//     },
59994	//     "requestId": {
59995	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59996	//       "location": "query",
59997	//       "type": "string"
59998	//     }
59999	//   },
60000	//   "path": "{project}/global/healthChecks",
60001	//   "request": {
60002	//     "$ref": "HealthCheck"
60003	//   },
60004	//   "response": {
60005	//     "$ref": "Operation"
60006	//   },
60007	//   "scopes": [
60008	//     "https://www.googleapis.com/auth/cloud-platform",
60009	//     "https://www.googleapis.com/auth/compute"
60010	//   ]
60011	// }
60012
60013}
60014
60015// method id "compute.healthChecks.list":
60016
60017type HealthChecksListCall struct {
60018	s            *Service
60019	project      string
60020	urlParams_   gensupport.URLParams
60021	ifNoneMatch_ string
60022	ctx_         context.Context
60023	header_      http.Header
60024}
60025
60026// List: Retrieves the list of HealthCheck resources available to the
60027// specified project.
60028func (r *HealthChecksService) List(project string) *HealthChecksListCall {
60029	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60030	c.project = project
60031	return c
60032}
60033
60034// Filter sets the optional parameter "filter": A filter expression that
60035// filters resources listed in the response. The expression must specify
60036// the field name, a comparison operator, and the value that you want to
60037// use for filtering. The value must be a string, a number, or a
60038// boolean. The comparison operator must be either `=`, `!=`, `>`, or
60039// `<`.
60040//
60041// For example, if you are filtering Compute Engine instances, you can
60042// exclude instances named `example-instance` by specifying `name !=
60043// example-instance`.
60044//
60045// You can also filter nested fields. For example, you could specify
60046// `scheduling.automaticRestart = false` to include instances only if
60047// they are not scheduled for automatic restarts. You can use filtering
60048// on nested fields to filter based on resource labels.
60049//
60050// To filter on multiple expressions, provide each separate expression
60051// within parentheses. For example: ``` (scheduling.automaticRestart =
60052// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
60053// is an `AND` expression. However, you can include `AND` and `OR`
60054// expressions explicitly. For example: ``` (cpuPlatform = "Intel
60055// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
60056// (scheduling.automaticRestart = true) ```
60057func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
60058	c.urlParams_.Set("filter", filter)
60059	return c
60060}
60061
60062// MaxResults sets the optional parameter "maxResults": The maximum
60063// number of results per page that should be returned. If the number of
60064// available results is larger than `maxResults`, Compute Engine returns
60065// a `nextPageToken` that can be used to get the next page of results in
60066// subsequent list requests. Acceptable values are `0` to `500`,
60067// inclusive. (Default: `500`)
60068func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
60069	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60070	return c
60071}
60072
60073// OrderBy sets the optional parameter "orderBy": Sorts list results by
60074// a certain order. By default, results are returned in alphanumerical
60075// order based on the resource name.
60076//
60077// You can also sort results in descending order based on the creation
60078// timestamp using `orderBy="creationTimestamp desc". This sorts
60079// results based on the `creationTimestamp` field in reverse
60080// chronological order (newest result first). Use this to sort resources
60081// like operations so that the newest operation is returned
60082// first.
60083//
60084// Currently, only sorting by `name` or `creationTimestamp desc` is
60085// supported.
60086func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
60087	c.urlParams_.Set("orderBy", orderBy)
60088	return c
60089}
60090
60091// PageToken sets the optional parameter "pageToken": Specifies a page
60092// token to use. Set `pageToken` to the `nextPageToken` returned by a
60093// previous list request to get the next page of results.
60094func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
60095	c.urlParams_.Set("pageToken", pageToken)
60096	return c
60097}
60098
60099// Fields allows partial responses to be retrieved. See
60100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60101// for more information.
60102func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
60103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60104	return c
60105}
60106
60107// IfNoneMatch sets the optional parameter which makes the operation
60108// fail if the object's ETag matches the given value. This is useful for
60109// getting updates only after the object has changed since the last
60110// request. Use googleapi.IsNotModified to check whether the response
60111// error from Do is the result of In-None-Match.
60112func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
60113	c.ifNoneMatch_ = entityTag
60114	return c
60115}
60116
60117// Context sets the context to be used in this call's Do method. Any
60118// pending HTTP request will be aborted if the provided context is
60119// canceled.
60120func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
60121	c.ctx_ = ctx
60122	return c
60123}
60124
60125// Header returns an http.Header that can be modified by the caller to
60126// add HTTP headers to the request.
60127func (c *HealthChecksListCall) Header() http.Header {
60128	if c.header_ == nil {
60129		c.header_ = make(http.Header)
60130	}
60131	return c.header_
60132}
60133
60134func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
60135	reqHeaders := make(http.Header)
60136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60137	for k, v := range c.header_ {
60138		reqHeaders[k] = v
60139	}
60140	reqHeaders.Set("User-Agent", c.s.userAgent())
60141	if c.ifNoneMatch_ != "" {
60142		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60143	}
60144	var body io.Reader = nil
60145	c.urlParams_.Set("alt", alt)
60146	c.urlParams_.Set("prettyPrint", "false")
60147	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
60148	urls += "?" + c.urlParams_.Encode()
60149	req, err := http.NewRequest("GET", urls, body)
60150	if err != nil {
60151		return nil, err
60152	}
60153	req.Header = reqHeaders
60154	googleapi.Expand(req.URL, map[string]string{
60155		"project": c.project,
60156	})
60157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60158}
60159
60160// Do executes the "compute.healthChecks.list" call.
60161// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
60162// status code is an error. Response headers are in either
60163// *HealthCheckList.ServerResponse.Header or (if a response was returned
60164// at all) in error.(*googleapi.Error).Header. Use
60165// googleapi.IsNotModified to check whether the returned error was
60166// because http.StatusNotModified was returned.
60167func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
60168	gensupport.SetOptions(c.urlParams_, opts...)
60169	res, err := c.doRequest("json")
60170	if res != nil && res.StatusCode == http.StatusNotModified {
60171		if res.Body != nil {
60172			res.Body.Close()
60173		}
60174		return nil, &googleapi.Error{
60175			Code:   res.StatusCode,
60176			Header: res.Header,
60177		}
60178	}
60179	if err != nil {
60180		return nil, err
60181	}
60182	defer googleapi.CloseBody(res)
60183	if err := googleapi.CheckResponse(res); err != nil {
60184		return nil, err
60185	}
60186	ret := &HealthCheckList{
60187		ServerResponse: googleapi.ServerResponse{
60188			Header:         res.Header,
60189			HTTPStatusCode: res.StatusCode,
60190		},
60191	}
60192	target := &ret
60193	if err := gensupport.DecodeResponse(target, res); err != nil {
60194		return nil, err
60195	}
60196	return ret, nil
60197	// {
60198	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
60199	//   "httpMethod": "GET",
60200	//   "id": "compute.healthChecks.list",
60201	//   "parameterOrder": [
60202	//     "project"
60203	//   ],
60204	//   "parameters": {
60205	//     "filter": {
60206	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
60207	//       "location": "query",
60208	//       "type": "string"
60209	//     },
60210	//     "maxResults": {
60211	//       "default": "500",
60212	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
60213	//       "format": "uint32",
60214	//       "location": "query",
60215	//       "minimum": "0",
60216	//       "type": "integer"
60217	//     },
60218	//     "orderBy": {
60219	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
60220	//       "location": "query",
60221	//       "type": "string"
60222	//     },
60223	//     "pageToken": {
60224	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
60225	//       "location": "query",
60226	//       "type": "string"
60227	//     },
60228	//     "project": {
60229	//       "description": "Project ID for this request.",
60230	//       "location": "path",
60231	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60232	//       "required": true,
60233	//       "type": "string"
60234	//     }
60235	//   },
60236	//   "path": "{project}/global/healthChecks",
60237	//   "response": {
60238	//     "$ref": "HealthCheckList"
60239	//   },
60240	//   "scopes": [
60241	//     "https://www.googleapis.com/auth/cloud-platform",
60242	//     "https://www.googleapis.com/auth/compute",
60243	//     "https://www.googleapis.com/auth/compute.readonly"
60244	//   ]
60245	// }
60246
60247}
60248
60249// Pages invokes f for each page of results.
60250// A non-nil error returned from f will halt the iteration.
60251// The provided context supersedes any context provided to the Context method.
60252func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
60253	c.ctx_ = ctx
60254	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60255	for {
60256		x, err := c.Do()
60257		if err != nil {
60258			return err
60259		}
60260		if err := f(x); err != nil {
60261			return err
60262		}
60263		if x.NextPageToken == "" {
60264			return nil
60265		}
60266		c.PageToken(x.NextPageToken)
60267	}
60268}
60269
60270// method id "compute.healthChecks.patch":
60271
60272type HealthChecksPatchCall struct {
60273	s           *Service
60274	project     string
60275	healthCheck string
60276	healthcheck *HealthCheck
60277	urlParams_  gensupport.URLParams
60278	ctx_        context.Context
60279	header_     http.Header
60280}
60281
60282// Patch: Updates a HealthCheck resource in the specified project using
60283// the data included in the request. This method supports PATCH
60284// semantics and uses the JSON merge patch format and processing rules.
60285func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
60286	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60287	c.project = project
60288	c.healthCheck = healthCheck
60289	c.healthcheck = healthcheck
60290	return c
60291}
60292
60293// RequestId sets the optional parameter "requestId": An optional
60294// request ID to identify requests. Specify a unique request ID so that
60295// if you must retry your request, the server will know to ignore the
60296// request if it has already been completed.
60297//
60298// For example, consider a situation where you make an initial request
60299// and the request times out. If you make the request again with the
60300// same request ID, the server can check if original operation with the
60301// same request ID was received, and if so, will ignore the second
60302// request. This prevents clients from accidentally creating duplicate
60303// commitments.
60304//
60305// The request ID must be a valid UUID with the exception that zero UUID
60306// is not supported (00000000-0000-0000-0000-000000000000).
60307func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
60308	c.urlParams_.Set("requestId", requestId)
60309	return c
60310}
60311
60312// Fields allows partial responses to be retrieved. See
60313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60314// for more information.
60315func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
60316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60317	return c
60318}
60319
60320// Context sets the context to be used in this call's Do method. Any
60321// pending HTTP request will be aborted if the provided context is
60322// canceled.
60323func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
60324	c.ctx_ = ctx
60325	return c
60326}
60327
60328// Header returns an http.Header that can be modified by the caller to
60329// add HTTP headers to the request.
60330func (c *HealthChecksPatchCall) Header() http.Header {
60331	if c.header_ == nil {
60332		c.header_ = make(http.Header)
60333	}
60334	return c.header_
60335}
60336
60337func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
60338	reqHeaders := make(http.Header)
60339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60340	for k, v := range c.header_ {
60341		reqHeaders[k] = v
60342	}
60343	reqHeaders.Set("User-Agent", c.s.userAgent())
60344	var body io.Reader = nil
60345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
60346	if err != nil {
60347		return nil, err
60348	}
60349	reqHeaders.Set("Content-Type", "application/json")
60350	c.urlParams_.Set("alt", alt)
60351	c.urlParams_.Set("prettyPrint", "false")
60352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
60353	urls += "?" + c.urlParams_.Encode()
60354	req, err := http.NewRequest("PATCH", urls, body)
60355	if err != nil {
60356		return nil, err
60357	}
60358	req.Header = reqHeaders
60359	googleapi.Expand(req.URL, map[string]string{
60360		"project":     c.project,
60361		"healthCheck": c.healthCheck,
60362	})
60363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60364}
60365
60366// Do executes the "compute.healthChecks.patch" call.
60367// Exactly one of *Operation or error will be non-nil. Any non-2xx
60368// status code is an error. Response headers are in either
60369// *Operation.ServerResponse.Header or (if a response was returned at
60370// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60371// to check whether the returned error was because
60372// http.StatusNotModified was returned.
60373func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60374	gensupport.SetOptions(c.urlParams_, opts...)
60375	res, err := c.doRequest("json")
60376	if res != nil && res.StatusCode == http.StatusNotModified {
60377		if res.Body != nil {
60378			res.Body.Close()
60379		}
60380		return nil, &googleapi.Error{
60381			Code:   res.StatusCode,
60382			Header: res.Header,
60383		}
60384	}
60385	if err != nil {
60386		return nil, err
60387	}
60388	defer googleapi.CloseBody(res)
60389	if err := googleapi.CheckResponse(res); err != nil {
60390		return nil, err
60391	}
60392	ret := &Operation{
60393		ServerResponse: googleapi.ServerResponse{
60394			Header:         res.Header,
60395			HTTPStatusCode: res.StatusCode,
60396		},
60397	}
60398	target := &ret
60399	if err := gensupport.DecodeResponse(target, res); err != nil {
60400		return nil, err
60401	}
60402	return ret, nil
60403	// {
60404	//   "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.",
60405	//   "httpMethod": "PATCH",
60406	//   "id": "compute.healthChecks.patch",
60407	//   "parameterOrder": [
60408	//     "project",
60409	//     "healthCheck"
60410	//   ],
60411	//   "parameters": {
60412	//     "healthCheck": {
60413	//       "description": "Name of the HealthCheck resource to patch.",
60414	//       "location": "path",
60415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60416	//       "required": true,
60417	//       "type": "string"
60418	//     },
60419	//     "project": {
60420	//       "description": "Project ID for this request.",
60421	//       "location": "path",
60422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60423	//       "required": true,
60424	//       "type": "string"
60425	//     },
60426	//     "requestId": {
60427	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60428	//       "location": "query",
60429	//       "type": "string"
60430	//     }
60431	//   },
60432	//   "path": "{project}/global/healthChecks/{healthCheck}",
60433	//   "request": {
60434	//     "$ref": "HealthCheck"
60435	//   },
60436	//   "response": {
60437	//     "$ref": "Operation"
60438	//   },
60439	//   "scopes": [
60440	//     "https://www.googleapis.com/auth/cloud-platform",
60441	//     "https://www.googleapis.com/auth/compute"
60442	//   ]
60443	// }
60444
60445}
60446
60447// method id "compute.healthChecks.update":
60448
60449type HealthChecksUpdateCall struct {
60450	s           *Service
60451	project     string
60452	healthCheck string
60453	healthcheck *HealthCheck
60454	urlParams_  gensupport.URLParams
60455	ctx_        context.Context
60456	header_     http.Header
60457}
60458
60459// Update: Updates a HealthCheck resource in the specified project using
60460// the data included in the request.
60461func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
60462	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60463	c.project = project
60464	c.healthCheck = healthCheck
60465	c.healthcheck = healthcheck
60466	return c
60467}
60468
60469// RequestId sets the optional parameter "requestId": An optional
60470// request ID to identify requests. Specify a unique request ID so that
60471// if you must retry your request, the server will know to ignore the
60472// request if it has already been completed.
60473//
60474// For example, consider a situation where you make an initial request
60475// and the request times out. If you make the request again with the
60476// same request ID, the server can check if original operation with the
60477// same request ID was received, and if so, will ignore the second
60478// request. This prevents clients from accidentally creating duplicate
60479// commitments.
60480//
60481// The request ID must be a valid UUID with the exception that zero UUID
60482// is not supported (00000000-0000-0000-0000-000000000000).
60483func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
60484	c.urlParams_.Set("requestId", requestId)
60485	return c
60486}
60487
60488// Fields allows partial responses to be retrieved. See
60489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60490// for more information.
60491func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
60492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60493	return c
60494}
60495
60496// Context sets the context to be used in this call's Do method. Any
60497// pending HTTP request will be aborted if the provided context is
60498// canceled.
60499func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
60500	c.ctx_ = ctx
60501	return c
60502}
60503
60504// Header returns an http.Header that can be modified by the caller to
60505// add HTTP headers to the request.
60506func (c *HealthChecksUpdateCall) Header() http.Header {
60507	if c.header_ == nil {
60508		c.header_ = make(http.Header)
60509	}
60510	return c.header_
60511}
60512
60513func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
60514	reqHeaders := make(http.Header)
60515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60516	for k, v := range c.header_ {
60517		reqHeaders[k] = v
60518	}
60519	reqHeaders.Set("User-Agent", c.s.userAgent())
60520	var body io.Reader = nil
60521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
60522	if err != nil {
60523		return nil, err
60524	}
60525	reqHeaders.Set("Content-Type", "application/json")
60526	c.urlParams_.Set("alt", alt)
60527	c.urlParams_.Set("prettyPrint", "false")
60528	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
60529	urls += "?" + c.urlParams_.Encode()
60530	req, err := http.NewRequest("PUT", urls, body)
60531	if err != nil {
60532		return nil, err
60533	}
60534	req.Header = reqHeaders
60535	googleapi.Expand(req.URL, map[string]string{
60536		"project":     c.project,
60537		"healthCheck": c.healthCheck,
60538	})
60539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60540}
60541
60542// Do executes the "compute.healthChecks.update" call.
60543// Exactly one of *Operation or error will be non-nil. Any non-2xx
60544// status code is an error. Response headers are in either
60545// *Operation.ServerResponse.Header or (if a response was returned at
60546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60547// to check whether the returned error was because
60548// http.StatusNotModified was returned.
60549func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60550	gensupport.SetOptions(c.urlParams_, opts...)
60551	res, err := c.doRequest("json")
60552	if res != nil && res.StatusCode == http.StatusNotModified {
60553		if res.Body != nil {
60554			res.Body.Close()
60555		}
60556		return nil, &googleapi.Error{
60557			Code:   res.StatusCode,
60558			Header: res.Header,
60559		}
60560	}
60561	if err != nil {
60562		return nil, err
60563	}
60564	defer googleapi.CloseBody(res)
60565	if err := googleapi.CheckResponse(res); err != nil {
60566		return nil, err
60567	}
60568	ret := &Operation{
60569		ServerResponse: googleapi.ServerResponse{
60570			Header:         res.Header,
60571			HTTPStatusCode: res.StatusCode,
60572		},
60573	}
60574	target := &ret
60575	if err := gensupport.DecodeResponse(target, res); err != nil {
60576		return nil, err
60577	}
60578	return ret, nil
60579	// {
60580	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
60581	//   "httpMethod": "PUT",
60582	//   "id": "compute.healthChecks.update",
60583	//   "parameterOrder": [
60584	//     "project",
60585	//     "healthCheck"
60586	//   ],
60587	//   "parameters": {
60588	//     "healthCheck": {
60589	//       "description": "Name of the HealthCheck resource to update.",
60590	//       "location": "path",
60591	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60592	//       "required": true,
60593	//       "type": "string"
60594	//     },
60595	//     "project": {
60596	//       "description": "Project ID for this request.",
60597	//       "location": "path",
60598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60599	//       "required": true,
60600	//       "type": "string"
60601	//     },
60602	//     "requestId": {
60603	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60604	//       "location": "query",
60605	//       "type": "string"
60606	//     }
60607	//   },
60608	//   "path": "{project}/global/healthChecks/{healthCheck}",
60609	//   "request": {
60610	//     "$ref": "HealthCheck"
60611	//   },
60612	//   "response": {
60613	//     "$ref": "Operation"
60614	//   },
60615	//   "scopes": [
60616	//     "https://www.googleapis.com/auth/cloud-platform",
60617	//     "https://www.googleapis.com/auth/compute"
60618	//   ]
60619	// }
60620
60621}
60622
60623// method id "compute.httpHealthChecks.delete":
60624
60625type HttpHealthChecksDeleteCall struct {
60626	s               *Service
60627	project         string
60628	httpHealthCheck string
60629	urlParams_      gensupport.URLParams
60630	ctx_            context.Context
60631	header_         http.Header
60632}
60633
60634// Delete: Deletes the specified HttpHealthCheck resource.
60635// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
60636func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
60637	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60638	c.project = project
60639	c.httpHealthCheck = httpHealthCheck
60640	return c
60641}
60642
60643// RequestId sets the optional parameter "requestId": An optional
60644// request ID to identify requests. Specify a unique request ID so that
60645// if you must retry your request, the server will know to ignore the
60646// request if it has already been completed.
60647//
60648// For example, consider a situation where you make an initial request
60649// and the request times out. If you make the request again with the
60650// same request ID, the server can check if original operation with the
60651// same request ID was received, and if so, will ignore the second
60652// request. This prevents clients from accidentally creating duplicate
60653// commitments.
60654//
60655// The request ID must be a valid UUID with the exception that zero UUID
60656// is not supported (00000000-0000-0000-0000-000000000000).
60657func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
60658	c.urlParams_.Set("requestId", requestId)
60659	return c
60660}
60661
60662// Fields allows partial responses to be retrieved. See
60663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60664// for more information.
60665func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
60666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60667	return c
60668}
60669
60670// Context sets the context to be used in this call's Do method. Any
60671// pending HTTP request will be aborted if the provided context is
60672// canceled.
60673func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
60674	c.ctx_ = ctx
60675	return c
60676}
60677
60678// Header returns an http.Header that can be modified by the caller to
60679// add HTTP headers to the request.
60680func (c *HttpHealthChecksDeleteCall) Header() http.Header {
60681	if c.header_ == nil {
60682		c.header_ = make(http.Header)
60683	}
60684	return c.header_
60685}
60686
60687func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
60688	reqHeaders := make(http.Header)
60689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60690	for k, v := range c.header_ {
60691		reqHeaders[k] = v
60692	}
60693	reqHeaders.Set("User-Agent", c.s.userAgent())
60694	var body io.Reader = nil
60695	c.urlParams_.Set("alt", alt)
60696	c.urlParams_.Set("prettyPrint", "false")
60697	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
60698	urls += "?" + c.urlParams_.Encode()
60699	req, err := http.NewRequest("DELETE", urls, body)
60700	if err != nil {
60701		return nil, err
60702	}
60703	req.Header = reqHeaders
60704	googleapi.Expand(req.URL, map[string]string{
60705		"project":         c.project,
60706		"httpHealthCheck": c.httpHealthCheck,
60707	})
60708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60709}
60710
60711// Do executes the "compute.httpHealthChecks.delete" call.
60712// Exactly one of *Operation or error will be non-nil. Any non-2xx
60713// status code is an error. Response headers are in either
60714// *Operation.ServerResponse.Header or (if a response was returned at
60715// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60716// to check whether the returned error was because
60717// http.StatusNotModified was returned.
60718func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60719	gensupport.SetOptions(c.urlParams_, opts...)
60720	res, err := c.doRequest("json")
60721	if res != nil && res.StatusCode == http.StatusNotModified {
60722		if res.Body != nil {
60723			res.Body.Close()
60724		}
60725		return nil, &googleapi.Error{
60726			Code:   res.StatusCode,
60727			Header: res.Header,
60728		}
60729	}
60730	if err != nil {
60731		return nil, err
60732	}
60733	defer googleapi.CloseBody(res)
60734	if err := googleapi.CheckResponse(res); err != nil {
60735		return nil, err
60736	}
60737	ret := &Operation{
60738		ServerResponse: googleapi.ServerResponse{
60739			Header:         res.Header,
60740			HTTPStatusCode: res.StatusCode,
60741		},
60742	}
60743	target := &ret
60744	if err := gensupport.DecodeResponse(target, res); err != nil {
60745		return nil, err
60746	}
60747	return ret, nil
60748	// {
60749	//   "description": "Deletes the specified HttpHealthCheck resource.",
60750	//   "httpMethod": "DELETE",
60751	//   "id": "compute.httpHealthChecks.delete",
60752	//   "parameterOrder": [
60753	//     "project",
60754	//     "httpHealthCheck"
60755	//   ],
60756	//   "parameters": {
60757	//     "httpHealthCheck": {
60758	//       "description": "Name of the HttpHealthCheck resource to delete.",
60759	//       "location": "path",
60760	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60761	//       "required": true,
60762	//       "type": "string"
60763	//     },
60764	//     "project": {
60765	//       "description": "Project ID for this request.",
60766	//       "location": "path",
60767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60768	//       "required": true,
60769	//       "type": "string"
60770	//     },
60771	//     "requestId": {
60772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60773	//       "location": "query",
60774	//       "type": "string"
60775	//     }
60776	//   },
60777	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
60778	//   "response": {
60779	//     "$ref": "Operation"
60780	//   },
60781	//   "scopes": [
60782	//     "https://www.googleapis.com/auth/cloud-platform",
60783	//     "https://www.googleapis.com/auth/compute"
60784	//   ]
60785	// }
60786
60787}
60788
60789// method id "compute.httpHealthChecks.get":
60790
60791type HttpHealthChecksGetCall struct {
60792	s               *Service
60793	project         string
60794	httpHealthCheck string
60795	urlParams_      gensupport.URLParams
60796	ifNoneMatch_    string
60797	ctx_            context.Context
60798	header_         http.Header
60799}
60800
60801// Get: Returns the specified HttpHealthCheck resource. Gets a list of
60802// available HTTP health checks by making a list() request.
60803// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
60804func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
60805	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60806	c.project = project
60807	c.httpHealthCheck = httpHealthCheck
60808	return c
60809}
60810
60811// Fields allows partial responses to be retrieved. See
60812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60813// for more information.
60814func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
60815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60816	return c
60817}
60818
60819// IfNoneMatch sets the optional parameter which makes the operation
60820// fail if the object's ETag matches the given value. This is useful for
60821// getting updates only after the object has changed since the last
60822// request. Use googleapi.IsNotModified to check whether the response
60823// error from Do is the result of In-None-Match.
60824func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
60825	c.ifNoneMatch_ = entityTag
60826	return c
60827}
60828
60829// Context sets the context to be used in this call's Do method. Any
60830// pending HTTP request will be aborted if the provided context is
60831// canceled.
60832func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
60833	c.ctx_ = ctx
60834	return c
60835}
60836
60837// Header returns an http.Header that can be modified by the caller to
60838// add HTTP headers to the request.
60839func (c *HttpHealthChecksGetCall) Header() http.Header {
60840	if c.header_ == nil {
60841		c.header_ = make(http.Header)
60842	}
60843	return c.header_
60844}
60845
60846func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
60847	reqHeaders := make(http.Header)
60848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60849	for k, v := range c.header_ {
60850		reqHeaders[k] = v
60851	}
60852	reqHeaders.Set("User-Agent", c.s.userAgent())
60853	if c.ifNoneMatch_ != "" {
60854		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60855	}
60856	var body io.Reader = nil
60857	c.urlParams_.Set("alt", alt)
60858	c.urlParams_.Set("prettyPrint", "false")
60859	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
60860	urls += "?" + c.urlParams_.Encode()
60861	req, err := http.NewRequest("GET", urls, body)
60862	if err != nil {
60863		return nil, err
60864	}
60865	req.Header = reqHeaders
60866	googleapi.Expand(req.URL, map[string]string{
60867		"project":         c.project,
60868		"httpHealthCheck": c.httpHealthCheck,
60869	})
60870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60871}
60872
60873// Do executes the "compute.httpHealthChecks.get" call.
60874// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
60875// status code is an error. Response headers are in either
60876// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
60877// at all) in error.(*googleapi.Error).Header. Use
60878// googleapi.IsNotModified to check whether the returned error was
60879// because http.StatusNotModified was returned.
60880func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
60881	gensupport.SetOptions(c.urlParams_, opts...)
60882	res, err := c.doRequest("json")
60883	if res != nil && res.StatusCode == http.StatusNotModified {
60884		if res.Body != nil {
60885			res.Body.Close()
60886		}
60887		return nil, &googleapi.Error{
60888			Code:   res.StatusCode,
60889			Header: res.Header,
60890		}
60891	}
60892	if err != nil {
60893		return nil, err
60894	}
60895	defer googleapi.CloseBody(res)
60896	if err := googleapi.CheckResponse(res); err != nil {
60897		return nil, err
60898	}
60899	ret := &HttpHealthCheck{
60900		ServerResponse: googleapi.ServerResponse{
60901			Header:         res.Header,
60902			HTTPStatusCode: res.StatusCode,
60903		},
60904	}
60905	target := &ret
60906	if err := gensupport.DecodeResponse(target, res); err != nil {
60907		return nil, err
60908	}
60909	return ret, nil
60910	// {
60911	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
60912	//   "httpMethod": "GET",
60913	//   "id": "compute.httpHealthChecks.get",
60914	//   "parameterOrder": [
60915	//     "project",
60916	//     "httpHealthCheck"
60917	//   ],
60918	//   "parameters": {
60919	//     "httpHealthCheck": {
60920	//       "description": "Name of the HttpHealthCheck resource to return.",
60921	//       "location": "path",
60922	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60923	//       "required": true,
60924	//       "type": "string"
60925	//     },
60926	//     "project": {
60927	//       "description": "Project ID for this request.",
60928	//       "location": "path",
60929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60930	//       "required": true,
60931	//       "type": "string"
60932	//     }
60933	//   },
60934	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
60935	//   "response": {
60936	//     "$ref": "HttpHealthCheck"
60937	//   },
60938	//   "scopes": [
60939	//     "https://www.googleapis.com/auth/cloud-platform",
60940	//     "https://www.googleapis.com/auth/compute",
60941	//     "https://www.googleapis.com/auth/compute.readonly"
60942	//   ]
60943	// }
60944
60945}
60946
60947// method id "compute.httpHealthChecks.insert":
60948
60949type HttpHealthChecksInsertCall struct {
60950	s               *Service
60951	project         string
60952	httphealthcheck *HttpHealthCheck
60953	urlParams_      gensupport.URLParams
60954	ctx_            context.Context
60955	header_         http.Header
60956}
60957
60958// Insert: Creates a HttpHealthCheck resource in the specified project
60959// using the data included in the request.
60960// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
60961func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
60962	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60963	c.project = project
60964	c.httphealthcheck = httphealthcheck
60965	return c
60966}
60967
60968// RequestId sets the optional parameter "requestId": An optional
60969// request ID to identify requests. Specify a unique request ID so that
60970// if you must retry your request, the server will know to ignore the
60971// request if it has already been completed.
60972//
60973// For example, consider a situation where you make an initial request
60974// and the request times out. If you make the request again with the
60975// same request ID, the server can check if original operation with the
60976// same request ID was received, and if so, will ignore the second
60977// request. This prevents clients from accidentally creating duplicate
60978// commitments.
60979//
60980// The request ID must be a valid UUID with the exception that zero UUID
60981// is not supported (00000000-0000-0000-0000-000000000000).
60982func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
60983	c.urlParams_.Set("requestId", requestId)
60984	return c
60985}
60986
60987// Fields allows partial responses to be retrieved. See
60988// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60989// for more information.
60990func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
60991	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60992	return c
60993}
60994
60995// Context sets the context to be used in this call's Do method. Any
60996// pending HTTP request will be aborted if the provided context is
60997// canceled.
60998func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
60999	c.ctx_ = ctx
61000	return c
61001}
61002
61003// Header returns an http.Header that can be modified by the caller to
61004// add HTTP headers to the request.
61005func (c *HttpHealthChecksInsertCall) Header() http.Header {
61006	if c.header_ == nil {
61007		c.header_ = make(http.Header)
61008	}
61009	return c.header_
61010}
61011
61012func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
61013	reqHeaders := make(http.Header)
61014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61015	for k, v := range c.header_ {
61016		reqHeaders[k] = v
61017	}
61018	reqHeaders.Set("User-Agent", c.s.userAgent())
61019	var body io.Reader = nil
61020	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
61021	if err != nil {
61022		return nil, err
61023	}
61024	reqHeaders.Set("Content-Type", "application/json")
61025	c.urlParams_.Set("alt", alt)
61026	c.urlParams_.Set("prettyPrint", "false")
61027	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
61028	urls += "?" + c.urlParams_.Encode()
61029	req, err := http.NewRequest("POST", urls, body)
61030	if err != nil {
61031		return nil, err
61032	}
61033	req.Header = reqHeaders
61034	googleapi.Expand(req.URL, map[string]string{
61035		"project": c.project,
61036	})
61037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61038}
61039
61040// Do executes the "compute.httpHealthChecks.insert" call.
61041// Exactly one of *Operation or error will be non-nil. Any non-2xx
61042// status code is an error. Response headers are in either
61043// *Operation.ServerResponse.Header or (if a response was returned at
61044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61045// to check whether the returned error was because
61046// http.StatusNotModified was returned.
61047func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61048	gensupport.SetOptions(c.urlParams_, opts...)
61049	res, err := c.doRequest("json")
61050	if res != nil && res.StatusCode == http.StatusNotModified {
61051		if res.Body != nil {
61052			res.Body.Close()
61053		}
61054		return nil, &googleapi.Error{
61055			Code:   res.StatusCode,
61056			Header: res.Header,
61057		}
61058	}
61059	if err != nil {
61060		return nil, err
61061	}
61062	defer googleapi.CloseBody(res)
61063	if err := googleapi.CheckResponse(res); err != nil {
61064		return nil, err
61065	}
61066	ret := &Operation{
61067		ServerResponse: googleapi.ServerResponse{
61068			Header:         res.Header,
61069			HTTPStatusCode: res.StatusCode,
61070		},
61071	}
61072	target := &ret
61073	if err := gensupport.DecodeResponse(target, res); err != nil {
61074		return nil, err
61075	}
61076	return ret, nil
61077	// {
61078	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
61079	//   "httpMethod": "POST",
61080	//   "id": "compute.httpHealthChecks.insert",
61081	//   "parameterOrder": [
61082	//     "project"
61083	//   ],
61084	//   "parameters": {
61085	//     "project": {
61086	//       "description": "Project ID for this request.",
61087	//       "location": "path",
61088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61089	//       "required": true,
61090	//       "type": "string"
61091	//     },
61092	//     "requestId": {
61093	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61094	//       "location": "query",
61095	//       "type": "string"
61096	//     }
61097	//   },
61098	//   "path": "{project}/global/httpHealthChecks",
61099	//   "request": {
61100	//     "$ref": "HttpHealthCheck"
61101	//   },
61102	//   "response": {
61103	//     "$ref": "Operation"
61104	//   },
61105	//   "scopes": [
61106	//     "https://www.googleapis.com/auth/cloud-platform",
61107	//     "https://www.googleapis.com/auth/compute"
61108	//   ]
61109	// }
61110
61111}
61112
61113// method id "compute.httpHealthChecks.list":
61114
61115type HttpHealthChecksListCall struct {
61116	s            *Service
61117	project      string
61118	urlParams_   gensupport.URLParams
61119	ifNoneMatch_ string
61120	ctx_         context.Context
61121	header_      http.Header
61122}
61123
61124// List: Retrieves the list of HttpHealthCheck resources available to
61125// the specified project.
61126// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
61127func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
61128	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61129	c.project = project
61130	return c
61131}
61132
61133// Filter sets the optional parameter "filter": A filter expression that
61134// filters resources listed in the response. The expression must specify
61135// the field name, a comparison operator, and the value that you want to
61136// use for filtering. The value must be a string, a number, or a
61137// boolean. The comparison operator must be either `=`, `!=`, `>`, or
61138// `<`.
61139//
61140// For example, if you are filtering Compute Engine instances, you can
61141// exclude instances named `example-instance` by specifying `name !=
61142// example-instance`.
61143//
61144// You can also filter nested fields. For example, you could specify
61145// `scheduling.automaticRestart = false` to include instances only if
61146// they are not scheduled for automatic restarts. You can use filtering
61147// on nested fields to filter based on resource labels.
61148//
61149// To filter on multiple expressions, provide each separate expression
61150// within parentheses. For example: ``` (scheduling.automaticRestart =
61151// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
61152// is an `AND` expression. However, you can include `AND` and `OR`
61153// expressions explicitly. For example: ``` (cpuPlatform = "Intel
61154// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
61155// (scheduling.automaticRestart = true) ```
61156func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
61157	c.urlParams_.Set("filter", filter)
61158	return c
61159}
61160
61161// MaxResults sets the optional parameter "maxResults": The maximum
61162// number of results per page that should be returned. If the number of
61163// available results is larger than `maxResults`, Compute Engine returns
61164// a `nextPageToken` that can be used to get the next page of results in
61165// subsequent list requests. Acceptable values are `0` to `500`,
61166// inclusive. (Default: `500`)
61167func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
61168	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61169	return c
61170}
61171
61172// OrderBy sets the optional parameter "orderBy": Sorts list results by
61173// a certain order. By default, results are returned in alphanumerical
61174// order based on the resource name.
61175//
61176// You can also sort results in descending order based on the creation
61177// timestamp using `orderBy="creationTimestamp desc". This sorts
61178// results based on the `creationTimestamp` field in reverse
61179// chronological order (newest result first). Use this to sort resources
61180// like operations so that the newest operation is returned
61181// first.
61182//
61183// Currently, only sorting by `name` or `creationTimestamp desc` is
61184// supported.
61185func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
61186	c.urlParams_.Set("orderBy", orderBy)
61187	return c
61188}
61189
61190// PageToken sets the optional parameter "pageToken": Specifies a page
61191// token to use. Set `pageToken` to the `nextPageToken` returned by a
61192// previous list request to get the next page of results.
61193func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
61194	c.urlParams_.Set("pageToken", pageToken)
61195	return c
61196}
61197
61198// Fields allows partial responses to be retrieved. See
61199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61200// for more information.
61201func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
61202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61203	return c
61204}
61205
61206// IfNoneMatch sets the optional parameter which makes the operation
61207// fail if the object's ETag matches the given value. This is useful for
61208// getting updates only after the object has changed since the last
61209// request. Use googleapi.IsNotModified to check whether the response
61210// error from Do is the result of In-None-Match.
61211func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
61212	c.ifNoneMatch_ = entityTag
61213	return c
61214}
61215
61216// Context sets the context to be used in this call's Do method. Any
61217// pending HTTP request will be aborted if the provided context is
61218// canceled.
61219func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
61220	c.ctx_ = ctx
61221	return c
61222}
61223
61224// Header returns an http.Header that can be modified by the caller to
61225// add HTTP headers to the request.
61226func (c *HttpHealthChecksListCall) Header() http.Header {
61227	if c.header_ == nil {
61228		c.header_ = make(http.Header)
61229	}
61230	return c.header_
61231}
61232
61233func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
61234	reqHeaders := make(http.Header)
61235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61236	for k, v := range c.header_ {
61237		reqHeaders[k] = v
61238	}
61239	reqHeaders.Set("User-Agent", c.s.userAgent())
61240	if c.ifNoneMatch_ != "" {
61241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61242	}
61243	var body io.Reader = nil
61244	c.urlParams_.Set("alt", alt)
61245	c.urlParams_.Set("prettyPrint", "false")
61246	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
61247	urls += "?" + c.urlParams_.Encode()
61248	req, err := http.NewRequest("GET", urls, body)
61249	if err != nil {
61250		return nil, err
61251	}
61252	req.Header = reqHeaders
61253	googleapi.Expand(req.URL, map[string]string{
61254		"project": c.project,
61255	})
61256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61257}
61258
61259// Do executes the "compute.httpHealthChecks.list" call.
61260// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
61261// non-2xx status code is an error. Response headers are in either
61262// *HttpHealthCheckList.ServerResponse.Header or (if a response was
61263// returned at all) in error.(*googleapi.Error).Header. Use
61264// googleapi.IsNotModified to check whether the returned error was
61265// because http.StatusNotModified was returned.
61266func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
61267	gensupport.SetOptions(c.urlParams_, opts...)
61268	res, err := c.doRequest("json")
61269	if res != nil && res.StatusCode == http.StatusNotModified {
61270		if res.Body != nil {
61271			res.Body.Close()
61272		}
61273		return nil, &googleapi.Error{
61274			Code:   res.StatusCode,
61275			Header: res.Header,
61276		}
61277	}
61278	if err != nil {
61279		return nil, err
61280	}
61281	defer googleapi.CloseBody(res)
61282	if err := googleapi.CheckResponse(res); err != nil {
61283		return nil, err
61284	}
61285	ret := &HttpHealthCheckList{
61286		ServerResponse: googleapi.ServerResponse{
61287			Header:         res.Header,
61288			HTTPStatusCode: res.StatusCode,
61289		},
61290	}
61291	target := &ret
61292	if err := gensupport.DecodeResponse(target, res); err != nil {
61293		return nil, err
61294	}
61295	return ret, nil
61296	// {
61297	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
61298	//   "httpMethod": "GET",
61299	//   "id": "compute.httpHealthChecks.list",
61300	//   "parameterOrder": [
61301	//     "project"
61302	//   ],
61303	//   "parameters": {
61304	//     "filter": {
61305	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
61306	//       "location": "query",
61307	//       "type": "string"
61308	//     },
61309	//     "maxResults": {
61310	//       "default": "500",
61311	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
61312	//       "format": "uint32",
61313	//       "location": "query",
61314	//       "minimum": "0",
61315	//       "type": "integer"
61316	//     },
61317	//     "orderBy": {
61318	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
61319	//       "location": "query",
61320	//       "type": "string"
61321	//     },
61322	//     "pageToken": {
61323	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
61324	//       "location": "query",
61325	//       "type": "string"
61326	//     },
61327	//     "project": {
61328	//       "description": "Project ID for this request.",
61329	//       "location": "path",
61330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61331	//       "required": true,
61332	//       "type": "string"
61333	//     }
61334	//   },
61335	//   "path": "{project}/global/httpHealthChecks",
61336	//   "response": {
61337	//     "$ref": "HttpHealthCheckList"
61338	//   },
61339	//   "scopes": [
61340	//     "https://www.googleapis.com/auth/cloud-platform",
61341	//     "https://www.googleapis.com/auth/compute",
61342	//     "https://www.googleapis.com/auth/compute.readonly"
61343	//   ]
61344	// }
61345
61346}
61347
61348// Pages invokes f for each page of results.
61349// A non-nil error returned from f will halt the iteration.
61350// The provided context supersedes any context provided to the Context method.
61351func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
61352	c.ctx_ = ctx
61353	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61354	for {
61355		x, err := c.Do()
61356		if err != nil {
61357			return err
61358		}
61359		if err := f(x); err != nil {
61360			return err
61361		}
61362		if x.NextPageToken == "" {
61363			return nil
61364		}
61365		c.PageToken(x.NextPageToken)
61366	}
61367}
61368
61369// method id "compute.httpHealthChecks.patch":
61370
61371type HttpHealthChecksPatchCall struct {
61372	s               *Service
61373	project         string
61374	httpHealthCheck string
61375	httphealthcheck *HttpHealthCheck
61376	urlParams_      gensupport.URLParams
61377	ctx_            context.Context
61378	header_         http.Header
61379}
61380
61381// Patch: Updates a HttpHealthCheck resource in the specified project
61382// using the data included in the request. This method supports PATCH
61383// semantics and uses the JSON merge patch format and processing rules.
61384// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
61385func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
61386	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61387	c.project = project
61388	c.httpHealthCheck = httpHealthCheck
61389	c.httphealthcheck = httphealthcheck
61390	return c
61391}
61392
61393// RequestId sets the optional parameter "requestId": An optional
61394// request ID to identify requests. Specify a unique request ID so that
61395// if you must retry your request, the server will know to ignore the
61396// request if it has already been completed.
61397//
61398// For example, consider a situation where you make an initial request
61399// and the request times out. If you make the request again with the
61400// same request ID, the server can check if original operation with the
61401// same request ID was received, and if so, will ignore the second
61402// request. This prevents clients from accidentally creating duplicate
61403// commitments.
61404//
61405// The request ID must be a valid UUID with the exception that zero UUID
61406// is not supported (00000000-0000-0000-0000-000000000000).
61407func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
61408	c.urlParams_.Set("requestId", requestId)
61409	return c
61410}
61411
61412// Fields allows partial responses to be retrieved. See
61413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61414// for more information.
61415func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
61416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61417	return c
61418}
61419
61420// Context sets the context to be used in this call's Do method. Any
61421// pending HTTP request will be aborted if the provided context is
61422// canceled.
61423func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
61424	c.ctx_ = ctx
61425	return c
61426}
61427
61428// Header returns an http.Header that can be modified by the caller to
61429// add HTTP headers to the request.
61430func (c *HttpHealthChecksPatchCall) Header() http.Header {
61431	if c.header_ == nil {
61432		c.header_ = make(http.Header)
61433	}
61434	return c.header_
61435}
61436
61437func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
61438	reqHeaders := make(http.Header)
61439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61440	for k, v := range c.header_ {
61441		reqHeaders[k] = v
61442	}
61443	reqHeaders.Set("User-Agent", c.s.userAgent())
61444	var body io.Reader = nil
61445	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
61446	if err != nil {
61447		return nil, err
61448	}
61449	reqHeaders.Set("Content-Type", "application/json")
61450	c.urlParams_.Set("alt", alt)
61451	c.urlParams_.Set("prettyPrint", "false")
61452	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
61453	urls += "?" + c.urlParams_.Encode()
61454	req, err := http.NewRequest("PATCH", urls, body)
61455	if err != nil {
61456		return nil, err
61457	}
61458	req.Header = reqHeaders
61459	googleapi.Expand(req.URL, map[string]string{
61460		"project":         c.project,
61461		"httpHealthCheck": c.httpHealthCheck,
61462	})
61463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61464}
61465
61466// Do executes the "compute.httpHealthChecks.patch" call.
61467// Exactly one of *Operation or error will be non-nil. Any non-2xx
61468// status code is an error. Response headers are in either
61469// *Operation.ServerResponse.Header or (if a response was returned at
61470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61471// to check whether the returned error was because
61472// http.StatusNotModified was returned.
61473func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61474	gensupport.SetOptions(c.urlParams_, opts...)
61475	res, err := c.doRequest("json")
61476	if res != nil && res.StatusCode == http.StatusNotModified {
61477		if res.Body != nil {
61478			res.Body.Close()
61479		}
61480		return nil, &googleapi.Error{
61481			Code:   res.StatusCode,
61482			Header: res.Header,
61483		}
61484	}
61485	if err != nil {
61486		return nil, err
61487	}
61488	defer googleapi.CloseBody(res)
61489	if err := googleapi.CheckResponse(res); err != nil {
61490		return nil, err
61491	}
61492	ret := &Operation{
61493		ServerResponse: googleapi.ServerResponse{
61494			Header:         res.Header,
61495			HTTPStatusCode: res.StatusCode,
61496		},
61497	}
61498	target := &ret
61499	if err := gensupport.DecodeResponse(target, res); err != nil {
61500		return nil, err
61501	}
61502	return ret, nil
61503	// {
61504	//   "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.",
61505	//   "httpMethod": "PATCH",
61506	//   "id": "compute.httpHealthChecks.patch",
61507	//   "parameterOrder": [
61508	//     "project",
61509	//     "httpHealthCheck"
61510	//   ],
61511	//   "parameters": {
61512	//     "httpHealthCheck": {
61513	//       "description": "Name of the HttpHealthCheck resource to patch.",
61514	//       "location": "path",
61515	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61516	//       "required": true,
61517	//       "type": "string"
61518	//     },
61519	//     "project": {
61520	//       "description": "Project ID for this request.",
61521	//       "location": "path",
61522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61523	//       "required": true,
61524	//       "type": "string"
61525	//     },
61526	//     "requestId": {
61527	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61528	//       "location": "query",
61529	//       "type": "string"
61530	//     }
61531	//   },
61532	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
61533	//   "request": {
61534	//     "$ref": "HttpHealthCheck"
61535	//   },
61536	//   "response": {
61537	//     "$ref": "Operation"
61538	//   },
61539	//   "scopes": [
61540	//     "https://www.googleapis.com/auth/cloud-platform",
61541	//     "https://www.googleapis.com/auth/compute"
61542	//   ]
61543	// }
61544
61545}
61546
61547// method id "compute.httpHealthChecks.update":
61548
61549type HttpHealthChecksUpdateCall struct {
61550	s               *Service
61551	project         string
61552	httpHealthCheck string
61553	httphealthcheck *HttpHealthCheck
61554	urlParams_      gensupport.URLParams
61555	ctx_            context.Context
61556	header_         http.Header
61557}
61558
61559// Update: Updates a HttpHealthCheck resource in the specified project
61560// using the data included in the request.
61561// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
61562func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
61563	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61564	c.project = project
61565	c.httpHealthCheck = httpHealthCheck
61566	c.httphealthcheck = httphealthcheck
61567	return c
61568}
61569
61570// RequestId sets the optional parameter "requestId": An optional
61571// request ID to identify requests. Specify a unique request ID so that
61572// if you must retry your request, the server will know to ignore the
61573// request if it has already been completed.
61574//
61575// For example, consider a situation where you make an initial request
61576// and the request times out. If you make the request again with the
61577// same request ID, the server can check if original operation with the
61578// same request ID was received, and if so, will ignore the second
61579// request. This prevents clients from accidentally creating duplicate
61580// commitments.
61581//
61582// The request ID must be a valid UUID with the exception that zero UUID
61583// is not supported (00000000-0000-0000-0000-000000000000).
61584func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
61585	c.urlParams_.Set("requestId", requestId)
61586	return c
61587}
61588
61589// Fields allows partial responses to be retrieved. See
61590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61591// for more information.
61592func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
61593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61594	return c
61595}
61596
61597// Context sets the context to be used in this call's Do method. Any
61598// pending HTTP request will be aborted if the provided context is
61599// canceled.
61600func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
61601	c.ctx_ = ctx
61602	return c
61603}
61604
61605// Header returns an http.Header that can be modified by the caller to
61606// add HTTP headers to the request.
61607func (c *HttpHealthChecksUpdateCall) Header() http.Header {
61608	if c.header_ == nil {
61609		c.header_ = make(http.Header)
61610	}
61611	return c.header_
61612}
61613
61614func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
61615	reqHeaders := make(http.Header)
61616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61617	for k, v := range c.header_ {
61618		reqHeaders[k] = v
61619	}
61620	reqHeaders.Set("User-Agent", c.s.userAgent())
61621	var body io.Reader = nil
61622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
61623	if err != nil {
61624		return nil, err
61625	}
61626	reqHeaders.Set("Content-Type", "application/json")
61627	c.urlParams_.Set("alt", alt)
61628	c.urlParams_.Set("prettyPrint", "false")
61629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
61630	urls += "?" + c.urlParams_.Encode()
61631	req, err := http.NewRequest("PUT", urls, body)
61632	if err != nil {
61633		return nil, err
61634	}
61635	req.Header = reqHeaders
61636	googleapi.Expand(req.URL, map[string]string{
61637		"project":         c.project,
61638		"httpHealthCheck": c.httpHealthCheck,
61639	})
61640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61641}
61642
61643// Do executes the "compute.httpHealthChecks.update" call.
61644// Exactly one of *Operation or error will be non-nil. Any non-2xx
61645// status code is an error. Response headers are in either
61646// *Operation.ServerResponse.Header or (if a response was returned at
61647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61648// to check whether the returned error was because
61649// http.StatusNotModified was returned.
61650func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61651	gensupport.SetOptions(c.urlParams_, opts...)
61652	res, err := c.doRequest("json")
61653	if res != nil && res.StatusCode == http.StatusNotModified {
61654		if res.Body != nil {
61655			res.Body.Close()
61656		}
61657		return nil, &googleapi.Error{
61658			Code:   res.StatusCode,
61659			Header: res.Header,
61660		}
61661	}
61662	if err != nil {
61663		return nil, err
61664	}
61665	defer googleapi.CloseBody(res)
61666	if err := googleapi.CheckResponse(res); err != nil {
61667		return nil, err
61668	}
61669	ret := &Operation{
61670		ServerResponse: googleapi.ServerResponse{
61671			Header:         res.Header,
61672			HTTPStatusCode: res.StatusCode,
61673		},
61674	}
61675	target := &ret
61676	if err := gensupport.DecodeResponse(target, res); err != nil {
61677		return nil, err
61678	}
61679	return ret, nil
61680	// {
61681	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
61682	//   "httpMethod": "PUT",
61683	//   "id": "compute.httpHealthChecks.update",
61684	//   "parameterOrder": [
61685	//     "project",
61686	//     "httpHealthCheck"
61687	//   ],
61688	//   "parameters": {
61689	//     "httpHealthCheck": {
61690	//       "description": "Name of the HttpHealthCheck resource to update.",
61691	//       "location": "path",
61692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61693	//       "required": true,
61694	//       "type": "string"
61695	//     },
61696	//     "project": {
61697	//       "description": "Project ID for this request.",
61698	//       "location": "path",
61699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61700	//       "required": true,
61701	//       "type": "string"
61702	//     },
61703	//     "requestId": {
61704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61705	//       "location": "query",
61706	//       "type": "string"
61707	//     }
61708	//   },
61709	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
61710	//   "request": {
61711	//     "$ref": "HttpHealthCheck"
61712	//   },
61713	//   "response": {
61714	//     "$ref": "Operation"
61715	//   },
61716	//   "scopes": [
61717	//     "https://www.googleapis.com/auth/cloud-platform",
61718	//     "https://www.googleapis.com/auth/compute"
61719	//   ]
61720	// }
61721
61722}
61723
61724// method id "compute.httpsHealthChecks.delete":
61725
61726type HttpsHealthChecksDeleteCall struct {
61727	s                *Service
61728	project          string
61729	httpsHealthCheck string
61730	urlParams_       gensupport.URLParams
61731	ctx_             context.Context
61732	header_          http.Header
61733}
61734
61735// Delete: Deletes the specified HttpsHealthCheck resource.
61736func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
61737	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61738	c.project = project
61739	c.httpsHealthCheck = httpsHealthCheck
61740	return c
61741}
61742
61743// RequestId sets the optional parameter "requestId": An optional
61744// request ID to identify requests. Specify a unique request ID so that
61745// if you must retry your request, the server will know to ignore the
61746// request if it has already been completed.
61747//
61748// For example, consider a situation where you make an initial request
61749// and the request times out. If you make the request again with the
61750// same request ID, the server can check if original operation with the
61751// same request ID was received, and if so, will ignore the second
61752// request. This prevents clients from accidentally creating duplicate
61753// commitments.
61754//
61755// The request ID must be a valid UUID with the exception that zero UUID
61756// is not supported (00000000-0000-0000-0000-000000000000).
61757func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
61758	c.urlParams_.Set("requestId", requestId)
61759	return c
61760}
61761
61762// Fields allows partial responses to be retrieved. See
61763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61764// for more information.
61765func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
61766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61767	return c
61768}
61769
61770// Context sets the context to be used in this call's Do method. Any
61771// pending HTTP request will be aborted if the provided context is
61772// canceled.
61773func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
61774	c.ctx_ = ctx
61775	return c
61776}
61777
61778// Header returns an http.Header that can be modified by the caller to
61779// add HTTP headers to the request.
61780func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
61781	if c.header_ == nil {
61782		c.header_ = make(http.Header)
61783	}
61784	return c.header_
61785}
61786
61787func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
61788	reqHeaders := make(http.Header)
61789	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61790	for k, v := range c.header_ {
61791		reqHeaders[k] = v
61792	}
61793	reqHeaders.Set("User-Agent", c.s.userAgent())
61794	var body io.Reader = nil
61795	c.urlParams_.Set("alt", alt)
61796	c.urlParams_.Set("prettyPrint", "false")
61797	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
61798	urls += "?" + c.urlParams_.Encode()
61799	req, err := http.NewRequest("DELETE", urls, body)
61800	if err != nil {
61801		return nil, err
61802	}
61803	req.Header = reqHeaders
61804	googleapi.Expand(req.URL, map[string]string{
61805		"project":          c.project,
61806		"httpsHealthCheck": c.httpsHealthCheck,
61807	})
61808	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61809}
61810
61811// Do executes the "compute.httpsHealthChecks.delete" call.
61812// Exactly one of *Operation or error will be non-nil. Any non-2xx
61813// status code is an error. Response headers are in either
61814// *Operation.ServerResponse.Header or (if a response was returned at
61815// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61816// to check whether the returned error was because
61817// http.StatusNotModified was returned.
61818func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61819	gensupport.SetOptions(c.urlParams_, opts...)
61820	res, err := c.doRequest("json")
61821	if res != nil && res.StatusCode == http.StatusNotModified {
61822		if res.Body != nil {
61823			res.Body.Close()
61824		}
61825		return nil, &googleapi.Error{
61826			Code:   res.StatusCode,
61827			Header: res.Header,
61828		}
61829	}
61830	if err != nil {
61831		return nil, err
61832	}
61833	defer googleapi.CloseBody(res)
61834	if err := googleapi.CheckResponse(res); err != nil {
61835		return nil, err
61836	}
61837	ret := &Operation{
61838		ServerResponse: googleapi.ServerResponse{
61839			Header:         res.Header,
61840			HTTPStatusCode: res.StatusCode,
61841		},
61842	}
61843	target := &ret
61844	if err := gensupport.DecodeResponse(target, res); err != nil {
61845		return nil, err
61846	}
61847	return ret, nil
61848	// {
61849	//   "description": "Deletes the specified HttpsHealthCheck resource.",
61850	//   "httpMethod": "DELETE",
61851	//   "id": "compute.httpsHealthChecks.delete",
61852	//   "parameterOrder": [
61853	//     "project",
61854	//     "httpsHealthCheck"
61855	//   ],
61856	//   "parameters": {
61857	//     "httpsHealthCheck": {
61858	//       "description": "Name of the HttpsHealthCheck resource to delete.",
61859	//       "location": "path",
61860	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61861	//       "required": true,
61862	//       "type": "string"
61863	//     },
61864	//     "project": {
61865	//       "description": "Project ID for this request.",
61866	//       "location": "path",
61867	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61868	//       "required": true,
61869	//       "type": "string"
61870	//     },
61871	//     "requestId": {
61872	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61873	//       "location": "query",
61874	//       "type": "string"
61875	//     }
61876	//   },
61877	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
61878	//   "response": {
61879	//     "$ref": "Operation"
61880	//   },
61881	//   "scopes": [
61882	//     "https://www.googleapis.com/auth/cloud-platform",
61883	//     "https://www.googleapis.com/auth/compute"
61884	//   ]
61885	// }
61886
61887}
61888
61889// method id "compute.httpsHealthChecks.get":
61890
61891type HttpsHealthChecksGetCall struct {
61892	s                *Service
61893	project          string
61894	httpsHealthCheck string
61895	urlParams_       gensupport.URLParams
61896	ifNoneMatch_     string
61897	ctx_             context.Context
61898	header_          http.Header
61899}
61900
61901// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
61902// available HTTPS health checks by making a list() request.
61903func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
61904	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61905	c.project = project
61906	c.httpsHealthCheck = httpsHealthCheck
61907	return c
61908}
61909
61910// Fields allows partial responses to be retrieved. See
61911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61912// for more information.
61913func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
61914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61915	return c
61916}
61917
61918// IfNoneMatch sets the optional parameter which makes the operation
61919// fail if the object's ETag matches the given value. This is useful for
61920// getting updates only after the object has changed since the last
61921// request. Use googleapi.IsNotModified to check whether the response
61922// error from Do is the result of In-None-Match.
61923func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
61924	c.ifNoneMatch_ = entityTag
61925	return c
61926}
61927
61928// Context sets the context to be used in this call's Do method. Any
61929// pending HTTP request will be aborted if the provided context is
61930// canceled.
61931func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
61932	c.ctx_ = ctx
61933	return c
61934}
61935
61936// Header returns an http.Header that can be modified by the caller to
61937// add HTTP headers to the request.
61938func (c *HttpsHealthChecksGetCall) Header() http.Header {
61939	if c.header_ == nil {
61940		c.header_ = make(http.Header)
61941	}
61942	return c.header_
61943}
61944
61945func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
61946	reqHeaders := make(http.Header)
61947	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61948	for k, v := range c.header_ {
61949		reqHeaders[k] = v
61950	}
61951	reqHeaders.Set("User-Agent", c.s.userAgent())
61952	if c.ifNoneMatch_ != "" {
61953		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61954	}
61955	var body io.Reader = nil
61956	c.urlParams_.Set("alt", alt)
61957	c.urlParams_.Set("prettyPrint", "false")
61958	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
61959	urls += "?" + c.urlParams_.Encode()
61960	req, err := http.NewRequest("GET", urls, body)
61961	if err != nil {
61962		return nil, err
61963	}
61964	req.Header = reqHeaders
61965	googleapi.Expand(req.URL, map[string]string{
61966		"project":          c.project,
61967		"httpsHealthCheck": c.httpsHealthCheck,
61968	})
61969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61970}
61971
61972// Do executes the "compute.httpsHealthChecks.get" call.
61973// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
61974// non-2xx status code is an error. Response headers are in either
61975// *HttpsHealthCheck.ServerResponse.Header or (if a response was
61976// returned at all) in error.(*googleapi.Error).Header. Use
61977// googleapi.IsNotModified to check whether the returned error was
61978// because http.StatusNotModified was returned.
61979func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
61980	gensupport.SetOptions(c.urlParams_, opts...)
61981	res, err := c.doRequest("json")
61982	if res != nil && res.StatusCode == http.StatusNotModified {
61983		if res.Body != nil {
61984			res.Body.Close()
61985		}
61986		return nil, &googleapi.Error{
61987			Code:   res.StatusCode,
61988			Header: res.Header,
61989		}
61990	}
61991	if err != nil {
61992		return nil, err
61993	}
61994	defer googleapi.CloseBody(res)
61995	if err := googleapi.CheckResponse(res); err != nil {
61996		return nil, err
61997	}
61998	ret := &HttpsHealthCheck{
61999		ServerResponse: googleapi.ServerResponse{
62000			Header:         res.Header,
62001			HTTPStatusCode: res.StatusCode,
62002		},
62003	}
62004	target := &ret
62005	if err := gensupport.DecodeResponse(target, res); err != nil {
62006		return nil, err
62007	}
62008	return ret, nil
62009	// {
62010	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
62011	//   "httpMethod": "GET",
62012	//   "id": "compute.httpsHealthChecks.get",
62013	//   "parameterOrder": [
62014	//     "project",
62015	//     "httpsHealthCheck"
62016	//   ],
62017	//   "parameters": {
62018	//     "httpsHealthCheck": {
62019	//       "description": "Name of the HttpsHealthCheck resource to return.",
62020	//       "location": "path",
62021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62022	//       "required": true,
62023	//       "type": "string"
62024	//     },
62025	//     "project": {
62026	//       "description": "Project ID for this request.",
62027	//       "location": "path",
62028	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62029	//       "required": true,
62030	//       "type": "string"
62031	//     }
62032	//   },
62033	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
62034	//   "response": {
62035	//     "$ref": "HttpsHealthCheck"
62036	//   },
62037	//   "scopes": [
62038	//     "https://www.googleapis.com/auth/cloud-platform",
62039	//     "https://www.googleapis.com/auth/compute",
62040	//     "https://www.googleapis.com/auth/compute.readonly"
62041	//   ]
62042	// }
62043
62044}
62045
62046// method id "compute.httpsHealthChecks.insert":
62047
62048type HttpsHealthChecksInsertCall struct {
62049	s                *Service
62050	project          string
62051	httpshealthcheck *HttpsHealthCheck
62052	urlParams_       gensupport.URLParams
62053	ctx_             context.Context
62054	header_          http.Header
62055}
62056
62057// Insert: Creates a HttpsHealthCheck resource in the specified project
62058// using the data included in the request.
62059func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
62060	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62061	c.project = project
62062	c.httpshealthcheck = httpshealthcheck
62063	return c
62064}
62065
62066// RequestId sets the optional parameter "requestId": An optional
62067// request ID to identify requests. Specify a unique request ID so that
62068// if you must retry your request, the server will know to ignore the
62069// request if it has already been completed.
62070//
62071// For example, consider a situation where you make an initial request
62072// and the request times out. If you make the request again with the
62073// same request ID, the server can check if original operation with the
62074// same request ID was received, and if so, will ignore the second
62075// request. This prevents clients from accidentally creating duplicate
62076// commitments.
62077//
62078// The request ID must be a valid UUID with the exception that zero UUID
62079// is not supported (00000000-0000-0000-0000-000000000000).
62080func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
62081	c.urlParams_.Set("requestId", requestId)
62082	return c
62083}
62084
62085// Fields allows partial responses to be retrieved. See
62086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62087// for more information.
62088func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
62089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62090	return c
62091}
62092
62093// Context sets the context to be used in this call's Do method. Any
62094// pending HTTP request will be aborted if the provided context is
62095// canceled.
62096func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
62097	c.ctx_ = ctx
62098	return c
62099}
62100
62101// Header returns an http.Header that can be modified by the caller to
62102// add HTTP headers to the request.
62103func (c *HttpsHealthChecksInsertCall) Header() http.Header {
62104	if c.header_ == nil {
62105		c.header_ = make(http.Header)
62106	}
62107	return c.header_
62108}
62109
62110func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
62111	reqHeaders := make(http.Header)
62112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62113	for k, v := range c.header_ {
62114		reqHeaders[k] = v
62115	}
62116	reqHeaders.Set("User-Agent", c.s.userAgent())
62117	var body io.Reader = nil
62118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
62119	if err != nil {
62120		return nil, err
62121	}
62122	reqHeaders.Set("Content-Type", "application/json")
62123	c.urlParams_.Set("alt", alt)
62124	c.urlParams_.Set("prettyPrint", "false")
62125	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
62126	urls += "?" + c.urlParams_.Encode()
62127	req, err := http.NewRequest("POST", urls, body)
62128	if err != nil {
62129		return nil, err
62130	}
62131	req.Header = reqHeaders
62132	googleapi.Expand(req.URL, map[string]string{
62133		"project": c.project,
62134	})
62135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62136}
62137
62138// Do executes the "compute.httpsHealthChecks.insert" call.
62139// Exactly one of *Operation or error will be non-nil. Any non-2xx
62140// status code is an error. Response headers are in either
62141// *Operation.ServerResponse.Header or (if a response was returned at
62142// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62143// to check whether the returned error was because
62144// http.StatusNotModified was returned.
62145func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62146	gensupport.SetOptions(c.urlParams_, opts...)
62147	res, err := c.doRequest("json")
62148	if res != nil && res.StatusCode == http.StatusNotModified {
62149		if res.Body != nil {
62150			res.Body.Close()
62151		}
62152		return nil, &googleapi.Error{
62153			Code:   res.StatusCode,
62154			Header: res.Header,
62155		}
62156	}
62157	if err != nil {
62158		return nil, err
62159	}
62160	defer googleapi.CloseBody(res)
62161	if err := googleapi.CheckResponse(res); err != nil {
62162		return nil, err
62163	}
62164	ret := &Operation{
62165		ServerResponse: googleapi.ServerResponse{
62166			Header:         res.Header,
62167			HTTPStatusCode: res.StatusCode,
62168		},
62169	}
62170	target := &ret
62171	if err := gensupport.DecodeResponse(target, res); err != nil {
62172		return nil, err
62173	}
62174	return ret, nil
62175	// {
62176	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
62177	//   "httpMethod": "POST",
62178	//   "id": "compute.httpsHealthChecks.insert",
62179	//   "parameterOrder": [
62180	//     "project"
62181	//   ],
62182	//   "parameters": {
62183	//     "project": {
62184	//       "description": "Project ID for this request.",
62185	//       "location": "path",
62186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62187	//       "required": true,
62188	//       "type": "string"
62189	//     },
62190	//     "requestId": {
62191	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62192	//       "location": "query",
62193	//       "type": "string"
62194	//     }
62195	//   },
62196	//   "path": "{project}/global/httpsHealthChecks",
62197	//   "request": {
62198	//     "$ref": "HttpsHealthCheck"
62199	//   },
62200	//   "response": {
62201	//     "$ref": "Operation"
62202	//   },
62203	//   "scopes": [
62204	//     "https://www.googleapis.com/auth/cloud-platform",
62205	//     "https://www.googleapis.com/auth/compute"
62206	//   ]
62207	// }
62208
62209}
62210
62211// method id "compute.httpsHealthChecks.list":
62212
62213type HttpsHealthChecksListCall struct {
62214	s            *Service
62215	project      string
62216	urlParams_   gensupport.URLParams
62217	ifNoneMatch_ string
62218	ctx_         context.Context
62219	header_      http.Header
62220}
62221
62222// List: Retrieves the list of HttpsHealthCheck resources available to
62223// the specified project.
62224func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
62225	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62226	c.project = project
62227	return c
62228}
62229
62230// Filter sets the optional parameter "filter": A filter expression that
62231// filters resources listed in the response. The expression must specify
62232// the field name, a comparison operator, and the value that you want to
62233// use for filtering. The value must be a string, a number, or a
62234// boolean. The comparison operator must be either `=`, `!=`, `>`, or
62235// `<`.
62236//
62237// For example, if you are filtering Compute Engine instances, you can
62238// exclude instances named `example-instance` by specifying `name !=
62239// example-instance`.
62240//
62241// You can also filter nested fields. For example, you could specify
62242// `scheduling.automaticRestart = false` to include instances only if
62243// they are not scheduled for automatic restarts. You can use filtering
62244// on nested fields to filter based on resource labels.
62245//
62246// To filter on multiple expressions, provide each separate expression
62247// within parentheses. For example: ``` (scheduling.automaticRestart =
62248// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
62249// is an `AND` expression. However, you can include `AND` and `OR`
62250// expressions explicitly. For example: ``` (cpuPlatform = "Intel
62251// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
62252// (scheduling.automaticRestart = true) ```
62253func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
62254	c.urlParams_.Set("filter", filter)
62255	return c
62256}
62257
62258// MaxResults sets the optional parameter "maxResults": The maximum
62259// number of results per page that should be returned. If the number of
62260// available results is larger than `maxResults`, Compute Engine returns
62261// a `nextPageToken` that can be used to get the next page of results in
62262// subsequent list requests. Acceptable values are `0` to `500`,
62263// inclusive. (Default: `500`)
62264func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
62265	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62266	return c
62267}
62268
62269// OrderBy sets the optional parameter "orderBy": Sorts list results by
62270// a certain order. By default, results are returned in alphanumerical
62271// order based on the resource name.
62272//
62273// You can also sort results in descending order based on the creation
62274// timestamp using `orderBy="creationTimestamp desc". This sorts
62275// results based on the `creationTimestamp` field in reverse
62276// chronological order (newest result first). Use this to sort resources
62277// like operations so that the newest operation is returned
62278// first.
62279//
62280// Currently, only sorting by `name` or `creationTimestamp desc` is
62281// supported.
62282func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
62283	c.urlParams_.Set("orderBy", orderBy)
62284	return c
62285}
62286
62287// PageToken sets the optional parameter "pageToken": Specifies a page
62288// token to use. Set `pageToken` to the `nextPageToken` returned by a
62289// previous list request to get the next page of results.
62290func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
62291	c.urlParams_.Set("pageToken", pageToken)
62292	return c
62293}
62294
62295// Fields allows partial responses to be retrieved. See
62296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62297// for more information.
62298func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
62299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62300	return c
62301}
62302
62303// IfNoneMatch sets the optional parameter which makes the operation
62304// fail if the object's ETag matches the given value. This is useful for
62305// getting updates only after the object has changed since the last
62306// request. Use googleapi.IsNotModified to check whether the response
62307// error from Do is the result of In-None-Match.
62308func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
62309	c.ifNoneMatch_ = entityTag
62310	return c
62311}
62312
62313// Context sets the context to be used in this call's Do method. Any
62314// pending HTTP request will be aborted if the provided context is
62315// canceled.
62316func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
62317	c.ctx_ = ctx
62318	return c
62319}
62320
62321// Header returns an http.Header that can be modified by the caller to
62322// add HTTP headers to the request.
62323func (c *HttpsHealthChecksListCall) Header() http.Header {
62324	if c.header_ == nil {
62325		c.header_ = make(http.Header)
62326	}
62327	return c.header_
62328}
62329
62330func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
62331	reqHeaders := make(http.Header)
62332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62333	for k, v := range c.header_ {
62334		reqHeaders[k] = v
62335	}
62336	reqHeaders.Set("User-Agent", c.s.userAgent())
62337	if c.ifNoneMatch_ != "" {
62338		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62339	}
62340	var body io.Reader = nil
62341	c.urlParams_.Set("alt", alt)
62342	c.urlParams_.Set("prettyPrint", "false")
62343	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
62344	urls += "?" + c.urlParams_.Encode()
62345	req, err := http.NewRequest("GET", urls, body)
62346	if err != nil {
62347		return nil, err
62348	}
62349	req.Header = reqHeaders
62350	googleapi.Expand(req.URL, map[string]string{
62351		"project": c.project,
62352	})
62353	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62354}
62355
62356// Do executes the "compute.httpsHealthChecks.list" call.
62357// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
62358// non-2xx status code is an error. Response headers are in either
62359// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
62360// returned at all) in error.(*googleapi.Error).Header. Use
62361// googleapi.IsNotModified to check whether the returned error was
62362// because http.StatusNotModified was returned.
62363func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
62364	gensupport.SetOptions(c.urlParams_, opts...)
62365	res, err := c.doRequest("json")
62366	if res != nil && res.StatusCode == http.StatusNotModified {
62367		if res.Body != nil {
62368			res.Body.Close()
62369		}
62370		return nil, &googleapi.Error{
62371			Code:   res.StatusCode,
62372			Header: res.Header,
62373		}
62374	}
62375	if err != nil {
62376		return nil, err
62377	}
62378	defer googleapi.CloseBody(res)
62379	if err := googleapi.CheckResponse(res); err != nil {
62380		return nil, err
62381	}
62382	ret := &HttpsHealthCheckList{
62383		ServerResponse: googleapi.ServerResponse{
62384			Header:         res.Header,
62385			HTTPStatusCode: res.StatusCode,
62386		},
62387	}
62388	target := &ret
62389	if err := gensupport.DecodeResponse(target, res); err != nil {
62390		return nil, err
62391	}
62392	return ret, nil
62393	// {
62394	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
62395	//   "httpMethod": "GET",
62396	//   "id": "compute.httpsHealthChecks.list",
62397	//   "parameterOrder": [
62398	//     "project"
62399	//   ],
62400	//   "parameters": {
62401	//     "filter": {
62402	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
62403	//       "location": "query",
62404	//       "type": "string"
62405	//     },
62406	//     "maxResults": {
62407	//       "default": "500",
62408	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
62409	//       "format": "uint32",
62410	//       "location": "query",
62411	//       "minimum": "0",
62412	//       "type": "integer"
62413	//     },
62414	//     "orderBy": {
62415	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
62416	//       "location": "query",
62417	//       "type": "string"
62418	//     },
62419	//     "pageToken": {
62420	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
62421	//       "location": "query",
62422	//       "type": "string"
62423	//     },
62424	//     "project": {
62425	//       "description": "Project ID for this request.",
62426	//       "location": "path",
62427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62428	//       "required": true,
62429	//       "type": "string"
62430	//     }
62431	//   },
62432	//   "path": "{project}/global/httpsHealthChecks",
62433	//   "response": {
62434	//     "$ref": "HttpsHealthCheckList"
62435	//   },
62436	//   "scopes": [
62437	//     "https://www.googleapis.com/auth/cloud-platform",
62438	//     "https://www.googleapis.com/auth/compute",
62439	//     "https://www.googleapis.com/auth/compute.readonly"
62440	//   ]
62441	// }
62442
62443}
62444
62445// Pages invokes f for each page of results.
62446// A non-nil error returned from f will halt the iteration.
62447// The provided context supersedes any context provided to the Context method.
62448func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
62449	c.ctx_ = ctx
62450	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62451	for {
62452		x, err := c.Do()
62453		if err != nil {
62454			return err
62455		}
62456		if err := f(x); err != nil {
62457			return err
62458		}
62459		if x.NextPageToken == "" {
62460			return nil
62461		}
62462		c.PageToken(x.NextPageToken)
62463	}
62464}
62465
62466// method id "compute.httpsHealthChecks.patch":
62467
62468type HttpsHealthChecksPatchCall struct {
62469	s                *Service
62470	project          string
62471	httpsHealthCheck string
62472	httpshealthcheck *HttpsHealthCheck
62473	urlParams_       gensupport.URLParams
62474	ctx_             context.Context
62475	header_          http.Header
62476}
62477
62478// Patch: Updates a HttpsHealthCheck resource in the specified project
62479// using the data included in the request. This method supports PATCH
62480// semantics and uses the JSON merge patch format and processing rules.
62481func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
62482	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62483	c.project = project
62484	c.httpsHealthCheck = httpsHealthCheck
62485	c.httpshealthcheck = httpshealthcheck
62486	return c
62487}
62488
62489// RequestId sets the optional parameter "requestId": An optional
62490// request ID to identify requests. Specify a unique request ID so that
62491// if you must retry your request, the server will know to ignore the
62492// request if it has already been completed.
62493//
62494// For example, consider a situation where you make an initial request
62495// and the request times out. If you make the request again with the
62496// same request ID, the server can check if original operation with the
62497// same request ID was received, and if so, will ignore the second
62498// request. This prevents clients from accidentally creating duplicate
62499// commitments.
62500//
62501// The request ID must be a valid UUID with the exception that zero UUID
62502// is not supported (00000000-0000-0000-0000-000000000000).
62503func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
62504	c.urlParams_.Set("requestId", requestId)
62505	return c
62506}
62507
62508// Fields allows partial responses to be retrieved. See
62509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62510// for more information.
62511func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
62512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62513	return c
62514}
62515
62516// Context sets the context to be used in this call's Do method. Any
62517// pending HTTP request will be aborted if the provided context is
62518// canceled.
62519func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
62520	c.ctx_ = ctx
62521	return c
62522}
62523
62524// Header returns an http.Header that can be modified by the caller to
62525// add HTTP headers to the request.
62526func (c *HttpsHealthChecksPatchCall) Header() http.Header {
62527	if c.header_ == nil {
62528		c.header_ = make(http.Header)
62529	}
62530	return c.header_
62531}
62532
62533func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
62534	reqHeaders := make(http.Header)
62535	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62536	for k, v := range c.header_ {
62537		reqHeaders[k] = v
62538	}
62539	reqHeaders.Set("User-Agent", c.s.userAgent())
62540	var body io.Reader = nil
62541	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
62542	if err != nil {
62543		return nil, err
62544	}
62545	reqHeaders.Set("Content-Type", "application/json")
62546	c.urlParams_.Set("alt", alt)
62547	c.urlParams_.Set("prettyPrint", "false")
62548	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
62549	urls += "?" + c.urlParams_.Encode()
62550	req, err := http.NewRequest("PATCH", urls, body)
62551	if err != nil {
62552		return nil, err
62553	}
62554	req.Header = reqHeaders
62555	googleapi.Expand(req.URL, map[string]string{
62556		"project":          c.project,
62557		"httpsHealthCheck": c.httpsHealthCheck,
62558	})
62559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62560}
62561
62562// Do executes the "compute.httpsHealthChecks.patch" call.
62563// Exactly one of *Operation or error will be non-nil. Any non-2xx
62564// status code is an error. Response headers are in either
62565// *Operation.ServerResponse.Header or (if a response was returned at
62566// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62567// to check whether the returned error was because
62568// http.StatusNotModified was returned.
62569func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62570	gensupport.SetOptions(c.urlParams_, opts...)
62571	res, err := c.doRequest("json")
62572	if res != nil && res.StatusCode == http.StatusNotModified {
62573		if res.Body != nil {
62574			res.Body.Close()
62575		}
62576		return nil, &googleapi.Error{
62577			Code:   res.StatusCode,
62578			Header: res.Header,
62579		}
62580	}
62581	if err != nil {
62582		return nil, err
62583	}
62584	defer googleapi.CloseBody(res)
62585	if err := googleapi.CheckResponse(res); err != nil {
62586		return nil, err
62587	}
62588	ret := &Operation{
62589		ServerResponse: googleapi.ServerResponse{
62590			Header:         res.Header,
62591			HTTPStatusCode: res.StatusCode,
62592		},
62593	}
62594	target := &ret
62595	if err := gensupport.DecodeResponse(target, res); err != nil {
62596		return nil, err
62597	}
62598	return ret, nil
62599	// {
62600	//   "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.",
62601	//   "httpMethod": "PATCH",
62602	//   "id": "compute.httpsHealthChecks.patch",
62603	//   "parameterOrder": [
62604	//     "project",
62605	//     "httpsHealthCheck"
62606	//   ],
62607	//   "parameters": {
62608	//     "httpsHealthCheck": {
62609	//       "description": "Name of the HttpsHealthCheck resource to patch.",
62610	//       "location": "path",
62611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62612	//       "required": true,
62613	//       "type": "string"
62614	//     },
62615	//     "project": {
62616	//       "description": "Project ID for this request.",
62617	//       "location": "path",
62618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62619	//       "required": true,
62620	//       "type": "string"
62621	//     },
62622	//     "requestId": {
62623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62624	//       "location": "query",
62625	//       "type": "string"
62626	//     }
62627	//   },
62628	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
62629	//   "request": {
62630	//     "$ref": "HttpsHealthCheck"
62631	//   },
62632	//   "response": {
62633	//     "$ref": "Operation"
62634	//   },
62635	//   "scopes": [
62636	//     "https://www.googleapis.com/auth/cloud-platform",
62637	//     "https://www.googleapis.com/auth/compute"
62638	//   ]
62639	// }
62640
62641}
62642
62643// method id "compute.httpsHealthChecks.update":
62644
62645type HttpsHealthChecksUpdateCall struct {
62646	s                *Service
62647	project          string
62648	httpsHealthCheck string
62649	httpshealthcheck *HttpsHealthCheck
62650	urlParams_       gensupport.URLParams
62651	ctx_             context.Context
62652	header_          http.Header
62653}
62654
62655// Update: Updates a HttpsHealthCheck resource in the specified project
62656// using the data included in the request.
62657func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
62658	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62659	c.project = project
62660	c.httpsHealthCheck = httpsHealthCheck
62661	c.httpshealthcheck = httpshealthcheck
62662	return c
62663}
62664
62665// RequestId sets the optional parameter "requestId": An optional
62666// request ID to identify requests. Specify a unique request ID so that
62667// if you must retry your request, the server will know to ignore the
62668// request if it has already been completed.
62669//
62670// For example, consider a situation where you make an initial request
62671// and the request times out. If you make the request again with the
62672// same request ID, the server can check if original operation with the
62673// same request ID was received, and if so, will ignore the second
62674// request. This prevents clients from accidentally creating duplicate
62675// commitments.
62676//
62677// The request ID must be a valid UUID with the exception that zero UUID
62678// is not supported (00000000-0000-0000-0000-000000000000).
62679func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
62680	c.urlParams_.Set("requestId", requestId)
62681	return c
62682}
62683
62684// Fields allows partial responses to be retrieved. See
62685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62686// for more information.
62687func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
62688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62689	return c
62690}
62691
62692// Context sets the context to be used in this call's Do method. Any
62693// pending HTTP request will be aborted if the provided context is
62694// canceled.
62695func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
62696	c.ctx_ = ctx
62697	return c
62698}
62699
62700// Header returns an http.Header that can be modified by the caller to
62701// add HTTP headers to the request.
62702func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
62703	if c.header_ == nil {
62704		c.header_ = make(http.Header)
62705	}
62706	return c.header_
62707}
62708
62709func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
62710	reqHeaders := make(http.Header)
62711	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62712	for k, v := range c.header_ {
62713		reqHeaders[k] = v
62714	}
62715	reqHeaders.Set("User-Agent", c.s.userAgent())
62716	var body io.Reader = nil
62717	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
62718	if err != nil {
62719		return nil, err
62720	}
62721	reqHeaders.Set("Content-Type", "application/json")
62722	c.urlParams_.Set("alt", alt)
62723	c.urlParams_.Set("prettyPrint", "false")
62724	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
62725	urls += "?" + c.urlParams_.Encode()
62726	req, err := http.NewRequest("PUT", urls, body)
62727	if err != nil {
62728		return nil, err
62729	}
62730	req.Header = reqHeaders
62731	googleapi.Expand(req.URL, map[string]string{
62732		"project":          c.project,
62733		"httpsHealthCheck": c.httpsHealthCheck,
62734	})
62735	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62736}
62737
62738// Do executes the "compute.httpsHealthChecks.update" call.
62739// Exactly one of *Operation or error will be non-nil. Any non-2xx
62740// status code is an error. Response headers are in either
62741// *Operation.ServerResponse.Header or (if a response was returned at
62742// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62743// to check whether the returned error was because
62744// http.StatusNotModified was returned.
62745func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62746	gensupport.SetOptions(c.urlParams_, opts...)
62747	res, err := c.doRequest("json")
62748	if res != nil && res.StatusCode == http.StatusNotModified {
62749		if res.Body != nil {
62750			res.Body.Close()
62751		}
62752		return nil, &googleapi.Error{
62753			Code:   res.StatusCode,
62754			Header: res.Header,
62755		}
62756	}
62757	if err != nil {
62758		return nil, err
62759	}
62760	defer googleapi.CloseBody(res)
62761	if err := googleapi.CheckResponse(res); err != nil {
62762		return nil, err
62763	}
62764	ret := &Operation{
62765		ServerResponse: googleapi.ServerResponse{
62766			Header:         res.Header,
62767			HTTPStatusCode: res.StatusCode,
62768		},
62769	}
62770	target := &ret
62771	if err := gensupport.DecodeResponse(target, res); err != nil {
62772		return nil, err
62773	}
62774	return ret, nil
62775	// {
62776	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
62777	//   "httpMethod": "PUT",
62778	//   "id": "compute.httpsHealthChecks.update",
62779	//   "parameterOrder": [
62780	//     "project",
62781	//     "httpsHealthCheck"
62782	//   ],
62783	//   "parameters": {
62784	//     "httpsHealthCheck": {
62785	//       "description": "Name of the HttpsHealthCheck resource to update.",
62786	//       "location": "path",
62787	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62788	//       "required": true,
62789	//       "type": "string"
62790	//     },
62791	//     "project": {
62792	//       "description": "Project ID for this request.",
62793	//       "location": "path",
62794	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62795	//       "required": true,
62796	//       "type": "string"
62797	//     },
62798	//     "requestId": {
62799	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62800	//       "location": "query",
62801	//       "type": "string"
62802	//     }
62803	//   },
62804	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
62805	//   "request": {
62806	//     "$ref": "HttpsHealthCheck"
62807	//   },
62808	//   "response": {
62809	//     "$ref": "Operation"
62810	//   },
62811	//   "scopes": [
62812	//     "https://www.googleapis.com/auth/cloud-platform",
62813	//     "https://www.googleapis.com/auth/compute"
62814	//   ]
62815	// }
62816
62817}
62818
62819// method id "compute.images.delete":
62820
62821type ImagesDeleteCall struct {
62822	s          *Service
62823	project    string
62824	image      string
62825	urlParams_ gensupport.URLParams
62826	ctx_       context.Context
62827	header_    http.Header
62828}
62829
62830// Delete: Deletes the specified image.
62831// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
62832func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
62833	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62834	c.project = project
62835	c.image = image
62836	return c
62837}
62838
62839// RequestId sets the optional parameter "requestId": An optional
62840// request ID to identify requests. Specify a unique request ID so that
62841// if you must retry your request, the server will know to ignore the
62842// request if it has already been completed.
62843//
62844// For example, consider a situation where you make an initial request
62845// and the request times out. If you make the request again with the
62846// same request ID, the server can check if original operation with the
62847// same request ID was received, and if so, will ignore the second
62848// request. This prevents clients from accidentally creating duplicate
62849// commitments.
62850//
62851// The request ID must be a valid UUID with the exception that zero UUID
62852// is not supported (00000000-0000-0000-0000-000000000000).
62853func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
62854	c.urlParams_.Set("requestId", requestId)
62855	return c
62856}
62857
62858// Fields allows partial responses to be retrieved. See
62859// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62860// for more information.
62861func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
62862	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62863	return c
62864}
62865
62866// Context sets the context to be used in this call's Do method. Any
62867// pending HTTP request will be aborted if the provided context is
62868// canceled.
62869func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
62870	c.ctx_ = ctx
62871	return c
62872}
62873
62874// Header returns an http.Header that can be modified by the caller to
62875// add HTTP headers to the request.
62876func (c *ImagesDeleteCall) Header() http.Header {
62877	if c.header_ == nil {
62878		c.header_ = make(http.Header)
62879	}
62880	return c.header_
62881}
62882
62883func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
62884	reqHeaders := make(http.Header)
62885	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62886	for k, v := range c.header_ {
62887		reqHeaders[k] = v
62888	}
62889	reqHeaders.Set("User-Agent", c.s.userAgent())
62890	var body io.Reader = nil
62891	c.urlParams_.Set("alt", alt)
62892	c.urlParams_.Set("prettyPrint", "false")
62893	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
62894	urls += "?" + c.urlParams_.Encode()
62895	req, err := http.NewRequest("DELETE", urls, body)
62896	if err != nil {
62897		return nil, err
62898	}
62899	req.Header = reqHeaders
62900	googleapi.Expand(req.URL, map[string]string{
62901		"project": c.project,
62902		"image":   c.image,
62903	})
62904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62905}
62906
62907// Do executes the "compute.images.delete" call.
62908// Exactly one of *Operation or error will be non-nil. Any non-2xx
62909// status code is an error. Response headers are in either
62910// *Operation.ServerResponse.Header or (if a response was returned at
62911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62912// to check whether the returned error was because
62913// http.StatusNotModified was returned.
62914func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62915	gensupport.SetOptions(c.urlParams_, opts...)
62916	res, err := c.doRequest("json")
62917	if res != nil && res.StatusCode == http.StatusNotModified {
62918		if res.Body != nil {
62919			res.Body.Close()
62920		}
62921		return nil, &googleapi.Error{
62922			Code:   res.StatusCode,
62923			Header: res.Header,
62924		}
62925	}
62926	if err != nil {
62927		return nil, err
62928	}
62929	defer googleapi.CloseBody(res)
62930	if err := googleapi.CheckResponse(res); err != nil {
62931		return nil, err
62932	}
62933	ret := &Operation{
62934		ServerResponse: googleapi.ServerResponse{
62935			Header:         res.Header,
62936			HTTPStatusCode: res.StatusCode,
62937		},
62938	}
62939	target := &ret
62940	if err := gensupport.DecodeResponse(target, res); err != nil {
62941		return nil, err
62942	}
62943	return ret, nil
62944	// {
62945	//   "description": "Deletes the specified image.",
62946	//   "httpMethod": "DELETE",
62947	//   "id": "compute.images.delete",
62948	//   "parameterOrder": [
62949	//     "project",
62950	//     "image"
62951	//   ],
62952	//   "parameters": {
62953	//     "image": {
62954	//       "description": "Name of the image resource to delete.",
62955	//       "location": "path",
62956	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62957	//       "required": true,
62958	//       "type": "string"
62959	//     },
62960	//     "project": {
62961	//       "description": "Project ID for this request.",
62962	//       "location": "path",
62963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62964	//       "required": true,
62965	//       "type": "string"
62966	//     },
62967	//     "requestId": {
62968	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62969	//       "location": "query",
62970	//       "type": "string"
62971	//     }
62972	//   },
62973	//   "path": "{project}/global/images/{image}",
62974	//   "response": {
62975	//     "$ref": "Operation"
62976	//   },
62977	//   "scopes": [
62978	//     "https://www.googleapis.com/auth/cloud-platform",
62979	//     "https://www.googleapis.com/auth/compute"
62980	//   ]
62981	// }
62982
62983}
62984
62985// method id "compute.images.deprecate":
62986
62987type ImagesDeprecateCall struct {
62988	s                 *Service
62989	project           string
62990	image             string
62991	deprecationstatus *DeprecationStatus
62992	urlParams_        gensupport.URLParams
62993	ctx_              context.Context
62994	header_           http.Header
62995}
62996
62997// Deprecate: Sets the deprecation status of an image.
62998//
62999// If an empty request body is given, clears the deprecation status
63000// instead.
63001// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
63002func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
63003	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63004	c.project = project
63005	c.image = image
63006	c.deprecationstatus = deprecationstatus
63007	return c
63008}
63009
63010// RequestId sets the optional parameter "requestId": An optional
63011// request ID to identify requests. Specify a unique request ID so that
63012// if you must retry your request, the server will know to ignore the
63013// request if it has already been completed.
63014//
63015// For example, consider a situation where you make an initial request
63016// and the request times out. If you make the request again with the
63017// same request ID, the server can check if original operation with the
63018// same request ID was received, and if so, will ignore the second
63019// request. This prevents clients from accidentally creating duplicate
63020// commitments.
63021//
63022// The request ID must be a valid UUID with the exception that zero UUID
63023// is not supported (00000000-0000-0000-0000-000000000000).
63024func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
63025	c.urlParams_.Set("requestId", requestId)
63026	return c
63027}
63028
63029// Fields allows partial responses to be retrieved. See
63030// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63031// for more information.
63032func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
63033	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63034	return c
63035}
63036
63037// Context sets the context to be used in this call's Do method. Any
63038// pending HTTP request will be aborted if the provided context is
63039// canceled.
63040func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
63041	c.ctx_ = ctx
63042	return c
63043}
63044
63045// Header returns an http.Header that can be modified by the caller to
63046// add HTTP headers to the request.
63047func (c *ImagesDeprecateCall) Header() http.Header {
63048	if c.header_ == nil {
63049		c.header_ = make(http.Header)
63050	}
63051	return c.header_
63052}
63053
63054func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
63055	reqHeaders := make(http.Header)
63056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63057	for k, v := range c.header_ {
63058		reqHeaders[k] = v
63059	}
63060	reqHeaders.Set("User-Agent", c.s.userAgent())
63061	var body io.Reader = nil
63062	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
63063	if err != nil {
63064		return nil, err
63065	}
63066	reqHeaders.Set("Content-Type", "application/json")
63067	c.urlParams_.Set("alt", alt)
63068	c.urlParams_.Set("prettyPrint", "false")
63069	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
63070	urls += "?" + c.urlParams_.Encode()
63071	req, err := http.NewRequest("POST", urls, body)
63072	if err != nil {
63073		return nil, err
63074	}
63075	req.Header = reqHeaders
63076	googleapi.Expand(req.URL, map[string]string{
63077		"project": c.project,
63078		"image":   c.image,
63079	})
63080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63081}
63082
63083// Do executes the "compute.images.deprecate" call.
63084// Exactly one of *Operation or error will be non-nil. Any non-2xx
63085// status code is an error. Response headers are in either
63086// *Operation.ServerResponse.Header or (if a response was returned at
63087// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63088// to check whether the returned error was because
63089// http.StatusNotModified was returned.
63090func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63091	gensupport.SetOptions(c.urlParams_, opts...)
63092	res, err := c.doRequest("json")
63093	if res != nil && res.StatusCode == http.StatusNotModified {
63094		if res.Body != nil {
63095			res.Body.Close()
63096		}
63097		return nil, &googleapi.Error{
63098			Code:   res.StatusCode,
63099			Header: res.Header,
63100		}
63101	}
63102	if err != nil {
63103		return nil, err
63104	}
63105	defer googleapi.CloseBody(res)
63106	if err := googleapi.CheckResponse(res); err != nil {
63107		return nil, err
63108	}
63109	ret := &Operation{
63110		ServerResponse: googleapi.ServerResponse{
63111			Header:         res.Header,
63112			HTTPStatusCode: res.StatusCode,
63113		},
63114	}
63115	target := &ret
63116	if err := gensupport.DecodeResponse(target, res); err != nil {
63117		return nil, err
63118	}
63119	return ret, nil
63120	// {
63121	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
63122	//   "httpMethod": "POST",
63123	//   "id": "compute.images.deprecate",
63124	//   "parameterOrder": [
63125	//     "project",
63126	//     "image"
63127	//   ],
63128	//   "parameters": {
63129	//     "image": {
63130	//       "description": "Image name.",
63131	//       "location": "path",
63132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63133	//       "required": true,
63134	//       "type": "string"
63135	//     },
63136	//     "project": {
63137	//       "description": "Project ID for this request.",
63138	//       "location": "path",
63139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63140	//       "required": true,
63141	//       "type": "string"
63142	//     },
63143	//     "requestId": {
63144	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63145	//       "location": "query",
63146	//       "type": "string"
63147	//     }
63148	//   },
63149	//   "path": "{project}/global/images/{image}/deprecate",
63150	//   "request": {
63151	//     "$ref": "DeprecationStatus"
63152	//   },
63153	//   "response": {
63154	//     "$ref": "Operation"
63155	//   },
63156	//   "scopes": [
63157	//     "https://www.googleapis.com/auth/cloud-platform",
63158	//     "https://www.googleapis.com/auth/compute"
63159	//   ]
63160	// }
63161
63162}
63163
63164// method id "compute.images.get":
63165
63166type ImagesGetCall struct {
63167	s            *Service
63168	project      string
63169	image        string
63170	urlParams_   gensupport.URLParams
63171	ifNoneMatch_ string
63172	ctx_         context.Context
63173	header_      http.Header
63174}
63175
63176// Get: Returns the specified image. Gets a list of available images by
63177// making a list() request.
63178// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
63179func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
63180	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63181	c.project = project
63182	c.image = image
63183	return c
63184}
63185
63186// Fields allows partial responses to be retrieved. See
63187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63188// for more information.
63189func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
63190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63191	return c
63192}
63193
63194// IfNoneMatch sets the optional parameter which makes the operation
63195// fail if the object's ETag matches the given value. This is useful for
63196// getting updates only after the object has changed since the last
63197// request. Use googleapi.IsNotModified to check whether the response
63198// error from Do is the result of In-None-Match.
63199func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
63200	c.ifNoneMatch_ = entityTag
63201	return c
63202}
63203
63204// Context sets the context to be used in this call's Do method. Any
63205// pending HTTP request will be aborted if the provided context is
63206// canceled.
63207func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
63208	c.ctx_ = ctx
63209	return c
63210}
63211
63212// Header returns an http.Header that can be modified by the caller to
63213// add HTTP headers to the request.
63214func (c *ImagesGetCall) Header() http.Header {
63215	if c.header_ == nil {
63216		c.header_ = make(http.Header)
63217	}
63218	return c.header_
63219}
63220
63221func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
63222	reqHeaders := make(http.Header)
63223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63224	for k, v := range c.header_ {
63225		reqHeaders[k] = v
63226	}
63227	reqHeaders.Set("User-Agent", c.s.userAgent())
63228	if c.ifNoneMatch_ != "" {
63229		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63230	}
63231	var body io.Reader = nil
63232	c.urlParams_.Set("alt", alt)
63233	c.urlParams_.Set("prettyPrint", "false")
63234	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
63235	urls += "?" + c.urlParams_.Encode()
63236	req, err := http.NewRequest("GET", urls, body)
63237	if err != nil {
63238		return nil, err
63239	}
63240	req.Header = reqHeaders
63241	googleapi.Expand(req.URL, map[string]string{
63242		"project": c.project,
63243		"image":   c.image,
63244	})
63245	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63246}
63247
63248// Do executes the "compute.images.get" call.
63249// Exactly one of *Image or error will be non-nil. Any non-2xx status
63250// code is an error. Response headers are in either
63251// *Image.ServerResponse.Header or (if a response was returned at all)
63252// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63253// check whether the returned error was because http.StatusNotModified
63254// was returned.
63255func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
63256	gensupport.SetOptions(c.urlParams_, opts...)
63257	res, err := c.doRequest("json")
63258	if res != nil && res.StatusCode == http.StatusNotModified {
63259		if res.Body != nil {
63260			res.Body.Close()
63261		}
63262		return nil, &googleapi.Error{
63263			Code:   res.StatusCode,
63264			Header: res.Header,
63265		}
63266	}
63267	if err != nil {
63268		return nil, err
63269	}
63270	defer googleapi.CloseBody(res)
63271	if err := googleapi.CheckResponse(res); err != nil {
63272		return nil, err
63273	}
63274	ret := &Image{
63275		ServerResponse: googleapi.ServerResponse{
63276			Header:         res.Header,
63277			HTTPStatusCode: res.StatusCode,
63278		},
63279	}
63280	target := &ret
63281	if err := gensupport.DecodeResponse(target, res); err != nil {
63282		return nil, err
63283	}
63284	return ret, nil
63285	// {
63286	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
63287	//   "httpMethod": "GET",
63288	//   "id": "compute.images.get",
63289	//   "parameterOrder": [
63290	//     "project",
63291	//     "image"
63292	//   ],
63293	//   "parameters": {
63294	//     "image": {
63295	//       "description": "Name of the image resource to return.",
63296	//       "location": "path",
63297	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63298	//       "required": true,
63299	//       "type": "string"
63300	//     },
63301	//     "project": {
63302	//       "description": "Project ID for this request.",
63303	//       "location": "path",
63304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63305	//       "required": true,
63306	//       "type": "string"
63307	//     }
63308	//   },
63309	//   "path": "{project}/global/images/{image}",
63310	//   "response": {
63311	//     "$ref": "Image"
63312	//   },
63313	//   "scopes": [
63314	//     "https://www.googleapis.com/auth/cloud-platform",
63315	//     "https://www.googleapis.com/auth/compute",
63316	//     "https://www.googleapis.com/auth/compute.readonly"
63317	//   ]
63318	// }
63319
63320}
63321
63322// method id "compute.images.getFromFamily":
63323
63324type ImagesGetFromFamilyCall struct {
63325	s            *Service
63326	project      string
63327	family       string
63328	urlParams_   gensupport.URLParams
63329	ifNoneMatch_ string
63330	ctx_         context.Context
63331	header_      http.Header
63332}
63333
63334// GetFromFamily: Returns the latest image that is part of an image
63335// family and is not deprecated.
63336func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
63337	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63338	c.project = project
63339	c.family = family
63340	return c
63341}
63342
63343// Fields allows partial responses to be retrieved. See
63344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63345// for more information.
63346func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
63347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63348	return c
63349}
63350
63351// IfNoneMatch sets the optional parameter which makes the operation
63352// fail if the object's ETag matches the given value. This is useful for
63353// getting updates only after the object has changed since the last
63354// request. Use googleapi.IsNotModified to check whether the response
63355// error from Do is the result of In-None-Match.
63356func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
63357	c.ifNoneMatch_ = entityTag
63358	return c
63359}
63360
63361// Context sets the context to be used in this call's Do method. Any
63362// pending HTTP request will be aborted if the provided context is
63363// canceled.
63364func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
63365	c.ctx_ = ctx
63366	return c
63367}
63368
63369// Header returns an http.Header that can be modified by the caller to
63370// add HTTP headers to the request.
63371func (c *ImagesGetFromFamilyCall) Header() http.Header {
63372	if c.header_ == nil {
63373		c.header_ = make(http.Header)
63374	}
63375	return c.header_
63376}
63377
63378func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
63379	reqHeaders := make(http.Header)
63380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63381	for k, v := range c.header_ {
63382		reqHeaders[k] = v
63383	}
63384	reqHeaders.Set("User-Agent", c.s.userAgent())
63385	if c.ifNoneMatch_ != "" {
63386		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63387	}
63388	var body io.Reader = nil
63389	c.urlParams_.Set("alt", alt)
63390	c.urlParams_.Set("prettyPrint", "false")
63391	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
63392	urls += "?" + c.urlParams_.Encode()
63393	req, err := http.NewRequest("GET", urls, body)
63394	if err != nil {
63395		return nil, err
63396	}
63397	req.Header = reqHeaders
63398	googleapi.Expand(req.URL, map[string]string{
63399		"project": c.project,
63400		"family":  c.family,
63401	})
63402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63403}
63404
63405// Do executes the "compute.images.getFromFamily" call.
63406// Exactly one of *Image or error will be non-nil. Any non-2xx status
63407// code is an error. Response headers are in either
63408// *Image.ServerResponse.Header or (if a response was returned at all)
63409// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63410// check whether the returned error was because http.StatusNotModified
63411// was returned.
63412func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
63413	gensupport.SetOptions(c.urlParams_, opts...)
63414	res, err := c.doRequest("json")
63415	if res != nil && res.StatusCode == http.StatusNotModified {
63416		if res.Body != nil {
63417			res.Body.Close()
63418		}
63419		return nil, &googleapi.Error{
63420			Code:   res.StatusCode,
63421			Header: res.Header,
63422		}
63423	}
63424	if err != nil {
63425		return nil, err
63426	}
63427	defer googleapi.CloseBody(res)
63428	if err := googleapi.CheckResponse(res); err != nil {
63429		return nil, err
63430	}
63431	ret := &Image{
63432		ServerResponse: googleapi.ServerResponse{
63433			Header:         res.Header,
63434			HTTPStatusCode: res.StatusCode,
63435		},
63436	}
63437	target := &ret
63438	if err := gensupport.DecodeResponse(target, res); err != nil {
63439		return nil, err
63440	}
63441	return ret, nil
63442	// {
63443	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
63444	//   "httpMethod": "GET",
63445	//   "id": "compute.images.getFromFamily",
63446	//   "parameterOrder": [
63447	//     "project",
63448	//     "family"
63449	//   ],
63450	//   "parameters": {
63451	//     "family": {
63452	//       "description": "Name of the image family to search for.",
63453	//       "location": "path",
63454	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63455	//       "required": true,
63456	//       "type": "string"
63457	//     },
63458	//     "project": {
63459	//       "description": "Project ID for this request.",
63460	//       "location": "path",
63461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63462	//       "required": true,
63463	//       "type": "string"
63464	//     }
63465	//   },
63466	//   "path": "{project}/global/images/family/{family}",
63467	//   "response": {
63468	//     "$ref": "Image"
63469	//   },
63470	//   "scopes": [
63471	//     "https://www.googleapis.com/auth/cloud-platform",
63472	//     "https://www.googleapis.com/auth/compute",
63473	//     "https://www.googleapis.com/auth/compute.readonly"
63474	//   ]
63475	// }
63476
63477}
63478
63479// method id "compute.images.getIamPolicy":
63480
63481type ImagesGetIamPolicyCall struct {
63482	s            *Service
63483	project      string
63484	resource     string
63485	urlParams_   gensupport.URLParams
63486	ifNoneMatch_ string
63487	ctx_         context.Context
63488	header_      http.Header
63489}
63490
63491// GetIamPolicy: Gets the access control policy for a resource. May be
63492// empty if no such policy or resource exists.
63493func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
63494	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63495	c.project = project
63496	c.resource = resource
63497	return c
63498}
63499
63500// Fields allows partial responses to be retrieved. See
63501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63502// for more information.
63503func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
63504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63505	return c
63506}
63507
63508// IfNoneMatch sets the optional parameter which makes the operation
63509// fail if the object's ETag matches the given value. This is useful for
63510// getting updates only after the object has changed since the last
63511// request. Use googleapi.IsNotModified to check whether the response
63512// error from Do is the result of In-None-Match.
63513func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
63514	c.ifNoneMatch_ = entityTag
63515	return c
63516}
63517
63518// Context sets the context to be used in this call's Do method. Any
63519// pending HTTP request will be aborted if the provided context is
63520// canceled.
63521func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
63522	c.ctx_ = ctx
63523	return c
63524}
63525
63526// Header returns an http.Header that can be modified by the caller to
63527// add HTTP headers to the request.
63528func (c *ImagesGetIamPolicyCall) Header() http.Header {
63529	if c.header_ == nil {
63530		c.header_ = make(http.Header)
63531	}
63532	return c.header_
63533}
63534
63535func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
63536	reqHeaders := make(http.Header)
63537	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63538	for k, v := range c.header_ {
63539		reqHeaders[k] = v
63540	}
63541	reqHeaders.Set("User-Agent", c.s.userAgent())
63542	if c.ifNoneMatch_ != "" {
63543		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63544	}
63545	var body io.Reader = nil
63546	c.urlParams_.Set("alt", alt)
63547	c.urlParams_.Set("prettyPrint", "false")
63548	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/getIamPolicy")
63549	urls += "?" + c.urlParams_.Encode()
63550	req, err := http.NewRequest("GET", urls, body)
63551	if err != nil {
63552		return nil, err
63553	}
63554	req.Header = reqHeaders
63555	googleapi.Expand(req.URL, map[string]string{
63556		"project":  c.project,
63557		"resource": c.resource,
63558	})
63559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63560}
63561
63562// Do executes the "compute.images.getIamPolicy" call.
63563// Exactly one of *Policy or error will be non-nil. Any non-2xx status
63564// code is an error. Response headers are in either
63565// *Policy.ServerResponse.Header or (if a response was returned at all)
63566// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63567// check whether the returned error was because http.StatusNotModified
63568// was returned.
63569func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
63570	gensupport.SetOptions(c.urlParams_, opts...)
63571	res, err := c.doRequest("json")
63572	if res != nil && res.StatusCode == http.StatusNotModified {
63573		if res.Body != nil {
63574			res.Body.Close()
63575		}
63576		return nil, &googleapi.Error{
63577			Code:   res.StatusCode,
63578			Header: res.Header,
63579		}
63580	}
63581	if err != nil {
63582		return nil, err
63583	}
63584	defer googleapi.CloseBody(res)
63585	if err := googleapi.CheckResponse(res); err != nil {
63586		return nil, err
63587	}
63588	ret := &Policy{
63589		ServerResponse: googleapi.ServerResponse{
63590			Header:         res.Header,
63591			HTTPStatusCode: res.StatusCode,
63592		},
63593	}
63594	target := &ret
63595	if err := gensupport.DecodeResponse(target, res); err != nil {
63596		return nil, err
63597	}
63598	return ret, nil
63599	// {
63600	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
63601	//   "httpMethod": "GET",
63602	//   "id": "compute.images.getIamPolicy",
63603	//   "parameterOrder": [
63604	//     "project",
63605	//     "resource"
63606	//   ],
63607	//   "parameters": {
63608	//     "project": {
63609	//       "description": "Project ID for this request.",
63610	//       "location": "path",
63611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63612	//       "required": true,
63613	//       "type": "string"
63614	//     },
63615	//     "resource": {
63616	//       "description": "Name or id of the resource for this request.",
63617	//       "location": "path",
63618	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63619	//       "required": true,
63620	//       "type": "string"
63621	//     }
63622	//   },
63623	//   "path": "{project}/global/images/{resource}/getIamPolicy",
63624	//   "response": {
63625	//     "$ref": "Policy"
63626	//   },
63627	//   "scopes": [
63628	//     "https://www.googleapis.com/auth/cloud-platform",
63629	//     "https://www.googleapis.com/auth/compute",
63630	//     "https://www.googleapis.com/auth/compute.readonly"
63631	//   ]
63632	// }
63633
63634}
63635
63636// method id "compute.images.insert":
63637
63638type ImagesInsertCall struct {
63639	s          *Service
63640	project    string
63641	image      *Image
63642	urlParams_ gensupport.URLParams
63643	ctx_       context.Context
63644	header_    http.Header
63645}
63646
63647// Insert: Creates an image in the specified project using the data
63648// included in the request.
63649// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
63650func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
63651	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63652	c.project = project
63653	c.image = image
63654	return c
63655}
63656
63657// ForceCreate sets the optional parameter "forceCreate": Force image
63658// creation if true.
63659func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
63660	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
63661	return c
63662}
63663
63664// RequestId sets the optional parameter "requestId": An optional
63665// request ID to identify requests. Specify a unique request ID so that
63666// if you must retry your request, the server will know to ignore the
63667// request if it has already been completed.
63668//
63669// For example, consider a situation where you make an initial request
63670// and the request times out. If you make the request again with the
63671// same request ID, the server can check if original operation with the
63672// same request ID was received, and if so, will ignore the second
63673// request. This prevents clients from accidentally creating duplicate
63674// commitments.
63675//
63676// The request ID must be a valid UUID with the exception that zero UUID
63677// is not supported (00000000-0000-0000-0000-000000000000).
63678func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
63679	c.urlParams_.Set("requestId", requestId)
63680	return c
63681}
63682
63683// Fields allows partial responses to be retrieved. See
63684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63685// for more information.
63686func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
63687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63688	return c
63689}
63690
63691// Context sets the context to be used in this call's Do method. Any
63692// pending HTTP request will be aborted if the provided context is
63693// canceled.
63694func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
63695	c.ctx_ = ctx
63696	return c
63697}
63698
63699// Header returns an http.Header that can be modified by the caller to
63700// add HTTP headers to the request.
63701func (c *ImagesInsertCall) Header() http.Header {
63702	if c.header_ == nil {
63703		c.header_ = make(http.Header)
63704	}
63705	return c.header_
63706}
63707
63708func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
63709	reqHeaders := make(http.Header)
63710	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63711	for k, v := range c.header_ {
63712		reqHeaders[k] = v
63713	}
63714	reqHeaders.Set("User-Agent", c.s.userAgent())
63715	var body io.Reader = nil
63716	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
63717	if err != nil {
63718		return nil, err
63719	}
63720	reqHeaders.Set("Content-Type", "application/json")
63721	c.urlParams_.Set("alt", alt)
63722	c.urlParams_.Set("prettyPrint", "false")
63723	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
63724	urls += "?" + c.urlParams_.Encode()
63725	req, err := http.NewRequest("POST", urls, body)
63726	if err != nil {
63727		return nil, err
63728	}
63729	req.Header = reqHeaders
63730	googleapi.Expand(req.URL, map[string]string{
63731		"project": c.project,
63732	})
63733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63734}
63735
63736// Do executes the "compute.images.insert" call.
63737// Exactly one of *Operation or error will be non-nil. Any non-2xx
63738// status code is an error. Response headers are in either
63739// *Operation.ServerResponse.Header or (if a response was returned at
63740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63741// to check whether the returned error was because
63742// http.StatusNotModified was returned.
63743func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63744	gensupport.SetOptions(c.urlParams_, opts...)
63745	res, err := c.doRequest("json")
63746	if res != nil && res.StatusCode == http.StatusNotModified {
63747		if res.Body != nil {
63748			res.Body.Close()
63749		}
63750		return nil, &googleapi.Error{
63751			Code:   res.StatusCode,
63752			Header: res.Header,
63753		}
63754	}
63755	if err != nil {
63756		return nil, err
63757	}
63758	defer googleapi.CloseBody(res)
63759	if err := googleapi.CheckResponse(res); err != nil {
63760		return nil, err
63761	}
63762	ret := &Operation{
63763		ServerResponse: googleapi.ServerResponse{
63764			Header:         res.Header,
63765			HTTPStatusCode: res.StatusCode,
63766		},
63767	}
63768	target := &ret
63769	if err := gensupport.DecodeResponse(target, res); err != nil {
63770		return nil, err
63771	}
63772	return ret, nil
63773	// {
63774	//   "description": "Creates an image in the specified project using the data included in the request.",
63775	//   "httpMethod": "POST",
63776	//   "id": "compute.images.insert",
63777	//   "parameterOrder": [
63778	//     "project"
63779	//   ],
63780	//   "parameters": {
63781	//     "forceCreate": {
63782	//       "description": "Force image creation if true.",
63783	//       "location": "query",
63784	//       "type": "boolean"
63785	//     },
63786	//     "project": {
63787	//       "description": "Project ID for this request.",
63788	//       "location": "path",
63789	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63790	//       "required": true,
63791	//       "type": "string"
63792	//     },
63793	//     "requestId": {
63794	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63795	//       "location": "query",
63796	//       "type": "string"
63797	//     }
63798	//   },
63799	//   "path": "{project}/global/images",
63800	//   "request": {
63801	//     "$ref": "Image"
63802	//   },
63803	//   "response": {
63804	//     "$ref": "Operation"
63805	//   },
63806	//   "scopes": [
63807	//     "https://www.googleapis.com/auth/cloud-platform",
63808	//     "https://www.googleapis.com/auth/compute",
63809	//     "https://www.googleapis.com/auth/devstorage.full_control",
63810	//     "https://www.googleapis.com/auth/devstorage.read_only",
63811	//     "https://www.googleapis.com/auth/devstorage.read_write"
63812	//   ]
63813	// }
63814
63815}
63816
63817// method id "compute.images.list":
63818
63819type ImagesListCall struct {
63820	s            *Service
63821	project      string
63822	urlParams_   gensupport.URLParams
63823	ifNoneMatch_ string
63824	ctx_         context.Context
63825	header_      http.Header
63826}
63827
63828// List: Retrieves the list of custom images available to the specified
63829// project. Custom images are images you create that belong to your
63830// project. This method does not get any images that belong to other
63831// projects, including publicly-available images, like Debian 8. If you
63832// want to get a list of publicly-available images, use this method to
63833// make a request to the respective image project, such as debian-cloud
63834// or windows-cloud.
63835// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
63836func (r *ImagesService) List(project string) *ImagesListCall {
63837	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63838	c.project = project
63839	return c
63840}
63841
63842// Filter sets the optional parameter "filter": A filter expression that
63843// filters resources listed in the response. The expression must specify
63844// the field name, a comparison operator, and the value that you want to
63845// use for filtering. The value must be a string, a number, or a
63846// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63847// `<`.
63848//
63849// For example, if you are filtering Compute Engine instances, you can
63850// exclude instances named `example-instance` by specifying `name !=
63851// example-instance`.
63852//
63853// You can also filter nested fields. For example, you could specify
63854// `scheduling.automaticRestart = false` to include instances only if
63855// they are not scheduled for automatic restarts. You can use filtering
63856// on nested fields to filter based on resource labels.
63857//
63858// To filter on multiple expressions, provide each separate expression
63859// within parentheses. For example: ``` (scheduling.automaticRestart =
63860// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63861// is an `AND` expression. However, you can include `AND` and `OR`
63862// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63863// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63864// (scheduling.automaticRestart = true) ```
63865func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
63866	c.urlParams_.Set("filter", filter)
63867	return c
63868}
63869
63870// MaxResults sets the optional parameter "maxResults": The maximum
63871// number of results per page that should be returned. If the number of
63872// available results is larger than `maxResults`, Compute Engine returns
63873// a `nextPageToken` that can be used to get the next page of results in
63874// subsequent list requests. Acceptable values are `0` to `500`,
63875// inclusive. (Default: `500`)
63876func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
63877	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63878	return c
63879}
63880
63881// OrderBy sets the optional parameter "orderBy": Sorts list results by
63882// a certain order. By default, results are returned in alphanumerical
63883// order based on the resource name.
63884//
63885// You can also sort results in descending order based on the creation
63886// timestamp using `orderBy="creationTimestamp desc". This sorts
63887// results based on the `creationTimestamp` field in reverse
63888// chronological order (newest result first). Use this to sort resources
63889// like operations so that the newest operation is returned
63890// first.
63891//
63892// Currently, only sorting by `name` or `creationTimestamp desc` is
63893// supported.
63894func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
63895	c.urlParams_.Set("orderBy", orderBy)
63896	return c
63897}
63898
63899// PageToken sets the optional parameter "pageToken": Specifies a page
63900// token to use. Set `pageToken` to the `nextPageToken` returned by a
63901// previous list request to get the next page of results.
63902func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
63903	c.urlParams_.Set("pageToken", pageToken)
63904	return c
63905}
63906
63907// Fields allows partial responses to be retrieved. See
63908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63909// for more information.
63910func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
63911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63912	return c
63913}
63914
63915// IfNoneMatch sets the optional parameter which makes the operation
63916// fail if the object's ETag matches the given value. This is useful for
63917// getting updates only after the object has changed since the last
63918// request. Use googleapi.IsNotModified to check whether the response
63919// error from Do is the result of In-None-Match.
63920func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
63921	c.ifNoneMatch_ = entityTag
63922	return c
63923}
63924
63925// Context sets the context to be used in this call's Do method. Any
63926// pending HTTP request will be aborted if the provided context is
63927// canceled.
63928func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
63929	c.ctx_ = ctx
63930	return c
63931}
63932
63933// Header returns an http.Header that can be modified by the caller to
63934// add HTTP headers to the request.
63935func (c *ImagesListCall) Header() http.Header {
63936	if c.header_ == nil {
63937		c.header_ = make(http.Header)
63938	}
63939	return c.header_
63940}
63941
63942func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
63943	reqHeaders := make(http.Header)
63944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63945	for k, v := range c.header_ {
63946		reqHeaders[k] = v
63947	}
63948	reqHeaders.Set("User-Agent", c.s.userAgent())
63949	if c.ifNoneMatch_ != "" {
63950		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63951	}
63952	var body io.Reader = nil
63953	c.urlParams_.Set("alt", alt)
63954	c.urlParams_.Set("prettyPrint", "false")
63955	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
63956	urls += "?" + c.urlParams_.Encode()
63957	req, err := http.NewRequest("GET", urls, body)
63958	if err != nil {
63959		return nil, err
63960	}
63961	req.Header = reqHeaders
63962	googleapi.Expand(req.URL, map[string]string{
63963		"project": c.project,
63964	})
63965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63966}
63967
63968// Do executes the "compute.images.list" call.
63969// Exactly one of *ImageList or error will be non-nil. Any non-2xx
63970// status code is an error. Response headers are in either
63971// *ImageList.ServerResponse.Header or (if a response was returned at
63972// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63973// to check whether the returned error was because
63974// http.StatusNotModified was returned.
63975func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
63976	gensupport.SetOptions(c.urlParams_, opts...)
63977	res, err := c.doRequest("json")
63978	if res != nil && res.StatusCode == http.StatusNotModified {
63979		if res.Body != nil {
63980			res.Body.Close()
63981		}
63982		return nil, &googleapi.Error{
63983			Code:   res.StatusCode,
63984			Header: res.Header,
63985		}
63986	}
63987	if err != nil {
63988		return nil, err
63989	}
63990	defer googleapi.CloseBody(res)
63991	if err := googleapi.CheckResponse(res); err != nil {
63992		return nil, err
63993	}
63994	ret := &ImageList{
63995		ServerResponse: googleapi.ServerResponse{
63996			Header:         res.Header,
63997			HTTPStatusCode: res.StatusCode,
63998		},
63999	}
64000	target := &ret
64001	if err := gensupport.DecodeResponse(target, res); err != nil {
64002		return nil, err
64003	}
64004	return ret, nil
64005	// {
64006	//   "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.",
64007	//   "httpMethod": "GET",
64008	//   "id": "compute.images.list",
64009	//   "parameterOrder": [
64010	//     "project"
64011	//   ],
64012	//   "parameters": {
64013	//     "filter": {
64014	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
64015	//       "location": "query",
64016	//       "type": "string"
64017	//     },
64018	//     "maxResults": {
64019	//       "default": "500",
64020	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64021	//       "format": "uint32",
64022	//       "location": "query",
64023	//       "minimum": "0",
64024	//       "type": "integer"
64025	//     },
64026	//     "orderBy": {
64027	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
64028	//       "location": "query",
64029	//       "type": "string"
64030	//     },
64031	//     "pageToken": {
64032	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64033	//       "location": "query",
64034	//       "type": "string"
64035	//     },
64036	//     "project": {
64037	//       "description": "Project ID for this request.",
64038	//       "location": "path",
64039	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64040	//       "required": true,
64041	//       "type": "string"
64042	//     }
64043	//   },
64044	//   "path": "{project}/global/images",
64045	//   "response": {
64046	//     "$ref": "ImageList"
64047	//   },
64048	//   "scopes": [
64049	//     "https://www.googleapis.com/auth/cloud-platform",
64050	//     "https://www.googleapis.com/auth/compute",
64051	//     "https://www.googleapis.com/auth/compute.readonly"
64052	//   ]
64053	// }
64054
64055}
64056
64057// Pages invokes f for each page of results.
64058// A non-nil error returned from f will halt the iteration.
64059// The provided context supersedes any context provided to the Context method.
64060func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
64061	c.ctx_ = ctx
64062	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64063	for {
64064		x, err := c.Do()
64065		if err != nil {
64066			return err
64067		}
64068		if err := f(x); err != nil {
64069			return err
64070		}
64071		if x.NextPageToken == "" {
64072			return nil
64073		}
64074		c.PageToken(x.NextPageToken)
64075	}
64076}
64077
64078// method id "compute.images.setIamPolicy":
64079
64080type ImagesSetIamPolicyCall struct {
64081	s                      *Service
64082	project                string
64083	resource               string
64084	globalsetpolicyrequest *GlobalSetPolicyRequest
64085	urlParams_             gensupport.URLParams
64086	ctx_                   context.Context
64087	header_                http.Header
64088}
64089
64090// SetIamPolicy: Sets the access control policy on the specified
64091// resource. Replaces any existing policy.
64092func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
64093	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64094	c.project = project
64095	c.resource = resource
64096	c.globalsetpolicyrequest = globalsetpolicyrequest
64097	return c
64098}
64099
64100// Fields allows partial responses to be retrieved. See
64101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64102// for more information.
64103func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
64104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64105	return c
64106}
64107
64108// Context sets the context to be used in this call's Do method. Any
64109// pending HTTP request will be aborted if the provided context is
64110// canceled.
64111func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
64112	c.ctx_ = ctx
64113	return c
64114}
64115
64116// Header returns an http.Header that can be modified by the caller to
64117// add HTTP headers to the request.
64118func (c *ImagesSetIamPolicyCall) Header() http.Header {
64119	if c.header_ == nil {
64120		c.header_ = make(http.Header)
64121	}
64122	return c.header_
64123}
64124
64125func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
64126	reqHeaders := make(http.Header)
64127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64128	for k, v := range c.header_ {
64129		reqHeaders[k] = v
64130	}
64131	reqHeaders.Set("User-Agent", c.s.userAgent())
64132	var body io.Reader = nil
64133	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
64134	if err != nil {
64135		return nil, err
64136	}
64137	reqHeaders.Set("Content-Type", "application/json")
64138	c.urlParams_.Set("alt", alt)
64139	c.urlParams_.Set("prettyPrint", "false")
64140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setIamPolicy")
64141	urls += "?" + c.urlParams_.Encode()
64142	req, err := http.NewRequest("POST", urls, body)
64143	if err != nil {
64144		return nil, err
64145	}
64146	req.Header = reqHeaders
64147	googleapi.Expand(req.URL, map[string]string{
64148		"project":  c.project,
64149		"resource": c.resource,
64150	})
64151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64152}
64153
64154// Do executes the "compute.images.setIamPolicy" call.
64155// Exactly one of *Policy or error will be non-nil. Any non-2xx status
64156// code is an error. Response headers are in either
64157// *Policy.ServerResponse.Header or (if a response was returned at all)
64158// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
64159// check whether the returned error was because http.StatusNotModified
64160// was returned.
64161func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
64162	gensupport.SetOptions(c.urlParams_, opts...)
64163	res, err := c.doRequest("json")
64164	if res != nil && res.StatusCode == http.StatusNotModified {
64165		if res.Body != nil {
64166			res.Body.Close()
64167		}
64168		return nil, &googleapi.Error{
64169			Code:   res.StatusCode,
64170			Header: res.Header,
64171		}
64172	}
64173	if err != nil {
64174		return nil, err
64175	}
64176	defer googleapi.CloseBody(res)
64177	if err := googleapi.CheckResponse(res); err != nil {
64178		return nil, err
64179	}
64180	ret := &Policy{
64181		ServerResponse: googleapi.ServerResponse{
64182			Header:         res.Header,
64183			HTTPStatusCode: res.StatusCode,
64184		},
64185	}
64186	target := &ret
64187	if err := gensupport.DecodeResponse(target, res); err != nil {
64188		return nil, err
64189	}
64190	return ret, nil
64191	// {
64192	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
64193	//   "httpMethod": "POST",
64194	//   "id": "compute.images.setIamPolicy",
64195	//   "parameterOrder": [
64196	//     "project",
64197	//     "resource"
64198	//   ],
64199	//   "parameters": {
64200	//     "project": {
64201	//       "description": "Project ID for this request.",
64202	//       "location": "path",
64203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64204	//       "required": true,
64205	//       "type": "string"
64206	//     },
64207	//     "resource": {
64208	//       "description": "Name or id of the resource for this request.",
64209	//       "location": "path",
64210	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64211	//       "required": true,
64212	//       "type": "string"
64213	//     }
64214	//   },
64215	//   "path": "{project}/global/images/{resource}/setIamPolicy",
64216	//   "request": {
64217	//     "$ref": "GlobalSetPolicyRequest"
64218	//   },
64219	//   "response": {
64220	//     "$ref": "Policy"
64221	//   },
64222	//   "scopes": [
64223	//     "https://www.googleapis.com/auth/cloud-platform",
64224	//     "https://www.googleapis.com/auth/compute"
64225	//   ]
64226	// }
64227
64228}
64229
64230// method id "compute.images.setLabels":
64231
64232type ImagesSetLabelsCall struct {
64233	s                      *Service
64234	project                string
64235	resource               string
64236	globalsetlabelsrequest *GlobalSetLabelsRequest
64237	urlParams_             gensupport.URLParams
64238	ctx_                   context.Context
64239	header_                http.Header
64240}
64241
64242// SetLabels: Sets the labels on an image. To learn more about labels,
64243// read the Labeling Resources documentation.
64244func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
64245	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64246	c.project = project
64247	c.resource = resource
64248	c.globalsetlabelsrequest = globalsetlabelsrequest
64249	return c
64250}
64251
64252// Fields allows partial responses to be retrieved. See
64253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64254// for more information.
64255func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
64256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64257	return c
64258}
64259
64260// Context sets the context to be used in this call's Do method. Any
64261// pending HTTP request will be aborted if the provided context is
64262// canceled.
64263func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
64264	c.ctx_ = ctx
64265	return c
64266}
64267
64268// Header returns an http.Header that can be modified by the caller to
64269// add HTTP headers to the request.
64270func (c *ImagesSetLabelsCall) Header() http.Header {
64271	if c.header_ == nil {
64272		c.header_ = make(http.Header)
64273	}
64274	return c.header_
64275}
64276
64277func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
64278	reqHeaders := make(http.Header)
64279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64280	for k, v := range c.header_ {
64281		reqHeaders[k] = v
64282	}
64283	reqHeaders.Set("User-Agent", c.s.userAgent())
64284	var body io.Reader = nil
64285	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
64286	if err != nil {
64287		return nil, err
64288	}
64289	reqHeaders.Set("Content-Type", "application/json")
64290	c.urlParams_.Set("alt", alt)
64291	c.urlParams_.Set("prettyPrint", "false")
64292	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
64293	urls += "?" + c.urlParams_.Encode()
64294	req, err := http.NewRequest("POST", urls, body)
64295	if err != nil {
64296		return nil, err
64297	}
64298	req.Header = reqHeaders
64299	googleapi.Expand(req.URL, map[string]string{
64300		"project":  c.project,
64301		"resource": c.resource,
64302	})
64303	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64304}
64305
64306// Do executes the "compute.images.setLabels" call.
64307// Exactly one of *Operation or error will be non-nil. Any non-2xx
64308// status code is an error. Response headers are in either
64309// *Operation.ServerResponse.Header or (if a response was returned at
64310// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64311// to check whether the returned error was because
64312// http.StatusNotModified was returned.
64313func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64314	gensupport.SetOptions(c.urlParams_, opts...)
64315	res, err := c.doRequest("json")
64316	if res != nil && res.StatusCode == http.StatusNotModified {
64317		if res.Body != nil {
64318			res.Body.Close()
64319		}
64320		return nil, &googleapi.Error{
64321			Code:   res.StatusCode,
64322			Header: res.Header,
64323		}
64324	}
64325	if err != nil {
64326		return nil, err
64327	}
64328	defer googleapi.CloseBody(res)
64329	if err := googleapi.CheckResponse(res); err != nil {
64330		return nil, err
64331	}
64332	ret := &Operation{
64333		ServerResponse: googleapi.ServerResponse{
64334			Header:         res.Header,
64335			HTTPStatusCode: res.StatusCode,
64336		},
64337	}
64338	target := &ret
64339	if err := gensupport.DecodeResponse(target, res); err != nil {
64340		return nil, err
64341	}
64342	return ret, nil
64343	// {
64344	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
64345	//   "httpMethod": "POST",
64346	//   "id": "compute.images.setLabels",
64347	//   "parameterOrder": [
64348	//     "project",
64349	//     "resource"
64350	//   ],
64351	//   "parameters": {
64352	//     "project": {
64353	//       "description": "Project ID for this request.",
64354	//       "location": "path",
64355	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64356	//       "required": true,
64357	//       "type": "string"
64358	//     },
64359	//     "resource": {
64360	//       "description": "Name or id of the resource for this request.",
64361	//       "location": "path",
64362	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64363	//       "required": true,
64364	//       "type": "string"
64365	//     }
64366	//   },
64367	//   "path": "{project}/global/images/{resource}/setLabels",
64368	//   "request": {
64369	//     "$ref": "GlobalSetLabelsRequest"
64370	//   },
64371	//   "response": {
64372	//     "$ref": "Operation"
64373	//   },
64374	//   "scopes": [
64375	//     "https://www.googleapis.com/auth/cloud-platform",
64376	//     "https://www.googleapis.com/auth/compute"
64377	//   ]
64378	// }
64379
64380}
64381
64382// method id "compute.images.testIamPermissions":
64383
64384type ImagesTestIamPermissionsCall struct {
64385	s                      *Service
64386	project                string
64387	resource               string
64388	testpermissionsrequest *TestPermissionsRequest
64389	urlParams_             gensupport.URLParams
64390	ctx_                   context.Context
64391	header_                http.Header
64392}
64393
64394// TestIamPermissions: Returns permissions that a caller has on the
64395// specified resource.
64396func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
64397	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64398	c.project = project
64399	c.resource = resource
64400	c.testpermissionsrequest = testpermissionsrequest
64401	return c
64402}
64403
64404// Fields allows partial responses to be retrieved. See
64405// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64406// for more information.
64407func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
64408	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64409	return c
64410}
64411
64412// Context sets the context to be used in this call's Do method. Any
64413// pending HTTP request will be aborted if the provided context is
64414// canceled.
64415func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
64416	c.ctx_ = ctx
64417	return c
64418}
64419
64420// Header returns an http.Header that can be modified by the caller to
64421// add HTTP headers to the request.
64422func (c *ImagesTestIamPermissionsCall) Header() http.Header {
64423	if c.header_ == nil {
64424		c.header_ = make(http.Header)
64425	}
64426	return c.header_
64427}
64428
64429func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
64430	reqHeaders := make(http.Header)
64431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64432	for k, v := range c.header_ {
64433		reqHeaders[k] = v
64434	}
64435	reqHeaders.Set("User-Agent", c.s.userAgent())
64436	var body io.Reader = nil
64437	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
64438	if err != nil {
64439		return nil, err
64440	}
64441	reqHeaders.Set("Content-Type", "application/json")
64442	c.urlParams_.Set("alt", alt)
64443	c.urlParams_.Set("prettyPrint", "false")
64444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/testIamPermissions")
64445	urls += "?" + c.urlParams_.Encode()
64446	req, err := http.NewRequest("POST", urls, body)
64447	if err != nil {
64448		return nil, err
64449	}
64450	req.Header = reqHeaders
64451	googleapi.Expand(req.URL, map[string]string{
64452		"project":  c.project,
64453		"resource": c.resource,
64454	})
64455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64456}
64457
64458// Do executes the "compute.images.testIamPermissions" call.
64459// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
64460// non-2xx status code is an error. Response headers are in either
64461// *TestPermissionsResponse.ServerResponse.Header or (if a response was
64462// returned at all) in error.(*googleapi.Error).Header. Use
64463// googleapi.IsNotModified to check whether the returned error was
64464// because http.StatusNotModified was returned.
64465func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
64466	gensupport.SetOptions(c.urlParams_, opts...)
64467	res, err := c.doRequest("json")
64468	if res != nil && res.StatusCode == http.StatusNotModified {
64469		if res.Body != nil {
64470			res.Body.Close()
64471		}
64472		return nil, &googleapi.Error{
64473			Code:   res.StatusCode,
64474			Header: res.Header,
64475		}
64476	}
64477	if err != nil {
64478		return nil, err
64479	}
64480	defer googleapi.CloseBody(res)
64481	if err := googleapi.CheckResponse(res); err != nil {
64482		return nil, err
64483	}
64484	ret := &TestPermissionsResponse{
64485		ServerResponse: googleapi.ServerResponse{
64486			Header:         res.Header,
64487			HTTPStatusCode: res.StatusCode,
64488		},
64489	}
64490	target := &ret
64491	if err := gensupport.DecodeResponse(target, res); err != nil {
64492		return nil, err
64493	}
64494	return ret, nil
64495	// {
64496	//   "description": "Returns permissions that a caller has on the specified resource.",
64497	//   "httpMethod": "POST",
64498	//   "id": "compute.images.testIamPermissions",
64499	//   "parameterOrder": [
64500	//     "project",
64501	//     "resource"
64502	//   ],
64503	//   "parameters": {
64504	//     "project": {
64505	//       "description": "Project ID for this request.",
64506	//       "location": "path",
64507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64508	//       "required": true,
64509	//       "type": "string"
64510	//     },
64511	//     "resource": {
64512	//       "description": "Name or id of the resource for this request.",
64513	//       "location": "path",
64514	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64515	//       "required": true,
64516	//       "type": "string"
64517	//     }
64518	//   },
64519	//   "path": "{project}/global/images/{resource}/testIamPermissions",
64520	//   "request": {
64521	//     "$ref": "TestPermissionsRequest"
64522	//   },
64523	//   "response": {
64524	//     "$ref": "TestPermissionsResponse"
64525	//   },
64526	//   "scopes": [
64527	//     "https://www.googleapis.com/auth/cloud-platform",
64528	//     "https://www.googleapis.com/auth/compute",
64529	//     "https://www.googleapis.com/auth/compute.readonly"
64530	//   ]
64531	// }
64532
64533}
64534
64535// method id "compute.instanceGroupManagers.abandonInstances":
64536
64537type InstanceGroupManagersAbandonInstancesCall struct {
64538	s                                            *Service
64539	project                                      string
64540	zone                                         string
64541	instanceGroupManager                         string
64542	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
64543	urlParams_                                   gensupport.URLParams
64544	ctx_                                         context.Context
64545	header_                                      http.Header
64546}
64547
64548// AbandonInstances: Flags the specified instances to be removed from
64549// the managed instance group. Abandoning an instance does not delete
64550// the instance, but it does remove the instance from any target pools
64551// that are applied by the managed instance group. This method reduces
64552// the targetSize of the managed instance group by the number of
64553// instances that you abandon. This operation is marked as DONE when the
64554// action is scheduled even if the instances have not yet been removed
64555// from the group. You must separately verify the status of the
64556// abandoning action with the listmanagedinstances method.
64557//
64558// If the group is part of a backend service that has enabled connection
64559// draining, it can take up to 60 seconds after the connection draining
64560// duration has elapsed before the VM instance is removed or
64561// deleted.
64562//
64563// You can specify a maximum of 1000 instances with this method per
64564// request.
64565func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
64566	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64567	c.project = project
64568	c.zone = zone
64569	c.instanceGroupManager = instanceGroupManager
64570	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
64571	return c
64572}
64573
64574// RequestId sets the optional parameter "requestId": An optional
64575// request ID to identify requests. Specify a unique request ID so that
64576// if you must retry your request, the server will know to ignore the
64577// request if it has already been completed.
64578//
64579// For example, consider a situation where you make an initial request
64580// and the request times out. If you make the request again with the
64581// same request ID, the server can check if original operation with the
64582// same request ID was received, and if so, will ignore the second
64583// request. This prevents clients from accidentally creating duplicate
64584// commitments.
64585//
64586// The request ID must be a valid UUID with the exception that zero UUID
64587// is not supported (00000000-0000-0000-0000-000000000000).
64588func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
64589	c.urlParams_.Set("requestId", requestId)
64590	return c
64591}
64592
64593// Fields allows partial responses to be retrieved. See
64594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64595// for more information.
64596func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
64597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64598	return c
64599}
64600
64601// Context sets the context to be used in this call's Do method. Any
64602// pending HTTP request will be aborted if the provided context is
64603// canceled.
64604func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
64605	c.ctx_ = ctx
64606	return c
64607}
64608
64609// Header returns an http.Header that can be modified by the caller to
64610// add HTTP headers to the request.
64611func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
64612	if c.header_ == nil {
64613		c.header_ = make(http.Header)
64614	}
64615	return c.header_
64616}
64617
64618func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
64619	reqHeaders := make(http.Header)
64620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64621	for k, v := range c.header_ {
64622		reqHeaders[k] = v
64623	}
64624	reqHeaders.Set("User-Agent", c.s.userAgent())
64625	var body io.Reader = nil
64626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
64627	if err != nil {
64628		return nil, err
64629	}
64630	reqHeaders.Set("Content-Type", "application/json")
64631	c.urlParams_.Set("alt", alt)
64632	c.urlParams_.Set("prettyPrint", "false")
64633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
64634	urls += "?" + c.urlParams_.Encode()
64635	req, err := http.NewRequest("POST", urls, body)
64636	if err != nil {
64637		return nil, err
64638	}
64639	req.Header = reqHeaders
64640	googleapi.Expand(req.URL, map[string]string{
64641		"project":              c.project,
64642		"zone":                 c.zone,
64643		"instanceGroupManager": c.instanceGroupManager,
64644	})
64645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64646}
64647
64648// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
64649// Exactly one of *Operation or error will be non-nil. Any non-2xx
64650// status code is an error. Response headers are in either
64651// *Operation.ServerResponse.Header or (if a response was returned at
64652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64653// to check whether the returned error was because
64654// http.StatusNotModified was returned.
64655func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64656	gensupport.SetOptions(c.urlParams_, opts...)
64657	res, err := c.doRequest("json")
64658	if res != nil && res.StatusCode == http.StatusNotModified {
64659		if res.Body != nil {
64660			res.Body.Close()
64661		}
64662		return nil, &googleapi.Error{
64663			Code:   res.StatusCode,
64664			Header: res.Header,
64665		}
64666	}
64667	if err != nil {
64668		return nil, err
64669	}
64670	defer googleapi.CloseBody(res)
64671	if err := googleapi.CheckResponse(res); err != nil {
64672		return nil, err
64673	}
64674	ret := &Operation{
64675		ServerResponse: googleapi.ServerResponse{
64676			Header:         res.Header,
64677			HTTPStatusCode: res.StatusCode,
64678		},
64679	}
64680	target := &ret
64681	if err := gensupport.DecodeResponse(target, res); err != nil {
64682		return nil, err
64683	}
64684	return ret, nil
64685	// {
64686	//   "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.",
64687	//   "httpMethod": "POST",
64688	//   "id": "compute.instanceGroupManagers.abandonInstances",
64689	//   "parameterOrder": [
64690	//     "project",
64691	//     "zone",
64692	//     "instanceGroupManager"
64693	//   ],
64694	//   "parameters": {
64695	//     "instanceGroupManager": {
64696	//       "description": "The name of the managed instance group.",
64697	//       "location": "path",
64698	//       "required": true,
64699	//       "type": "string"
64700	//     },
64701	//     "project": {
64702	//       "description": "Project ID for this request.",
64703	//       "location": "path",
64704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64705	//       "required": true,
64706	//       "type": "string"
64707	//     },
64708	//     "requestId": {
64709	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64710	//       "location": "query",
64711	//       "type": "string"
64712	//     },
64713	//     "zone": {
64714	//       "description": "The name of the zone where the managed instance group is located.",
64715	//       "location": "path",
64716	//       "required": true,
64717	//       "type": "string"
64718	//     }
64719	//   },
64720	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
64721	//   "request": {
64722	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
64723	//   },
64724	//   "response": {
64725	//     "$ref": "Operation"
64726	//   },
64727	//   "scopes": [
64728	//     "https://www.googleapis.com/auth/cloud-platform",
64729	//     "https://www.googleapis.com/auth/compute"
64730	//   ]
64731	// }
64732
64733}
64734
64735// method id "compute.instanceGroupManagers.aggregatedList":
64736
64737type InstanceGroupManagersAggregatedListCall struct {
64738	s            *Service
64739	project      string
64740	urlParams_   gensupport.URLParams
64741	ifNoneMatch_ string
64742	ctx_         context.Context
64743	header_      http.Header
64744}
64745
64746// AggregatedList: Retrieves the list of managed instance groups and
64747// groups them by zone.
64748func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
64749	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64750	c.project = project
64751	return c
64752}
64753
64754// Filter sets the optional parameter "filter": A filter expression that
64755// filters resources listed in the response. The expression must specify
64756// the field name, a comparison operator, and the value that you want to
64757// use for filtering. The value must be a string, a number, or a
64758// boolean. The comparison operator must be either `=`, `!=`, `>`, or
64759// `<`.
64760//
64761// For example, if you are filtering Compute Engine instances, you can
64762// exclude instances named `example-instance` by specifying `name !=
64763// example-instance`.
64764//
64765// You can also filter nested fields. For example, you could specify
64766// `scheduling.automaticRestart = false` to include instances only if
64767// they are not scheduled for automatic restarts. You can use filtering
64768// on nested fields to filter based on resource labels.
64769//
64770// To filter on multiple expressions, provide each separate expression
64771// within parentheses. For example: ``` (scheduling.automaticRestart =
64772// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
64773// is an `AND` expression. However, you can include `AND` and `OR`
64774// expressions explicitly. For example: ``` (cpuPlatform = "Intel
64775// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
64776// (scheduling.automaticRestart = true) ```
64777func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
64778	c.urlParams_.Set("filter", filter)
64779	return c
64780}
64781
64782// IncludeAllScopes sets the optional parameter "includeAllScopes":
64783// Indicates whether every visible scope for each scope type (zone,
64784// region, global) should be included in the response. For new resource
64785// types added after this field, the flag has no effect as new resource
64786// types will always include every visible scope for each scope type in
64787// response. For resource types which predate this field, if this flag
64788// is omitted or false, only scopes of the scope types where the
64789// resource type is expected to be found will be included.
64790func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
64791	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
64792	return c
64793}
64794
64795// MaxResults sets the optional parameter "maxResults": The maximum
64796// number of results per page that should be returned. If the number of
64797// available results is larger than `maxResults`, Compute Engine returns
64798// a `nextPageToken` that can be used to get the next page of results in
64799// subsequent list requests. Acceptable values are `0` to `500`,
64800// inclusive. (Default: `500`)
64801func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
64802	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64803	return c
64804}
64805
64806// OrderBy sets the optional parameter "orderBy": Sorts list results by
64807// a certain order. By default, results are returned in alphanumerical
64808// order based on the resource name.
64809//
64810// You can also sort results in descending order based on the creation
64811// timestamp using `orderBy="creationTimestamp desc". This sorts
64812// results based on the `creationTimestamp` field in reverse
64813// chronological order (newest result first). Use this to sort resources
64814// like operations so that the newest operation is returned
64815// first.
64816//
64817// Currently, only sorting by `name` or `creationTimestamp desc` is
64818// supported.
64819func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
64820	c.urlParams_.Set("orderBy", orderBy)
64821	return c
64822}
64823
64824// PageToken sets the optional parameter "pageToken": Specifies a page
64825// token to use. Set `pageToken` to the `nextPageToken` returned by a
64826// previous list request to get the next page of results.
64827func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
64828	c.urlParams_.Set("pageToken", pageToken)
64829	return c
64830}
64831
64832// Fields allows partial responses to be retrieved. See
64833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64834// for more information.
64835func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
64836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64837	return c
64838}
64839
64840// IfNoneMatch sets the optional parameter which makes the operation
64841// fail if the object's ETag matches the given value. This is useful for
64842// getting updates only after the object has changed since the last
64843// request. Use googleapi.IsNotModified to check whether the response
64844// error from Do is the result of In-None-Match.
64845func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
64846	c.ifNoneMatch_ = entityTag
64847	return c
64848}
64849
64850// Context sets the context to be used in this call's Do method. Any
64851// pending HTTP request will be aborted if the provided context is
64852// canceled.
64853func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
64854	c.ctx_ = ctx
64855	return c
64856}
64857
64858// Header returns an http.Header that can be modified by the caller to
64859// add HTTP headers to the request.
64860func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
64861	if c.header_ == nil {
64862		c.header_ = make(http.Header)
64863	}
64864	return c.header_
64865}
64866
64867func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
64868	reqHeaders := make(http.Header)
64869	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64870	for k, v := range c.header_ {
64871		reqHeaders[k] = v
64872	}
64873	reqHeaders.Set("User-Agent", c.s.userAgent())
64874	if c.ifNoneMatch_ != "" {
64875		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64876	}
64877	var body io.Reader = nil
64878	c.urlParams_.Set("alt", alt)
64879	c.urlParams_.Set("prettyPrint", "false")
64880	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
64881	urls += "?" + c.urlParams_.Encode()
64882	req, err := http.NewRequest("GET", urls, body)
64883	if err != nil {
64884		return nil, err
64885	}
64886	req.Header = reqHeaders
64887	googleapi.Expand(req.URL, map[string]string{
64888		"project": c.project,
64889	})
64890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64891}
64892
64893// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
64894// Exactly one of *InstanceGroupManagerAggregatedList or error will be
64895// non-nil. Any non-2xx status code is an error. Response headers are in
64896// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
64897// (if a response was returned at all) in
64898// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
64899// whether the returned error was because http.StatusNotModified was
64900// returned.
64901func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
64902	gensupport.SetOptions(c.urlParams_, opts...)
64903	res, err := c.doRequest("json")
64904	if res != nil && res.StatusCode == http.StatusNotModified {
64905		if res.Body != nil {
64906			res.Body.Close()
64907		}
64908		return nil, &googleapi.Error{
64909			Code:   res.StatusCode,
64910			Header: res.Header,
64911		}
64912	}
64913	if err != nil {
64914		return nil, err
64915	}
64916	defer googleapi.CloseBody(res)
64917	if err := googleapi.CheckResponse(res); err != nil {
64918		return nil, err
64919	}
64920	ret := &InstanceGroupManagerAggregatedList{
64921		ServerResponse: googleapi.ServerResponse{
64922			Header:         res.Header,
64923			HTTPStatusCode: res.StatusCode,
64924		},
64925	}
64926	target := &ret
64927	if err := gensupport.DecodeResponse(target, res); err != nil {
64928		return nil, err
64929	}
64930	return ret, nil
64931	// {
64932	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
64933	//   "httpMethod": "GET",
64934	//   "id": "compute.instanceGroupManagers.aggregatedList",
64935	//   "parameterOrder": [
64936	//     "project"
64937	//   ],
64938	//   "parameters": {
64939	//     "filter": {
64940	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
64941	//       "location": "query",
64942	//       "type": "string"
64943	//     },
64944	//     "includeAllScopes": {
64945	//       "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.",
64946	//       "location": "query",
64947	//       "type": "boolean"
64948	//     },
64949	//     "maxResults": {
64950	//       "default": "500",
64951	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64952	//       "format": "uint32",
64953	//       "location": "query",
64954	//       "minimum": "0",
64955	//       "type": "integer"
64956	//     },
64957	//     "orderBy": {
64958	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
64959	//       "location": "query",
64960	//       "type": "string"
64961	//     },
64962	//     "pageToken": {
64963	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64964	//       "location": "query",
64965	//       "type": "string"
64966	//     },
64967	//     "project": {
64968	//       "description": "Project ID for this request.",
64969	//       "location": "path",
64970	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64971	//       "required": true,
64972	//       "type": "string"
64973	//     }
64974	//   },
64975	//   "path": "{project}/aggregated/instanceGroupManagers",
64976	//   "response": {
64977	//     "$ref": "InstanceGroupManagerAggregatedList"
64978	//   },
64979	//   "scopes": [
64980	//     "https://www.googleapis.com/auth/cloud-platform",
64981	//     "https://www.googleapis.com/auth/compute",
64982	//     "https://www.googleapis.com/auth/compute.readonly"
64983	//   ]
64984	// }
64985
64986}
64987
64988// Pages invokes f for each page of results.
64989// A non-nil error returned from f will halt the iteration.
64990// The provided context supersedes any context provided to the Context method.
64991func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
64992	c.ctx_ = ctx
64993	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64994	for {
64995		x, err := c.Do()
64996		if err != nil {
64997			return err
64998		}
64999		if err := f(x); err != nil {
65000			return err
65001		}
65002		if x.NextPageToken == "" {
65003			return nil
65004		}
65005		c.PageToken(x.NextPageToken)
65006	}
65007}
65008
65009// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
65010
65011type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
65012	s                                        *Service
65013	project                                  string
65014	zone                                     string
65015	instanceGroupManager                     string
65016	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
65017	urlParams_                               gensupport.URLParams
65018	ctx_                                     context.Context
65019	header_                                  http.Header
65020}
65021
65022// ApplyUpdatesToInstances: Applies changes to selected instances on the
65023// managed instance group. This method can be used to apply new
65024// overrides and/or new versions.
65025func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
65026	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65027	c.project = project
65028	c.zone = zone
65029	c.instanceGroupManager = instanceGroupManager
65030	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
65031	return c
65032}
65033
65034// Fields allows partial responses to be retrieved. See
65035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65036// for more information.
65037func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
65038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65039	return c
65040}
65041
65042// Context sets the context to be used in this call's Do method. Any
65043// pending HTTP request will be aborted if the provided context is
65044// canceled.
65045func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
65046	c.ctx_ = ctx
65047	return c
65048}
65049
65050// Header returns an http.Header that can be modified by the caller to
65051// add HTTP headers to the request.
65052func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
65053	if c.header_ == nil {
65054		c.header_ = make(http.Header)
65055	}
65056	return c.header_
65057}
65058
65059func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
65060	reqHeaders := make(http.Header)
65061	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65062	for k, v := range c.header_ {
65063		reqHeaders[k] = v
65064	}
65065	reqHeaders.Set("User-Agent", c.s.userAgent())
65066	var body io.Reader = nil
65067	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
65068	if err != nil {
65069		return nil, err
65070	}
65071	reqHeaders.Set("Content-Type", "application/json")
65072	c.urlParams_.Set("alt", alt)
65073	c.urlParams_.Set("prettyPrint", "false")
65074	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
65075	urls += "?" + c.urlParams_.Encode()
65076	req, err := http.NewRequest("POST", urls, body)
65077	if err != nil {
65078		return nil, err
65079	}
65080	req.Header = reqHeaders
65081	googleapi.Expand(req.URL, map[string]string{
65082		"project":              c.project,
65083		"zone":                 c.zone,
65084		"instanceGroupManager": c.instanceGroupManager,
65085	})
65086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65087}
65088
65089// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
65090// Exactly one of *Operation or error will be non-nil. Any non-2xx
65091// status code is an error. Response headers are in either
65092// *Operation.ServerResponse.Header or (if a response was returned at
65093// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65094// to check whether the returned error was because
65095// http.StatusNotModified was returned.
65096func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65097	gensupport.SetOptions(c.urlParams_, opts...)
65098	res, err := c.doRequest("json")
65099	if res != nil && res.StatusCode == http.StatusNotModified {
65100		if res.Body != nil {
65101			res.Body.Close()
65102		}
65103		return nil, &googleapi.Error{
65104			Code:   res.StatusCode,
65105			Header: res.Header,
65106		}
65107	}
65108	if err != nil {
65109		return nil, err
65110	}
65111	defer googleapi.CloseBody(res)
65112	if err := googleapi.CheckResponse(res); err != nil {
65113		return nil, err
65114	}
65115	ret := &Operation{
65116		ServerResponse: googleapi.ServerResponse{
65117			Header:         res.Header,
65118			HTTPStatusCode: res.StatusCode,
65119		},
65120	}
65121	target := &ret
65122	if err := gensupport.DecodeResponse(target, res); err != nil {
65123		return nil, err
65124	}
65125	return ret, nil
65126	// {
65127	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
65128	//   "httpMethod": "POST",
65129	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
65130	//   "parameterOrder": [
65131	//     "project",
65132	//     "zone",
65133	//     "instanceGroupManager"
65134	//   ],
65135	//   "parameters": {
65136	//     "instanceGroupManager": {
65137	//       "description": "The name of the managed instance group, should conform to RFC1035.",
65138	//       "location": "path",
65139	//       "required": true,
65140	//       "type": "string"
65141	//     },
65142	//     "project": {
65143	//       "description": "Project ID for this request.",
65144	//       "location": "path",
65145	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65146	//       "required": true,
65147	//       "type": "string"
65148	//     },
65149	//     "zone": {
65150	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
65151	//       "location": "path",
65152	//       "required": true,
65153	//       "type": "string"
65154	//     }
65155	//   },
65156	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
65157	//   "request": {
65158	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
65159	//   },
65160	//   "response": {
65161	//     "$ref": "Operation"
65162	//   },
65163	//   "scopes": [
65164	//     "https://www.googleapis.com/auth/cloud-platform",
65165	//     "https://www.googleapis.com/auth/compute"
65166	//   ]
65167	// }
65168
65169}
65170
65171// method id "compute.instanceGroupManagers.createInstances":
65172
65173type InstanceGroupManagersCreateInstancesCall struct {
65174	s                                           *Service
65175	project                                     string
65176	zone                                        string
65177	instanceGroupManager                        string
65178	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
65179	urlParams_                                  gensupport.URLParams
65180	ctx_                                        context.Context
65181	header_                                     http.Header
65182}
65183
65184// CreateInstances: Creates instances with per-instance configs in this
65185// managed instance group. Instances are created using the current
65186// instance template. The create instances operation is marked DONE if
65187// the createInstances request is successful. The underlying actions
65188// take additional time. You must separately verify the status of the
65189// creating or actions with the listmanagedinstances method.
65190func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
65191	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65192	c.project = project
65193	c.zone = zone
65194	c.instanceGroupManager = instanceGroupManager
65195	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
65196	return c
65197}
65198
65199// RequestId sets the optional parameter "requestId": An optional
65200// request ID to identify requests. Specify a unique request ID so that
65201// if you must retry your request, the server will know to ignore the
65202// request if it has already been completed.
65203//
65204// For example, consider a situation where you make an initial request
65205// and the request times out. If you make the request again with the
65206// same request ID, the server can check if original operation with the
65207// same request ID was received, and if so, will ignore the second
65208// request.
65209//
65210// The request ID must be a valid UUID with the exception that zero UUID
65211// is not supported (00000000-0000-0000-0000-000000000000).
65212func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
65213	c.urlParams_.Set("requestId", requestId)
65214	return c
65215}
65216
65217// Fields allows partial responses to be retrieved. See
65218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65219// for more information.
65220func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
65221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65222	return c
65223}
65224
65225// Context sets the context to be used in this call's Do method. Any
65226// pending HTTP request will be aborted if the provided context is
65227// canceled.
65228func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
65229	c.ctx_ = ctx
65230	return c
65231}
65232
65233// Header returns an http.Header that can be modified by the caller to
65234// add HTTP headers to the request.
65235func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
65236	if c.header_ == nil {
65237		c.header_ = make(http.Header)
65238	}
65239	return c.header_
65240}
65241
65242func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
65243	reqHeaders := make(http.Header)
65244	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65245	for k, v := range c.header_ {
65246		reqHeaders[k] = v
65247	}
65248	reqHeaders.Set("User-Agent", c.s.userAgent())
65249	var body io.Reader = nil
65250	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
65251	if err != nil {
65252		return nil, err
65253	}
65254	reqHeaders.Set("Content-Type", "application/json")
65255	c.urlParams_.Set("alt", alt)
65256	c.urlParams_.Set("prettyPrint", "false")
65257	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
65258	urls += "?" + c.urlParams_.Encode()
65259	req, err := http.NewRequest("POST", urls, body)
65260	if err != nil {
65261		return nil, err
65262	}
65263	req.Header = reqHeaders
65264	googleapi.Expand(req.URL, map[string]string{
65265		"project":              c.project,
65266		"zone":                 c.zone,
65267		"instanceGroupManager": c.instanceGroupManager,
65268	})
65269	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65270}
65271
65272// Do executes the "compute.instanceGroupManagers.createInstances" call.
65273// Exactly one of *Operation or error will be non-nil. Any non-2xx
65274// status code is an error. Response headers are in either
65275// *Operation.ServerResponse.Header or (if a response was returned at
65276// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65277// to check whether the returned error was because
65278// http.StatusNotModified was returned.
65279func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65280	gensupport.SetOptions(c.urlParams_, opts...)
65281	res, err := c.doRequest("json")
65282	if res != nil && res.StatusCode == http.StatusNotModified {
65283		if res.Body != nil {
65284			res.Body.Close()
65285		}
65286		return nil, &googleapi.Error{
65287			Code:   res.StatusCode,
65288			Header: res.Header,
65289		}
65290	}
65291	if err != nil {
65292		return nil, err
65293	}
65294	defer googleapi.CloseBody(res)
65295	if err := googleapi.CheckResponse(res); err != nil {
65296		return nil, err
65297	}
65298	ret := &Operation{
65299		ServerResponse: googleapi.ServerResponse{
65300			Header:         res.Header,
65301			HTTPStatusCode: res.StatusCode,
65302		},
65303	}
65304	target := &ret
65305	if err := gensupport.DecodeResponse(target, res); err != nil {
65306		return nil, err
65307	}
65308	return ret, nil
65309	// {
65310	//   "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.",
65311	//   "httpMethod": "POST",
65312	//   "id": "compute.instanceGroupManagers.createInstances",
65313	//   "parameterOrder": [
65314	//     "project",
65315	//     "zone",
65316	//     "instanceGroupManager"
65317	//   ],
65318	//   "parameters": {
65319	//     "instanceGroupManager": {
65320	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
65321	//       "location": "path",
65322	//       "required": true,
65323	//       "type": "string"
65324	//     },
65325	//     "project": {
65326	//       "description": "Project ID for this request.",
65327	//       "location": "path",
65328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65329	//       "required": true,
65330	//       "type": "string"
65331	//     },
65332	//     "requestId": {
65333	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
65334	//       "location": "query",
65335	//       "type": "string"
65336	//     },
65337	//     "zone": {
65338	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
65339	//       "location": "path",
65340	//       "required": true,
65341	//       "type": "string"
65342	//     }
65343	//   },
65344	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
65345	//   "request": {
65346	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
65347	//   },
65348	//   "response": {
65349	//     "$ref": "Operation"
65350	//   },
65351	//   "scopes": [
65352	//     "https://www.googleapis.com/auth/cloud-platform",
65353	//     "https://www.googleapis.com/auth/compute"
65354	//   ]
65355	// }
65356
65357}
65358
65359// method id "compute.instanceGroupManagers.delete":
65360
65361type InstanceGroupManagersDeleteCall struct {
65362	s                    *Service
65363	project              string
65364	zone                 string
65365	instanceGroupManager string
65366	urlParams_           gensupport.URLParams
65367	ctx_                 context.Context
65368	header_              http.Header
65369}
65370
65371// Delete: Deletes the specified managed instance group and all of the
65372// instances in that group. Note that the instance group must not belong
65373// to a backend service. Read  Deleting an instance group for more
65374// information.
65375func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
65376	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65377	c.project = project
65378	c.zone = zone
65379	c.instanceGroupManager = instanceGroupManager
65380	return c
65381}
65382
65383// RequestId sets the optional parameter "requestId": An optional
65384// request ID to identify requests. Specify a unique request ID so that
65385// if you must retry your request, the server will know to ignore the
65386// request if it has already been completed.
65387//
65388// For example, consider a situation where you make an initial request
65389// and the request times out. If you make the request again with the
65390// same request ID, the server can check if original operation with the
65391// same request ID was received, and if so, will ignore the second
65392// request. This prevents clients from accidentally creating duplicate
65393// commitments.
65394//
65395// The request ID must be a valid UUID with the exception that zero UUID
65396// is not supported (00000000-0000-0000-0000-000000000000).
65397func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
65398	c.urlParams_.Set("requestId", requestId)
65399	return c
65400}
65401
65402// Fields allows partial responses to be retrieved. See
65403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65404// for more information.
65405func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
65406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65407	return c
65408}
65409
65410// Context sets the context to be used in this call's Do method. Any
65411// pending HTTP request will be aborted if the provided context is
65412// canceled.
65413func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
65414	c.ctx_ = ctx
65415	return c
65416}
65417
65418// Header returns an http.Header that can be modified by the caller to
65419// add HTTP headers to the request.
65420func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
65421	if c.header_ == nil {
65422		c.header_ = make(http.Header)
65423	}
65424	return c.header_
65425}
65426
65427func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
65428	reqHeaders := make(http.Header)
65429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65430	for k, v := range c.header_ {
65431		reqHeaders[k] = v
65432	}
65433	reqHeaders.Set("User-Agent", c.s.userAgent())
65434	var body io.Reader = nil
65435	c.urlParams_.Set("alt", alt)
65436	c.urlParams_.Set("prettyPrint", "false")
65437	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
65438	urls += "?" + c.urlParams_.Encode()
65439	req, err := http.NewRequest("DELETE", urls, body)
65440	if err != nil {
65441		return nil, err
65442	}
65443	req.Header = reqHeaders
65444	googleapi.Expand(req.URL, map[string]string{
65445		"project":              c.project,
65446		"zone":                 c.zone,
65447		"instanceGroupManager": c.instanceGroupManager,
65448	})
65449	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65450}
65451
65452// Do executes the "compute.instanceGroupManagers.delete" call.
65453// Exactly one of *Operation or error will be non-nil. Any non-2xx
65454// status code is an error. Response headers are in either
65455// *Operation.ServerResponse.Header or (if a response was returned at
65456// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65457// to check whether the returned error was because
65458// http.StatusNotModified was returned.
65459func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65460	gensupport.SetOptions(c.urlParams_, opts...)
65461	res, err := c.doRequest("json")
65462	if res != nil && res.StatusCode == http.StatusNotModified {
65463		if res.Body != nil {
65464			res.Body.Close()
65465		}
65466		return nil, &googleapi.Error{
65467			Code:   res.StatusCode,
65468			Header: res.Header,
65469		}
65470	}
65471	if err != nil {
65472		return nil, err
65473	}
65474	defer googleapi.CloseBody(res)
65475	if err := googleapi.CheckResponse(res); err != nil {
65476		return nil, err
65477	}
65478	ret := &Operation{
65479		ServerResponse: googleapi.ServerResponse{
65480			Header:         res.Header,
65481			HTTPStatusCode: res.StatusCode,
65482		},
65483	}
65484	target := &ret
65485	if err := gensupport.DecodeResponse(target, res); err != nil {
65486		return nil, err
65487	}
65488	return ret, nil
65489	// {
65490	//   "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.",
65491	//   "httpMethod": "DELETE",
65492	//   "id": "compute.instanceGroupManagers.delete",
65493	//   "parameterOrder": [
65494	//     "project",
65495	//     "zone",
65496	//     "instanceGroupManager"
65497	//   ],
65498	//   "parameters": {
65499	//     "instanceGroupManager": {
65500	//       "description": "The name of the managed instance group to delete.",
65501	//       "location": "path",
65502	//       "required": true,
65503	//       "type": "string"
65504	//     },
65505	//     "project": {
65506	//       "description": "Project ID for this request.",
65507	//       "location": "path",
65508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65509	//       "required": true,
65510	//       "type": "string"
65511	//     },
65512	//     "requestId": {
65513	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65514	//       "location": "query",
65515	//       "type": "string"
65516	//     },
65517	//     "zone": {
65518	//       "description": "The name of the zone where the managed instance group is located.",
65519	//       "location": "path",
65520	//       "required": true,
65521	//       "type": "string"
65522	//     }
65523	//   },
65524	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
65525	//   "response": {
65526	//     "$ref": "Operation"
65527	//   },
65528	//   "scopes": [
65529	//     "https://www.googleapis.com/auth/cloud-platform",
65530	//     "https://www.googleapis.com/auth/compute"
65531	//   ]
65532	// }
65533
65534}
65535
65536// method id "compute.instanceGroupManagers.deleteInstances":
65537
65538type InstanceGroupManagersDeleteInstancesCall struct {
65539	s                                           *Service
65540	project                                     string
65541	zone                                        string
65542	instanceGroupManager                        string
65543	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
65544	urlParams_                                  gensupport.URLParams
65545	ctx_                                        context.Context
65546	header_                                     http.Header
65547}
65548
65549// DeleteInstances: Flags the specified instances in the managed
65550// instance group for immediate deletion. The instances are also removed
65551// from any target pools of which they were a member. This method
65552// reduces the targetSize of the managed instance group by the number of
65553// instances that you delete. This operation is marked as DONE when the
65554// action is scheduled even if the instances are still being deleted.
65555// You must separately verify the status of the deleting action with the
65556// listmanagedinstances method.
65557//
65558// If the group is part of a backend service that has enabled connection
65559// draining, it can take up to 60 seconds after the connection draining
65560// duration has elapsed before the VM instance is removed or
65561// deleted.
65562//
65563// You can specify a maximum of 1000 instances with this method per
65564// request.
65565func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
65566	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65567	c.project = project
65568	c.zone = zone
65569	c.instanceGroupManager = instanceGroupManager
65570	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
65571	return c
65572}
65573
65574// RequestId sets the optional parameter "requestId": An optional
65575// request ID to identify requests. Specify a unique request ID so that
65576// if you must retry your request, the server will know to ignore the
65577// request if it has already been completed.
65578//
65579// For example, consider a situation where you make an initial request
65580// and the request times out. If you make the request again with the
65581// same request ID, the server can check if original operation with the
65582// same request ID was received, and if so, will ignore the second
65583// request. This prevents clients from accidentally creating duplicate
65584// commitments.
65585//
65586// The request ID must be a valid UUID with the exception that zero UUID
65587// is not supported (00000000-0000-0000-0000-000000000000).
65588func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
65589	c.urlParams_.Set("requestId", requestId)
65590	return c
65591}
65592
65593// Fields allows partial responses to be retrieved. See
65594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65595// for more information.
65596func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
65597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65598	return c
65599}
65600
65601// Context sets the context to be used in this call's Do method. Any
65602// pending HTTP request will be aborted if the provided context is
65603// canceled.
65604func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
65605	c.ctx_ = ctx
65606	return c
65607}
65608
65609// Header returns an http.Header that can be modified by the caller to
65610// add HTTP headers to the request.
65611func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
65612	if c.header_ == nil {
65613		c.header_ = make(http.Header)
65614	}
65615	return c.header_
65616}
65617
65618func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
65619	reqHeaders := make(http.Header)
65620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65621	for k, v := range c.header_ {
65622		reqHeaders[k] = v
65623	}
65624	reqHeaders.Set("User-Agent", c.s.userAgent())
65625	var body io.Reader = nil
65626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
65627	if err != nil {
65628		return nil, err
65629	}
65630	reqHeaders.Set("Content-Type", "application/json")
65631	c.urlParams_.Set("alt", alt)
65632	c.urlParams_.Set("prettyPrint", "false")
65633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
65634	urls += "?" + c.urlParams_.Encode()
65635	req, err := http.NewRequest("POST", urls, body)
65636	if err != nil {
65637		return nil, err
65638	}
65639	req.Header = reqHeaders
65640	googleapi.Expand(req.URL, map[string]string{
65641		"project":              c.project,
65642		"zone":                 c.zone,
65643		"instanceGroupManager": c.instanceGroupManager,
65644	})
65645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65646}
65647
65648// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
65649// Exactly one of *Operation or error will be non-nil. Any non-2xx
65650// status code is an error. Response headers are in either
65651// *Operation.ServerResponse.Header or (if a response was returned at
65652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65653// to check whether the returned error was because
65654// http.StatusNotModified was returned.
65655func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65656	gensupport.SetOptions(c.urlParams_, opts...)
65657	res, err := c.doRequest("json")
65658	if res != nil && res.StatusCode == http.StatusNotModified {
65659		if res.Body != nil {
65660			res.Body.Close()
65661		}
65662		return nil, &googleapi.Error{
65663			Code:   res.StatusCode,
65664			Header: res.Header,
65665		}
65666	}
65667	if err != nil {
65668		return nil, err
65669	}
65670	defer googleapi.CloseBody(res)
65671	if err := googleapi.CheckResponse(res); err != nil {
65672		return nil, err
65673	}
65674	ret := &Operation{
65675		ServerResponse: googleapi.ServerResponse{
65676			Header:         res.Header,
65677			HTTPStatusCode: res.StatusCode,
65678		},
65679	}
65680	target := &ret
65681	if err := gensupport.DecodeResponse(target, res); err != nil {
65682		return nil, err
65683	}
65684	return ret, nil
65685	// {
65686	//   "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.",
65687	//   "httpMethod": "POST",
65688	//   "id": "compute.instanceGroupManagers.deleteInstances",
65689	//   "parameterOrder": [
65690	//     "project",
65691	//     "zone",
65692	//     "instanceGroupManager"
65693	//   ],
65694	//   "parameters": {
65695	//     "instanceGroupManager": {
65696	//       "description": "The name of the managed instance group.",
65697	//       "location": "path",
65698	//       "required": true,
65699	//       "type": "string"
65700	//     },
65701	//     "project": {
65702	//       "description": "Project ID for this request.",
65703	//       "location": "path",
65704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65705	//       "required": true,
65706	//       "type": "string"
65707	//     },
65708	//     "requestId": {
65709	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65710	//       "location": "query",
65711	//       "type": "string"
65712	//     },
65713	//     "zone": {
65714	//       "description": "The name of the zone where the managed instance group is located.",
65715	//       "location": "path",
65716	//       "required": true,
65717	//       "type": "string"
65718	//     }
65719	//   },
65720	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
65721	//   "request": {
65722	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
65723	//   },
65724	//   "response": {
65725	//     "$ref": "Operation"
65726	//   },
65727	//   "scopes": [
65728	//     "https://www.googleapis.com/auth/cloud-platform",
65729	//     "https://www.googleapis.com/auth/compute"
65730	//   ]
65731	// }
65732
65733}
65734
65735// method id "compute.instanceGroupManagers.get":
65736
65737type InstanceGroupManagersGetCall struct {
65738	s                    *Service
65739	project              string
65740	zone                 string
65741	instanceGroupManager string
65742	urlParams_           gensupport.URLParams
65743	ifNoneMatch_         string
65744	ctx_                 context.Context
65745	header_              http.Header
65746}
65747
65748// Get: Returns all of the details about the specified managed instance
65749// group. Gets a list of available managed instance groups by making a
65750// list() request.
65751func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
65752	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65753	c.project = project
65754	c.zone = zone
65755	c.instanceGroupManager = instanceGroupManager
65756	return c
65757}
65758
65759// Fields allows partial responses to be retrieved. See
65760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65761// for more information.
65762func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
65763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65764	return c
65765}
65766
65767// IfNoneMatch sets the optional parameter which makes the operation
65768// fail if the object's ETag matches the given value. This is useful for
65769// getting updates only after the object has changed since the last
65770// request. Use googleapi.IsNotModified to check whether the response
65771// error from Do is the result of In-None-Match.
65772func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
65773	c.ifNoneMatch_ = entityTag
65774	return c
65775}
65776
65777// Context sets the context to be used in this call's Do method. Any
65778// pending HTTP request will be aborted if the provided context is
65779// canceled.
65780func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
65781	c.ctx_ = ctx
65782	return c
65783}
65784
65785// Header returns an http.Header that can be modified by the caller to
65786// add HTTP headers to the request.
65787func (c *InstanceGroupManagersGetCall) Header() http.Header {
65788	if c.header_ == nil {
65789		c.header_ = make(http.Header)
65790	}
65791	return c.header_
65792}
65793
65794func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
65795	reqHeaders := make(http.Header)
65796	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65797	for k, v := range c.header_ {
65798		reqHeaders[k] = v
65799	}
65800	reqHeaders.Set("User-Agent", c.s.userAgent())
65801	if c.ifNoneMatch_ != "" {
65802		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65803	}
65804	var body io.Reader = nil
65805	c.urlParams_.Set("alt", alt)
65806	c.urlParams_.Set("prettyPrint", "false")
65807	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
65808	urls += "?" + c.urlParams_.Encode()
65809	req, err := http.NewRequest("GET", urls, body)
65810	if err != nil {
65811		return nil, err
65812	}
65813	req.Header = reqHeaders
65814	googleapi.Expand(req.URL, map[string]string{
65815		"project":              c.project,
65816		"zone":                 c.zone,
65817		"instanceGroupManager": c.instanceGroupManager,
65818	})
65819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65820}
65821
65822// Do executes the "compute.instanceGroupManagers.get" call.
65823// Exactly one of *InstanceGroupManager or error will be non-nil. Any
65824// non-2xx status code is an error. Response headers are in either
65825// *InstanceGroupManager.ServerResponse.Header or (if a response was
65826// returned at all) in error.(*googleapi.Error).Header. Use
65827// googleapi.IsNotModified to check whether the returned error was
65828// because http.StatusNotModified was returned.
65829func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
65830	gensupport.SetOptions(c.urlParams_, opts...)
65831	res, err := c.doRequest("json")
65832	if res != nil && res.StatusCode == http.StatusNotModified {
65833		if res.Body != nil {
65834			res.Body.Close()
65835		}
65836		return nil, &googleapi.Error{
65837			Code:   res.StatusCode,
65838			Header: res.Header,
65839		}
65840	}
65841	if err != nil {
65842		return nil, err
65843	}
65844	defer googleapi.CloseBody(res)
65845	if err := googleapi.CheckResponse(res); err != nil {
65846		return nil, err
65847	}
65848	ret := &InstanceGroupManager{
65849		ServerResponse: googleapi.ServerResponse{
65850			Header:         res.Header,
65851			HTTPStatusCode: res.StatusCode,
65852		},
65853	}
65854	target := &ret
65855	if err := gensupport.DecodeResponse(target, res); err != nil {
65856		return nil, err
65857	}
65858	return ret, nil
65859	// {
65860	//   "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.",
65861	//   "httpMethod": "GET",
65862	//   "id": "compute.instanceGroupManagers.get",
65863	//   "parameterOrder": [
65864	//     "project",
65865	//     "zone",
65866	//     "instanceGroupManager"
65867	//   ],
65868	//   "parameters": {
65869	//     "instanceGroupManager": {
65870	//       "description": "The name of the managed instance group.",
65871	//       "location": "path",
65872	//       "required": true,
65873	//       "type": "string"
65874	//     },
65875	//     "project": {
65876	//       "description": "Project ID for this request.",
65877	//       "location": "path",
65878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65879	//       "required": true,
65880	//       "type": "string"
65881	//     },
65882	//     "zone": {
65883	//       "description": "The name of the zone where the managed instance group is located.",
65884	//       "location": "path",
65885	//       "required": true,
65886	//       "type": "string"
65887	//     }
65888	//   },
65889	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
65890	//   "response": {
65891	//     "$ref": "InstanceGroupManager"
65892	//   },
65893	//   "scopes": [
65894	//     "https://www.googleapis.com/auth/cloud-platform",
65895	//     "https://www.googleapis.com/auth/compute",
65896	//     "https://www.googleapis.com/auth/compute.readonly"
65897	//   ]
65898	// }
65899
65900}
65901
65902// method id "compute.instanceGroupManagers.insert":
65903
65904type InstanceGroupManagersInsertCall struct {
65905	s                    *Service
65906	project              string
65907	zone                 string
65908	instancegroupmanager *InstanceGroupManager
65909	urlParams_           gensupport.URLParams
65910	ctx_                 context.Context
65911	header_              http.Header
65912}
65913
65914// Insert: Creates a managed instance group using the information that
65915// you specify in the request. After the group is created, instances in
65916// the group are created using the specified instance template. This
65917// operation is marked as DONE when the group is created even if the
65918// instances in the group have not yet been created. You must separately
65919// verify the status of the individual instances with the
65920// listmanagedinstances method.
65921//
65922// A managed instance group can have up to 1000 VM instances per group.
65923// Please contact Cloud Support if you need an increase in this limit.
65924func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
65925	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65926	c.project = project
65927	c.zone = zone
65928	c.instancegroupmanager = instancegroupmanager
65929	return c
65930}
65931
65932// RequestId sets the optional parameter "requestId": An optional
65933// request ID to identify requests. Specify a unique request ID so that
65934// if you must retry your request, the server will know to ignore the
65935// request if it has already been completed.
65936//
65937// For example, consider a situation where you make an initial request
65938// and the request times out. If you make the request again with the
65939// same request ID, the server can check if original operation with the
65940// same request ID was received, and if so, will ignore the second
65941// request. This prevents clients from accidentally creating duplicate
65942// commitments.
65943//
65944// The request ID must be a valid UUID with the exception that zero UUID
65945// is not supported (00000000-0000-0000-0000-000000000000).
65946func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
65947	c.urlParams_.Set("requestId", requestId)
65948	return c
65949}
65950
65951// Fields allows partial responses to be retrieved. See
65952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65953// for more information.
65954func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
65955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65956	return c
65957}
65958
65959// Context sets the context to be used in this call's Do method. Any
65960// pending HTTP request will be aborted if the provided context is
65961// canceled.
65962func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
65963	c.ctx_ = ctx
65964	return c
65965}
65966
65967// Header returns an http.Header that can be modified by the caller to
65968// add HTTP headers to the request.
65969func (c *InstanceGroupManagersInsertCall) Header() http.Header {
65970	if c.header_ == nil {
65971		c.header_ = make(http.Header)
65972	}
65973	return c.header_
65974}
65975
65976func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
65977	reqHeaders := make(http.Header)
65978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65979	for k, v := range c.header_ {
65980		reqHeaders[k] = v
65981	}
65982	reqHeaders.Set("User-Agent", c.s.userAgent())
65983	var body io.Reader = nil
65984	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
65985	if err != nil {
65986		return nil, err
65987	}
65988	reqHeaders.Set("Content-Type", "application/json")
65989	c.urlParams_.Set("alt", alt)
65990	c.urlParams_.Set("prettyPrint", "false")
65991	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
65992	urls += "?" + c.urlParams_.Encode()
65993	req, err := http.NewRequest("POST", urls, body)
65994	if err != nil {
65995		return nil, err
65996	}
65997	req.Header = reqHeaders
65998	googleapi.Expand(req.URL, map[string]string{
65999		"project": c.project,
66000		"zone":    c.zone,
66001	})
66002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66003}
66004
66005// Do executes the "compute.instanceGroupManagers.insert" call.
66006// Exactly one of *Operation or error will be non-nil. Any non-2xx
66007// status code is an error. Response headers are in either
66008// *Operation.ServerResponse.Header or (if a response was returned at
66009// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66010// to check whether the returned error was because
66011// http.StatusNotModified was returned.
66012func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66013	gensupport.SetOptions(c.urlParams_, opts...)
66014	res, err := c.doRequest("json")
66015	if res != nil && res.StatusCode == http.StatusNotModified {
66016		if res.Body != nil {
66017			res.Body.Close()
66018		}
66019		return nil, &googleapi.Error{
66020			Code:   res.StatusCode,
66021			Header: res.Header,
66022		}
66023	}
66024	if err != nil {
66025		return nil, err
66026	}
66027	defer googleapi.CloseBody(res)
66028	if err := googleapi.CheckResponse(res); err != nil {
66029		return nil, err
66030	}
66031	ret := &Operation{
66032		ServerResponse: googleapi.ServerResponse{
66033			Header:         res.Header,
66034			HTTPStatusCode: res.StatusCode,
66035		},
66036	}
66037	target := &ret
66038	if err := gensupport.DecodeResponse(target, res); err != nil {
66039		return nil, err
66040	}
66041	return ret, nil
66042	// {
66043	//   "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.",
66044	//   "httpMethod": "POST",
66045	//   "id": "compute.instanceGroupManagers.insert",
66046	//   "parameterOrder": [
66047	//     "project",
66048	//     "zone"
66049	//   ],
66050	//   "parameters": {
66051	//     "project": {
66052	//       "description": "Project ID for this request.",
66053	//       "location": "path",
66054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66055	//       "required": true,
66056	//       "type": "string"
66057	//     },
66058	//     "requestId": {
66059	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66060	//       "location": "query",
66061	//       "type": "string"
66062	//     },
66063	//     "zone": {
66064	//       "description": "The name of the zone where you want to create the managed instance group.",
66065	//       "location": "path",
66066	//       "required": true,
66067	//       "type": "string"
66068	//     }
66069	//   },
66070	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
66071	//   "request": {
66072	//     "$ref": "InstanceGroupManager"
66073	//   },
66074	//   "response": {
66075	//     "$ref": "Operation"
66076	//   },
66077	//   "scopes": [
66078	//     "https://www.googleapis.com/auth/cloud-platform",
66079	//     "https://www.googleapis.com/auth/compute"
66080	//   ]
66081	// }
66082
66083}
66084
66085// method id "compute.instanceGroupManagers.list":
66086
66087type InstanceGroupManagersListCall struct {
66088	s            *Service
66089	project      string
66090	zone         string
66091	urlParams_   gensupport.URLParams
66092	ifNoneMatch_ string
66093	ctx_         context.Context
66094	header_      http.Header
66095}
66096
66097// List: Retrieves a list of managed instance groups that are contained
66098// within the specified project and zone.
66099func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
66100	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66101	c.project = project
66102	c.zone = zone
66103	return c
66104}
66105
66106// Filter sets the optional parameter "filter": A filter expression that
66107// filters resources listed in the response. The expression must specify
66108// the field name, a comparison operator, and the value that you want to
66109// use for filtering. The value must be a string, a number, or a
66110// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66111// `<`.
66112//
66113// For example, if you are filtering Compute Engine instances, you can
66114// exclude instances named `example-instance` by specifying `name !=
66115// example-instance`.
66116//
66117// You can also filter nested fields. For example, you could specify
66118// `scheduling.automaticRestart = false` to include instances only if
66119// they are not scheduled for automatic restarts. You can use filtering
66120// on nested fields to filter based on resource labels.
66121//
66122// To filter on multiple expressions, provide each separate expression
66123// within parentheses. For example: ``` (scheduling.automaticRestart =
66124// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
66125// is an `AND` expression. However, you can include `AND` and `OR`
66126// expressions explicitly. For example: ``` (cpuPlatform = "Intel
66127// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
66128// (scheduling.automaticRestart = true) ```
66129func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
66130	c.urlParams_.Set("filter", filter)
66131	return c
66132}
66133
66134// MaxResults sets the optional parameter "maxResults": The maximum
66135// number of results per page that should be returned. If the number of
66136// available results is larger than `maxResults`, Compute Engine returns
66137// a `nextPageToken` that can be used to get the next page of results in
66138// subsequent list requests. Acceptable values are `0` to `500`,
66139// inclusive. (Default: `500`)
66140func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
66141	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66142	return c
66143}
66144
66145// OrderBy sets the optional parameter "orderBy": Sorts list results by
66146// a certain order. By default, results are returned in alphanumerical
66147// order based on the resource name.
66148//
66149// You can also sort results in descending order based on the creation
66150// timestamp using `orderBy="creationTimestamp desc". This sorts
66151// results based on the `creationTimestamp` field in reverse
66152// chronological order (newest result first). Use this to sort resources
66153// like operations so that the newest operation is returned
66154// first.
66155//
66156// Currently, only sorting by `name` or `creationTimestamp desc` is
66157// supported.
66158func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
66159	c.urlParams_.Set("orderBy", orderBy)
66160	return c
66161}
66162
66163// PageToken sets the optional parameter "pageToken": Specifies a page
66164// token to use. Set `pageToken` to the `nextPageToken` returned by a
66165// previous list request to get the next page of results.
66166func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
66167	c.urlParams_.Set("pageToken", pageToken)
66168	return c
66169}
66170
66171// Fields allows partial responses to be retrieved. See
66172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66173// for more information.
66174func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
66175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66176	return c
66177}
66178
66179// IfNoneMatch sets the optional parameter which makes the operation
66180// fail if the object's ETag matches the given value. This is useful for
66181// getting updates only after the object has changed since the last
66182// request. Use googleapi.IsNotModified to check whether the response
66183// error from Do is the result of In-None-Match.
66184func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
66185	c.ifNoneMatch_ = entityTag
66186	return c
66187}
66188
66189// Context sets the context to be used in this call's Do method. Any
66190// pending HTTP request will be aborted if the provided context is
66191// canceled.
66192func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
66193	c.ctx_ = ctx
66194	return c
66195}
66196
66197// Header returns an http.Header that can be modified by the caller to
66198// add HTTP headers to the request.
66199func (c *InstanceGroupManagersListCall) Header() http.Header {
66200	if c.header_ == nil {
66201		c.header_ = make(http.Header)
66202	}
66203	return c.header_
66204}
66205
66206func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
66207	reqHeaders := make(http.Header)
66208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66209	for k, v := range c.header_ {
66210		reqHeaders[k] = v
66211	}
66212	reqHeaders.Set("User-Agent", c.s.userAgent())
66213	if c.ifNoneMatch_ != "" {
66214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66215	}
66216	var body io.Reader = nil
66217	c.urlParams_.Set("alt", alt)
66218	c.urlParams_.Set("prettyPrint", "false")
66219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
66220	urls += "?" + c.urlParams_.Encode()
66221	req, err := http.NewRequest("GET", urls, body)
66222	if err != nil {
66223		return nil, err
66224	}
66225	req.Header = reqHeaders
66226	googleapi.Expand(req.URL, map[string]string{
66227		"project": c.project,
66228		"zone":    c.zone,
66229	})
66230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66231}
66232
66233// Do executes the "compute.instanceGroupManagers.list" call.
66234// Exactly one of *InstanceGroupManagerList or error will be non-nil.
66235// Any non-2xx status code is an error. Response headers are in either
66236// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
66237// returned at all) in error.(*googleapi.Error).Header. Use
66238// googleapi.IsNotModified to check whether the returned error was
66239// because http.StatusNotModified was returned.
66240func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
66241	gensupport.SetOptions(c.urlParams_, opts...)
66242	res, err := c.doRequest("json")
66243	if res != nil && res.StatusCode == http.StatusNotModified {
66244		if res.Body != nil {
66245			res.Body.Close()
66246		}
66247		return nil, &googleapi.Error{
66248			Code:   res.StatusCode,
66249			Header: res.Header,
66250		}
66251	}
66252	if err != nil {
66253		return nil, err
66254	}
66255	defer googleapi.CloseBody(res)
66256	if err := googleapi.CheckResponse(res); err != nil {
66257		return nil, err
66258	}
66259	ret := &InstanceGroupManagerList{
66260		ServerResponse: googleapi.ServerResponse{
66261			Header:         res.Header,
66262			HTTPStatusCode: res.StatusCode,
66263		},
66264	}
66265	target := &ret
66266	if err := gensupport.DecodeResponse(target, res); err != nil {
66267		return nil, err
66268	}
66269	return ret, nil
66270	// {
66271	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
66272	//   "httpMethod": "GET",
66273	//   "id": "compute.instanceGroupManagers.list",
66274	//   "parameterOrder": [
66275	//     "project",
66276	//     "zone"
66277	//   ],
66278	//   "parameters": {
66279	//     "filter": {
66280	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
66281	//       "location": "query",
66282	//       "type": "string"
66283	//     },
66284	//     "maxResults": {
66285	//       "default": "500",
66286	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66287	//       "format": "uint32",
66288	//       "location": "query",
66289	//       "minimum": "0",
66290	//       "type": "integer"
66291	//     },
66292	//     "orderBy": {
66293	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
66294	//       "location": "query",
66295	//       "type": "string"
66296	//     },
66297	//     "pageToken": {
66298	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66299	//       "location": "query",
66300	//       "type": "string"
66301	//     },
66302	//     "project": {
66303	//       "description": "Project ID for this request.",
66304	//       "location": "path",
66305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66306	//       "required": true,
66307	//       "type": "string"
66308	//     },
66309	//     "zone": {
66310	//       "description": "The name of the zone where the managed instance group is located.",
66311	//       "location": "path",
66312	//       "required": true,
66313	//       "type": "string"
66314	//     }
66315	//   },
66316	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
66317	//   "response": {
66318	//     "$ref": "InstanceGroupManagerList"
66319	//   },
66320	//   "scopes": [
66321	//     "https://www.googleapis.com/auth/cloud-platform",
66322	//     "https://www.googleapis.com/auth/compute",
66323	//     "https://www.googleapis.com/auth/compute.readonly"
66324	//   ]
66325	// }
66326
66327}
66328
66329// Pages invokes f for each page of results.
66330// A non-nil error returned from f will halt the iteration.
66331// The provided context supersedes any context provided to the Context method.
66332func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
66333	c.ctx_ = ctx
66334	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66335	for {
66336		x, err := c.Do()
66337		if err != nil {
66338			return err
66339		}
66340		if err := f(x); err != nil {
66341			return err
66342		}
66343		if x.NextPageToken == "" {
66344			return nil
66345		}
66346		c.PageToken(x.NextPageToken)
66347	}
66348}
66349
66350// method id "compute.instanceGroupManagers.listErrors":
66351
66352type InstanceGroupManagersListErrorsCall struct {
66353	s                    *Service
66354	project              string
66355	zone                 string
66356	instanceGroupManager string
66357	urlParams_           gensupport.URLParams
66358	ifNoneMatch_         string
66359	ctx_                 context.Context
66360	header_              http.Header
66361}
66362
66363// ListErrors: Lists all errors thrown by actions on instances for a
66364// given managed instance group. The filter and orderBy query parameters
66365// are not supported.
66366func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
66367	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66368	c.project = project
66369	c.zone = zone
66370	c.instanceGroupManager = instanceGroupManager
66371	return c
66372}
66373
66374// Filter sets the optional parameter "filter": A filter expression that
66375// filters resources listed in the response. The expression must specify
66376// the field name, a comparison operator, and the value that you want to
66377// use for filtering. The value must be a string, a number, or a
66378// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66379// `<`.
66380//
66381// For example, if you are filtering Compute Engine instances, you can
66382// exclude instances named `example-instance` by specifying `name !=
66383// example-instance`.
66384//
66385// You can also filter nested fields. For example, you could specify
66386// `scheduling.automaticRestart = false` to include instances only if
66387// they are not scheduled for automatic restarts. You can use filtering
66388// on nested fields to filter based on resource labels.
66389//
66390// To filter on multiple expressions, provide each separate expression
66391// within parentheses. For example: ``` (scheduling.automaticRestart =
66392// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
66393// is an `AND` expression. However, you can include `AND` and `OR`
66394// expressions explicitly. For example: ``` (cpuPlatform = "Intel
66395// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
66396// (scheduling.automaticRestart = true) ```
66397func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
66398	c.urlParams_.Set("filter", filter)
66399	return c
66400}
66401
66402// MaxResults sets the optional parameter "maxResults": The maximum
66403// number of results per page that should be returned. If the number of
66404// available results is larger than `maxResults`, Compute Engine returns
66405// a `nextPageToken` that can be used to get the next page of results in
66406// subsequent list requests. Acceptable values are `0` to `500`,
66407// inclusive. (Default: `500`)
66408func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
66409	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66410	return c
66411}
66412
66413// OrderBy sets the optional parameter "orderBy": Sorts list results by
66414// a certain order. By default, results are returned in alphanumerical
66415// order based on the resource name.
66416//
66417// You can also sort results in descending order based on the creation
66418// timestamp using `orderBy="creationTimestamp desc". This sorts
66419// results based on the `creationTimestamp` field in reverse
66420// chronological order (newest result first). Use this to sort resources
66421// like operations so that the newest operation is returned
66422// first.
66423//
66424// Currently, only sorting by `name` or `creationTimestamp desc` is
66425// supported.
66426func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
66427	c.urlParams_.Set("orderBy", orderBy)
66428	return c
66429}
66430
66431// PageToken sets the optional parameter "pageToken": Specifies a page
66432// token to use. Set `pageToken` to the `nextPageToken` returned by a
66433// previous list request to get the next page of results.
66434func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
66435	c.urlParams_.Set("pageToken", pageToken)
66436	return c
66437}
66438
66439// Fields allows partial responses to be retrieved. See
66440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66441// for more information.
66442func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
66443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66444	return c
66445}
66446
66447// IfNoneMatch sets the optional parameter which makes the operation
66448// fail if the object's ETag matches the given value. This is useful for
66449// getting updates only after the object has changed since the last
66450// request. Use googleapi.IsNotModified to check whether the response
66451// error from Do is the result of In-None-Match.
66452func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
66453	c.ifNoneMatch_ = entityTag
66454	return c
66455}
66456
66457// Context sets the context to be used in this call's Do method. Any
66458// pending HTTP request will be aborted if the provided context is
66459// canceled.
66460func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
66461	c.ctx_ = ctx
66462	return c
66463}
66464
66465// Header returns an http.Header that can be modified by the caller to
66466// add HTTP headers to the request.
66467func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
66468	if c.header_ == nil {
66469		c.header_ = make(http.Header)
66470	}
66471	return c.header_
66472}
66473
66474func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
66475	reqHeaders := make(http.Header)
66476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66477	for k, v := range c.header_ {
66478		reqHeaders[k] = v
66479	}
66480	reqHeaders.Set("User-Agent", c.s.userAgent())
66481	if c.ifNoneMatch_ != "" {
66482		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66483	}
66484	var body io.Reader = nil
66485	c.urlParams_.Set("alt", alt)
66486	c.urlParams_.Set("prettyPrint", "false")
66487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
66488	urls += "?" + c.urlParams_.Encode()
66489	req, err := http.NewRequest("GET", urls, body)
66490	if err != nil {
66491		return nil, err
66492	}
66493	req.Header = reqHeaders
66494	googleapi.Expand(req.URL, map[string]string{
66495		"project":              c.project,
66496		"zone":                 c.zone,
66497		"instanceGroupManager": c.instanceGroupManager,
66498	})
66499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66500}
66501
66502// Do executes the "compute.instanceGroupManagers.listErrors" call.
66503// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
66504// be non-nil. Any non-2xx status code is an error. Response headers are
66505// in either
66506// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
66507// a response was returned at all) in error.(*googleapi.Error).Header.
66508// Use googleapi.IsNotModified to check whether the returned error was
66509// because http.StatusNotModified was returned.
66510func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
66511	gensupport.SetOptions(c.urlParams_, opts...)
66512	res, err := c.doRequest("json")
66513	if res != nil && res.StatusCode == http.StatusNotModified {
66514		if res.Body != nil {
66515			res.Body.Close()
66516		}
66517		return nil, &googleapi.Error{
66518			Code:   res.StatusCode,
66519			Header: res.Header,
66520		}
66521	}
66522	if err != nil {
66523		return nil, err
66524	}
66525	defer googleapi.CloseBody(res)
66526	if err := googleapi.CheckResponse(res); err != nil {
66527		return nil, err
66528	}
66529	ret := &InstanceGroupManagersListErrorsResponse{
66530		ServerResponse: googleapi.ServerResponse{
66531			Header:         res.Header,
66532			HTTPStatusCode: res.StatusCode,
66533		},
66534	}
66535	target := &ret
66536	if err := gensupport.DecodeResponse(target, res); err != nil {
66537		return nil, err
66538	}
66539	return ret, nil
66540	// {
66541	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.",
66542	//   "httpMethod": "GET",
66543	//   "id": "compute.instanceGroupManagers.listErrors",
66544	//   "parameterOrder": [
66545	//     "project",
66546	//     "zone",
66547	//     "instanceGroupManager"
66548	//   ],
66549	//   "parameters": {
66550	//     "filter": {
66551	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
66552	//       "location": "query",
66553	//       "type": "string"
66554	//     },
66555	//     "instanceGroupManager": {
66556	//       "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}.",
66557	//       "location": "path",
66558	//       "required": true,
66559	//       "type": "string"
66560	//     },
66561	//     "maxResults": {
66562	//       "default": "500",
66563	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66564	//       "format": "uint32",
66565	//       "location": "query",
66566	//       "minimum": "0",
66567	//       "type": "integer"
66568	//     },
66569	//     "orderBy": {
66570	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
66571	//       "location": "query",
66572	//       "type": "string"
66573	//     },
66574	//     "pageToken": {
66575	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66576	//       "location": "query",
66577	//       "type": "string"
66578	//     },
66579	//     "project": {
66580	//       "description": "Project ID for this request.",
66581	//       "location": "path",
66582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66583	//       "required": true,
66584	//       "type": "string"
66585	//     },
66586	//     "zone": {
66587	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
66588	//       "location": "path",
66589	//       "required": true,
66590	//       "type": "string"
66591	//     }
66592	//   },
66593	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
66594	//   "response": {
66595	//     "$ref": "InstanceGroupManagersListErrorsResponse"
66596	//   },
66597	//   "scopes": [
66598	//     "https://www.googleapis.com/auth/cloud-platform",
66599	//     "https://www.googleapis.com/auth/compute",
66600	//     "https://www.googleapis.com/auth/compute.readonly"
66601	//   ]
66602	// }
66603
66604}
66605
66606// Pages invokes f for each page of results.
66607// A non-nil error returned from f will halt the iteration.
66608// The provided context supersedes any context provided to the Context method.
66609func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
66610	c.ctx_ = ctx
66611	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66612	for {
66613		x, err := c.Do()
66614		if err != nil {
66615			return err
66616		}
66617		if err := f(x); err != nil {
66618			return err
66619		}
66620		if x.NextPageToken == "" {
66621			return nil
66622		}
66623		c.PageToken(x.NextPageToken)
66624	}
66625}
66626
66627// method id "compute.instanceGroupManagers.listManagedInstances":
66628
66629type InstanceGroupManagersListManagedInstancesCall struct {
66630	s                    *Service
66631	project              string
66632	zone                 string
66633	instanceGroupManager string
66634	urlParams_           gensupport.URLParams
66635	ctx_                 context.Context
66636	header_              http.Header
66637}
66638
66639// ListManagedInstances: Lists all of the instances in the managed
66640// instance group. Each instance in the list has a currentAction, which
66641// indicates the action that the managed instance group is performing on
66642// the instance. For example, if the group is still creating an
66643// instance, the currentAction is CREATING. If a previous action failed,
66644// the list displays the errors for that failed action. The orderBy
66645// query parameter is not supported.
66646func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
66647	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66648	c.project = project
66649	c.zone = zone
66650	c.instanceGroupManager = instanceGroupManager
66651	return c
66652}
66653
66654// Filter sets the optional parameter "filter": A filter expression that
66655// filters resources listed in the response. The expression must specify
66656// the field name, a comparison operator, and the value that you want to
66657// use for filtering. The value must be a string, a number, or a
66658// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66659// `<`.
66660//
66661// For example, if you are filtering Compute Engine instances, you can
66662// exclude instances named `example-instance` by specifying `name !=
66663// example-instance`.
66664//
66665// You can also filter nested fields. For example, you could specify
66666// `scheduling.automaticRestart = false` to include instances only if
66667// they are not scheduled for automatic restarts. You can use filtering
66668// on nested fields to filter based on resource labels.
66669//
66670// To filter on multiple expressions, provide each separate expression
66671// within parentheses. For example: ``` (scheduling.automaticRestart =
66672// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
66673// is an `AND` expression. However, you can include `AND` and `OR`
66674// expressions explicitly. For example: ``` (cpuPlatform = "Intel
66675// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
66676// (scheduling.automaticRestart = true) ```
66677func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
66678	c.urlParams_.Set("filter", filter)
66679	return c
66680}
66681
66682// MaxResults sets the optional parameter "maxResults": The maximum
66683// number of results per page that should be returned. If the number of
66684// available results is larger than `maxResults`, Compute Engine returns
66685// a `nextPageToken` that can be used to get the next page of results in
66686// subsequent list requests. Acceptable values are `0` to `500`,
66687// inclusive. (Default: `500`)
66688func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
66689	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66690	return c
66691}
66692
66693// OrderBy sets the optional parameter "orderBy": Sorts list results by
66694// a certain order. By default, results are returned in alphanumerical
66695// order based on the resource name.
66696//
66697// You can also sort results in descending order based on the creation
66698// timestamp using `orderBy="creationTimestamp desc". This sorts
66699// results based on the `creationTimestamp` field in reverse
66700// chronological order (newest result first). Use this to sort resources
66701// like operations so that the newest operation is returned
66702// first.
66703//
66704// Currently, only sorting by `name` or `creationTimestamp desc` is
66705// supported.
66706func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
66707	c.urlParams_.Set("orderBy", orderBy)
66708	return c
66709}
66710
66711// PageToken sets the optional parameter "pageToken": Specifies a page
66712// token to use. Set `pageToken` to the `nextPageToken` returned by a
66713// previous list request to get the next page of results.
66714func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
66715	c.urlParams_.Set("pageToken", pageToken)
66716	return c
66717}
66718
66719// Fields allows partial responses to be retrieved. See
66720// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66721// for more information.
66722func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
66723	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66724	return c
66725}
66726
66727// Context sets the context to be used in this call's Do method. Any
66728// pending HTTP request will be aborted if the provided context is
66729// canceled.
66730func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
66731	c.ctx_ = ctx
66732	return c
66733}
66734
66735// Header returns an http.Header that can be modified by the caller to
66736// add HTTP headers to the request.
66737func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
66738	if c.header_ == nil {
66739		c.header_ = make(http.Header)
66740	}
66741	return c.header_
66742}
66743
66744func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
66745	reqHeaders := make(http.Header)
66746	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66747	for k, v := range c.header_ {
66748		reqHeaders[k] = v
66749	}
66750	reqHeaders.Set("User-Agent", c.s.userAgent())
66751	var body io.Reader = nil
66752	c.urlParams_.Set("alt", alt)
66753	c.urlParams_.Set("prettyPrint", "false")
66754	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
66755	urls += "?" + c.urlParams_.Encode()
66756	req, err := http.NewRequest("POST", urls, body)
66757	if err != nil {
66758		return nil, err
66759	}
66760	req.Header = reqHeaders
66761	googleapi.Expand(req.URL, map[string]string{
66762		"project":              c.project,
66763		"zone":                 c.zone,
66764		"instanceGroupManager": c.instanceGroupManager,
66765	})
66766	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66767}
66768
66769// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
66770// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
66771// error will be non-nil. Any non-2xx status code is an error. Response
66772// headers are in either
66773// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
66774// er or (if a response was returned at all) in
66775// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
66776// whether the returned error was because http.StatusNotModified was
66777// returned.
66778func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
66779	gensupport.SetOptions(c.urlParams_, opts...)
66780	res, err := c.doRequest("json")
66781	if res != nil && res.StatusCode == http.StatusNotModified {
66782		if res.Body != nil {
66783			res.Body.Close()
66784		}
66785		return nil, &googleapi.Error{
66786			Code:   res.StatusCode,
66787			Header: res.Header,
66788		}
66789	}
66790	if err != nil {
66791		return nil, err
66792	}
66793	defer googleapi.CloseBody(res)
66794	if err := googleapi.CheckResponse(res); err != nil {
66795		return nil, err
66796	}
66797	ret := &InstanceGroupManagersListManagedInstancesResponse{
66798		ServerResponse: googleapi.ServerResponse{
66799			Header:         res.Header,
66800			HTTPStatusCode: res.StatusCode,
66801		},
66802	}
66803	target := &ret
66804	if err := gensupport.DecodeResponse(target, res); err != nil {
66805		return nil, err
66806	}
66807	return ret, nil
66808	// {
66809	//   "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.",
66810	//   "httpMethod": "POST",
66811	//   "id": "compute.instanceGroupManagers.listManagedInstances",
66812	//   "parameterOrder": [
66813	//     "project",
66814	//     "zone",
66815	//     "instanceGroupManager"
66816	//   ],
66817	//   "parameters": {
66818	//     "filter": {
66819	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
66820	//       "location": "query",
66821	//       "type": "string"
66822	//     },
66823	//     "instanceGroupManager": {
66824	//       "description": "The name of the managed instance group.",
66825	//       "location": "path",
66826	//       "required": true,
66827	//       "type": "string"
66828	//     },
66829	//     "maxResults": {
66830	//       "default": "500",
66831	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66832	//       "format": "uint32",
66833	//       "location": "query",
66834	//       "minimum": "0",
66835	//       "type": "integer"
66836	//     },
66837	//     "orderBy": {
66838	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
66839	//       "location": "query",
66840	//       "type": "string"
66841	//     },
66842	//     "pageToken": {
66843	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66844	//       "location": "query",
66845	//       "type": "string"
66846	//     },
66847	//     "project": {
66848	//       "description": "Project ID for this request.",
66849	//       "location": "path",
66850	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66851	//       "required": true,
66852	//       "type": "string"
66853	//     },
66854	//     "zone": {
66855	//       "description": "The name of the zone where the managed instance group is located.",
66856	//       "location": "path",
66857	//       "required": true,
66858	//       "type": "string"
66859	//     }
66860	//   },
66861	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
66862	//   "response": {
66863	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
66864	//   },
66865	//   "scopes": [
66866	//     "https://www.googleapis.com/auth/cloud-platform",
66867	//     "https://www.googleapis.com/auth/compute",
66868	//     "https://www.googleapis.com/auth/compute.readonly"
66869	//   ]
66870	// }
66871
66872}
66873
66874// Pages invokes f for each page of results.
66875// A non-nil error returned from f will halt the iteration.
66876// The provided context supersedes any context provided to the Context method.
66877func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
66878	c.ctx_ = ctx
66879	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66880	for {
66881		x, err := c.Do()
66882		if err != nil {
66883			return err
66884		}
66885		if err := f(x); err != nil {
66886			return err
66887		}
66888		if x.NextPageToken == "" {
66889			return nil
66890		}
66891		c.PageToken(x.NextPageToken)
66892	}
66893}
66894
66895// method id "compute.instanceGroupManagers.patch":
66896
66897type InstanceGroupManagersPatchCall struct {
66898	s                    *Service
66899	project              string
66900	zone                 string
66901	instanceGroupManager string
66902	instancegroupmanager *InstanceGroupManager
66903	urlParams_           gensupport.URLParams
66904	ctx_                 context.Context
66905	header_              http.Header
66906}
66907
66908// Patch: Updates a managed instance group using the information that
66909// you specify in the request. This operation is marked as DONE when the
66910// group is patched even if the instances in the group are still in the
66911// process of being patched. You must separately verify the status of
66912// the individual instances with the listManagedInstances method. This
66913// method supports PATCH semantics and uses the JSON merge patch format
66914// and processing rules.
66915func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
66916	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66917	c.project = project
66918	c.zone = zone
66919	c.instanceGroupManager = instanceGroupManager
66920	c.instancegroupmanager = instancegroupmanager
66921	return c
66922}
66923
66924// RequestId sets the optional parameter "requestId": An optional
66925// request ID to identify requests. Specify a unique request ID so that
66926// if you must retry your request, the server will know to ignore the
66927// request if it has already been completed.
66928//
66929// For example, consider a situation where you make an initial request
66930// and the request times out. If you make the request again with the
66931// same request ID, the server can check if original operation with the
66932// same request ID was received, and if so, will ignore the second
66933// request. This prevents clients from accidentally creating duplicate
66934// commitments.
66935//
66936// The request ID must be a valid UUID with the exception that zero UUID
66937// is not supported (00000000-0000-0000-0000-000000000000).
66938func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
66939	c.urlParams_.Set("requestId", requestId)
66940	return c
66941}
66942
66943// Fields allows partial responses to be retrieved. See
66944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66945// for more information.
66946func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
66947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66948	return c
66949}
66950
66951// Context sets the context to be used in this call's Do method. Any
66952// pending HTTP request will be aborted if the provided context is
66953// canceled.
66954func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
66955	c.ctx_ = ctx
66956	return c
66957}
66958
66959// Header returns an http.Header that can be modified by the caller to
66960// add HTTP headers to the request.
66961func (c *InstanceGroupManagersPatchCall) Header() http.Header {
66962	if c.header_ == nil {
66963		c.header_ = make(http.Header)
66964	}
66965	return c.header_
66966}
66967
66968func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
66969	reqHeaders := make(http.Header)
66970	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66971	for k, v := range c.header_ {
66972		reqHeaders[k] = v
66973	}
66974	reqHeaders.Set("User-Agent", c.s.userAgent())
66975	var body io.Reader = nil
66976	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
66977	if err != nil {
66978		return nil, err
66979	}
66980	reqHeaders.Set("Content-Type", "application/json")
66981	c.urlParams_.Set("alt", alt)
66982	c.urlParams_.Set("prettyPrint", "false")
66983	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
66984	urls += "?" + c.urlParams_.Encode()
66985	req, err := http.NewRequest("PATCH", urls, body)
66986	if err != nil {
66987		return nil, err
66988	}
66989	req.Header = reqHeaders
66990	googleapi.Expand(req.URL, map[string]string{
66991		"project":              c.project,
66992		"zone":                 c.zone,
66993		"instanceGroupManager": c.instanceGroupManager,
66994	})
66995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66996}
66997
66998// Do executes the "compute.instanceGroupManagers.patch" call.
66999// Exactly one of *Operation or error will be non-nil. Any non-2xx
67000// status code is an error. Response headers are in either
67001// *Operation.ServerResponse.Header or (if a response was returned at
67002// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67003// to check whether the returned error was because
67004// http.StatusNotModified was returned.
67005func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67006	gensupport.SetOptions(c.urlParams_, opts...)
67007	res, err := c.doRequest("json")
67008	if res != nil && res.StatusCode == http.StatusNotModified {
67009		if res.Body != nil {
67010			res.Body.Close()
67011		}
67012		return nil, &googleapi.Error{
67013			Code:   res.StatusCode,
67014			Header: res.Header,
67015		}
67016	}
67017	if err != nil {
67018		return nil, err
67019	}
67020	defer googleapi.CloseBody(res)
67021	if err := googleapi.CheckResponse(res); err != nil {
67022		return nil, err
67023	}
67024	ret := &Operation{
67025		ServerResponse: googleapi.ServerResponse{
67026			Header:         res.Header,
67027			HTTPStatusCode: res.StatusCode,
67028		},
67029	}
67030	target := &ret
67031	if err := gensupport.DecodeResponse(target, res); err != nil {
67032		return nil, err
67033	}
67034	return ret, nil
67035	// {
67036	//   "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.",
67037	//   "httpMethod": "PATCH",
67038	//   "id": "compute.instanceGroupManagers.patch",
67039	//   "parameterOrder": [
67040	//     "project",
67041	//     "zone",
67042	//     "instanceGroupManager"
67043	//   ],
67044	//   "parameters": {
67045	//     "instanceGroupManager": {
67046	//       "description": "The name of the instance group manager.",
67047	//       "location": "path",
67048	//       "required": true,
67049	//       "type": "string"
67050	//     },
67051	//     "project": {
67052	//       "description": "Project ID for this request.",
67053	//       "location": "path",
67054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67055	//       "required": true,
67056	//       "type": "string"
67057	//     },
67058	//     "requestId": {
67059	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67060	//       "location": "query",
67061	//       "type": "string"
67062	//     },
67063	//     "zone": {
67064	//       "description": "The name of the zone where you want to create the managed instance group.",
67065	//       "location": "path",
67066	//       "required": true,
67067	//       "type": "string"
67068	//     }
67069	//   },
67070	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
67071	//   "request": {
67072	//     "$ref": "InstanceGroupManager"
67073	//   },
67074	//   "response": {
67075	//     "$ref": "Operation"
67076	//   },
67077	//   "scopes": [
67078	//     "https://www.googleapis.com/auth/cloud-platform",
67079	//     "https://www.googleapis.com/auth/compute"
67080	//   ]
67081	// }
67082
67083}
67084
67085// method id "compute.instanceGroupManagers.recreateInstances":
67086
67087type InstanceGroupManagersRecreateInstancesCall struct {
67088	s                                             *Service
67089	project                                       string
67090	zone                                          string
67091	instanceGroupManager                          string
67092	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
67093	urlParams_                                    gensupport.URLParams
67094	ctx_                                          context.Context
67095	header_                                       http.Header
67096}
67097
67098// RecreateInstances: Flags the specified instances in the managed
67099// instance group to be immediately recreated. The instances are deleted
67100// and recreated using the current instance template for the managed
67101// instance group. This operation is marked as DONE when the flag is set
67102// even if the instances have not yet been recreated. You must
67103// separately verify the status of the recreating action with the
67104// listmanagedinstances method.
67105//
67106// If the group is part of a backend service that has enabled connection
67107// draining, it can take up to 60 seconds after the connection draining
67108// duration has elapsed before the VM instance is removed or
67109// deleted.
67110//
67111// You can specify a maximum of 1000 instances with this method per
67112// request.
67113func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
67114	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67115	c.project = project
67116	c.zone = zone
67117	c.instanceGroupManager = instanceGroupManager
67118	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
67119	return c
67120}
67121
67122// RequestId sets the optional parameter "requestId": An optional
67123// request ID to identify requests. Specify a unique request ID so that
67124// if you must retry your request, the server will know to ignore the
67125// request if it has already been completed.
67126//
67127// For example, consider a situation where you make an initial request
67128// and the request times out. If you make the request again with the
67129// same request ID, the server can check if original operation with the
67130// same request ID was received, and if so, will ignore the second
67131// request. This prevents clients from accidentally creating duplicate
67132// commitments.
67133//
67134// The request ID must be a valid UUID with the exception that zero UUID
67135// is not supported (00000000-0000-0000-0000-000000000000).
67136func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
67137	c.urlParams_.Set("requestId", requestId)
67138	return c
67139}
67140
67141// Fields allows partial responses to be retrieved. See
67142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67143// for more information.
67144func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
67145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67146	return c
67147}
67148
67149// Context sets the context to be used in this call's Do method. Any
67150// pending HTTP request will be aborted if the provided context is
67151// canceled.
67152func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
67153	c.ctx_ = ctx
67154	return c
67155}
67156
67157// Header returns an http.Header that can be modified by the caller to
67158// add HTTP headers to the request.
67159func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
67160	if c.header_ == nil {
67161		c.header_ = make(http.Header)
67162	}
67163	return c.header_
67164}
67165
67166func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
67167	reqHeaders := make(http.Header)
67168	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67169	for k, v := range c.header_ {
67170		reqHeaders[k] = v
67171	}
67172	reqHeaders.Set("User-Agent", c.s.userAgent())
67173	var body io.Reader = nil
67174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
67175	if err != nil {
67176		return nil, err
67177	}
67178	reqHeaders.Set("Content-Type", "application/json")
67179	c.urlParams_.Set("alt", alt)
67180	c.urlParams_.Set("prettyPrint", "false")
67181	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
67182	urls += "?" + c.urlParams_.Encode()
67183	req, err := http.NewRequest("POST", urls, body)
67184	if err != nil {
67185		return nil, err
67186	}
67187	req.Header = reqHeaders
67188	googleapi.Expand(req.URL, map[string]string{
67189		"project":              c.project,
67190		"zone":                 c.zone,
67191		"instanceGroupManager": c.instanceGroupManager,
67192	})
67193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67194}
67195
67196// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
67197// Exactly one of *Operation or error will be non-nil. Any non-2xx
67198// status code is an error. Response headers are in either
67199// *Operation.ServerResponse.Header or (if a response was returned at
67200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67201// to check whether the returned error was because
67202// http.StatusNotModified was returned.
67203func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67204	gensupport.SetOptions(c.urlParams_, opts...)
67205	res, err := c.doRequest("json")
67206	if res != nil && res.StatusCode == http.StatusNotModified {
67207		if res.Body != nil {
67208			res.Body.Close()
67209		}
67210		return nil, &googleapi.Error{
67211			Code:   res.StatusCode,
67212			Header: res.Header,
67213		}
67214	}
67215	if err != nil {
67216		return nil, err
67217	}
67218	defer googleapi.CloseBody(res)
67219	if err := googleapi.CheckResponse(res); err != nil {
67220		return nil, err
67221	}
67222	ret := &Operation{
67223		ServerResponse: googleapi.ServerResponse{
67224			Header:         res.Header,
67225			HTTPStatusCode: res.StatusCode,
67226		},
67227	}
67228	target := &ret
67229	if err := gensupport.DecodeResponse(target, res); err != nil {
67230		return nil, err
67231	}
67232	return ret, nil
67233	// {
67234	//   "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.",
67235	//   "httpMethod": "POST",
67236	//   "id": "compute.instanceGroupManagers.recreateInstances",
67237	//   "parameterOrder": [
67238	//     "project",
67239	//     "zone",
67240	//     "instanceGroupManager"
67241	//   ],
67242	//   "parameters": {
67243	//     "instanceGroupManager": {
67244	//       "description": "The name of the managed instance group.",
67245	//       "location": "path",
67246	//       "required": true,
67247	//       "type": "string"
67248	//     },
67249	//     "project": {
67250	//       "description": "Project ID for this request.",
67251	//       "location": "path",
67252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67253	//       "required": true,
67254	//       "type": "string"
67255	//     },
67256	//     "requestId": {
67257	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67258	//       "location": "query",
67259	//       "type": "string"
67260	//     },
67261	//     "zone": {
67262	//       "description": "The name of the zone where the managed instance group is located.",
67263	//       "location": "path",
67264	//       "required": true,
67265	//       "type": "string"
67266	//     }
67267	//   },
67268	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
67269	//   "request": {
67270	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
67271	//   },
67272	//   "response": {
67273	//     "$ref": "Operation"
67274	//   },
67275	//   "scopes": [
67276	//     "https://www.googleapis.com/auth/cloud-platform",
67277	//     "https://www.googleapis.com/auth/compute"
67278	//   ]
67279	// }
67280
67281}
67282
67283// method id "compute.instanceGroupManagers.resize":
67284
67285type InstanceGroupManagersResizeCall struct {
67286	s                    *Service
67287	project              string
67288	zone                 string
67289	instanceGroupManager string
67290	urlParams_           gensupport.URLParams
67291	ctx_                 context.Context
67292	header_              http.Header
67293}
67294
67295// Resize: Resizes the managed instance group. If you increase the size,
67296// the group creates new instances using the current instance template.
67297// If you decrease the size, the group deletes instances. The resize
67298// operation is marked DONE when the resize actions are scheduled even
67299// if the group has not yet added or deleted any instances. You must
67300// separately verify the status of the creating or deleting actions with
67301// the listmanagedinstances method.
67302//
67303// When resizing down, the instance group arbitrarily chooses the order
67304// in which VMs are deleted. The group takes into account some VM
67305// attributes when making the selection including:
67306//
67307// + The status of the VM instance. + The health of the VM instance. +
67308// The instance template version the VM is based on. + For regional
67309// managed instance groups, the location of the VM instance.
67310//
67311// This list is subject to change.
67312//
67313// If the group is part of a backend service that has enabled connection
67314// draining, it can take up to 60 seconds after the connection draining
67315// duration has elapsed before the VM instance is removed or deleted.
67316func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
67317	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67318	c.project = project
67319	c.zone = zone
67320	c.instanceGroupManager = instanceGroupManager
67321	c.urlParams_.Set("size", fmt.Sprint(size))
67322	return c
67323}
67324
67325// RequestId sets the optional parameter "requestId": An optional
67326// request ID to identify requests. Specify a unique request ID so that
67327// if you must retry your request, the server will know to ignore the
67328// request if it has already been completed.
67329//
67330// For example, consider a situation where you make an initial request
67331// and the request times out. If you make the request again with the
67332// same request ID, the server can check if original operation with the
67333// same request ID was received, and if so, will ignore the second
67334// request. This prevents clients from accidentally creating duplicate
67335// commitments.
67336//
67337// The request ID must be a valid UUID with the exception that zero UUID
67338// is not supported (00000000-0000-0000-0000-000000000000).
67339func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
67340	c.urlParams_.Set("requestId", requestId)
67341	return c
67342}
67343
67344// Fields allows partial responses to be retrieved. See
67345// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67346// for more information.
67347func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
67348	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67349	return c
67350}
67351
67352// Context sets the context to be used in this call's Do method. Any
67353// pending HTTP request will be aborted if the provided context is
67354// canceled.
67355func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
67356	c.ctx_ = ctx
67357	return c
67358}
67359
67360// Header returns an http.Header that can be modified by the caller to
67361// add HTTP headers to the request.
67362func (c *InstanceGroupManagersResizeCall) Header() http.Header {
67363	if c.header_ == nil {
67364		c.header_ = make(http.Header)
67365	}
67366	return c.header_
67367}
67368
67369func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
67370	reqHeaders := make(http.Header)
67371	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67372	for k, v := range c.header_ {
67373		reqHeaders[k] = v
67374	}
67375	reqHeaders.Set("User-Agent", c.s.userAgent())
67376	var body io.Reader = nil
67377	c.urlParams_.Set("alt", alt)
67378	c.urlParams_.Set("prettyPrint", "false")
67379	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
67380	urls += "?" + c.urlParams_.Encode()
67381	req, err := http.NewRequest("POST", urls, body)
67382	if err != nil {
67383		return nil, err
67384	}
67385	req.Header = reqHeaders
67386	googleapi.Expand(req.URL, map[string]string{
67387		"project":              c.project,
67388		"zone":                 c.zone,
67389		"instanceGroupManager": c.instanceGroupManager,
67390	})
67391	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67392}
67393
67394// Do executes the "compute.instanceGroupManagers.resize" call.
67395// Exactly one of *Operation or error will be non-nil. Any non-2xx
67396// status code is an error. Response headers are in either
67397// *Operation.ServerResponse.Header or (if a response was returned at
67398// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67399// to check whether the returned error was because
67400// http.StatusNotModified was returned.
67401func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67402	gensupport.SetOptions(c.urlParams_, opts...)
67403	res, err := c.doRequest("json")
67404	if res != nil && res.StatusCode == http.StatusNotModified {
67405		if res.Body != nil {
67406			res.Body.Close()
67407		}
67408		return nil, &googleapi.Error{
67409			Code:   res.StatusCode,
67410			Header: res.Header,
67411		}
67412	}
67413	if err != nil {
67414		return nil, err
67415	}
67416	defer googleapi.CloseBody(res)
67417	if err := googleapi.CheckResponse(res); err != nil {
67418		return nil, err
67419	}
67420	ret := &Operation{
67421		ServerResponse: googleapi.ServerResponse{
67422			Header:         res.Header,
67423			HTTPStatusCode: res.StatusCode,
67424		},
67425	}
67426	target := &ret
67427	if err := gensupport.DecodeResponse(target, res); err != nil {
67428		return nil, err
67429	}
67430	return ret, nil
67431	// {
67432	//   "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.",
67433	//   "httpMethod": "POST",
67434	//   "id": "compute.instanceGroupManagers.resize",
67435	//   "parameterOrder": [
67436	//     "project",
67437	//     "zone",
67438	//     "instanceGroupManager",
67439	//     "size"
67440	//   ],
67441	//   "parameters": {
67442	//     "instanceGroupManager": {
67443	//       "description": "The name of the managed instance group.",
67444	//       "location": "path",
67445	//       "required": true,
67446	//       "type": "string"
67447	//     },
67448	//     "project": {
67449	//       "description": "Project ID for this request.",
67450	//       "location": "path",
67451	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67452	//       "required": true,
67453	//       "type": "string"
67454	//     },
67455	//     "requestId": {
67456	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67457	//       "location": "query",
67458	//       "type": "string"
67459	//     },
67460	//     "size": {
67461	//       "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.",
67462	//       "format": "int32",
67463	//       "location": "query",
67464	//       "required": true,
67465	//       "type": "integer"
67466	//     },
67467	//     "zone": {
67468	//       "description": "The name of the zone where the managed instance group is located.",
67469	//       "location": "path",
67470	//       "required": true,
67471	//       "type": "string"
67472	//     }
67473	//   },
67474	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
67475	//   "response": {
67476	//     "$ref": "Operation"
67477	//   },
67478	//   "scopes": [
67479	//     "https://www.googleapis.com/auth/cloud-platform",
67480	//     "https://www.googleapis.com/auth/compute"
67481	//   ]
67482	// }
67483
67484}
67485
67486// method id "compute.instanceGroupManagers.setInstanceTemplate":
67487
67488type InstanceGroupManagersSetInstanceTemplateCall struct {
67489	s                                               *Service
67490	project                                         string
67491	zone                                            string
67492	instanceGroupManager                            string
67493	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
67494	urlParams_                                      gensupport.URLParams
67495	ctx_                                            context.Context
67496	header_                                         http.Header
67497}
67498
67499// SetInstanceTemplate: Specifies the instance template to use when
67500// creating new instances in this group. The templates for existing
67501// instances in the group do not change unless you recreate them.
67502func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
67503	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67504	c.project = project
67505	c.zone = zone
67506	c.instanceGroupManager = instanceGroupManager
67507	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
67508	return c
67509}
67510
67511// RequestId sets the optional parameter "requestId": An optional
67512// request ID to identify requests. Specify a unique request ID so that
67513// if you must retry your request, the server will know to ignore the
67514// request if it has already been completed.
67515//
67516// For example, consider a situation where you make an initial request
67517// and the request times out. If you make the request again with the
67518// same request ID, the server can check if original operation with the
67519// same request ID was received, and if so, will ignore the second
67520// request. This prevents clients from accidentally creating duplicate
67521// commitments.
67522//
67523// The request ID must be a valid UUID with the exception that zero UUID
67524// is not supported (00000000-0000-0000-0000-000000000000).
67525func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
67526	c.urlParams_.Set("requestId", requestId)
67527	return c
67528}
67529
67530// Fields allows partial responses to be retrieved. See
67531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67532// for more information.
67533func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
67534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67535	return c
67536}
67537
67538// Context sets the context to be used in this call's Do method. Any
67539// pending HTTP request will be aborted if the provided context is
67540// canceled.
67541func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
67542	c.ctx_ = ctx
67543	return c
67544}
67545
67546// Header returns an http.Header that can be modified by the caller to
67547// add HTTP headers to the request.
67548func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
67549	if c.header_ == nil {
67550		c.header_ = make(http.Header)
67551	}
67552	return c.header_
67553}
67554
67555func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
67556	reqHeaders := make(http.Header)
67557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67558	for k, v := range c.header_ {
67559		reqHeaders[k] = v
67560	}
67561	reqHeaders.Set("User-Agent", c.s.userAgent())
67562	var body io.Reader = nil
67563	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
67564	if err != nil {
67565		return nil, err
67566	}
67567	reqHeaders.Set("Content-Type", "application/json")
67568	c.urlParams_.Set("alt", alt)
67569	c.urlParams_.Set("prettyPrint", "false")
67570	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
67571	urls += "?" + c.urlParams_.Encode()
67572	req, err := http.NewRequest("POST", urls, body)
67573	if err != nil {
67574		return nil, err
67575	}
67576	req.Header = reqHeaders
67577	googleapi.Expand(req.URL, map[string]string{
67578		"project":              c.project,
67579		"zone":                 c.zone,
67580		"instanceGroupManager": c.instanceGroupManager,
67581	})
67582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67583}
67584
67585// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
67586// Exactly one of *Operation or error will be non-nil. Any non-2xx
67587// status code is an error. Response headers are in either
67588// *Operation.ServerResponse.Header or (if a response was returned at
67589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67590// to check whether the returned error was because
67591// http.StatusNotModified was returned.
67592func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67593	gensupport.SetOptions(c.urlParams_, opts...)
67594	res, err := c.doRequest("json")
67595	if res != nil && res.StatusCode == http.StatusNotModified {
67596		if res.Body != nil {
67597			res.Body.Close()
67598		}
67599		return nil, &googleapi.Error{
67600			Code:   res.StatusCode,
67601			Header: res.Header,
67602		}
67603	}
67604	if err != nil {
67605		return nil, err
67606	}
67607	defer googleapi.CloseBody(res)
67608	if err := googleapi.CheckResponse(res); err != nil {
67609		return nil, err
67610	}
67611	ret := &Operation{
67612		ServerResponse: googleapi.ServerResponse{
67613			Header:         res.Header,
67614			HTTPStatusCode: res.StatusCode,
67615		},
67616	}
67617	target := &ret
67618	if err := gensupport.DecodeResponse(target, res); err != nil {
67619		return nil, err
67620	}
67621	return ret, nil
67622	// {
67623	//   "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.",
67624	//   "httpMethod": "POST",
67625	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
67626	//   "parameterOrder": [
67627	//     "project",
67628	//     "zone",
67629	//     "instanceGroupManager"
67630	//   ],
67631	//   "parameters": {
67632	//     "instanceGroupManager": {
67633	//       "description": "The name of the managed instance group.",
67634	//       "location": "path",
67635	//       "required": true,
67636	//       "type": "string"
67637	//     },
67638	//     "project": {
67639	//       "description": "Project ID for this request.",
67640	//       "location": "path",
67641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67642	//       "required": true,
67643	//       "type": "string"
67644	//     },
67645	//     "requestId": {
67646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67647	//       "location": "query",
67648	//       "type": "string"
67649	//     },
67650	//     "zone": {
67651	//       "description": "The name of the zone where the managed instance group is located.",
67652	//       "location": "path",
67653	//       "required": true,
67654	//       "type": "string"
67655	//     }
67656	//   },
67657	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
67658	//   "request": {
67659	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
67660	//   },
67661	//   "response": {
67662	//     "$ref": "Operation"
67663	//   },
67664	//   "scopes": [
67665	//     "https://www.googleapis.com/auth/cloud-platform",
67666	//     "https://www.googleapis.com/auth/compute"
67667	//   ]
67668	// }
67669
67670}
67671
67672// method id "compute.instanceGroupManagers.setTargetPools":
67673
67674type InstanceGroupManagersSetTargetPoolsCall struct {
67675	s                                          *Service
67676	project                                    string
67677	zone                                       string
67678	instanceGroupManager                       string
67679	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
67680	urlParams_                                 gensupport.URLParams
67681	ctx_                                       context.Context
67682	header_                                    http.Header
67683}
67684
67685// SetTargetPools: Modifies the target pools to which all instances in
67686// this managed instance group are assigned. The target pools
67687// automatically apply to all of the instances in the managed instance
67688// group. This operation is marked DONE when you make the request even
67689// if the instances have not yet been added to their target pools. The
67690// change might take some time to apply to all of the instances in the
67691// group depending on the size of the group.
67692func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
67693	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67694	c.project = project
67695	c.zone = zone
67696	c.instanceGroupManager = instanceGroupManager
67697	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
67698	return c
67699}
67700
67701// RequestId sets the optional parameter "requestId": An optional
67702// request ID to identify requests. Specify a unique request ID so that
67703// if you must retry your request, the server will know to ignore the
67704// request if it has already been completed.
67705//
67706// For example, consider a situation where you make an initial request
67707// and the request times out. If you make the request again with the
67708// same request ID, the server can check if original operation with the
67709// same request ID was received, and if so, will ignore the second
67710// request. This prevents clients from accidentally creating duplicate
67711// commitments.
67712//
67713// The request ID must be a valid UUID with the exception that zero UUID
67714// is not supported (00000000-0000-0000-0000-000000000000).
67715func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
67716	c.urlParams_.Set("requestId", requestId)
67717	return c
67718}
67719
67720// Fields allows partial responses to be retrieved. See
67721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67722// for more information.
67723func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
67724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67725	return c
67726}
67727
67728// Context sets the context to be used in this call's Do method. Any
67729// pending HTTP request will be aborted if the provided context is
67730// canceled.
67731func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
67732	c.ctx_ = ctx
67733	return c
67734}
67735
67736// Header returns an http.Header that can be modified by the caller to
67737// add HTTP headers to the request.
67738func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
67739	if c.header_ == nil {
67740		c.header_ = make(http.Header)
67741	}
67742	return c.header_
67743}
67744
67745func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
67746	reqHeaders := make(http.Header)
67747	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67748	for k, v := range c.header_ {
67749		reqHeaders[k] = v
67750	}
67751	reqHeaders.Set("User-Agent", c.s.userAgent())
67752	var body io.Reader = nil
67753	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
67754	if err != nil {
67755		return nil, err
67756	}
67757	reqHeaders.Set("Content-Type", "application/json")
67758	c.urlParams_.Set("alt", alt)
67759	c.urlParams_.Set("prettyPrint", "false")
67760	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
67761	urls += "?" + c.urlParams_.Encode()
67762	req, err := http.NewRequest("POST", urls, body)
67763	if err != nil {
67764		return nil, err
67765	}
67766	req.Header = reqHeaders
67767	googleapi.Expand(req.URL, map[string]string{
67768		"project":              c.project,
67769		"zone":                 c.zone,
67770		"instanceGroupManager": c.instanceGroupManager,
67771	})
67772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67773}
67774
67775// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
67776// Exactly one of *Operation or error will be non-nil. Any non-2xx
67777// status code is an error. Response headers are in either
67778// *Operation.ServerResponse.Header or (if a response was returned at
67779// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67780// to check whether the returned error was because
67781// http.StatusNotModified was returned.
67782func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67783	gensupport.SetOptions(c.urlParams_, opts...)
67784	res, err := c.doRequest("json")
67785	if res != nil && res.StatusCode == http.StatusNotModified {
67786		if res.Body != nil {
67787			res.Body.Close()
67788		}
67789		return nil, &googleapi.Error{
67790			Code:   res.StatusCode,
67791			Header: res.Header,
67792		}
67793	}
67794	if err != nil {
67795		return nil, err
67796	}
67797	defer googleapi.CloseBody(res)
67798	if err := googleapi.CheckResponse(res); err != nil {
67799		return nil, err
67800	}
67801	ret := &Operation{
67802		ServerResponse: googleapi.ServerResponse{
67803			Header:         res.Header,
67804			HTTPStatusCode: res.StatusCode,
67805		},
67806	}
67807	target := &ret
67808	if err := gensupport.DecodeResponse(target, res); err != nil {
67809		return nil, err
67810	}
67811	return ret, nil
67812	// {
67813	//   "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.",
67814	//   "httpMethod": "POST",
67815	//   "id": "compute.instanceGroupManagers.setTargetPools",
67816	//   "parameterOrder": [
67817	//     "project",
67818	//     "zone",
67819	//     "instanceGroupManager"
67820	//   ],
67821	//   "parameters": {
67822	//     "instanceGroupManager": {
67823	//       "description": "The name of the managed instance group.",
67824	//       "location": "path",
67825	//       "required": true,
67826	//       "type": "string"
67827	//     },
67828	//     "project": {
67829	//       "description": "Project ID for this request.",
67830	//       "location": "path",
67831	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67832	//       "required": true,
67833	//       "type": "string"
67834	//     },
67835	//     "requestId": {
67836	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67837	//       "location": "query",
67838	//       "type": "string"
67839	//     },
67840	//     "zone": {
67841	//       "description": "The name of the zone where the managed instance group is located.",
67842	//       "location": "path",
67843	//       "required": true,
67844	//       "type": "string"
67845	//     }
67846	//   },
67847	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
67848	//   "request": {
67849	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
67850	//   },
67851	//   "response": {
67852	//     "$ref": "Operation"
67853	//   },
67854	//   "scopes": [
67855	//     "https://www.googleapis.com/auth/cloud-platform",
67856	//     "https://www.googleapis.com/auth/compute"
67857	//   ]
67858	// }
67859
67860}
67861
67862// method id "compute.instanceGroups.addInstances":
67863
67864type InstanceGroupsAddInstancesCall struct {
67865	s                                 *Service
67866	project                           string
67867	zone                              string
67868	instanceGroup                     string
67869	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
67870	urlParams_                        gensupport.URLParams
67871	ctx_                              context.Context
67872	header_                           http.Header
67873}
67874
67875// AddInstances: Adds a list of instances to the specified instance
67876// group. All of the instances in the instance group must be in the same
67877// network/subnetwork. Read  Adding instances for more information.
67878func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
67879	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67880	c.project = project
67881	c.zone = zone
67882	c.instanceGroup = instanceGroup
67883	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
67884	return c
67885}
67886
67887// RequestId sets the optional parameter "requestId": An optional
67888// request ID to identify requests. Specify a unique request ID so that
67889// if you must retry your request, the server will know to ignore the
67890// request if it has already been completed.
67891//
67892// For example, consider a situation where you make an initial request
67893// and the request times out. If you make the request again with the
67894// same request ID, the server can check if original operation with the
67895// same request ID was received, and if so, will ignore the second
67896// request. This prevents clients from accidentally creating duplicate
67897// commitments.
67898//
67899// The request ID must be a valid UUID with the exception that zero UUID
67900// is not supported (00000000-0000-0000-0000-000000000000).
67901func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
67902	c.urlParams_.Set("requestId", requestId)
67903	return c
67904}
67905
67906// Fields allows partial responses to be retrieved. See
67907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67908// for more information.
67909func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
67910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67911	return c
67912}
67913
67914// Context sets the context to be used in this call's Do method. Any
67915// pending HTTP request will be aborted if the provided context is
67916// canceled.
67917func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
67918	c.ctx_ = ctx
67919	return c
67920}
67921
67922// Header returns an http.Header that can be modified by the caller to
67923// add HTTP headers to the request.
67924func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
67925	if c.header_ == nil {
67926		c.header_ = make(http.Header)
67927	}
67928	return c.header_
67929}
67930
67931func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
67932	reqHeaders := make(http.Header)
67933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67934	for k, v := range c.header_ {
67935		reqHeaders[k] = v
67936	}
67937	reqHeaders.Set("User-Agent", c.s.userAgent())
67938	var body io.Reader = nil
67939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
67940	if err != nil {
67941		return nil, err
67942	}
67943	reqHeaders.Set("Content-Type", "application/json")
67944	c.urlParams_.Set("alt", alt)
67945	c.urlParams_.Set("prettyPrint", "false")
67946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
67947	urls += "?" + c.urlParams_.Encode()
67948	req, err := http.NewRequest("POST", urls, body)
67949	if err != nil {
67950		return nil, err
67951	}
67952	req.Header = reqHeaders
67953	googleapi.Expand(req.URL, map[string]string{
67954		"project":       c.project,
67955		"zone":          c.zone,
67956		"instanceGroup": c.instanceGroup,
67957	})
67958	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67959}
67960
67961// Do executes the "compute.instanceGroups.addInstances" call.
67962// Exactly one of *Operation or error will be non-nil. Any non-2xx
67963// status code is an error. Response headers are in either
67964// *Operation.ServerResponse.Header or (if a response was returned at
67965// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67966// to check whether the returned error was because
67967// http.StatusNotModified was returned.
67968func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67969	gensupport.SetOptions(c.urlParams_, opts...)
67970	res, err := c.doRequest("json")
67971	if res != nil && res.StatusCode == http.StatusNotModified {
67972		if res.Body != nil {
67973			res.Body.Close()
67974		}
67975		return nil, &googleapi.Error{
67976			Code:   res.StatusCode,
67977			Header: res.Header,
67978		}
67979	}
67980	if err != nil {
67981		return nil, err
67982	}
67983	defer googleapi.CloseBody(res)
67984	if err := googleapi.CheckResponse(res); err != nil {
67985		return nil, err
67986	}
67987	ret := &Operation{
67988		ServerResponse: googleapi.ServerResponse{
67989			Header:         res.Header,
67990			HTTPStatusCode: res.StatusCode,
67991		},
67992	}
67993	target := &ret
67994	if err := gensupport.DecodeResponse(target, res); err != nil {
67995		return nil, err
67996	}
67997	return ret, nil
67998	// {
67999	//   "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.",
68000	//   "httpMethod": "POST",
68001	//   "id": "compute.instanceGroups.addInstances",
68002	//   "parameterOrder": [
68003	//     "project",
68004	//     "zone",
68005	//     "instanceGroup"
68006	//   ],
68007	//   "parameters": {
68008	//     "instanceGroup": {
68009	//       "description": "The name of the instance group where you are adding instances.",
68010	//       "location": "path",
68011	//       "required": true,
68012	//       "type": "string"
68013	//     },
68014	//     "project": {
68015	//       "description": "Project ID for this request.",
68016	//       "location": "path",
68017	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68018	//       "required": true,
68019	//       "type": "string"
68020	//     },
68021	//     "requestId": {
68022	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68023	//       "location": "query",
68024	//       "type": "string"
68025	//     },
68026	//     "zone": {
68027	//       "description": "The name of the zone where the instance group is located.",
68028	//       "location": "path",
68029	//       "required": true,
68030	//       "type": "string"
68031	//     }
68032	//   },
68033	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
68034	//   "request": {
68035	//     "$ref": "InstanceGroupsAddInstancesRequest"
68036	//   },
68037	//   "response": {
68038	//     "$ref": "Operation"
68039	//   },
68040	//   "scopes": [
68041	//     "https://www.googleapis.com/auth/cloud-platform",
68042	//     "https://www.googleapis.com/auth/compute"
68043	//   ]
68044	// }
68045
68046}
68047
68048// method id "compute.instanceGroups.aggregatedList":
68049
68050type InstanceGroupsAggregatedListCall struct {
68051	s            *Service
68052	project      string
68053	urlParams_   gensupport.URLParams
68054	ifNoneMatch_ string
68055	ctx_         context.Context
68056	header_      http.Header
68057}
68058
68059// AggregatedList: Retrieves the list of instance groups and sorts them
68060// by zone.
68061func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
68062	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68063	c.project = project
68064	return c
68065}
68066
68067// Filter sets the optional parameter "filter": A filter expression that
68068// filters resources listed in the response. The expression must specify
68069// the field name, a comparison operator, and the value that you want to
68070// use for filtering. The value must be a string, a number, or a
68071// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68072// `<`.
68073//
68074// For example, if you are filtering Compute Engine instances, you can
68075// exclude instances named `example-instance` by specifying `name !=
68076// example-instance`.
68077//
68078// You can also filter nested fields. For example, you could specify
68079// `scheduling.automaticRestart = false` to include instances only if
68080// they are not scheduled for automatic restarts. You can use filtering
68081// on nested fields to filter based on resource labels.
68082//
68083// To filter on multiple expressions, provide each separate expression
68084// within parentheses. For example: ``` (scheduling.automaticRestart =
68085// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68086// is an `AND` expression. However, you can include `AND` and `OR`
68087// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68088// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68089// (scheduling.automaticRestart = true) ```
68090func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
68091	c.urlParams_.Set("filter", filter)
68092	return c
68093}
68094
68095// IncludeAllScopes sets the optional parameter "includeAllScopes":
68096// Indicates whether every visible scope for each scope type (zone,
68097// region, global) should be included in the response. For new resource
68098// types added after this field, the flag has no effect as new resource
68099// types will always include every visible scope for each scope type in
68100// response. For resource types which predate this field, if this flag
68101// is omitted or false, only scopes of the scope types where the
68102// resource type is expected to be found will be included.
68103func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
68104	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
68105	return c
68106}
68107
68108// MaxResults sets the optional parameter "maxResults": The maximum
68109// number of results per page that should be returned. If the number of
68110// available results is larger than `maxResults`, Compute Engine returns
68111// a `nextPageToken` that can be used to get the next page of results in
68112// subsequent list requests. Acceptable values are `0` to `500`,
68113// inclusive. (Default: `500`)
68114func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
68115	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68116	return c
68117}
68118
68119// OrderBy sets the optional parameter "orderBy": Sorts list results by
68120// a certain order. By default, results are returned in alphanumerical
68121// order based on the resource name.
68122//
68123// You can also sort results in descending order based on the creation
68124// timestamp using `orderBy="creationTimestamp desc". This sorts
68125// results based on the `creationTimestamp` field in reverse
68126// chronological order (newest result first). Use this to sort resources
68127// like operations so that the newest operation is returned
68128// first.
68129//
68130// Currently, only sorting by `name` or `creationTimestamp desc` is
68131// supported.
68132func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
68133	c.urlParams_.Set("orderBy", orderBy)
68134	return c
68135}
68136
68137// PageToken sets the optional parameter "pageToken": Specifies a page
68138// token to use. Set `pageToken` to the `nextPageToken` returned by a
68139// previous list request to get the next page of results.
68140func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
68141	c.urlParams_.Set("pageToken", pageToken)
68142	return c
68143}
68144
68145// Fields allows partial responses to be retrieved. See
68146// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68147// for more information.
68148func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
68149	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68150	return c
68151}
68152
68153// IfNoneMatch sets the optional parameter which makes the operation
68154// fail if the object's ETag matches the given value. This is useful for
68155// getting updates only after the object has changed since the last
68156// request. Use googleapi.IsNotModified to check whether the response
68157// error from Do is the result of In-None-Match.
68158func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
68159	c.ifNoneMatch_ = entityTag
68160	return c
68161}
68162
68163// Context sets the context to be used in this call's Do method. Any
68164// pending HTTP request will be aborted if the provided context is
68165// canceled.
68166func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
68167	c.ctx_ = ctx
68168	return c
68169}
68170
68171// Header returns an http.Header that can be modified by the caller to
68172// add HTTP headers to the request.
68173func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
68174	if c.header_ == nil {
68175		c.header_ = make(http.Header)
68176	}
68177	return c.header_
68178}
68179
68180func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
68181	reqHeaders := make(http.Header)
68182	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68183	for k, v := range c.header_ {
68184		reqHeaders[k] = v
68185	}
68186	reqHeaders.Set("User-Agent", c.s.userAgent())
68187	if c.ifNoneMatch_ != "" {
68188		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68189	}
68190	var body io.Reader = nil
68191	c.urlParams_.Set("alt", alt)
68192	c.urlParams_.Set("prettyPrint", "false")
68193	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
68194	urls += "?" + c.urlParams_.Encode()
68195	req, err := http.NewRequest("GET", urls, body)
68196	if err != nil {
68197		return nil, err
68198	}
68199	req.Header = reqHeaders
68200	googleapi.Expand(req.URL, map[string]string{
68201		"project": c.project,
68202	})
68203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68204}
68205
68206// Do executes the "compute.instanceGroups.aggregatedList" call.
68207// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
68208// Any non-2xx status code is an error. Response headers are in either
68209// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
68210// was returned at all) in error.(*googleapi.Error).Header. Use
68211// googleapi.IsNotModified to check whether the returned error was
68212// because http.StatusNotModified was returned.
68213func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
68214	gensupport.SetOptions(c.urlParams_, opts...)
68215	res, err := c.doRequest("json")
68216	if res != nil && res.StatusCode == http.StatusNotModified {
68217		if res.Body != nil {
68218			res.Body.Close()
68219		}
68220		return nil, &googleapi.Error{
68221			Code:   res.StatusCode,
68222			Header: res.Header,
68223		}
68224	}
68225	if err != nil {
68226		return nil, err
68227	}
68228	defer googleapi.CloseBody(res)
68229	if err := googleapi.CheckResponse(res); err != nil {
68230		return nil, err
68231	}
68232	ret := &InstanceGroupAggregatedList{
68233		ServerResponse: googleapi.ServerResponse{
68234			Header:         res.Header,
68235			HTTPStatusCode: res.StatusCode,
68236		},
68237	}
68238	target := &ret
68239	if err := gensupport.DecodeResponse(target, res); err != nil {
68240		return nil, err
68241	}
68242	return ret, nil
68243	// {
68244	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
68245	//   "httpMethod": "GET",
68246	//   "id": "compute.instanceGroups.aggregatedList",
68247	//   "parameterOrder": [
68248	//     "project"
68249	//   ],
68250	//   "parameters": {
68251	//     "filter": {
68252	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
68253	//       "location": "query",
68254	//       "type": "string"
68255	//     },
68256	//     "includeAllScopes": {
68257	//       "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.",
68258	//       "location": "query",
68259	//       "type": "boolean"
68260	//     },
68261	//     "maxResults": {
68262	//       "default": "500",
68263	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
68264	//       "format": "uint32",
68265	//       "location": "query",
68266	//       "minimum": "0",
68267	//       "type": "integer"
68268	//     },
68269	//     "orderBy": {
68270	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
68271	//       "location": "query",
68272	//       "type": "string"
68273	//     },
68274	//     "pageToken": {
68275	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
68276	//       "location": "query",
68277	//       "type": "string"
68278	//     },
68279	//     "project": {
68280	//       "description": "Project ID for this request.",
68281	//       "location": "path",
68282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68283	//       "required": true,
68284	//       "type": "string"
68285	//     }
68286	//   },
68287	//   "path": "{project}/aggregated/instanceGroups",
68288	//   "response": {
68289	//     "$ref": "InstanceGroupAggregatedList"
68290	//   },
68291	//   "scopes": [
68292	//     "https://www.googleapis.com/auth/cloud-platform",
68293	//     "https://www.googleapis.com/auth/compute",
68294	//     "https://www.googleapis.com/auth/compute.readonly"
68295	//   ]
68296	// }
68297
68298}
68299
68300// Pages invokes f for each page of results.
68301// A non-nil error returned from f will halt the iteration.
68302// The provided context supersedes any context provided to the Context method.
68303func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
68304	c.ctx_ = ctx
68305	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68306	for {
68307		x, err := c.Do()
68308		if err != nil {
68309			return err
68310		}
68311		if err := f(x); err != nil {
68312			return err
68313		}
68314		if x.NextPageToken == "" {
68315			return nil
68316		}
68317		c.PageToken(x.NextPageToken)
68318	}
68319}
68320
68321// method id "compute.instanceGroups.delete":
68322
68323type InstanceGroupsDeleteCall struct {
68324	s             *Service
68325	project       string
68326	zone          string
68327	instanceGroup string
68328	urlParams_    gensupport.URLParams
68329	ctx_          context.Context
68330	header_       http.Header
68331}
68332
68333// Delete: Deletes the specified instance group. The instances in the
68334// group are not deleted. Note that instance group must not belong to a
68335// backend service. Read  Deleting an instance group for more
68336// information.
68337func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
68338	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68339	c.project = project
68340	c.zone = zone
68341	c.instanceGroup = instanceGroup
68342	return c
68343}
68344
68345// RequestId sets the optional parameter "requestId": An optional
68346// request ID to identify requests. Specify a unique request ID so that
68347// if you must retry your request, the server will know to ignore the
68348// request if it has already been completed.
68349//
68350// For example, consider a situation where you make an initial request
68351// and the request times out. If you make the request again with the
68352// same request ID, the server can check if original operation with the
68353// same request ID was received, and if so, will ignore the second
68354// request. This prevents clients from accidentally creating duplicate
68355// commitments.
68356//
68357// The request ID must be a valid UUID with the exception that zero UUID
68358// is not supported (00000000-0000-0000-0000-000000000000).
68359func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
68360	c.urlParams_.Set("requestId", requestId)
68361	return c
68362}
68363
68364// Fields allows partial responses to be retrieved. See
68365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68366// for more information.
68367func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
68368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68369	return c
68370}
68371
68372// Context sets the context to be used in this call's Do method. Any
68373// pending HTTP request will be aborted if the provided context is
68374// canceled.
68375func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
68376	c.ctx_ = ctx
68377	return c
68378}
68379
68380// Header returns an http.Header that can be modified by the caller to
68381// add HTTP headers to the request.
68382func (c *InstanceGroupsDeleteCall) Header() http.Header {
68383	if c.header_ == nil {
68384		c.header_ = make(http.Header)
68385	}
68386	return c.header_
68387}
68388
68389func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
68390	reqHeaders := make(http.Header)
68391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68392	for k, v := range c.header_ {
68393		reqHeaders[k] = v
68394	}
68395	reqHeaders.Set("User-Agent", c.s.userAgent())
68396	var body io.Reader = nil
68397	c.urlParams_.Set("alt", alt)
68398	c.urlParams_.Set("prettyPrint", "false")
68399	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
68400	urls += "?" + c.urlParams_.Encode()
68401	req, err := http.NewRequest("DELETE", urls, body)
68402	if err != nil {
68403		return nil, err
68404	}
68405	req.Header = reqHeaders
68406	googleapi.Expand(req.URL, map[string]string{
68407		"project":       c.project,
68408		"zone":          c.zone,
68409		"instanceGroup": c.instanceGroup,
68410	})
68411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68412}
68413
68414// Do executes the "compute.instanceGroups.delete" call.
68415// Exactly one of *Operation or error will be non-nil. Any non-2xx
68416// status code is an error. Response headers are in either
68417// *Operation.ServerResponse.Header or (if a response was returned at
68418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68419// to check whether the returned error was because
68420// http.StatusNotModified was returned.
68421func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68422	gensupport.SetOptions(c.urlParams_, opts...)
68423	res, err := c.doRequest("json")
68424	if res != nil && res.StatusCode == http.StatusNotModified {
68425		if res.Body != nil {
68426			res.Body.Close()
68427		}
68428		return nil, &googleapi.Error{
68429			Code:   res.StatusCode,
68430			Header: res.Header,
68431		}
68432	}
68433	if err != nil {
68434		return nil, err
68435	}
68436	defer googleapi.CloseBody(res)
68437	if err := googleapi.CheckResponse(res); err != nil {
68438		return nil, err
68439	}
68440	ret := &Operation{
68441		ServerResponse: googleapi.ServerResponse{
68442			Header:         res.Header,
68443			HTTPStatusCode: res.StatusCode,
68444		},
68445	}
68446	target := &ret
68447	if err := gensupport.DecodeResponse(target, res); err != nil {
68448		return nil, err
68449	}
68450	return ret, nil
68451	// {
68452	//   "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.",
68453	//   "httpMethod": "DELETE",
68454	//   "id": "compute.instanceGroups.delete",
68455	//   "parameterOrder": [
68456	//     "project",
68457	//     "zone",
68458	//     "instanceGroup"
68459	//   ],
68460	//   "parameters": {
68461	//     "instanceGroup": {
68462	//       "description": "The name of the instance group to delete.",
68463	//       "location": "path",
68464	//       "required": true,
68465	//       "type": "string"
68466	//     },
68467	//     "project": {
68468	//       "description": "Project ID for this request.",
68469	//       "location": "path",
68470	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68471	//       "required": true,
68472	//       "type": "string"
68473	//     },
68474	//     "requestId": {
68475	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68476	//       "location": "query",
68477	//       "type": "string"
68478	//     },
68479	//     "zone": {
68480	//       "description": "The name of the zone where the instance group is located.",
68481	//       "location": "path",
68482	//       "required": true,
68483	//       "type": "string"
68484	//     }
68485	//   },
68486	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
68487	//   "response": {
68488	//     "$ref": "Operation"
68489	//   },
68490	//   "scopes": [
68491	//     "https://www.googleapis.com/auth/cloud-platform",
68492	//     "https://www.googleapis.com/auth/compute"
68493	//   ]
68494	// }
68495
68496}
68497
68498// method id "compute.instanceGroups.get":
68499
68500type InstanceGroupsGetCall struct {
68501	s             *Service
68502	project       string
68503	zone          string
68504	instanceGroup string
68505	urlParams_    gensupport.URLParams
68506	ifNoneMatch_  string
68507	ctx_          context.Context
68508	header_       http.Header
68509}
68510
68511// Get: Returns the specified instance group. Gets a list of available
68512// instance groups by making a list() request.
68513func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
68514	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68515	c.project = project
68516	c.zone = zone
68517	c.instanceGroup = instanceGroup
68518	return c
68519}
68520
68521// Fields allows partial responses to be retrieved. See
68522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68523// for more information.
68524func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
68525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68526	return c
68527}
68528
68529// IfNoneMatch sets the optional parameter which makes the operation
68530// fail if the object's ETag matches the given value. This is useful for
68531// getting updates only after the object has changed since the last
68532// request. Use googleapi.IsNotModified to check whether the response
68533// error from Do is the result of In-None-Match.
68534func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
68535	c.ifNoneMatch_ = entityTag
68536	return c
68537}
68538
68539// Context sets the context to be used in this call's Do method. Any
68540// pending HTTP request will be aborted if the provided context is
68541// canceled.
68542func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
68543	c.ctx_ = ctx
68544	return c
68545}
68546
68547// Header returns an http.Header that can be modified by the caller to
68548// add HTTP headers to the request.
68549func (c *InstanceGroupsGetCall) Header() http.Header {
68550	if c.header_ == nil {
68551		c.header_ = make(http.Header)
68552	}
68553	return c.header_
68554}
68555
68556func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
68557	reqHeaders := make(http.Header)
68558	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68559	for k, v := range c.header_ {
68560		reqHeaders[k] = v
68561	}
68562	reqHeaders.Set("User-Agent", c.s.userAgent())
68563	if c.ifNoneMatch_ != "" {
68564		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68565	}
68566	var body io.Reader = nil
68567	c.urlParams_.Set("alt", alt)
68568	c.urlParams_.Set("prettyPrint", "false")
68569	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
68570	urls += "?" + c.urlParams_.Encode()
68571	req, err := http.NewRequest("GET", urls, body)
68572	if err != nil {
68573		return nil, err
68574	}
68575	req.Header = reqHeaders
68576	googleapi.Expand(req.URL, map[string]string{
68577		"project":       c.project,
68578		"zone":          c.zone,
68579		"instanceGroup": c.instanceGroup,
68580	})
68581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68582}
68583
68584// Do executes the "compute.instanceGroups.get" call.
68585// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
68586// status code is an error. Response headers are in either
68587// *InstanceGroup.ServerResponse.Header or (if a response was returned
68588// at all) in error.(*googleapi.Error).Header. Use
68589// googleapi.IsNotModified to check whether the returned error was
68590// because http.StatusNotModified was returned.
68591func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
68592	gensupport.SetOptions(c.urlParams_, opts...)
68593	res, err := c.doRequest("json")
68594	if res != nil && res.StatusCode == http.StatusNotModified {
68595		if res.Body != nil {
68596			res.Body.Close()
68597		}
68598		return nil, &googleapi.Error{
68599			Code:   res.StatusCode,
68600			Header: res.Header,
68601		}
68602	}
68603	if err != nil {
68604		return nil, err
68605	}
68606	defer googleapi.CloseBody(res)
68607	if err := googleapi.CheckResponse(res); err != nil {
68608		return nil, err
68609	}
68610	ret := &InstanceGroup{
68611		ServerResponse: googleapi.ServerResponse{
68612			Header:         res.Header,
68613			HTTPStatusCode: res.StatusCode,
68614		},
68615	}
68616	target := &ret
68617	if err := gensupport.DecodeResponse(target, res); err != nil {
68618		return nil, err
68619	}
68620	return ret, nil
68621	// {
68622	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
68623	//   "httpMethod": "GET",
68624	//   "id": "compute.instanceGroups.get",
68625	//   "parameterOrder": [
68626	//     "project",
68627	//     "zone",
68628	//     "instanceGroup"
68629	//   ],
68630	//   "parameters": {
68631	//     "instanceGroup": {
68632	//       "description": "The name of the instance group.",
68633	//       "location": "path",
68634	//       "required": true,
68635	//       "type": "string"
68636	//     },
68637	//     "project": {
68638	//       "description": "Project ID for this request.",
68639	//       "location": "path",
68640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68641	//       "required": true,
68642	//       "type": "string"
68643	//     },
68644	//     "zone": {
68645	//       "description": "The name of the zone where the instance group is located.",
68646	//       "location": "path",
68647	//       "required": true,
68648	//       "type": "string"
68649	//     }
68650	//   },
68651	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
68652	//   "response": {
68653	//     "$ref": "InstanceGroup"
68654	//   },
68655	//   "scopes": [
68656	//     "https://www.googleapis.com/auth/cloud-platform",
68657	//     "https://www.googleapis.com/auth/compute",
68658	//     "https://www.googleapis.com/auth/compute.readonly"
68659	//   ]
68660	// }
68661
68662}
68663
68664// method id "compute.instanceGroups.insert":
68665
68666type InstanceGroupsInsertCall struct {
68667	s             *Service
68668	project       string
68669	zone          string
68670	instancegroup *InstanceGroup
68671	urlParams_    gensupport.URLParams
68672	ctx_          context.Context
68673	header_       http.Header
68674}
68675
68676// Insert: Creates an instance group in the specified project using the
68677// parameters that are included in the request.
68678func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
68679	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68680	c.project = project
68681	c.zone = zone
68682	c.instancegroup = instancegroup
68683	return c
68684}
68685
68686// RequestId sets the optional parameter "requestId": An optional
68687// request ID to identify requests. Specify a unique request ID so that
68688// if you must retry your request, the server will know to ignore the
68689// request if it has already been completed.
68690//
68691// For example, consider a situation where you make an initial request
68692// and the request times out. If you make the request again with the
68693// same request ID, the server can check if original operation with the
68694// same request ID was received, and if so, will ignore the second
68695// request. This prevents clients from accidentally creating duplicate
68696// commitments.
68697//
68698// The request ID must be a valid UUID with the exception that zero UUID
68699// is not supported (00000000-0000-0000-0000-000000000000).
68700func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
68701	c.urlParams_.Set("requestId", requestId)
68702	return c
68703}
68704
68705// Fields allows partial responses to be retrieved. See
68706// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68707// for more information.
68708func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
68709	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68710	return c
68711}
68712
68713// Context sets the context to be used in this call's Do method. Any
68714// pending HTTP request will be aborted if the provided context is
68715// canceled.
68716func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
68717	c.ctx_ = ctx
68718	return c
68719}
68720
68721// Header returns an http.Header that can be modified by the caller to
68722// add HTTP headers to the request.
68723func (c *InstanceGroupsInsertCall) Header() http.Header {
68724	if c.header_ == nil {
68725		c.header_ = make(http.Header)
68726	}
68727	return c.header_
68728}
68729
68730func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
68731	reqHeaders := make(http.Header)
68732	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68733	for k, v := range c.header_ {
68734		reqHeaders[k] = v
68735	}
68736	reqHeaders.Set("User-Agent", c.s.userAgent())
68737	var body io.Reader = nil
68738	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
68739	if err != nil {
68740		return nil, err
68741	}
68742	reqHeaders.Set("Content-Type", "application/json")
68743	c.urlParams_.Set("alt", alt)
68744	c.urlParams_.Set("prettyPrint", "false")
68745	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
68746	urls += "?" + c.urlParams_.Encode()
68747	req, err := http.NewRequest("POST", urls, body)
68748	if err != nil {
68749		return nil, err
68750	}
68751	req.Header = reqHeaders
68752	googleapi.Expand(req.URL, map[string]string{
68753		"project": c.project,
68754		"zone":    c.zone,
68755	})
68756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68757}
68758
68759// Do executes the "compute.instanceGroups.insert" call.
68760// Exactly one of *Operation or error will be non-nil. Any non-2xx
68761// status code is an error. Response headers are in either
68762// *Operation.ServerResponse.Header or (if a response was returned at
68763// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68764// to check whether the returned error was because
68765// http.StatusNotModified was returned.
68766func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68767	gensupport.SetOptions(c.urlParams_, opts...)
68768	res, err := c.doRequest("json")
68769	if res != nil && res.StatusCode == http.StatusNotModified {
68770		if res.Body != nil {
68771			res.Body.Close()
68772		}
68773		return nil, &googleapi.Error{
68774			Code:   res.StatusCode,
68775			Header: res.Header,
68776		}
68777	}
68778	if err != nil {
68779		return nil, err
68780	}
68781	defer googleapi.CloseBody(res)
68782	if err := googleapi.CheckResponse(res); err != nil {
68783		return nil, err
68784	}
68785	ret := &Operation{
68786		ServerResponse: googleapi.ServerResponse{
68787			Header:         res.Header,
68788			HTTPStatusCode: res.StatusCode,
68789		},
68790	}
68791	target := &ret
68792	if err := gensupport.DecodeResponse(target, res); err != nil {
68793		return nil, err
68794	}
68795	return ret, nil
68796	// {
68797	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
68798	//   "httpMethod": "POST",
68799	//   "id": "compute.instanceGroups.insert",
68800	//   "parameterOrder": [
68801	//     "project",
68802	//     "zone"
68803	//   ],
68804	//   "parameters": {
68805	//     "project": {
68806	//       "description": "Project ID for this request.",
68807	//       "location": "path",
68808	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68809	//       "required": true,
68810	//       "type": "string"
68811	//     },
68812	//     "requestId": {
68813	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68814	//       "location": "query",
68815	//       "type": "string"
68816	//     },
68817	//     "zone": {
68818	//       "description": "The name of the zone where you want to create the instance group.",
68819	//       "location": "path",
68820	//       "required": true,
68821	//       "type": "string"
68822	//     }
68823	//   },
68824	//   "path": "{project}/zones/{zone}/instanceGroups",
68825	//   "request": {
68826	//     "$ref": "InstanceGroup"
68827	//   },
68828	//   "response": {
68829	//     "$ref": "Operation"
68830	//   },
68831	//   "scopes": [
68832	//     "https://www.googleapis.com/auth/cloud-platform",
68833	//     "https://www.googleapis.com/auth/compute"
68834	//   ]
68835	// }
68836
68837}
68838
68839// method id "compute.instanceGroups.list":
68840
68841type InstanceGroupsListCall struct {
68842	s            *Service
68843	project      string
68844	zone         string
68845	urlParams_   gensupport.URLParams
68846	ifNoneMatch_ string
68847	ctx_         context.Context
68848	header_      http.Header
68849}
68850
68851// List: Retrieves the list of instance groups that are located in the
68852// specified project and zone.
68853func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
68854	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68855	c.project = project
68856	c.zone = zone
68857	return c
68858}
68859
68860// Filter sets the optional parameter "filter": A filter expression that
68861// filters resources listed in the response. The expression must specify
68862// the field name, a comparison operator, and the value that you want to
68863// use for filtering. The value must be a string, a number, or a
68864// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68865// `<`.
68866//
68867// For example, if you are filtering Compute Engine instances, you can
68868// exclude instances named `example-instance` by specifying `name !=
68869// example-instance`.
68870//
68871// You can also filter nested fields. For example, you could specify
68872// `scheduling.automaticRestart = false` to include instances only if
68873// they are not scheduled for automatic restarts. You can use filtering
68874// on nested fields to filter based on resource labels.
68875//
68876// To filter on multiple expressions, provide each separate expression
68877// within parentheses. For example: ``` (scheduling.automaticRestart =
68878// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68879// is an `AND` expression. However, you can include `AND` and `OR`
68880// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68881// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68882// (scheduling.automaticRestart = true) ```
68883func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
68884	c.urlParams_.Set("filter", filter)
68885	return c
68886}
68887
68888// MaxResults sets the optional parameter "maxResults": The maximum
68889// number of results per page that should be returned. If the number of
68890// available results is larger than `maxResults`, Compute Engine returns
68891// a `nextPageToken` that can be used to get the next page of results in
68892// subsequent list requests. Acceptable values are `0` to `500`,
68893// inclusive. (Default: `500`)
68894func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
68895	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68896	return c
68897}
68898
68899// OrderBy sets the optional parameter "orderBy": Sorts list results by
68900// a certain order. By default, results are returned in alphanumerical
68901// order based on the resource name.
68902//
68903// You can also sort results in descending order based on the creation
68904// timestamp using `orderBy="creationTimestamp desc". This sorts
68905// results based on the `creationTimestamp` field in reverse
68906// chronological order (newest result first). Use this to sort resources
68907// like operations so that the newest operation is returned
68908// first.
68909//
68910// Currently, only sorting by `name` or `creationTimestamp desc` is
68911// supported.
68912func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
68913	c.urlParams_.Set("orderBy", orderBy)
68914	return c
68915}
68916
68917// PageToken sets the optional parameter "pageToken": Specifies a page
68918// token to use. Set `pageToken` to the `nextPageToken` returned by a
68919// previous list request to get the next page of results.
68920func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
68921	c.urlParams_.Set("pageToken", pageToken)
68922	return c
68923}
68924
68925// Fields allows partial responses to be retrieved. See
68926// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68927// for more information.
68928func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
68929	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68930	return c
68931}
68932
68933// IfNoneMatch sets the optional parameter which makes the operation
68934// fail if the object's ETag matches the given value. This is useful for
68935// getting updates only after the object has changed since the last
68936// request. Use googleapi.IsNotModified to check whether the response
68937// error from Do is the result of In-None-Match.
68938func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
68939	c.ifNoneMatch_ = entityTag
68940	return c
68941}
68942
68943// Context sets the context to be used in this call's Do method. Any
68944// pending HTTP request will be aborted if the provided context is
68945// canceled.
68946func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
68947	c.ctx_ = ctx
68948	return c
68949}
68950
68951// Header returns an http.Header that can be modified by the caller to
68952// add HTTP headers to the request.
68953func (c *InstanceGroupsListCall) Header() http.Header {
68954	if c.header_ == nil {
68955		c.header_ = make(http.Header)
68956	}
68957	return c.header_
68958}
68959
68960func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
68961	reqHeaders := make(http.Header)
68962	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68963	for k, v := range c.header_ {
68964		reqHeaders[k] = v
68965	}
68966	reqHeaders.Set("User-Agent", c.s.userAgent())
68967	if c.ifNoneMatch_ != "" {
68968		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68969	}
68970	var body io.Reader = nil
68971	c.urlParams_.Set("alt", alt)
68972	c.urlParams_.Set("prettyPrint", "false")
68973	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
68974	urls += "?" + c.urlParams_.Encode()
68975	req, err := http.NewRequest("GET", urls, body)
68976	if err != nil {
68977		return nil, err
68978	}
68979	req.Header = reqHeaders
68980	googleapi.Expand(req.URL, map[string]string{
68981		"project": c.project,
68982		"zone":    c.zone,
68983	})
68984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68985}
68986
68987// Do executes the "compute.instanceGroups.list" call.
68988// Exactly one of *InstanceGroupList or error will be non-nil. Any
68989// non-2xx status code is an error. Response headers are in either
68990// *InstanceGroupList.ServerResponse.Header or (if a response was
68991// returned at all) in error.(*googleapi.Error).Header. Use
68992// googleapi.IsNotModified to check whether the returned error was
68993// because http.StatusNotModified was returned.
68994func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
68995	gensupport.SetOptions(c.urlParams_, opts...)
68996	res, err := c.doRequest("json")
68997	if res != nil && res.StatusCode == http.StatusNotModified {
68998		if res.Body != nil {
68999			res.Body.Close()
69000		}
69001		return nil, &googleapi.Error{
69002			Code:   res.StatusCode,
69003			Header: res.Header,
69004		}
69005	}
69006	if err != nil {
69007		return nil, err
69008	}
69009	defer googleapi.CloseBody(res)
69010	if err := googleapi.CheckResponse(res); err != nil {
69011		return nil, err
69012	}
69013	ret := &InstanceGroupList{
69014		ServerResponse: googleapi.ServerResponse{
69015			Header:         res.Header,
69016			HTTPStatusCode: res.StatusCode,
69017		},
69018	}
69019	target := &ret
69020	if err := gensupport.DecodeResponse(target, res); err != nil {
69021		return nil, err
69022	}
69023	return ret, nil
69024	// {
69025	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
69026	//   "httpMethod": "GET",
69027	//   "id": "compute.instanceGroups.list",
69028	//   "parameterOrder": [
69029	//     "project",
69030	//     "zone"
69031	//   ],
69032	//   "parameters": {
69033	//     "filter": {
69034	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
69035	//       "location": "query",
69036	//       "type": "string"
69037	//     },
69038	//     "maxResults": {
69039	//       "default": "500",
69040	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69041	//       "format": "uint32",
69042	//       "location": "query",
69043	//       "minimum": "0",
69044	//       "type": "integer"
69045	//     },
69046	//     "orderBy": {
69047	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
69048	//       "location": "query",
69049	//       "type": "string"
69050	//     },
69051	//     "pageToken": {
69052	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69053	//       "location": "query",
69054	//       "type": "string"
69055	//     },
69056	//     "project": {
69057	//       "description": "Project ID for this request.",
69058	//       "location": "path",
69059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69060	//       "required": true,
69061	//       "type": "string"
69062	//     },
69063	//     "zone": {
69064	//       "description": "The name of the zone where the instance group is located.",
69065	//       "location": "path",
69066	//       "required": true,
69067	//       "type": "string"
69068	//     }
69069	//   },
69070	//   "path": "{project}/zones/{zone}/instanceGroups",
69071	//   "response": {
69072	//     "$ref": "InstanceGroupList"
69073	//   },
69074	//   "scopes": [
69075	//     "https://www.googleapis.com/auth/cloud-platform",
69076	//     "https://www.googleapis.com/auth/compute",
69077	//     "https://www.googleapis.com/auth/compute.readonly"
69078	//   ]
69079	// }
69080
69081}
69082
69083// Pages invokes f for each page of results.
69084// A non-nil error returned from f will halt the iteration.
69085// The provided context supersedes any context provided to the Context method.
69086func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
69087	c.ctx_ = ctx
69088	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69089	for {
69090		x, err := c.Do()
69091		if err != nil {
69092			return err
69093		}
69094		if err := f(x); err != nil {
69095			return err
69096		}
69097		if x.NextPageToken == "" {
69098			return nil
69099		}
69100		c.PageToken(x.NextPageToken)
69101	}
69102}
69103
69104// method id "compute.instanceGroups.listInstances":
69105
69106type InstanceGroupsListInstancesCall struct {
69107	s                                  *Service
69108	project                            string
69109	zone                               string
69110	instanceGroup                      string
69111	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
69112	urlParams_                         gensupport.URLParams
69113	ctx_                               context.Context
69114	header_                            http.Header
69115}
69116
69117// ListInstances: Lists the instances in the specified instance group.
69118// The orderBy query parameter is not supported.
69119func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
69120	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69121	c.project = project
69122	c.zone = zone
69123	c.instanceGroup = instanceGroup
69124	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
69125	return c
69126}
69127
69128// Filter sets the optional parameter "filter": A filter expression that
69129// filters resources listed in the response. The expression must specify
69130// the field name, a comparison operator, and the value that you want to
69131// use for filtering. The value must be a string, a number, or a
69132// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69133// `<`.
69134//
69135// For example, if you are filtering Compute Engine instances, you can
69136// exclude instances named `example-instance` by specifying `name !=
69137// example-instance`.
69138//
69139// You can also filter nested fields. For example, you could specify
69140// `scheduling.automaticRestart = false` to include instances only if
69141// they are not scheduled for automatic restarts. You can use filtering
69142// on nested fields to filter based on resource labels.
69143//
69144// To filter on multiple expressions, provide each separate expression
69145// within parentheses. For example: ``` (scheduling.automaticRestart =
69146// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
69147// is an `AND` expression. However, you can include `AND` and `OR`
69148// expressions explicitly. For example: ``` (cpuPlatform = "Intel
69149// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
69150// (scheduling.automaticRestart = true) ```
69151func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
69152	c.urlParams_.Set("filter", filter)
69153	return c
69154}
69155
69156// MaxResults sets the optional parameter "maxResults": The maximum
69157// number of results per page that should be returned. If the number of
69158// available results is larger than `maxResults`, Compute Engine returns
69159// a `nextPageToken` that can be used to get the next page of results in
69160// subsequent list requests. Acceptable values are `0` to `500`,
69161// inclusive. (Default: `500`)
69162func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
69163	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69164	return c
69165}
69166
69167// OrderBy sets the optional parameter "orderBy": Sorts list results by
69168// a certain order. By default, results are returned in alphanumerical
69169// order based on the resource name.
69170//
69171// You can also sort results in descending order based on the creation
69172// timestamp using `orderBy="creationTimestamp desc". This sorts
69173// results based on the `creationTimestamp` field in reverse
69174// chronological order (newest result first). Use this to sort resources
69175// like operations so that the newest operation is returned
69176// first.
69177//
69178// Currently, only sorting by `name` or `creationTimestamp desc` is
69179// supported.
69180func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
69181	c.urlParams_.Set("orderBy", orderBy)
69182	return c
69183}
69184
69185// PageToken sets the optional parameter "pageToken": Specifies a page
69186// token to use. Set `pageToken` to the `nextPageToken` returned by a
69187// previous list request to get the next page of results.
69188func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
69189	c.urlParams_.Set("pageToken", pageToken)
69190	return c
69191}
69192
69193// Fields allows partial responses to be retrieved. See
69194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69195// for more information.
69196func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
69197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69198	return c
69199}
69200
69201// Context sets the context to be used in this call's Do method. Any
69202// pending HTTP request will be aborted if the provided context is
69203// canceled.
69204func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
69205	c.ctx_ = ctx
69206	return c
69207}
69208
69209// Header returns an http.Header that can be modified by the caller to
69210// add HTTP headers to the request.
69211func (c *InstanceGroupsListInstancesCall) Header() http.Header {
69212	if c.header_ == nil {
69213		c.header_ = make(http.Header)
69214	}
69215	return c.header_
69216}
69217
69218func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
69219	reqHeaders := make(http.Header)
69220	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69221	for k, v := range c.header_ {
69222		reqHeaders[k] = v
69223	}
69224	reqHeaders.Set("User-Agent", c.s.userAgent())
69225	var body io.Reader = nil
69226	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
69227	if err != nil {
69228		return nil, err
69229	}
69230	reqHeaders.Set("Content-Type", "application/json")
69231	c.urlParams_.Set("alt", alt)
69232	c.urlParams_.Set("prettyPrint", "false")
69233	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
69234	urls += "?" + c.urlParams_.Encode()
69235	req, err := http.NewRequest("POST", urls, body)
69236	if err != nil {
69237		return nil, err
69238	}
69239	req.Header = reqHeaders
69240	googleapi.Expand(req.URL, map[string]string{
69241		"project":       c.project,
69242		"zone":          c.zone,
69243		"instanceGroup": c.instanceGroup,
69244	})
69245	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69246}
69247
69248// Do executes the "compute.instanceGroups.listInstances" call.
69249// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
69250// Any non-2xx status code is an error. Response headers are in either
69251// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
69252// was returned at all) in error.(*googleapi.Error).Header. Use
69253// googleapi.IsNotModified to check whether the returned error was
69254// because http.StatusNotModified was returned.
69255func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
69256	gensupport.SetOptions(c.urlParams_, opts...)
69257	res, err := c.doRequest("json")
69258	if res != nil && res.StatusCode == http.StatusNotModified {
69259		if res.Body != nil {
69260			res.Body.Close()
69261		}
69262		return nil, &googleapi.Error{
69263			Code:   res.StatusCode,
69264			Header: res.Header,
69265		}
69266	}
69267	if err != nil {
69268		return nil, err
69269	}
69270	defer googleapi.CloseBody(res)
69271	if err := googleapi.CheckResponse(res); err != nil {
69272		return nil, err
69273	}
69274	ret := &InstanceGroupsListInstances{
69275		ServerResponse: googleapi.ServerResponse{
69276			Header:         res.Header,
69277			HTTPStatusCode: res.StatusCode,
69278		},
69279	}
69280	target := &ret
69281	if err := gensupport.DecodeResponse(target, res); err != nil {
69282		return nil, err
69283	}
69284	return ret, nil
69285	// {
69286	//   "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.",
69287	//   "httpMethod": "POST",
69288	//   "id": "compute.instanceGroups.listInstances",
69289	//   "parameterOrder": [
69290	//     "project",
69291	//     "zone",
69292	//     "instanceGroup"
69293	//   ],
69294	//   "parameters": {
69295	//     "filter": {
69296	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
69297	//       "location": "query",
69298	//       "type": "string"
69299	//     },
69300	//     "instanceGroup": {
69301	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
69302	//       "location": "path",
69303	//       "required": true,
69304	//       "type": "string"
69305	//     },
69306	//     "maxResults": {
69307	//       "default": "500",
69308	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69309	//       "format": "uint32",
69310	//       "location": "query",
69311	//       "minimum": "0",
69312	//       "type": "integer"
69313	//     },
69314	//     "orderBy": {
69315	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
69316	//       "location": "query",
69317	//       "type": "string"
69318	//     },
69319	//     "pageToken": {
69320	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69321	//       "location": "query",
69322	//       "type": "string"
69323	//     },
69324	//     "project": {
69325	//       "description": "Project ID for this request.",
69326	//       "location": "path",
69327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69328	//       "required": true,
69329	//       "type": "string"
69330	//     },
69331	//     "zone": {
69332	//       "description": "The name of the zone where the instance group is located.",
69333	//       "location": "path",
69334	//       "required": true,
69335	//       "type": "string"
69336	//     }
69337	//   },
69338	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
69339	//   "request": {
69340	//     "$ref": "InstanceGroupsListInstancesRequest"
69341	//   },
69342	//   "response": {
69343	//     "$ref": "InstanceGroupsListInstances"
69344	//   },
69345	//   "scopes": [
69346	//     "https://www.googleapis.com/auth/cloud-platform",
69347	//     "https://www.googleapis.com/auth/compute",
69348	//     "https://www.googleapis.com/auth/compute.readonly"
69349	//   ]
69350	// }
69351
69352}
69353
69354// Pages invokes f for each page of results.
69355// A non-nil error returned from f will halt the iteration.
69356// The provided context supersedes any context provided to the Context method.
69357func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
69358	c.ctx_ = ctx
69359	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69360	for {
69361		x, err := c.Do()
69362		if err != nil {
69363			return err
69364		}
69365		if err := f(x); err != nil {
69366			return err
69367		}
69368		if x.NextPageToken == "" {
69369			return nil
69370		}
69371		c.PageToken(x.NextPageToken)
69372	}
69373}
69374
69375// method id "compute.instanceGroups.removeInstances":
69376
69377type InstanceGroupsRemoveInstancesCall struct {
69378	s                                    *Service
69379	project                              string
69380	zone                                 string
69381	instanceGroup                        string
69382	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
69383	urlParams_                           gensupport.URLParams
69384	ctx_                                 context.Context
69385	header_                              http.Header
69386}
69387
69388// RemoveInstances: Removes one or more instances from the specified
69389// instance group, but does not delete those instances.
69390//
69391// If the group is part of a backend service that has enabled connection
69392// draining, it can take up to 60 seconds after the connection draining
69393// duration before the VM instance is removed or deleted.
69394func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
69395	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69396	c.project = project
69397	c.zone = zone
69398	c.instanceGroup = instanceGroup
69399	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
69400	return c
69401}
69402
69403// RequestId sets the optional parameter "requestId": An optional
69404// request ID to identify requests. Specify a unique request ID so that
69405// if you must retry your request, the server will know to ignore the
69406// request if it has already been completed.
69407//
69408// For example, consider a situation where you make an initial request
69409// and the request times out. If you make the request again with the
69410// same request ID, the server can check if original operation with the
69411// same request ID was received, and if so, will ignore the second
69412// request. This prevents clients from accidentally creating duplicate
69413// commitments.
69414//
69415// The request ID must be a valid UUID with the exception that zero UUID
69416// is not supported (00000000-0000-0000-0000-000000000000).
69417func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
69418	c.urlParams_.Set("requestId", requestId)
69419	return c
69420}
69421
69422// Fields allows partial responses to be retrieved. See
69423// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69424// for more information.
69425func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
69426	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69427	return c
69428}
69429
69430// Context sets the context to be used in this call's Do method. Any
69431// pending HTTP request will be aborted if the provided context is
69432// canceled.
69433func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
69434	c.ctx_ = ctx
69435	return c
69436}
69437
69438// Header returns an http.Header that can be modified by the caller to
69439// add HTTP headers to the request.
69440func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
69441	if c.header_ == nil {
69442		c.header_ = make(http.Header)
69443	}
69444	return c.header_
69445}
69446
69447func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
69448	reqHeaders := make(http.Header)
69449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69450	for k, v := range c.header_ {
69451		reqHeaders[k] = v
69452	}
69453	reqHeaders.Set("User-Agent", c.s.userAgent())
69454	var body io.Reader = nil
69455	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
69456	if err != nil {
69457		return nil, err
69458	}
69459	reqHeaders.Set("Content-Type", "application/json")
69460	c.urlParams_.Set("alt", alt)
69461	c.urlParams_.Set("prettyPrint", "false")
69462	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
69463	urls += "?" + c.urlParams_.Encode()
69464	req, err := http.NewRequest("POST", urls, body)
69465	if err != nil {
69466		return nil, err
69467	}
69468	req.Header = reqHeaders
69469	googleapi.Expand(req.URL, map[string]string{
69470		"project":       c.project,
69471		"zone":          c.zone,
69472		"instanceGroup": c.instanceGroup,
69473	})
69474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69475}
69476
69477// Do executes the "compute.instanceGroups.removeInstances" call.
69478// Exactly one of *Operation or error will be non-nil. Any non-2xx
69479// status code is an error. Response headers are in either
69480// *Operation.ServerResponse.Header or (if a response was returned at
69481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69482// to check whether the returned error was because
69483// http.StatusNotModified was returned.
69484func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69485	gensupport.SetOptions(c.urlParams_, opts...)
69486	res, err := c.doRequest("json")
69487	if res != nil && res.StatusCode == http.StatusNotModified {
69488		if res.Body != nil {
69489			res.Body.Close()
69490		}
69491		return nil, &googleapi.Error{
69492			Code:   res.StatusCode,
69493			Header: res.Header,
69494		}
69495	}
69496	if err != nil {
69497		return nil, err
69498	}
69499	defer googleapi.CloseBody(res)
69500	if err := googleapi.CheckResponse(res); err != nil {
69501		return nil, err
69502	}
69503	ret := &Operation{
69504		ServerResponse: googleapi.ServerResponse{
69505			Header:         res.Header,
69506			HTTPStatusCode: res.StatusCode,
69507		},
69508	}
69509	target := &ret
69510	if err := gensupport.DecodeResponse(target, res); err != nil {
69511		return nil, err
69512	}
69513	return ret, nil
69514	// {
69515	//   "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.",
69516	//   "httpMethod": "POST",
69517	//   "id": "compute.instanceGroups.removeInstances",
69518	//   "parameterOrder": [
69519	//     "project",
69520	//     "zone",
69521	//     "instanceGroup"
69522	//   ],
69523	//   "parameters": {
69524	//     "instanceGroup": {
69525	//       "description": "The name of the instance group where the specified instances will be removed.",
69526	//       "location": "path",
69527	//       "required": true,
69528	//       "type": "string"
69529	//     },
69530	//     "project": {
69531	//       "description": "Project ID for this request.",
69532	//       "location": "path",
69533	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69534	//       "required": true,
69535	//       "type": "string"
69536	//     },
69537	//     "requestId": {
69538	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69539	//       "location": "query",
69540	//       "type": "string"
69541	//     },
69542	//     "zone": {
69543	//       "description": "The name of the zone where the instance group is located.",
69544	//       "location": "path",
69545	//       "required": true,
69546	//       "type": "string"
69547	//     }
69548	//   },
69549	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
69550	//   "request": {
69551	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
69552	//   },
69553	//   "response": {
69554	//     "$ref": "Operation"
69555	//   },
69556	//   "scopes": [
69557	//     "https://www.googleapis.com/auth/cloud-platform",
69558	//     "https://www.googleapis.com/auth/compute"
69559	//   ]
69560	// }
69561
69562}
69563
69564// method id "compute.instanceGroups.setNamedPorts":
69565
69566type InstanceGroupsSetNamedPortsCall struct {
69567	s                                  *Service
69568	project                            string
69569	zone                               string
69570	instanceGroup                      string
69571	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
69572	urlParams_                         gensupport.URLParams
69573	ctx_                               context.Context
69574	header_                            http.Header
69575}
69576
69577// SetNamedPorts: Sets the named ports for the specified instance group.
69578func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
69579	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69580	c.project = project
69581	c.zone = zone
69582	c.instanceGroup = instanceGroup
69583	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
69584	return c
69585}
69586
69587// RequestId sets the optional parameter "requestId": An optional
69588// request ID to identify requests. Specify a unique request ID so that
69589// if you must retry your request, the server will know to ignore the
69590// request if it has already been completed.
69591//
69592// For example, consider a situation where you make an initial request
69593// and the request times out. If you make the request again with the
69594// same request ID, the server can check if original operation with the
69595// same request ID was received, and if so, will ignore the second
69596// request. This prevents clients from accidentally creating duplicate
69597// commitments.
69598//
69599// The request ID must be a valid UUID with the exception that zero UUID
69600// is not supported (00000000-0000-0000-0000-000000000000).
69601func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
69602	c.urlParams_.Set("requestId", requestId)
69603	return c
69604}
69605
69606// Fields allows partial responses to be retrieved. See
69607// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69608// for more information.
69609func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
69610	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69611	return c
69612}
69613
69614// Context sets the context to be used in this call's Do method. Any
69615// pending HTTP request will be aborted if the provided context is
69616// canceled.
69617func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
69618	c.ctx_ = ctx
69619	return c
69620}
69621
69622// Header returns an http.Header that can be modified by the caller to
69623// add HTTP headers to the request.
69624func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
69625	if c.header_ == nil {
69626		c.header_ = make(http.Header)
69627	}
69628	return c.header_
69629}
69630
69631func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
69632	reqHeaders := make(http.Header)
69633	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69634	for k, v := range c.header_ {
69635		reqHeaders[k] = v
69636	}
69637	reqHeaders.Set("User-Agent", c.s.userAgent())
69638	var body io.Reader = nil
69639	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
69640	if err != nil {
69641		return nil, err
69642	}
69643	reqHeaders.Set("Content-Type", "application/json")
69644	c.urlParams_.Set("alt", alt)
69645	c.urlParams_.Set("prettyPrint", "false")
69646	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
69647	urls += "?" + c.urlParams_.Encode()
69648	req, err := http.NewRequest("POST", urls, body)
69649	if err != nil {
69650		return nil, err
69651	}
69652	req.Header = reqHeaders
69653	googleapi.Expand(req.URL, map[string]string{
69654		"project":       c.project,
69655		"zone":          c.zone,
69656		"instanceGroup": c.instanceGroup,
69657	})
69658	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69659}
69660
69661// Do executes the "compute.instanceGroups.setNamedPorts" call.
69662// Exactly one of *Operation or error will be non-nil. Any non-2xx
69663// status code is an error. Response headers are in either
69664// *Operation.ServerResponse.Header or (if a response was returned at
69665// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69666// to check whether the returned error was because
69667// http.StatusNotModified was returned.
69668func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69669	gensupport.SetOptions(c.urlParams_, opts...)
69670	res, err := c.doRequest("json")
69671	if res != nil && res.StatusCode == http.StatusNotModified {
69672		if res.Body != nil {
69673			res.Body.Close()
69674		}
69675		return nil, &googleapi.Error{
69676			Code:   res.StatusCode,
69677			Header: res.Header,
69678		}
69679	}
69680	if err != nil {
69681		return nil, err
69682	}
69683	defer googleapi.CloseBody(res)
69684	if err := googleapi.CheckResponse(res); err != nil {
69685		return nil, err
69686	}
69687	ret := &Operation{
69688		ServerResponse: googleapi.ServerResponse{
69689			Header:         res.Header,
69690			HTTPStatusCode: res.StatusCode,
69691		},
69692	}
69693	target := &ret
69694	if err := gensupport.DecodeResponse(target, res); err != nil {
69695		return nil, err
69696	}
69697	return ret, nil
69698	// {
69699	//   "description": "Sets the named ports for the specified instance group.",
69700	//   "httpMethod": "POST",
69701	//   "id": "compute.instanceGroups.setNamedPorts",
69702	//   "parameterOrder": [
69703	//     "project",
69704	//     "zone",
69705	//     "instanceGroup"
69706	//   ],
69707	//   "parameters": {
69708	//     "instanceGroup": {
69709	//       "description": "The name of the instance group where the named ports are updated.",
69710	//       "location": "path",
69711	//       "required": true,
69712	//       "type": "string"
69713	//     },
69714	//     "project": {
69715	//       "description": "Project ID for this request.",
69716	//       "location": "path",
69717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69718	//       "required": true,
69719	//       "type": "string"
69720	//     },
69721	//     "requestId": {
69722	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69723	//       "location": "query",
69724	//       "type": "string"
69725	//     },
69726	//     "zone": {
69727	//       "description": "The name of the zone where the instance group is located.",
69728	//       "location": "path",
69729	//       "required": true,
69730	//       "type": "string"
69731	//     }
69732	//   },
69733	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
69734	//   "request": {
69735	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
69736	//   },
69737	//   "response": {
69738	//     "$ref": "Operation"
69739	//   },
69740	//   "scopes": [
69741	//     "https://www.googleapis.com/auth/cloud-platform",
69742	//     "https://www.googleapis.com/auth/compute"
69743	//   ]
69744	// }
69745
69746}
69747
69748// method id "compute.instanceTemplates.delete":
69749
69750type InstanceTemplatesDeleteCall struct {
69751	s                *Service
69752	project          string
69753	instanceTemplate string
69754	urlParams_       gensupport.URLParams
69755	ctx_             context.Context
69756	header_          http.Header
69757}
69758
69759// Delete: Deletes the specified instance template. Deleting an instance
69760// template is permanent and cannot be undone. It is not possible to
69761// delete templates that are already in use by a managed instance group.
69762// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
69763func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
69764	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69765	c.project = project
69766	c.instanceTemplate = instanceTemplate
69767	return c
69768}
69769
69770// RequestId sets the optional parameter "requestId": An optional
69771// request ID to identify requests. Specify a unique request ID so that
69772// if you must retry your request, the server will know to ignore the
69773// request if it has already been completed.
69774//
69775// For example, consider a situation where you make an initial request
69776// and the request times out. If you make the request again with the
69777// same request ID, the server can check if original operation with the
69778// same request ID was received, and if so, will ignore the second
69779// request. This prevents clients from accidentally creating duplicate
69780// commitments.
69781//
69782// The request ID must be a valid UUID with the exception that zero UUID
69783// is not supported (00000000-0000-0000-0000-000000000000).
69784func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
69785	c.urlParams_.Set("requestId", requestId)
69786	return c
69787}
69788
69789// Fields allows partial responses to be retrieved. See
69790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69791// for more information.
69792func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
69793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69794	return c
69795}
69796
69797// Context sets the context to be used in this call's Do method. Any
69798// pending HTTP request will be aborted if the provided context is
69799// canceled.
69800func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
69801	c.ctx_ = ctx
69802	return c
69803}
69804
69805// Header returns an http.Header that can be modified by the caller to
69806// add HTTP headers to the request.
69807func (c *InstanceTemplatesDeleteCall) Header() http.Header {
69808	if c.header_ == nil {
69809		c.header_ = make(http.Header)
69810	}
69811	return c.header_
69812}
69813
69814func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
69815	reqHeaders := make(http.Header)
69816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69817	for k, v := range c.header_ {
69818		reqHeaders[k] = v
69819	}
69820	reqHeaders.Set("User-Agent", c.s.userAgent())
69821	var body io.Reader = nil
69822	c.urlParams_.Set("alt", alt)
69823	c.urlParams_.Set("prettyPrint", "false")
69824	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
69825	urls += "?" + c.urlParams_.Encode()
69826	req, err := http.NewRequest("DELETE", urls, body)
69827	if err != nil {
69828		return nil, err
69829	}
69830	req.Header = reqHeaders
69831	googleapi.Expand(req.URL, map[string]string{
69832		"project":          c.project,
69833		"instanceTemplate": c.instanceTemplate,
69834	})
69835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69836}
69837
69838// Do executes the "compute.instanceTemplates.delete" call.
69839// Exactly one of *Operation or error will be non-nil. Any non-2xx
69840// status code is an error. Response headers are in either
69841// *Operation.ServerResponse.Header or (if a response was returned at
69842// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69843// to check whether the returned error was because
69844// http.StatusNotModified was returned.
69845func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69846	gensupport.SetOptions(c.urlParams_, opts...)
69847	res, err := c.doRequest("json")
69848	if res != nil && res.StatusCode == http.StatusNotModified {
69849		if res.Body != nil {
69850			res.Body.Close()
69851		}
69852		return nil, &googleapi.Error{
69853			Code:   res.StatusCode,
69854			Header: res.Header,
69855		}
69856	}
69857	if err != nil {
69858		return nil, err
69859	}
69860	defer googleapi.CloseBody(res)
69861	if err := googleapi.CheckResponse(res); err != nil {
69862		return nil, err
69863	}
69864	ret := &Operation{
69865		ServerResponse: googleapi.ServerResponse{
69866			Header:         res.Header,
69867			HTTPStatusCode: res.StatusCode,
69868		},
69869	}
69870	target := &ret
69871	if err := gensupport.DecodeResponse(target, res); err != nil {
69872		return nil, err
69873	}
69874	return ret, nil
69875	// {
69876	//   "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.",
69877	//   "httpMethod": "DELETE",
69878	//   "id": "compute.instanceTemplates.delete",
69879	//   "parameterOrder": [
69880	//     "project",
69881	//     "instanceTemplate"
69882	//   ],
69883	//   "parameters": {
69884	//     "instanceTemplate": {
69885	//       "description": "The name of the instance template to delete.",
69886	//       "location": "path",
69887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69888	//       "required": true,
69889	//       "type": "string"
69890	//     },
69891	//     "project": {
69892	//       "description": "Project ID for this request.",
69893	//       "location": "path",
69894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69895	//       "required": true,
69896	//       "type": "string"
69897	//     },
69898	//     "requestId": {
69899	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69900	//       "location": "query",
69901	//       "type": "string"
69902	//     }
69903	//   },
69904	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
69905	//   "response": {
69906	//     "$ref": "Operation"
69907	//   },
69908	//   "scopes": [
69909	//     "https://www.googleapis.com/auth/cloud-platform",
69910	//     "https://www.googleapis.com/auth/compute"
69911	//   ]
69912	// }
69913
69914}
69915
69916// method id "compute.instanceTemplates.get":
69917
69918type InstanceTemplatesGetCall struct {
69919	s                *Service
69920	project          string
69921	instanceTemplate string
69922	urlParams_       gensupport.URLParams
69923	ifNoneMatch_     string
69924	ctx_             context.Context
69925	header_          http.Header
69926}
69927
69928// Get: Returns the specified instance template. Gets a list of
69929// available instance templates by making a list() request.
69930// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
69931func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
69932	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69933	c.project = project
69934	c.instanceTemplate = instanceTemplate
69935	return c
69936}
69937
69938// Fields allows partial responses to be retrieved. See
69939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69940// for more information.
69941func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
69942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69943	return c
69944}
69945
69946// IfNoneMatch sets the optional parameter which makes the operation
69947// fail if the object's ETag matches the given value. This is useful for
69948// getting updates only after the object has changed since the last
69949// request. Use googleapi.IsNotModified to check whether the response
69950// error from Do is the result of In-None-Match.
69951func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
69952	c.ifNoneMatch_ = entityTag
69953	return c
69954}
69955
69956// Context sets the context to be used in this call's Do method. Any
69957// pending HTTP request will be aborted if the provided context is
69958// canceled.
69959func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
69960	c.ctx_ = ctx
69961	return c
69962}
69963
69964// Header returns an http.Header that can be modified by the caller to
69965// add HTTP headers to the request.
69966func (c *InstanceTemplatesGetCall) Header() http.Header {
69967	if c.header_ == nil {
69968		c.header_ = make(http.Header)
69969	}
69970	return c.header_
69971}
69972
69973func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
69974	reqHeaders := make(http.Header)
69975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69976	for k, v := range c.header_ {
69977		reqHeaders[k] = v
69978	}
69979	reqHeaders.Set("User-Agent", c.s.userAgent())
69980	if c.ifNoneMatch_ != "" {
69981		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69982	}
69983	var body io.Reader = nil
69984	c.urlParams_.Set("alt", alt)
69985	c.urlParams_.Set("prettyPrint", "false")
69986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
69987	urls += "?" + c.urlParams_.Encode()
69988	req, err := http.NewRequest("GET", urls, body)
69989	if err != nil {
69990		return nil, err
69991	}
69992	req.Header = reqHeaders
69993	googleapi.Expand(req.URL, map[string]string{
69994		"project":          c.project,
69995		"instanceTemplate": c.instanceTemplate,
69996	})
69997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69998}
69999
70000// Do executes the "compute.instanceTemplates.get" call.
70001// Exactly one of *InstanceTemplate or error will be non-nil. Any
70002// non-2xx status code is an error. Response headers are in either
70003// *InstanceTemplate.ServerResponse.Header or (if a response was
70004// returned at all) in error.(*googleapi.Error).Header. Use
70005// googleapi.IsNotModified to check whether the returned error was
70006// because http.StatusNotModified was returned.
70007func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
70008	gensupport.SetOptions(c.urlParams_, opts...)
70009	res, err := c.doRequest("json")
70010	if res != nil && res.StatusCode == http.StatusNotModified {
70011		if res.Body != nil {
70012			res.Body.Close()
70013		}
70014		return nil, &googleapi.Error{
70015			Code:   res.StatusCode,
70016			Header: res.Header,
70017		}
70018	}
70019	if err != nil {
70020		return nil, err
70021	}
70022	defer googleapi.CloseBody(res)
70023	if err := googleapi.CheckResponse(res); err != nil {
70024		return nil, err
70025	}
70026	ret := &InstanceTemplate{
70027		ServerResponse: googleapi.ServerResponse{
70028			Header:         res.Header,
70029			HTTPStatusCode: res.StatusCode,
70030		},
70031	}
70032	target := &ret
70033	if err := gensupport.DecodeResponse(target, res); err != nil {
70034		return nil, err
70035	}
70036	return ret, nil
70037	// {
70038	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
70039	//   "httpMethod": "GET",
70040	//   "id": "compute.instanceTemplates.get",
70041	//   "parameterOrder": [
70042	//     "project",
70043	//     "instanceTemplate"
70044	//   ],
70045	//   "parameters": {
70046	//     "instanceTemplate": {
70047	//       "description": "The name of the instance template.",
70048	//       "location": "path",
70049	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70050	//       "required": true,
70051	//       "type": "string"
70052	//     },
70053	//     "project": {
70054	//       "description": "Project ID for this request.",
70055	//       "location": "path",
70056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70057	//       "required": true,
70058	//       "type": "string"
70059	//     }
70060	//   },
70061	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
70062	//   "response": {
70063	//     "$ref": "InstanceTemplate"
70064	//   },
70065	//   "scopes": [
70066	//     "https://www.googleapis.com/auth/cloud-platform",
70067	//     "https://www.googleapis.com/auth/compute",
70068	//     "https://www.googleapis.com/auth/compute.readonly"
70069	//   ]
70070	// }
70071
70072}
70073
70074// method id "compute.instanceTemplates.getIamPolicy":
70075
70076type InstanceTemplatesGetIamPolicyCall struct {
70077	s            *Service
70078	project      string
70079	resource     string
70080	urlParams_   gensupport.URLParams
70081	ifNoneMatch_ string
70082	ctx_         context.Context
70083	header_      http.Header
70084}
70085
70086// GetIamPolicy: Gets the access control policy for a resource. May be
70087// empty if no such policy or resource exists.
70088func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
70089	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70090	c.project = project
70091	c.resource = resource
70092	return c
70093}
70094
70095// Fields allows partial responses to be retrieved. See
70096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70097// for more information.
70098func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
70099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70100	return c
70101}
70102
70103// IfNoneMatch sets the optional parameter which makes the operation
70104// fail if the object's ETag matches the given value. This is useful for
70105// getting updates only after the object has changed since the last
70106// request. Use googleapi.IsNotModified to check whether the response
70107// error from Do is the result of In-None-Match.
70108func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
70109	c.ifNoneMatch_ = entityTag
70110	return c
70111}
70112
70113// Context sets the context to be used in this call's Do method. Any
70114// pending HTTP request will be aborted if the provided context is
70115// canceled.
70116func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
70117	c.ctx_ = ctx
70118	return c
70119}
70120
70121// Header returns an http.Header that can be modified by the caller to
70122// add HTTP headers to the request.
70123func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
70124	if c.header_ == nil {
70125		c.header_ = make(http.Header)
70126	}
70127	return c.header_
70128}
70129
70130func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
70131	reqHeaders := make(http.Header)
70132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70133	for k, v := range c.header_ {
70134		reqHeaders[k] = v
70135	}
70136	reqHeaders.Set("User-Agent", c.s.userAgent())
70137	if c.ifNoneMatch_ != "" {
70138		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70139	}
70140	var body io.Reader = nil
70141	c.urlParams_.Set("alt", alt)
70142	c.urlParams_.Set("prettyPrint", "false")
70143	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/getIamPolicy")
70144	urls += "?" + c.urlParams_.Encode()
70145	req, err := http.NewRequest("GET", urls, body)
70146	if err != nil {
70147		return nil, err
70148	}
70149	req.Header = reqHeaders
70150	googleapi.Expand(req.URL, map[string]string{
70151		"project":  c.project,
70152		"resource": c.resource,
70153	})
70154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70155}
70156
70157// Do executes the "compute.instanceTemplates.getIamPolicy" call.
70158// Exactly one of *Policy or error will be non-nil. Any non-2xx status
70159// code is an error. Response headers are in either
70160// *Policy.ServerResponse.Header or (if a response was returned at all)
70161// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
70162// check whether the returned error was because http.StatusNotModified
70163// was returned.
70164func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
70165	gensupport.SetOptions(c.urlParams_, opts...)
70166	res, err := c.doRequest("json")
70167	if res != nil && res.StatusCode == http.StatusNotModified {
70168		if res.Body != nil {
70169			res.Body.Close()
70170		}
70171		return nil, &googleapi.Error{
70172			Code:   res.StatusCode,
70173			Header: res.Header,
70174		}
70175	}
70176	if err != nil {
70177		return nil, err
70178	}
70179	defer googleapi.CloseBody(res)
70180	if err := googleapi.CheckResponse(res); err != nil {
70181		return nil, err
70182	}
70183	ret := &Policy{
70184		ServerResponse: googleapi.ServerResponse{
70185			Header:         res.Header,
70186			HTTPStatusCode: res.StatusCode,
70187		},
70188	}
70189	target := &ret
70190	if err := gensupport.DecodeResponse(target, res); err != nil {
70191		return nil, err
70192	}
70193	return ret, nil
70194	// {
70195	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
70196	//   "httpMethod": "GET",
70197	//   "id": "compute.instanceTemplates.getIamPolicy",
70198	//   "parameterOrder": [
70199	//     "project",
70200	//     "resource"
70201	//   ],
70202	//   "parameters": {
70203	//     "project": {
70204	//       "description": "Project ID for this request.",
70205	//       "location": "path",
70206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70207	//       "required": true,
70208	//       "type": "string"
70209	//     },
70210	//     "resource": {
70211	//       "description": "Name or id of the resource for this request.",
70212	//       "location": "path",
70213	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70214	//       "required": true,
70215	//       "type": "string"
70216	//     }
70217	//   },
70218	//   "path": "{project}/global/instanceTemplates/{resource}/getIamPolicy",
70219	//   "response": {
70220	//     "$ref": "Policy"
70221	//   },
70222	//   "scopes": [
70223	//     "https://www.googleapis.com/auth/cloud-platform",
70224	//     "https://www.googleapis.com/auth/compute",
70225	//     "https://www.googleapis.com/auth/compute.readonly"
70226	//   ]
70227	// }
70228
70229}
70230
70231// method id "compute.instanceTemplates.insert":
70232
70233type InstanceTemplatesInsertCall struct {
70234	s                *Service
70235	project          string
70236	instancetemplate *InstanceTemplate
70237	urlParams_       gensupport.URLParams
70238	ctx_             context.Context
70239	header_          http.Header
70240}
70241
70242// Insert: Creates an instance template in the specified project using
70243// the data that is included in the request. If you are creating a new
70244// template to update an existing instance group, your new instance
70245// template must use the same network or, if applicable, the same
70246// subnetwork as the original template.
70247// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
70248func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
70249	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70250	c.project = project
70251	c.instancetemplate = instancetemplate
70252	return c
70253}
70254
70255// RequestId sets the optional parameter "requestId": An optional
70256// request ID to identify requests. Specify a unique request ID so that
70257// if you must retry your request, the server will know to ignore the
70258// request if it has already been completed.
70259//
70260// For example, consider a situation where you make an initial request
70261// and the request times out. If you make the request again with the
70262// same request ID, the server can check if original operation with the
70263// same request ID was received, and if so, will ignore the second
70264// request. This prevents clients from accidentally creating duplicate
70265// commitments.
70266//
70267// The request ID must be a valid UUID with the exception that zero UUID
70268// is not supported (00000000-0000-0000-0000-000000000000).
70269func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
70270	c.urlParams_.Set("requestId", requestId)
70271	return c
70272}
70273
70274// Fields allows partial responses to be retrieved. See
70275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70276// for more information.
70277func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
70278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70279	return c
70280}
70281
70282// Context sets the context to be used in this call's Do method. Any
70283// pending HTTP request will be aborted if the provided context is
70284// canceled.
70285func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
70286	c.ctx_ = ctx
70287	return c
70288}
70289
70290// Header returns an http.Header that can be modified by the caller to
70291// add HTTP headers to the request.
70292func (c *InstanceTemplatesInsertCall) Header() http.Header {
70293	if c.header_ == nil {
70294		c.header_ = make(http.Header)
70295	}
70296	return c.header_
70297}
70298
70299func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
70300	reqHeaders := make(http.Header)
70301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70302	for k, v := range c.header_ {
70303		reqHeaders[k] = v
70304	}
70305	reqHeaders.Set("User-Agent", c.s.userAgent())
70306	var body io.Reader = nil
70307	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
70308	if err != nil {
70309		return nil, err
70310	}
70311	reqHeaders.Set("Content-Type", "application/json")
70312	c.urlParams_.Set("alt", alt)
70313	c.urlParams_.Set("prettyPrint", "false")
70314	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
70315	urls += "?" + c.urlParams_.Encode()
70316	req, err := http.NewRequest("POST", urls, body)
70317	if err != nil {
70318		return nil, err
70319	}
70320	req.Header = reqHeaders
70321	googleapi.Expand(req.URL, map[string]string{
70322		"project": c.project,
70323	})
70324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70325}
70326
70327// Do executes the "compute.instanceTemplates.insert" call.
70328// Exactly one of *Operation or error will be non-nil. Any non-2xx
70329// status code is an error. Response headers are in either
70330// *Operation.ServerResponse.Header or (if a response was returned at
70331// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70332// to check whether the returned error was because
70333// http.StatusNotModified was returned.
70334func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70335	gensupport.SetOptions(c.urlParams_, opts...)
70336	res, err := c.doRequest("json")
70337	if res != nil && res.StatusCode == http.StatusNotModified {
70338		if res.Body != nil {
70339			res.Body.Close()
70340		}
70341		return nil, &googleapi.Error{
70342			Code:   res.StatusCode,
70343			Header: res.Header,
70344		}
70345	}
70346	if err != nil {
70347		return nil, err
70348	}
70349	defer googleapi.CloseBody(res)
70350	if err := googleapi.CheckResponse(res); err != nil {
70351		return nil, err
70352	}
70353	ret := &Operation{
70354		ServerResponse: googleapi.ServerResponse{
70355			Header:         res.Header,
70356			HTTPStatusCode: res.StatusCode,
70357		},
70358	}
70359	target := &ret
70360	if err := gensupport.DecodeResponse(target, res); err != nil {
70361		return nil, err
70362	}
70363	return ret, nil
70364	// {
70365	//   "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.",
70366	//   "httpMethod": "POST",
70367	//   "id": "compute.instanceTemplates.insert",
70368	//   "parameterOrder": [
70369	//     "project"
70370	//   ],
70371	//   "parameters": {
70372	//     "project": {
70373	//       "description": "Project ID for this request.",
70374	//       "location": "path",
70375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70376	//       "required": true,
70377	//       "type": "string"
70378	//     },
70379	//     "requestId": {
70380	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70381	//       "location": "query",
70382	//       "type": "string"
70383	//     }
70384	//   },
70385	//   "path": "{project}/global/instanceTemplates",
70386	//   "request": {
70387	//     "$ref": "InstanceTemplate"
70388	//   },
70389	//   "response": {
70390	//     "$ref": "Operation"
70391	//   },
70392	//   "scopes": [
70393	//     "https://www.googleapis.com/auth/cloud-platform",
70394	//     "https://www.googleapis.com/auth/compute"
70395	//   ]
70396	// }
70397
70398}
70399
70400// method id "compute.instanceTemplates.list":
70401
70402type InstanceTemplatesListCall struct {
70403	s            *Service
70404	project      string
70405	urlParams_   gensupport.URLParams
70406	ifNoneMatch_ string
70407	ctx_         context.Context
70408	header_      http.Header
70409}
70410
70411// List: Retrieves a list of instance templates that are contained
70412// within the specified project.
70413// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
70414func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
70415	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70416	c.project = project
70417	return c
70418}
70419
70420// Filter sets the optional parameter "filter": A filter expression that
70421// filters resources listed in the response. The expression must specify
70422// the field name, a comparison operator, and the value that you want to
70423// use for filtering. The value must be a string, a number, or a
70424// boolean. The comparison operator must be either `=`, `!=`, `>`, or
70425// `<`.
70426//
70427// For example, if you are filtering Compute Engine instances, you can
70428// exclude instances named `example-instance` by specifying `name !=
70429// example-instance`.
70430//
70431// You can also filter nested fields. For example, you could specify
70432// `scheduling.automaticRestart = false` to include instances only if
70433// they are not scheduled for automatic restarts. You can use filtering
70434// on nested fields to filter based on resource labels.
70435//
70436// To filter on multiple expressions, provide each separate expression
70437// within parentheses. For example: ``` (scheduling.automaticRestart =
70438// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
70439// is an `AND` expression. However, you can include `AND` and `OR`
70440// expressions explicitly. For example: ``` (cpuPlatform = "Intel
70441// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
70442// (scheduling.automaticRestart = true) ```
70443func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
70444	c.urlParams_.Set("filter", filter)
70445	return c
70446}
70447
70448// MaxResults sets the optional parameter "maxResults": The maximum
70449// number of results per page that should be returned. If the number of
70450// available results is larger than `maxResults`, Compute Engine returns
70451// a `nextPageToken` that can be used to get the next page of results in
70452// subsequent list requests. Acceptable values are `0` to `500`,
70453// inclusive. (Default: `500`)
70454func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
70455	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70456	return c
70457}
70458
70459// OrderBy sets the optional parameter "orderBy": Sorts list results by
70460// a certain order. By default, results are returned in alphanumerical
70461// order based on the resource name.
70462//
70463// You can also sort results in descending order based on the creation
70464// timestamp using `orderBy="creationTimestamp desc". This sorts
70465// results based on the `creationTimestamp` field in reverse
70466// chronological order (newest result first). Use this to sort resources
70467// like operations so that the newest operation is returned
70468// first.
70469//
70470// Currently, only sorting by `name` or `creationTimestamp desc` is
70471// supported.
70472func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
70473	c.urlParams_.Set("orderBy", orderBy)
70474	return c
70475}
70476
70477// PageToken sets the optional parameter "pageToken": Specifies a page
70478// token to use. Set `pageToken` to the `nextPageToken` returned by a
70479// previous list request to get the next page of results.
70480func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
70481	c.urlParams_.Set("pageToken", pageToken)
70482	return c
70483}
70484
70485// Fields allows partial responses to be retrieved. See
70486// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70487// for more information.
70488func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
70489	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70490	return c
70491}
70492
70493// IfNoneMatch sets the optional parameter which makes the operation
70494// fail if the object's ETag matches the given value. This is useful for
70495// getting updates only after the object has changed since the last
70496// request. Use googleapi.IsNotModified to check whether the response
70497// error from Do is the result of In-None-Match.
70498func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
70499	c.ifNoneMatch_ = entityTag
70500	return c
70501}
70502
70503// Context sets the context to be used in this call's Do method. Any
70504// pending HTTP request will be aborted if the provided context is
70505// canceled.
70506func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
70507	c.ctx_ = ctx
70508	return c
70509}
70510
70511// Header returns an http.Header that can be modified by the caller to
70512// add HTTP headers to the request.
70513func (c *InstanceTemplatesListCall) Header() http.Header {
70514	if c.header_ == nil {
70515		c.header_ = make(http.Header)
70516	}
70517	return c.header_
70518}
70519
70520func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
70521	reqHeaders := make(http.Header)
70522	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70523	for k, v := range c.header_ {
70524		reqHeaders[k] = v
70525	}
70526	reqHeaders.Set("User-Agent", c.s.userAgent())
70527	if c.ifNoneMatch_ != "" {
70528		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70529	}
70530	var body io.Reader = nil
70531	c.urlParams_.Set("alt", alt)
70532	c.urlParams_.Set("prettyPrint", "false")
70533	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
70534	urls += "?" + c.urlParams_.Encode()
70535	req, err := http.NewRequest("GET", urls, body)
70536	if err != nil {
70537		return nil, err
70538	}
70539	req.Header = reqHeaders
70540	googleapi.Expand(req.URL, map[string]string{
70541		"project": c.project,
70542	})
70543	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70544}
70545
70546// Do executes the "compute.instanceTemplates.list" call.
70547// Exactly one of *InstanceTemplateList or error will be non-nil. Any
70548// non-2xx status code is an error. Response headers are in either
70549// *InstanceTemplateList.ServerResponse.Header or (if a response was
70550// returned at all) in error.(*googleapi.Error).Header. Use
70551// googleapi.IsNotModified to check whether the returned error was
70552// because http.StatusNotModified was returned.
70553func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
70554	gensupport.SetOptions(c.urlParams_, opts...)
70555	res, err := c.doRequest("json")
70556	if res != nil && res.StatusCode == http.StatusNotModified {
70557		if res.Body != nil {
70558			res.Body.Close()
70559		}
70560		return nil, &googleapi.Error{
70561			Code:   res.StatusCode,
70562			Header: res.Header,
70563		}
70564	}
70565	if err != nil {
70566		return nil, err
70567	}
70568	defer googleapi.CloseBody(res)
70569	if err := googleapi.CheckResponse(res); err != nil {
70570		return nil, err
70571	}
70572	ret := &InstanceTemplateList{
70573		ServerResponse: googleapi.ServerResponse{
70574			Header:         res.Header,
70575			HTTPStatusCode: res.StatusCode,
70576		},
70577	}
70578	target := &ret
70579	if err := gensupport.DecodeResponse(target, res); err != nil {
70580		return nil, err
70581	}
70582	return ret, nil
70583	// {
70584	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
70585	//   "httpMethod": "GET",
70586	//   "id": "compute.instanceTemplates.list",
70587	//   "parameterOrder": [
70588	//     "project"
70589	//   ],
70590	//   "parameters": {
70591	//     "filter": {
70592	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
70593	//       "location": "query",
70594	//       "type": "string"
70595	//     },
70596	//     "maxResults": {
70597	//       "default": "500",
70598	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
70599	//       "format": "uint32",
70600	//       "location": "query",
70601	//       "minimum": "0",
70602	//       "type": "integer"
70603	//     },
70604	//     "orderBy": {
70605	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
70606	//       "location": "query",
70607	//       "type": "string"
70608	//     },
70609	//     "pageToken": {
70610	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
70611	//       "location": "query",
70612	//       "type": "string"
70613	//     },
70614	//     "project": {
70615	//       "description": "Project ID for this request.",
70616	//       "location": "path",
70617	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70618	//       "required": true,
70619	//       "type": "string"
70620	//     }
70621	//   },
70622	//   "path": "{project}/global/instanceTemplates",
70623	//   "response": {
70624	//     "$ref": "InstanceTemplateList"
70625	//   },
70626	//   "scopes": [
70627	//     "https://www.googleapis.com/auth/cloud-platform",
70628	//     "https://www.googleapis.com/auth/compute",
70629	//     "https://www.googleapis.com/auth/compute.readonly"
70630	//   ]
70631	// }
70632
70633}
70634
70635// Pages invokes f for each page of results.
70636// A non-nil error returned from f will halt the iteration.
70637// The provided context supersedes any context provided to the Context method.
70638func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
70639	c.ctx_ = ctx
70640	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70641	for {
70642		x, err := c.Do()
70643		if err != nil {
70644			return err
70645		}
70646		if err := f(x); err != nil {
70647			return err
70648		}
70649		if x.NextPageToken == "" {
70650			return nil
70651		}
70652		c.PageToken(x.NextPageToken)
70653	}
70654}
70655
70656// method id "compute.instanceTemplates.setIamPolicy":
70657
70658type InstanceTemplatesSetIamPolicyCall struct {
70659	s                      *Service
70660	project                string
70661	resource               string
70662	globalsetpolicyrequest *GlobalSetPolicyRequest
70663	urlParams_             gensupport.URLParams
70664	ctx_                   context.Context
70665	header_                http.Header
70666}
70667
70668// SetIamPolicy: Sets the access control policy on the specified
70669// resource. Replaces any existing policy.
70670func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
70671	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70672	c.project = project
70673	c.resource = resource
70674	c.globalsetpolicyrequest = globalsetpolicyrequest
70675	return c
70676}
70677
70678// Fields allows partial responses to be retrieved. See
70679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70680// for more information.
70681func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
70682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70683	return c
70684}
70685
70686// Context sets the context to be used in this call's Do method. Any
70687// pending HTTP request will be aborted if the provided context is
70688// canceled.
70689func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
70690	c.ctx_ = ctx
70691	return c
70692}
70693
70694// Header returns an http.Header that can be modified by the caller to
70695// add HTTP headers to the request.
70696func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
70697	if c.header_ == nil {
70698		c.header_ = make(http.Header)
70699	}
70700	return c.header_
70701}
70702
70703func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
70704	reqHeaders := make(http.Header)
70705	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70706	for k, v := range c.header_ {
70707		reqHeaders[k] = v
70708	}
70709	reqHeaders.Set("User-Agent", c.s.userAgent())
70710	var body io.Reader = nil
70711	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
70712	if err != nil {
70713		return nil, err
70714	}
70715	reqHeaders.Set("Content-Type", "application/json")
70716	c.urlParams_.Set("alt", alt)
70717	c.urlParams_.Set("prettyPrint", "false")
70718	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/setIamPolicy")
70719	urls += "?" + c.urlParams_.Encode()
70720	req, err := http.NewRequest("POST", urls, body)
70721	if err != nil {
70722		return nil, err
70723	}
70724	req.Header = reqHeaders
70725	googleapi.Expand(req.URL, map[string]string{
70726		"project":  c.project,
70727		"resource": c.resource,
70728	})
70729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70730}
70731
70732// Do executes the "compute.instanceTemplates.setIamPolicy" call.
70733// Exactly one of *Policy or error will be non-nil. Any non-2xx status
70734// code is an error. Response headers are in either
70735// *Policy.ServerResponse.Header or (if a response was returned at all)
70736// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
70737// check whether the returned error was because http.StatusNotModified
70738// was returned.
70739func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
70740	gensupport.SetOptions(c.urlParams_, opts...)
70741	res, err := c.doRequest("json")
70742	if res != nil && res.StatusCode == http.StatusNotModified {
70743		if res.Body != nil {
70744			res.Body.Close()
70745		}
70746		return nil, &googleapi.Error{
70747			Code:   res.StatusCode,
70748			Header: res.Header,
70749		}
70750	}
70751	if err != nil {
70752		return nil, err
70753	}
70754	defer googleapi.CloseBody(res)
70755	if err := googleapi.CheckResponse(res); err != nil {
70756		return nil, err
70757	}
70758	ret := &Policy{
70759		ServerResponse: googleapi.ServerResponse{
70760			Header:         res.Header,
70761			HTTPStatusCode: res.StatusCode,
70762		},
70763	}
70764	target := &ret
70765	if err := gensupport.DecodeResponse(target, res); err != nil {
70766		return nil, err
70767	}
70768	return ret, nil
70769	// {
70770	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
70771	//   "httpMethod": "POST",
70772	//   "id": "compute.instanceTemplates.setIamPolicy",
70773	//   "parameterOrder": [
70774	//     "project",
70775	//     "resource"
70776	//   ],
70777	//   "parameters": {
70778	//     "project": {
70779	//       "description": "Project ID for this request.",
70780	//       "location": "path",
70781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70782	//       "required": true,
70783	//       "type": "string"
70784	//     },
70785	//     "resource": {
70786	//       "description": "Name or id of the resource for this request.",
70787	//       "location": "path",
70788	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70789	//       "required": true,
70790	//       "type": "string"
70791	//     }
70792	//   },
70793	//   "path": "{project}/global/instanceTemplates/{resource}/setIamPolicy",
70794	//   "request": {
70795	//     "$ref": "GlobalSetPolicyRequest"
70796	//   },
70797	//   "response": {
70798	//     "$ref": "Policy"
70799	//   },
70800	//   "scopes": [
70801	//     "https://www.googleapis.com/auth/cloud-platform",
70802	//     "https://www.googleapis.com/auth/compute"
70803	//   ]
70804	// }
70805
70806}
70807
70808// method id "compute.instanceTemplates.testIamPermissions":
70809
70810type InstanceTemplatesTestIamPermissionsCall struct {
70811	s                      *Service
70812	project                string
70813	resource               string
70814	testpermissionsrequest *TestPermissionsRequest
70815	urlParams_             gensupport.URLParams
70816	ctx_                   context.Context
70817	header_                http.Header
70818}
70819
70820// TestIamPermissions: Returns permissions that a caller has on the
70821// specified resource.
70822func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
70823	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70824	c.project = project
70825	c.resource = resource
70826	c.testpermissionsrequest = testpermissionsrequest
70827	return c
70828}
70829
70830// Fields allows partial responses to be retrieved. See
70831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70832// for more information.
70833func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
70834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70835	return c
70836}
70837
70838// Context sets the context to be used in this call's Do method. Any
70839// pending HTTP request will be aborted if the provided context is
70840// canceled.
70841func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
70842	c.ctx_ = ctx
70843	return c
70844}
70845
70846// Header returns an http.Header that can be modified by the caller to
70847// add HTTP headers to the request.
70848func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
70849	if c.header_ == nil {
70850		c.header_ = make(http.Header)
70851	}
70852	return c.header_
70853}
70854
70855func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
70856	reqHeaders := make(http.Header)
70857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70858	for k, v := range c.header_ {
70859		reqHeaders[k] = v
70860	}
70861	reqHeaders.Set("User-Agent", c.s.userAgent())
70862	var body io.Reader = nil
70863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
70864	if err != nil {
70865		return nil, err
70866	}
70867	reqHeaders.Set("Content-Type", "application/json")
70868	c.urlParams_.Set("alt", alt)
70869	c.urlParams_.Set("prettyPrint", "false")
70870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/testIamPermissions")
70871	urls += "?" + c.urlParams_.Encode()
70872	req, err := http.NewRequest("POST", urls, body)
70873	if err != nil {
70874		return nil, err
70875	}
70876	req.Header = reqHeaders
70877	googleapi.Expand(req.URL, map[string]string{
70878		"project":  c.project,
70879		"resource": c.resource,
70880	})
70881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70882}
70883
70884// Do executes the "compute.instanceTemplates.testIamPermissions" call.
70885// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
70886// non-2xx status code is an error. Response headers are in either
70887// *TestPermissionsResponse.ServerResponse.Header or (if a response was
70888// returned at all) in error.(*googleapi.Error).Header. Use
70889// googleapi.IsNotModified to check whether the returned error was
70890// because http.StatusNotModified was returned.
70891func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
70892	gensupport.SetOptions(c.urlParams_, opts...)
70893	res, err := c.doRequest("json")
70894	if res != nil && res.StatusCode == http.StatusNotModified {
70895		if res.Body != nil {
70896			res.Body.Close()
70897		}
70898		return nil, &googleapi.Error{
70899			Code:   res.StatusCode,
70900			Header: res.Header,
70901		}
70902	}
70903	if err != nil {
70904		return nil, err
70905	}
70906	defer googleapi.CloseBody(res)
70907	if err := googleapi.CheckResponse(res); err != nil {
70908		return nil, err
70909	}
70910	ret := &TestPermissionsResponse{
70911		ServerResponse: googleapi.ServerResponse{
70912			Header:         res.Header,
70913			HTTPStatusCode: res.StatusCode,
70914		},
70915	}
70916	target := &ret
70917	if err := gensupport.DecodeResponse(target, res); err != nil {
70918		return nil, err
70919	}
70920	return ret, nil
70921	// {
70922	//   "description": "Returns permissions that a caller has on the specified resource.",
70923	//   "httpMethod": "POST",
70924	//   "id": "compute.instanceTemplates.testIamPermissions",
70925	//   "parameterOrder": [
70926	//     "project",
70927	//     "resource"
70928	//   ],
70929	//   "parameters": {
70930	//     "project": {
70931	//       "description": "Project ID for this request.",
70932	//       "location": "path",
70933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70934	//       "required": true,
70935	//       "type": "string"
70936	//     },
70937	//     "resource": {
70938	//       "description": "Name or id of the resource for this request.",
70939	//       "location": "path",
70940	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70941	//       "required": true,
70942	//       "type": "string"
70943	//     }
70944	//   },
70945	//   "path": "{project}/global/instanceTemplates/{resource}/testIamPermissions",
70946	//   "request": {
70947	//     "$ref": "TestPermissionsRequest"
70948	//   },
70949	//   "response": {
70950	//     "$ref": "TestPermissionsResponse"
70951	//   },
70952	//   "scopes": [
70953	//     "https://www.googleapis.com/auth/cloud-platform",
70954	//     "https://www.googleapis.com/auth/compute",
70955	//     "https://www.googleapis.com/auth/compute.readonly"
70956	//   ]
70957	// }
70958
70959}
70960
70961// method id "compute.instances.addAccessConfig":
70962
70963type InstancesAddAccessConfigCall struct {
70964	s            *Service
70965	project      string
70966	zone         string
70967	instance     string
70968	accessconfig *AccessConfig
70969	urlParams_   gensupport.URLParams
70970	ctx_         context.Context
70971	header_      http.Header
70972}
70973
70974// AddAccessConfig: Adds an access config to an instance's network
70975// interface.
70976// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
70977func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
70978	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70979	c.project = project
70980	c.zone = zone
70981	c.instance = instance
70982	c.urlParams_.Set("networkInterface", networkInterface)
70983	c.accessconfig = accessconfig
70984	return c
70985}
70986
70987// RequestId sets the optional parameter "requestId": An optional
70988// request ID to identify requests. Specify a unique request ID so that
70989// if you must retry your request, the server will know to ignore the
70990// request if it has already been completed.
70991//
70992// For example, consider a situation where you make an initial request
70993// and the request times out. If you make the request again with the
70994// same request ID, the server can check if original operation with the
70995// same request ID was received, and if so, will ignore the second
70996// request. This prevents clients from accidentally creating duplicate
70997// commitments.
70998//
70999// The request ID must be a valid UUID with the exception that zero UUID
71000// is not supported (00000000-0000-0000-0000-000000000000).
71001func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
71002	c.urlParams_.Set("requestId", requestId)
71003	return c
71004}
71005
71006// Fields allows partial responses to be retrieved. See
71007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71008// for more information.
71009func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
71010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71011	return c
71012}
71013
71014// Context sets the context to be used in this call's Do method. Any
71015// pending HTTP request will be aborted if the provided context is
71016// canceled.
71017func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
71018	c.ctx_ = ctx
71019	return c
71020}
71021
71022// Header returns an http.Header that can be modified by the caller to
71023// add HTTP headers to the request.
71024func (c *InstancesAddAccessConfigCall) Header() http.Header {
71025	if c.header_ == nil {
71026		c.header_ = make(http.Header)
71027	}
71028	return c.header_
71029}
71030
71031func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
71032	reqHeaders := make(http.Header)
71033	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71034	for k, v := range c.header_ {
71035		reqHeaders[k] = v
71036	}
71037	reqHeaders.Set("User-Agent", c.s.userAgent())
71038	var body io.Reader = nil
71039	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
71040	if err != nil {
71041		return nil, err
71042	}
71043	reqHeaders.Set("Content-Type", "application/json")
71044	c.urlParams_.Set("alt", alt)
71045	c.urlParams_.Set("prettyPrint", "false")
71046	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
71047	urls += "?" + c.urlParams_.Encode()
71048	req, err := http.NewRequest("POST", urls, body)
71049	if err != nil {
71050		return nil, err
71051	}
71052	req.Header = reqHeaders
71053	googleapi.Expand(req.URL, map[string]string{
71054		"project":  c.project,
71055		"zone":     c.zone,
71056		"instance": c.instance,
71057	})
71058	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71059}
71060
71061// Do executes the "compute.instances.addAccessConfig" call.
71062// Exactly one of *Operation or error will be non-nil. Any non-2xx
71063// status code is an error. Response headers are in either
71064// *Operation.ServerResponse.Header or (if a response was returned at
71065// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71066// to check whether the returned error was because
71067// http.StatusNotModified was returned.
71068func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71069	gensupport.SetOptions(c.urlParams_, opts...)
71070	res, err := c.doRequest("json")
71071	if res != nil && res.StatusCode == http.StatusNotModified {
71072		if res.Body != nil {
71073			res.Body.Close()
71074		}
71075		return nil, &googleapi.Error{
71076			Code:   res.StatusCode,
71077			Header: res.Header,
71078		}
71079	}
71080	if err != nil {
71081		return nil, err
71082	}
71083	defer googleapi.CloseBody(res)
71084	if err := googleapi.CheckResponse(res); err != nil {
71085		return nil, err
71086	}
71087	ret := &Operation{
71088		ServerResponse: googleapi.ServerResponse{
71089			Header:         res.Header,
71090			HTTPStatusCode: res.StatusCode,
71091		},
71092	}
71093	target := &ret
71094	if err := gensupport.DecodeResponse(target, res); err != nil {
71095		return nil, err
71096	}
71097	return ret, nil
71098	// {
71099	//   "description": "Adds an access config to an instance's network interface.",
71100	//   "httpMethod": "POST",
71101	//   "id": "compute.instances.addAccessConfig",
71102	//   "parameterOrder": [
71103	//     "project",
71104	//     "zone",
71105	//     "instance",
71106	//     "networkInterface"
71107	//   ],
71108	//   "parameters": {
71109	//     "instance": {
71110	//       "description": "The instance name for this request.",
71111	//       "location": "path",
71112	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71113	//       "required": true,
71114	//       "type": "string"
71115	//     },
71116	//     "networkInterface": {
71117	//       "description": "The name of the network interface to add to this instance.",
71118	//       "location": "query",
71119	//       "required": true,
71120	//       "type": "string"
71121	//     },
71122	//     "project": {
71123	//       "description": "Project ID for this request.",
71124	//       "location": "path",
71125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71126	//       "required": true,
71127	//       "type": "string"
71128	//     },
71129	//     "requestId": {
71130	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71131	//       "location": "query",
71132	//       "type": "string"
71133	//     },
71134	//     "zone": {
71135	//       "description": "The name of the zone for this request.",
71136	//       "location": "path",
71137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71138	//       "required": true,
71139	//       "type": "string"
71140	//     }
71141	//   },
71142	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
71143	//   "request": {
71144	//     "$ref": "AccessConfig"
71145	//   },
71146	//   "response": {
71147	//     "$ref": "Operation"
71148	//   },
71149	//   "scopes": [
71150	//     "https://www.googleapis.com/auth/cloud-platform",
71151	//     "https://www.googleapis.com/auth/compute"
71152	//   ]
71153	// }
71154
71155}
71156
71157// method id "compute.instances.addResourcePolicies":
71158
71159type InstancesAddResourcePoliciesCall struct {
71160	s                                   *Service
71161	project                             string
71162	zone                                string
71163	instance                            string
71164	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
71165	urlParams_                          gensupport.URLParams
71166	ctx_                                context.Context
71167	header_                             http.Header
71168}
71169
71170// AddResourcePolicies: Adds existing resource policies to an instance.
71171// You can only add one policy right now which will be applied to this
71172// instance for scheduling live migrations.
71173func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
71174	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71175	c.project = project
71176	c.zone = zone
71177	c.instance = instance
71178	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
71179	return c
71180}
71181
71182// RequestId sets the optional parameter "requestId": An optional
71183// request ID to identify requests. Specify a unique request ID so that
71184// if you must retry your request, the server will know to ignore the
71185// request if it has already been completed.
71186//
71187// For example, consider a situation where you make an initial request
71188// and the request times out. If you make the request again with the
71189// same request ID, the server can check if original operation with the
71190// same request ID was received, and if so, will ignore the second
71191// request. This prevents clients from accidentally creating duplicate
71192// commitments.
71193//
71194// The request ID must be a valid UUID with the exception that zero UUID
71195// is not supported (00000000-0000-0000-0000-000000000000).
71196func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
71197	c.urlParams_.Set("requestId", requestId)
71198	return c
71199}
71200
71201// Fields allows partial responses to be retrieved. See
71202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71203// for more information.
71204func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
71205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71206	return c
71207}
71208
71209// Context sets the context to be used in this call's Do method. Any
71210// pending HTTP request will be aborted if the provided context is
71211// canceled.
71212func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
71213	c.ctx_ = ctx
71214	return c
71215}
71216
71217// Header returns an http.Header that can be modified by the caller to
71218// add HTTP headers to the request.
71219func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
71220	if c.header_ == nil {
71221		c.header_ = make(http.Header)
71222	}
71223	return c.header_
71224}
71225
71226func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
71227	reqHeaders := make(http.Header)
71228	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71229	for k, v := range c.header_ {
71230		reqHeaders[k] = v
71231	}
71232	reqHeaders.Set("User-Agent", c.s.userAgent())
71233	var body io.Reader = nil
71234	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
71235	if err != nil {
71236		return nil, err
71237	}
71238	reqHeaders.Set("Content-Type", "application/json")
71239	c.urlParams_.Set("alt", alt)
71240	c.urlParams_.Set("prettyPrint", "false")
71241	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
71242	urls += "?" + c.urlParams_.Encode()
71243	req, err := http.NewRequest("POST", urls, body)
71244	if err != nil {
71245		return nil, err
71246	}
71247	req.Header = reqHeaders
71248	googleapi.Expand(req.URL, map[string]string{
71249		"project":  c.project,
71250		"zone":     c.zone,
71251		"instance": c.instance,
71252	})
71253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71254}
71255
71256// Do executes the "compute.instances.addResourcePolicies" call.
71257// Exactly one of *Operation or error will be non-nil. Any non-2xx
71258// status code is an error. Response headers are in either
71259// *Operation.ServerResponse.Header or (if a response was returned at
71260// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71261// to check whether the returned error was because
71262// http.StatusNotModified was returned.
71263func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71264	gensupport.SetOptions(c.urlParams_, opts...)
71265	res, err := c.doRequest("json")
71266	if res != nil && res.StatusCode == http.StatusNotModified {
71267		if res.Body != nil {
71268			res.Body.Close()
71269		}
71270		return nil, &googleapi.Error{
71271			Code:   res.StatusCode,
71272			Header: res.Header,
71273		}
71274	}
71275	if err != nil {
71276		return nil, err
71277	}
71278	defer googleapi.CloseBody(res)
71279	if err := googleapi.CheckResponse(res); err != nil {
71280		return nil, err
71281	}
71282	ret := &Operation{
71283		ServerResponse: googleapi.ServerResponse{
71284			Header:         res.Header,
71285			HTTPStatusCode: res.StatusCode,
71286		},
71287	}
71288	target := &ret
71289	if err := gensupport.DecodeResponse(target, res); err != nil {
71290		return nil, err
71291	}
71292	return ret, nil
71293	// {
71294	//   "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.",
71295	//   "httpMethod": "POST",
71296	//   "id": "compute.instances.addResourcePolicies",
71297	//   "parameterOrder": [
71298	//     "project",
71299	//     "zone",
71300	//     "instance"
71301	//   ],
71302	//   "parameters": {
71303	//     "instance": {
71304	//       "description": "The instance name for this request.",
71305	//       "location": "path",
71306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71307	//       "required": true,
71308	//       "type": "string"
71309	//     },
71310	//     "project": {
71311	//       "description": "Project ID for this request.",
71312	//       "location": "path",
71313	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71314	//       "required": true,
71315	//       "type": "string"
71316	//     },
71317	//     "requestId": {
71318	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71319	//       "location": "query",
71320	//       "type": "string"
71321	//     },
71322	//     "zone": {
71323	//       "description": "The name of the zone for this request.",
71324	//       "location": "path",
71325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71326	//       "required": true,
71327	//       "type": "string"
71328	//     }
71329	//   },
71330	//   "path": "{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
71331	//   "request": {
71332	//     "$ref": "InstancesAddResourcePoliciesRequest"
71333	//   },
71334	//   "response": {
71335	//     "$ref": "Operation"
71336	//   },
71337	//   "scopes": [
71338	//     "https://www.googleapis.com/auth/cloud-platform",
71339	//     "https://www.googleapis.com/auth/compute"
71340	//   ]
71341	// }
71342
71343}
71344
71345// method id "compute.instances.aggregatedList":
71346
71347type InstancesAggregatedListCall struct {
71348	s            *Service
71349	project      string
71350	urlParams_   gensupport.URLParams
71351	ifNoneMatch_ string
71352	ctx_         context.Context
71353	header_      http.Header
71354}
71355
71356// AggregatedList: Retrieves aggregated list of all of the instances in
71357// your project across all regions and zones.
71358// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
71359func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
71360	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71361	c.project = project
71362	return c
71363}
71364
71365// Filter sets the optional parameter "filter": A filter expression that
71366// filters resources listed in the response. The expression must specify
71367// the field name, a comparison operator, and the value that you want to
71368// use for filtering. The value must be a string, a number, or a
71369// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71370// `<`.
71371//
71372// For example, if you are filtering Compute Engine instances, you can
71373// exclude instances named `example-instance` by specifying `name !=
71374// example-instance`.
71375//
71376// You can also filter nested fields. For example, you could specify
71377// `scheduling.automaticRestart = false` to include instances only if
71378// they are not scheduled for automatic restarts. You can use filtering
71379// on nested fields to filter based on resource labels.
71380//
71381// To filter on multiple expressions, provide each separate expression
71382// within parentheses. For example: ``` (scheduling.automaticRestart =
71383// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
71384// is an `AND` expression. However, you can include `AND` and `OR`
71385// expressions explicitly. For example: ``` (cpuPlatform = "Intel
71386// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
71387// (scheduling.automaticRestart = true) ```
71388func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
71389	c.urlParams_.Set("filter", filter)
71390	return c
71391}
71392
71393// IncludeAllScopes sets the optional parameter "includeAllScopes":
71394// Indicates whether every visible scope for each scope type (zone,
71395// region, global) should be included in the response. For new resource
71396// types added after this field, the flag has no effect as new resource
71397// types will always include every visible scope for each scope type in
71398// response. For resource types which predate this field, if this flag
71399// is omitted or false, only scopes of the scope types where the
71400// resource type is expected to be found will be included.
71401func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
71402	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
71403	return c
71404}
71405
71406// MaxResults sets the optional parameter "maxResults": The maximum
71407// number of results per page that should be returned. If the number of
71408// available results is larger than `maxResults`, Compute Engine returns
71409// a `nextPageToken` that can be used to get the next page of results in
71410// subsequent list requests. Acceptable values are `0` to `500`,
71411// inclusive. (Default: `500`)
71412func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
71413	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71414	return c
71415}
71416
71417// OrderBy sets the optional parameter "orderBy": Sorts list results by
71418// a certain order. By default, results are returned in alphanumerical
71419// order based on the resource name.
71420//
71421// You can also sort results in descending order based on the creation
71422// timestamp using `orderBy="creationTimestamp desc". This sorts
71423// results based on the `creationTimestamp` field in reverse
71424// chronological order (newest result first). Use this to sort resources
71425// like operations so that the newest operation is returned
71426// first.
71427//
71428// Currently, only sorting by `name` or `creationTimestamp desc` is
71429// supported.
71430func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
71431	c.urlParams_.Set("orderBy", orderBy)
71432	return c
71433}
71434
71435// PageToken sets the optional parameter "pageToken": Specifies a page
71436// token to use. Set `pageToken` to the `nextPageToken` returned by a
71437// previous list request to get the next page of results.
71438func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
71439	c.urlParams_.Set("pageToken", pageToken)
71440	return c
71441}
71442
71443// Fields allows partial responses to be retrieved. See
71444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71445// for more information.
71446func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
71447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71448	return c
71449}
71450
71451// IfNoneMatch sets the optional parameter which makes the operation
71452// fail if the object's ETag matches the given value. This is useful for
71453// getting updates only after the object has changed since the last
71454// request. Use googleapi.IsNotModified to check whether the response
71455// error from Do is the result of In-None-Match.
71456func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
71457	c.ifNoneMatch_ = entityTag
71458	return c
71459}
71460
71461// Context sets the context to be used in this call's Do method. Any
71462// pending HTTP request will be aborted if the provided context is
71463// canceled.
71464func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
71465	c.ctx_ = ctx
71466	return c
71467}
71468
71469// Header returns an http.Header that can be modified by the caller to
71470// add HTTP headers to the request.
71471func (c *InstancesAggregatedListCall) Header() http.Header {
71472	if c.header_ == nil {
71473		c.header_ = make(http.Header)
71474	}
71475	return c.header_
71476}
71477
71478func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
71479	reqHeaders := make(http.Header)
71480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71481	for k, v := range c.header_ {
71482		reqHeaders[k] = v
71483	}
71484	reqHeaders.Set("User-Agent", c.s.userAgent())
71485	if c.ifNoneMatch_ != "" {
71486		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71487	}
71488	var body io.Reader = nil
71489	c.urlParams_.Set("alt", alt)
71490	c.urlParams_.Set("prettyPrint", "false")
71491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
71492	urls += "?" + c.urlParams_.Encode()
71493	req, err := http.NewRequest("GET", urls, body)
71494	if err != nil {
71495		return nil, err
71496	}
71497	req.Header = reqHeaders
71498	googleapi.Expand(req.URL, map[string]string{
71499		"project": c.project,
71500	})
71501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71502}
71503
71504// Do executes the "compute.instances.aggregatedList" call.
71505// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
71506// non-2xx status code is an error. Response headers are in either
71507// *InstanceAggregatedList.ServerResponse.Header or (if a response was
71508// returned at all) in error.(*googleapi.Error).Header. Use
71509// googleapi.IsNotModified to check whether the returned error was
71510// because http.StatusNotModified was returned.
71511func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
71512	gensupport.SetOptions(c.urlParams_, opts...)
71513	res, err := c.doRequest("json")
71514	if res != nil && res.StatusCode == http.StatusNotModified {
71515		if res.Body != nil {
71516			res.Body.Close()
71517		}
71518		return nil, &googleapi.Error{
71519			Code:   res.StatusCode,
71520			Header: res.Header,
71521		}
71522	}
71523	if err != nil {
71524		return nil, err
71525	}
71526	defer googleapi.CloseBody(res)
71527	if err := googleapi.CheckResponse(res); err != nil {
71528		return nil, err
71529	}
71530	ret := &InstanceAggregatedList{
71531		ServerResponse: googleapi.ServerResponse{
71532			Header:         res.Header,
71533			HTTPStatusCode: res.StatusCode,
71534		},
71535	}
71536	target := &ret
71537	if err := gensupport.DecodeResponse(target, res); err != nil {
71538		return nil, err
71539	}
71540	return ret, nil
71541	// {
71542	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
71543	//   "httpMethod": "GET",
71544	//   "id": "compute.instances.aggregatedList",
71545	//   "parameterOrder": [
71546	//     "project"
71547	//   ],
71548	//   "parameters": {
71549	//     "filter": {
71550	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71551	//       "location": "query",
71552	//       "type": "string"
71553	//     },
71554	//     "includeAllScopes": {
71555	//       "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.",
71556	//       "location": "query",
71557	//       "type": "boolean"
71558	//     },
71559	//     "maxResults": {
71560	//       "default": "500",
71561	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71562	//       "format": "uint32",
71563	//       "location": "query",
71564	//       "minimum": "0",
71565	//       "type": "integer"
71566	//     },
71567	//     "orderBy": {
71568	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
71569	//       "location": "query",
71570	//       "type": "string"
71571	//     },
71572	//     "pageToken": {
71573	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71574	//       "location": "query",
71575	//       "type": "string"
71576	//     },
71577	//     "project": {
71578	//       "description": "Project ID for this request.",
71579	//       "location": "path",
71580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71581	//       "required": true,
71582	//       "type": "string"
71583	//     }
71584	//   },
71585	//   "path": "{project}/aggregated/instances",
71586	//   "response": {
71587	//     "$ref": "InstanceAggregatedList"
71588	//   },
71589	//   "scopes": [
71590	//     "https://www.googleapis.com/auth/cloud-platform",
71591	//     "https://www.googleapis.com/auth/compute",
71592	//     "https://www.googleapis.com/auth/compute.readonly"
71593	//   ]
71594	// }
71595
71596}
71597
71598// Pages invokes f for each page of results.
71599// A non-nil error returned from f will halt the iteration.
71600// The provided context supersedes any context provided to the Context method.
71601func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
71602	c.ctx_ = ctx
71603	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71604	for {
71605		x, err := c.Do()
71606		if err != nil {
71607			return err
71608		}
71609		if err := f(x); err != nil {
71610			return err
71611		}
71612		if x.NextPageToken == "" {
71613			return nil
71614		}
71615		c.PageToken(x.NextPageToken)
71616	}
71617}
71618
71619// method id "compute.instances.attachDisk":
71620
71621type InstancesAttachDiskCall struct {
71622	s            *Service
71623	project      string
71624	zone         string
71625	instance     string
71626	attacheddisk *AttachedDisk
71627	urlParams_   gensupport.URLParams
71628	ctx_         context.Context
71629	header_      http.Header
71630}
71631
71632// AttachDisk: Attaches an existing Disk resource to an instance. You
71633// must first create the disk before you can attach it. It is not
71634// possible to create and attach a disk at the same time. For more
71635// information, read Adding a persistent disk to your instance.
71636// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
71637func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
71638	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71639	c.project = project
71640	c.zone = zone
71641	c.instance = instance
71642	c.attacheddisk = attacheddisk
71643	return c
71644}
71645
71646// ForceAttach sets the optional parameter "forceAttach": Whether to
71647// force attach the disk even if it's currently attached to another
71648// instance.
71649func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
71650	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
71651	return c
71652}
71653
71654// RequestId sets the optional parameter "requestId": An optional
71655// request ID to identify requests. Specify a unique request ID so that
71656// if you must retry your request, the server will know to ignore the
71657// request if it has already been completed.
71658//
71659// For example, consider a situation where you make an initial request
71660// and the request times out. If you make the request again with the
71661// same request ID, the server can check if original operation with the
71662// same request ID was received, and if so, will ignore the second
71663// request. This prevents clients from accidentally creating duplicate
71664// commitments.
71665//
71666// The request ID must be a valid UUID with the exception that zero UUID
71667// is not supported (00000000-0000-0000-0000-000000000000).
71668func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
71669	c.urlParams_.Set("requestId", requestId)
71670	return c
71671}
71672
71673// Fields allows partial responses to be retrieved. See
71674// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71675// for more information.
71676func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
71677	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71678	return c
71679}
71680
71681// Context sets the context to be used in this call's Do method. Any
71682// pending HTTP request will be aborted if the provided context is
71683// canceled.
71684func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
71685	c.ctx_ = ctx
71686	return c
71687}
71688
71689// Header returns an http.Header that can be modified by the caller to
71690// add HTTP headers to the request.
71691func (c *InstancesAttachDiskCall) Header() http.Header {
71692	if c.header_ == nil {
71693		c.header_ = make(http.Header)
71694	}
71695	return c.header_
71696}
71697
71698func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
71699	reqHeaders := make(http.Header)
71700	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71701	for k, v := range c.header_ {
71702		reqHeaders[k] = v
71703	}
71704	reqHeaders.Set("User-Agent", c.s.userAgent())
71705	var body io.Reader = nil
71706	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
71707	if err != nil {
71708		return nil, err
71709	}
71710	reqHeaders.Set("Content-Type", "application/json")
71711	c.urlParams_.Set("alt", alt)
71712	c.urlParams_.Set("prettyPrint", "false")
71713	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
71714	urls += "?" + c.urlParams_.Encode()
71715	req, err := http.NewRequest("POST", urls, body)
71716	if err != nil {
71717		return nil, err
71718	}
71719	req.Header = reqHeaders
71720	googleapi.Expand(req.URL, map[string]string{
71721		"project":  c.project,
71722		"zone":     c.zone,
71723		"instance": c.instance,
71724	})
71725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71726}
71727
71728// Do executes the "compute.instances.attachDisk" call.
71729// Exactly one of *Operation or error will be non-nil. Any non-2xx
71730// status code is an error. Response headers are in either
71731// *Operation.ServerResponse.Header or (if a response was returned at
71732// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71733// to check whether the returned error was because
71734// http.StatusNotModified was returned.
71735func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71736	gensupport.SetOptions(c.urlParams_, opts...)
71737	res, err := c.doRequest("json")
71738	if res != nil && res.StatusCode == http.StatusNotModified {
71739		if res.Body != nil {
71740			res.Body.Close()
71741		}
71742		return nil, &googleapi.Error{
71743			Code:   res.StatusCode,
71744			Header: res.Header,
71745		}
71746	}
71747	if err != nil {
71748		return nil, err
71749	}
71750	defer googleapi.CloseBody(res)
71751	if err := googleapi.CheckResponse(res); err != nil {
71752		return nil, err
71753	}
71754	ret := &Operation{
71755		ServerResponse: googleapi.ServerResponse{
71756			Header:         res.Header,
71757			HTTPStatusCode: res.StatusCode,
71758		},
71759	}
71760	target := &ret
71761	if err := gensupport.DecodeResponse(target, res); err != nil {
71762		return nil, err
71763	}
71764	return ret, nil
71765	// {
71766	//   "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.",
71767	//   "httpMethod": "POST",
71768	//   "id": "compute.instances.attachDisk",
71769	//   "parameterOrder": [
71770	//     "project",
71771	//     "zone",
71772	//     "instance"
71773	//   ],
71774	//   "parameters": {
71775	//     "forceAttach": {
71776	//       "description": "Whether to force attach the disk even if it's currently attached to another instance.",
71777	//       "location": "query",
71778	//       "type": "boolean"
71779	//     },
71780	//     "instance": {
71781	//       "description": "The instance name for this request.",
71782	//       "location": "path",
71783	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71784	//       "required": true,
71785	//       "type": "string"
71786	//     },
71787	//     "project": {
71788	//       "description": "Project ID for this request.",
71789	//       "location": "path",
71790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71791	//       "required": true,
71792	//       "type": "string"
71793	//     },
71794	//     "requestId": {
71795	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71796	//       "location": "query",
71797	//       "type": "string"
71798	//     },
71799	//     "zone": {
71800	//       "description": "The name of the zone for this request.",
71801	//       "location": "path",
71802	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71803	//       "required": true,
71804	//       "type": "string"
71805	//     }
71806	//   },
71807	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
71808	//   "request": {
71809	//     "$ref": "AttachedDisk"
71810	//   },
71811	//   "response": {
71812	//     "$ref": "Operation"
71813	//   },
71814	//   "scopes": [
71815	//     "https://www.googleapis.com/auth/cloud-platform",
71816	//     "https://www.googleapis.com/auth/compute"
71817	//   ]
71818	// }
71819
71820}
71821
71822// method id "compute.instances.delete":
71823
71824type InstancesDeleteCall struct {
71825	s          *Service
71826	project    string
71827	zone       string
71828	instance   string
71829	urlParams_ gensupport.URLParams
71830	ctx_       context.Context
71831	header_    http.Header
71832}
71833
71834// Delete: Deletes the specified Instance resource. For more
71835// information, see Stopping or Deleting an Instance.
71836// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
71837func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
71838	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71839	c.project = project
71840	c.zone = zone
71841	c.instance = instance
71842	return c
71843}
71844
71845// RequestId sets the optional parameter "requestId": An optional
71846// request ID to identify requests. Specify a unique request ID so that
71847// if you must retry your request, the server will know to ignore the
71848// request if it has already been completed.
71849//
71850// For example, consider a situation where you make an initial request
71851// and the request times out. If you make the request again with the
71852// same request ID, the server can check if original operation with the
71853// same request ID was received, and if so, will ignore the second
71854// request. This prevents clients from accidentally creating duplicate
71855// commitments.
71856//
71857// The request ID must be a valid UUID with the exception that zero UUID
71858// is not supported (00000000-0000-0000-0000-000000000000).
71859func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
71860	c.urlParams_.Set("requestId", requestId)
71861	return c
71862}
71863
71864// Fields allows partial responses to be retrieved. See
71865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71866// for more information.
71867func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
71868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71869	return c
71870}
71871
71872// Context sets the context to be used in this call's Do method. Any
71873// pending HTTP request will be aborted if the provided context is
71874// canceled.
71875func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
71876	c.ctx_ = ctx
71877	return c
71878}
71879
71880// Header returns an http.Header that can be modified by the caller to
71881// add HTTP headers to the request.
71882func (c *InstancesDeleteCall) Header() http.Header {
71883	if c.header_ == nil {
71884		c.header_ = make(http.Header)
71885	}
71886	return c.header_
71887}
71888
71889func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
71890	reqHeaders := make(http.Header)
71891	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71892	for k, v := range c.header_ {
71893		reqHeaders[k] = v
71894	}
71895	reqHeaders.Set("User-Agent", c.s.userAgent())
71896	var body io.Reader = nil
71897	c.urlParams_.Set("alt", alt)
71898	c.urlParams_.Set("prettyPrint", "false")
71899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
71900	urls += "?" + c.urlParams_.Encode()
71901	req, err := http.NewRequest("DELETE", urls, body)
71902	if err != nil {
71903		return nil, err
71904	}
71905	req.Header = reqHeaders
71906	googleapi.Expand(req.URL, map[string]string{
71907		"project":  c.project,
71908		"zone":     c.zone,
71909		"instance": c.instance,
71910	})
71911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71912}
71913
71914// Do executes the "compute.instances.delete" call.
71915// Exactly one of *Operation or error will be non-nil. Any non-2xx
71916// status code is an error. Response headers are in either
71917// *Operation.ServerResponse.Header or (if a response was returned at
71918// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71919// to check whether the returned error was because
71920// http.StatusNotModified was returned.
71921func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71922	gensupport.SetOptions(c.urlParams_, opts...)
71923	res, err := c.doRequest("json")
71924	if res != nil && res.StatusCode == http.StatusNotModified {
71925		if res.Body != nil {
71926			res.Body.Close()
71927		}
71928		return nil, &googleapi.Error{
71929			Code:   res.StatusCode,
71930			Header: res.Header,
71931		}
71932	}
71933	if err != nil {
71934		return nil, err
71935	}
71936	defer googleapi.CloseBody(res)
71937	if err := googleapi.CheckResponse(res); err != nil {
71938		return nil, err
71939	}
71940	ret := &Operation{
71941		ServerResponse: googleapi.ServerResponse{
71942			Header:         res.Header,
71943			HTTPStatusCode: res.StatusCode,
71944		},
71945	}
71946	target := &ret
71947	if err := gensupport.DecodeResponse(target, res); err != nil {
71948		return nil, err
71949	}
71950	return ret, nil
71951	// {
71952	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
71953	//   "httpMethod": "DELETE",
71954	//   "id": "compute.instances.delete",
71955	//   "parameterOrder": [
71956	//     "project",
71957	//     "zone",
71958	//     "instance"
71959	//   ],
71960	//   "parameters": {
71961	//     "instance": {
71962	//       "description": "Name of the instance resource to delete.",
71963	//       "location": "path",
71964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71965	//       "required": true,
71966	//       "type": "string"
71967	//     },
71968	//     "project": {
71969	//       "description": "Project ID for this request.",
71970	//       "location": "path",
71971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71972	//       "required": true,
71973	//       "type": "string"
71974	//     },
71975	//     "requestId": {
71976	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71977	//       "location": "query",
71978	//       "type": "string"
71979	//     },
71980	//     "zone": {
71981	//       "description": "The name of the zone for this request.",
71982	//       "location": "path",
71983	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71984	//       "required": true,
71985	//       "type": "string"
71986	//     }
71987	//   },
71988	//   "path": "{project}/zones/{zone}/instances/{instance}",
71989	//   "response": {
71990	//     "$ref": "Operation"
71991	//   },
71992	//   "scopes": [
71993	//     "https://www.googleapis.com/auth/cloud-platform",
71994	//     "https://www.googleapis.com/auth/compute"
71995	//   ]
71996	// }
71997
71998}
71999
72000// method id "compute.instances.deleteAccessConfig":
72001
72002type InstancesDeleteAccessConfigCall struct {
72003	s          *Service
72004	project    string
72005	zone       string
72006	instance   string
72007	urlParams_ gensupport.URLParams
72008	ctx_       context.Context
72009	header_    http.Header
72010}
72011
72012// DeleteAccessConfig: Deletes an access config from an instance's
72013// network interface.
72014// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
72015func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
72016	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72017	c.project = project
72018	c.zone = zone
72019	c.instance = instance
72020	c.urlParams_.Set("accessConfig", accessConfig)
72021	c.urlParams_.Set("networkInterface", networkInterface)
72022	return c
72023}
72024
72025// RequestId sets the optional parameter "requestId": An optional
72026// request ID to identify requests. Specify a unique request ID so that
72027// if you must retry your request, the server will know to ignore the
72028// request if it has already been completed.
72029//
72030// For example, consider a situation where you make an initial request
72031// and the request times out. If you make the request again with the
72032// same request ID, the server can check if original operation with the
72033// same request ID was received, and if so, will ignore the second
72034// request. This prevents clients from accidentally creating duplicate
72035// commitments.
72036//
72037// The request ID must be a valid UUID with the exception that zero UUID
72038// is not supported (00000000-0000-0000-0000-000000000000).
72039func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
72040	c.urlParams_.Set("requestId", requestId)
72041	return c
72042}
72043
72044// Fields allows partial responses to be retrieved. See
72045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72046// for more information.
72047func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
72048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72049	return c
72050}
72051
72052// Context sets the context to be used in this call's Do method. Any
72053// pending HTTP request will be aborted if the provided context is
72054// canceled.
72055func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
72056	c.ctx_ = ctx
72057	return c
72058}
72059
72060// Header returns an http.Header that can be modified by the caller to
72061// add HTTP headers to the request.
72062func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
72063	if c.header_ == nil {
72064		c.header_ = make(http.Header)
72065	}
72066	return c.header_
72067}
72068
72069func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
72070	reqHeaders := make(http.Header)
72071	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72072	for k, v := range c.header_ {
72073		reqHeaders[k] = v
72074	}
72075	reqHeaders.Set("User-Agent", c.s.userAgent())
72076	var body io.Reader = nil
72077	c.urlParams_.Set("alt", alt)
72078	c.urlParams_.Set("prettyPrint", "false")
72079	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
72080	urls += "?" + c.urlParams_.Encode()
72081	req, err := http.NewRequest("POST", urls, body)
72082	if err != nil {
72083		return nil, err
72084	}
72085	req.Header = reqHeaders
72086	googleapi.Expand(req.URL, map[string]string{
72087		"project":  c.project,
72088		"zone":     c.zone,
72089		"instance": c.instance,
72090	})
72091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72092}
72093
72094// Do executes the "compute.instances.deleteAccessConfig" call.
72095// Exactly one of *Operation or error will be non-nil. Any non-2xx
72096// status code is an error. Response headers are in either
72097// *Operation.ServerResponse.Header or (if a response was returned at
72098// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72099// to check whether the returned error was because
72100// http.StatusNotModified was returned.
72101func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72102	gensupport.SetOptions(c.urlParams_, opts...)
72103	res, err := c.doRequest("json")
72104	if res != nil && res.StatusCode == http.StatusNotModified {
72105		if res.Body != nil {
72106			res.Body.Close()
72107		}
72108		return nil, &googleapi.Error{
72109			Code:   res.StatusCode,
72110			Header: res.Header,
72111		}
72112	}
72113	if err != nil {
72114		return nil, err
72115	}
72116	defer googleapi.CloseBody(res)
72117	if err := googleapi.CheckResponse(res); err != nil {
72118		return nil, err
72119	}
72120	ret := &Operation{
72121		ServerResponse: googleapi.ServerResponse{
72122			Header:         res.Header,
72123			HTTPStatusCode: res.StatusCode,
72124		},
72125	}
72126	target := &ret
72127	if err := gensupport.DecodeResponse(target, res); err != nil {
72128		return nil, err
72129	}
72130	return ret, nil
72131	// {
72132	//   "description": "Deletes an access config from an instance's network interface.",
72133	//   "httpMethod": "POST",
72134	//   "id": "compute.instances.deleteAccessConfig",
72135	//   "parameterOrder": [
72136	//     "project",
72137	//     "zone",
72138	//     "instance",
72139	//     "accessConfig",
72140	//     "networkInterface"
72141	//   ],
72142	//   "parameters": {
72143	//     "accessConfig": {
72144	//       "description": "The name of the access config to delete.",
72145	//       "location": "query",
72146	//       "required": true,
72147	//       "type": "string"
72148	//     },
72149	//     "instance": {
72150	//       "description": "The instance name for this request.",
72151	//       "location": "path",
72152	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72153	//       "required": true,
72154	//       "type": "string"
72155	//     },
72156	//     "networkInterface": {
72157	//       "description": "The name of the network interface.",
72158	//       "location": "query",
72159	//       "required": true,
72160	//       "type": "string"
72161	//     },
72162	//     "project": {
72163	//       "description": "Project ID for this request.",
72164	//       "location": "path",
72165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72166	//       "required": true,
72167	//       "type": "string"
72168	//     },
72169	//     "requestId": {
72170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72171	//       "location": "query",
72172	//       "type": "string"
72173	//     },
72174	//     "zone": {
72175	//       "description": "The name of the zone for this request.",
72176	//       "location": "path",
72177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72178	//       "required": true,
72179	//       "type": "string"
72180	//     }
72181	//   },
72182	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
72183	//   "response": {
72184	//     "$ref": "Operation"
72185	//   },
72186	//   "scopes": [
72187	//     "https://www.googleapis.com/auth/cloud-platform",
72188	//     "https://www.googleapis.com/auth/compute"
72189	//   ]
72190	// }
72191
72192}
72193
72194// method id "compute.instances.detachDisk":
72195
72196type InstancesDetachDiskCall struct {
72197	s          *Service
72198	project    string
72199	zone       string
72200	instance   string
72201	urlParams_ gensupport.URLParams
72202	ctx_       context.Context
72203	header_    http.Header
72204}
72205
72206// DetachDisk: Detaches a disk from an instance.
72207// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
72208func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
72209	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72210	c.project = project
72211	c.zone = zone
72212	c.instance = instance
72213	c.urlParams_.Set("deviceName", deviceName)
72214	return c
72215}
72216
72217// RequestId sets the optional parameter "requestId": An optional
72218// request ID to identify requests. Specify a unique request ID so that
72219// if you must retry your request, the server will know to ignore the
72220// request if it has already been completed.
72221//
72222// For example, consider a situation where you make an initial request
72223// and the request times out. If you make the request again with the
72224// same request ID, the server can check if original operation with the
72225// same request ID was received, and if so, will ignore the second
72226// request. This prevents clients from accidentally creating duplicate
72227// commitments.
72228//
72229// The request ID must be a valid UUID with the exception that zero UUID
72230// is not supported (00000000-0000-0000-0000-000000000000).
72231func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
72232	c.urlParams_.Set("requestId", requestId)
72233	return c
72234}
72235
72236// Fields allows partial responses to be retrieved. See
72237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72238// for more information.
72239func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
72240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72241	return c
72242}
72243
72244// Context sets the context to be used in this call's Do method. Any
72245// pending HTTP request will be aborted if the provided context is
72246// canceled.
72247func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
72248	c.ctx_ = ctx
72249	return c
72250}
72251
72252// Header returns an http.Header that can be modified by the caller to
72253// add HTTP headers to the request.
72254func (c *InstancesDetachDiskCall) Header() http.Header {
72255	if c.header_ == nil {
72256		c.header_ = make(http.Header)
72257	}
72258	return c.header_
72259}
72260
72261func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
72262	reqHeaders := make(http.Header)
72263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72264	for k, v := range c.header_ {
72265		reqHeaders[k] = v
72266	}
72267	reqHeaders.Set("User-Agent", c.s.userAgent())
72268	var body io.Reader = nil
72269	c.urlParams_.Set("alt", alt)
72270	c.urlParams_.Set("prettyPrint", "false")
72271	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
72272	urls += "?" + c.urlParams_.Encode()
72273	req, err := http.NewRequest("POST", urls, body)
72274	if err != nil {
72275		return nil, err
72276	}
72277	req.Header = reqHeaders
72278	googleapi.Expand(req.URL, map[string]string{
72279		"project":  c.project,
72280		"zone":     c.zone,
72281		"instance": c.instance,
72282	})
72283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72284}
72285
72286// Do executes the "compute.instances.detachDisk" call.
72287// Exactly one of *Operation or error will be non-nil. Any non-2xx
72288// status code is an error. Response headers are in either
72289// *Operation.ServerResponse.Header or (if a response was returned at
72290// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72291// to check whether the returned error was because
72292// http.StatusNotModified was returned.
72293func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72294	gensupport.SetOptions(c.urlParams_, opts...)
72295	res, err := c.doRequest("json")
72296	if res != nil && res.StatusCode == http.StatusNotModified {
72297		if res.Body != nil {
72298			res.Body.Close()
72299		}
72300		return nil, &googleapi.Error{
72301			Code:   res.StatusCode,
72302			Header: res.Header,
72303		}
72304	}
72305	if err != nil {
72306		return nil, err
72307	}
72308	defer googleapi.CloseBody(res)
72309	if err := googleapi.CheckResponse(res); err != nil {
72310		return nil, err
72311	}
72312	ret := &Operation{
72313		ServerResponse: googleapi.ServerResponse{
72314			Header:         res.Header,
72315			HTTPStatusCode: res.StatusCode,
72316		},
72317	}
72318	target := &ret
72319	if err := gensupport.DecodeResponse(target, res); err != nil {
72320		return nil, err
72321	}
72322	return ret, nil
72323	// {
72324	//   "description": "Detaches a disk from an instance.",
72325	//   "httpMethod": "POST",
72326	//   "id": "compute.instances.detachDisk",
72327	//   "parameterOrder": [
72328	//     "project",
72329	//     "zone",
72330	//     "instance",
72331	//     "deviceName"
72332	//   ],
72333	//   "parameters": {
72334	//     "deviceName": {
72335	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
72336	//       "location": "query",
72337	//       "required": true,
72338	//       "type": "string"
72339	//     },
72340	//     "instance": {
72341	//       "description": "Instance name for this request.",
72342	//       "location": "path",
72343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72344	//       "required": true,
72345	//       "type": "string"
72346	//     },
72347	//     "project": {
72348	//       "description": "Project ID for this request.",
72349	//       "location": "path",
72350	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72351	//       "required": true,
72352	//       "type": "string"
72353	//     },
72354	//     "requestId": {
72355	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72356	//       "location": "query",
72357	//       "type": "string"
72358	//     },
72359	//     "zone": {
72360	//       "description": "The name of the zone for this request.",
72361	//       "location": "path",
72362	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72363	//       "required": true,
72364	//       "type": "string"
72365	//     }
72366	//   },
72367	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
72368	//   "response": {
72369	//     "$ref": "Operation"
72370	//   },
72371	//   "scopes": [
72372	//     "https://www.googleapis.com/auth/cloud-platform",
72373	//     "https://www.googleapis.com/auth/compute"
72374	//   ]
72375	// }
72376
72377}
72378
72379// method id "compute.instances.get":
72380
72381type InstancesGetCall struct {
72382	s            *Service
72383	project      string
72384	zone         string
72385	instance     string
72386	urlParams_   gensupport.URLParams
72387	ifNoneMatch_ string
72388	ctx_         context.Context
72389	header_      http.Header
72390}
72391
72392// Get: Returns the specified Instance resource. Gets a list of
72393// available instances by making a list() request.
72394// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
72395func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
72396	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72397	c.project = project
72398	c.zone = zone
72399	c.instance = instance
72400	return c
72401}
72402
72403// Fields allows partial responses to be retrieved. See
72404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72405// for more information.
72406func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
72407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72408	return c
72409}
72410
72411// IfNoneMatch sets the optional parameter which makes the operation
72412// fail if the object's ETag matches the given value. This is useful for
72413// getting updates only after the object has changed since the last
72414// request. Use googleapi.IsNotModified to check whether the response
72415// error from Do is the result of In-None-Match.
72416func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
72417	c.ifNoneMatch_ = entityTag
72418	return c
72419}
72420
72421// Context sets the context to be used in this call's Do method. Any
72422// pending HTTP request will be aborted if the provided context is
72423// canceled.
72424func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
72425	c.ctx_ = ctx
72426	return c
72427}
72428
72429// Header returns an http.Header that can be modified by the caller to
72430// add HTTP headers to the request.
72431func (c *InstancesGetCall) Header() http.Header {
72432	if c.header_ == nil {
72433		c.header_ = make(http.Header)
72434	}
72435	return c.header_
72436}
72437
72438func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
72439	reqHeaders := make(http.Header)
72440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72441	for k, v := range c.header_ {
72442		reqHeaders[k] = v
72443	}
72444	reqHeaders.Set("User-Agent", c.s.userAgent())
72445	if c.ifNoneMatch_ != "" {
72446		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72447	}
72448	var body io.Reader = nil
72449	c.urlParams_.Set("alt", alt)
72450	c.urlParams_.Set("prettyPrint", "false")
72451	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
72452	urls += "?" + c.urlParams_.Encode()
72453	req, err := http.NewRequest("GET", urls, body)
72454	if err != nil {
72455		return nil, err
72456	}
72457	req.Header = reqHeaders
72458	googleapi.Expand(req.URL, map[string]string{
72459		"project":  c.project,
72460		"zone":     c.zone,
72461		"instance": c.instance,
72462	})
72463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72464}
72465
72466// Do executes the "compute.instances.get" call.
72467// Exactly one of *Instance or error will be non-nil. Any non-2xx status
72468// code is an error. Response headers are in either
72469// *Instance.ServerResponse.Header or (if a response was returned at
72470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72471// to check whether the returned error was because
72472// http.StatusNotModified was returned.
72473func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
72474	gensupport.SetOptions(c.urlParams_, opts...)
72475	res, err := c.doRequest("json")
72476	if res != nil && res.StatusCode == http.StatusNotModified {
72477		if res.Body != nil {
72478			res.Body.Close()
72479		}
72480		return nil, &googleapi.Error{
72481			Code:   res.StatusCode,
72482			Header: res.Header,
72483		}
72484	}
72485	if err != nil {
72486		return nil, err
72487	}
72488	defer googleapi.CloseBody(res)
72489	if err := googleapi.CheckResponse(res); err != nil {
72490		return nil, err
72491	}
72492	ret := &Instance{
72493		ServerResponse: googleapi.ServerResponse{
72494			Header:         res.Header,
72495			HTTPStatusCode: res.StatusCode,
72496		},
72497	}
72498	target := &ret
72499	if err := gensupport.DecodeResponse(target, res); err != nil {
72500		return nil, err
72501	}
72502	return ret, nil
72503	// {
72504	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
72505	//   "httpMethod": "GET",
72506	//   "id": "compute.instances.get",
72507	//   "parameterOrder": [
72508	//     "project",
72509	//     "zone",
72510	//     "instance"
72511	//   ],
72512	//   "parameters": {
72513	//     "instance": {
72514	//       "description": "Name of the instance resource to return.",
72515	//       "location": "path",
72516	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72517	//       "required": true,
72518	//       "type": "string"
72519	//     },
72520	//     "project": {
72521	//       "description": "Project ID for this request.",
72522	//       "location": "path",
72523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72524	//       "required": true,
72525	//       "type": "string"
72526	//     },
72527	//     "zone": {
72528	//       "description": "The name of the zone for this request.",
72529	//       "location": "path",
72530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72531	//       "required": true,
72532	//       "type": "string"
72533	//     }
72534	//   },
72535	//   "path": "{project}/zones/{zone}/instances/{instance}",
72536	//   "response": {
72537	//     "$ref": "Instance"
72538	//   },
72539	//   "scopes": [
72540	//     "https://www.googleapis.com/auth/cloud-platform",
72541	//     "https://www.googleapis.com/auth/compute",
72542	//     "https://www.googleapis.com/auth/compute.readonly"
72543	//   ]
72544	// }
72545
72546}
72547
72548// method id "compute.instances.getGuestAttributes":
72549
72550type InstancesGetGuestAttributesCall struct {
72551	s            *Service
72552	project      string
72553	zone         string
72554	instance     string
72555	urlParams_   gensupport.URLParams
72556	ifNoneMatch_ string
72557	ctx_         context.Context
72558	header_      http.Header
72559}
72560
72561// GetGuestAttributes: Returns the specified guest attributes entry.
72562func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
72563	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72564	c.project = project
72565	c.zone = zone
72566	c.instance = instance
72567	return c
72568}
72569
72570// QueryPath sets the optional parameter "queryPath": Specifies the
72571// guest attributes path to be queried.
72572func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
72573	c.urlParams_.Set("queryPath", queryPath)
72574	return c
72575}
72576
72577// VariableKey sets the optional parameter "variableKey": Specifies the
72578// key for the guest attributes entry.
72579func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
72580	c.urlParams_.Set("variableKey", variableKey)
72581	return c
72582}
72583
72584// Fields allows partial responses to be retrieved. See
72585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72586// for more information.
72587func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
72588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72589	return c
72590}
72591
72592// IfNoneMatch sets the optional parameter which makes the operation
72593// fail if the object's ETag matches the given value. This is useful for
72594// getting updates only after the object has changed since the last
72595// request. Use googleapi.IsNotModified to check whether the response
72596// error from Do is the result of In-None-Match.
72597func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
72598	c.ifNoneMatch_ = entityTag
72599	return c
72600}
72601
72602// Context sets the context to be used in this call's Do method. Any
72603// pending HTTP request will be aborted if the provided context is
72604// canceled.
72605func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
72606	c.ctx_ = ctx
72607	return c
72608}
72609
72610// Header returns an http.Header that can be modified by the caller to
72611// add HTTP headers to the request.
72612func (c *InstancesGetGuestAttributesCall) Header() http.Header {
72613	if c.header_ == nil {
72614		c.header_ = make(http.Header)
72615	}
72616	return c.header_
72617}
72618
72619func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
72620	reqHeaders := make(http.Header)
72621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72622	for k, v := range c.header_ {
72623		reqHeaders[k] = v
72624	}
72625	reqHeaders.Set("User-Agent", c.s.userAgent())
72626	if c.ifNoneMatch_ != "" {
72627		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72628	}
72629	var body io.Reader = nil
72630	c.urlParams_.Set("alt", alt)
72631	c.urlParams_.Set("prettyPrint", "false")
72632	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
72633	urls += "?" + c.urlParams_.Encode()
72634	req, err := http.NewRequest("GET", urls, body)
72635	if err != nil {
72636		return nil, err
72637	}
72638	req.Header = reqHeaders
72639	googleapi.Expand(req.URL, map[string]string{
72640		"project":  c.project,
72641		"zone":     c.zone,
72642		"instance": c.instance,
72643	})
72644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72645}
72646
72647// Do executes the "compute.instances.getGuestAttributes" call.
72648// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
72649// status code is an error. Response headers are in either
72650// *GuestAttributes.ServerResponse.Header or (if a response was returned
72651// at all) in error.(*googleapi.Error).Header. Use
72652// googleapi.IsNotModified to check whether the returned error was
72653// because http.StatusNotModified was returned.
72654func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
72655	gensupport.SetOptions(c.urlParams_, opts...)
72656	res, err := c.doRequest("json")
72657	if res != nil && res.StatusCode == http.StatusNotModified {
72658		if res.Body != nil {
72659			res.Body.Close()
72660		}
72661		return nil, &googleapi.Error{
72662			Code:   res.StatusCode,
72663			Header: res.Header,
72664		}
72665	}
72666	if err != nil {
72667		return nil, err
72668	}
72669	defer googleapi.CloseBody(res)
72670	if err := googleapi.CheckResponse(res); err != nil {
72671		return nil, err
72672	}
72673	ret := &GuestAttributes{
72674		ServerResponse: googleapi.ServerResponse{
72675			Header:         res.Header,
72676			HTTPStatusCode: res.StatusCode,
72677		},
72678	}
72679	target := &ret
72680	if err := gensupport.DecodeResponse(target, res); err != nil {
72681		return nil, err
72682	}
72683	return ret, nil
72684	// {
72685	//   "description": "Returns the specified guest attributes entry.",
72686	//   "httpMethod": "GET",
72687	//   "id": "compute.instances.getGuestAttributes",
72688	//   "parameterOrder": [
72689	//     "project",
72690	//     "zone",
72691	//     "instance"
72692	//   ],
72693	//   "parameters": {
72694	//     "instance": {
72695	//       "description": "Name of the instance scoping this request.",
72696	//       "location": "path",
72697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72698	//       "required": true,
72699	//       "type": "string"
72700	//     },
72701	//     "project": {
72702	//       "description": "Project ID for this request.",
72703	//       "location": "path",
72704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72705	//       "required": true,
72706	//       "type": "string"
72707	//     },
72708	//     "queryPath": {
72709	//       "description": "Specifies the guest attributes path to be queried.",
72710	//       "location": "query",
72711	//       "type": "string"
72712	//     },
72713	//     "variableKey": {
72714	//       "description": "Specifies the key for the guest attributes entry.",
72715	//       "location": "query",
72716	//       "type": "string"
72717	//     },
72718	//     "zone": {
72719	//       "description": "The name of the zone for this request.",
72720	//       "location": "path",
72721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72722	//       "required": true,
72723	//       "type": "string"
72724	//     }
72725	//   },
72726	//   "path": "{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
72727	//   "response": {
72728	//     "$ref": "GuestAttributes"
72729	//   },
72730	//   "scopes": [
72731	//     "https://www.googleapis.com/auth/cloud-platform",
72732	//     "https://www.googleapis.com/auth/compute",
72733	//     "https://www.googleapis.com/auth/compute.readonly"
72734	//   ]
72735	// }
72736
72737}
72738
72739// method id "compute.instances.getIamPolicy":
72740
72741type InstancesGetIamPolicyCall struct {
72742	s            *Service
72743	project      string
72744	zone         string
72745	resource     string
72746	urlParams_   gensupport.URLParams
72747	ifNoneMatch_ string
72748	ctx_         context.Context
72749	header_      http.Header
72750}
72751
72752// GetIamPolicy: Gets the access control policy for a resource. May be
72753// empty if no such policy or resource exists.
72754func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
72755	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72756	c.project = project
72757	c.zone = zone
72758	c.resource = resource
72759	return c
72760}
72761
72762// Fields allows partial responses to be retrieved. See
72763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72764// for more information.
72765func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
72766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72767	return c
72768}
72769
72770// IfNoneMatch sets the optional parameter which makes the operation
72771// fail if the object's ETag matches the given value. This is useful for
72772// getting updates only after the object has changed since the last
72773// request. Use googleapi.IsNotModified to check whether the response
72774// error from Do is the result of In-None-Match.
72775func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
72776	c.ifNoneMatch_ = entityTag
72777	return c
72778}
72779
72780// Context sets the context to be used in this call's Do method. Any
72781// pending HTTP request will be aborted if the provided context is
72782// canceled.
72783func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
72784	c.ctx_ = ctx
72785	return c
72786}
72787
72788// Header returns an http.Header that can be modified by the caller to
72789// add HTTP headers to the request.
72790func (c *InstancesGetIamPolicyCall) Header() http.Header {
72791	if c.header_ == nil {
72792		c.header_ = make(http.Header)
72793	}
72794	return c.header_
72795}
72796
72797func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
72798	reqHeaders := make(http.Header)
72799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72800	for k, v := range c.header_ {
72801		reqHeaders[k] = v
72802	}
72803	reqHeaders.Set("User-Agent", c.s.userAgent())
72804	if c.ifNoneMatch_ != "" {
72805		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72806	}
72807	var body io.Reader = nil
72808	c.urlParams_.Set("alt", alt)
72809	c.urlParams_.Set("prettyPrint", "false")
72810	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/getIamPolicy")
72811	urls += "?" + c.urlParams_.Encode()
72812	req, err := http.NewRequest("GET", urls, body)
72813	if err != nil {
72814		return nil, err
72815	}
72816	req.Header = reqHeaders
72817	googleapi.Expand(req.URL, map[string]string{
72818		"project":  c.project,
72819		"zone":     c.zone,
72820		"resource": c.resource,
72821	})
72822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72823}
72824
72825// Do executes the "compute.instances.getIamPolicy" call.
72826// Exactly one of *Policy or error will be non-nil. Any non-2xx status
72827// code is an error. Response headers are in either
72828// *Policy.ServerResponse.Header or (if a response was returned at all)
72829// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
72830// check whether the returned error was because http.StatusNotModified
72831// was returned.
72832func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
72833	gensupport.SetOptions(c.urlParams_, opts...)
72834	res, err := c.doRequest("json")
72835	if res != nil && res.StatusCode == http.StatusNotModified {
72836		if res.Body != nil {
72837			res.Body.Close()
72838		}
72839		return nil, &googleapi.Error{
72840			Code:   res.StatusCode,
72841			Header: res.Header,
72842		}
72843	}
72844	if err != nil {
72845		return nil, err
72846	}
72847	defer googleapi.CloseBody(res)
72848	if err := googleapi.CheckResponse(res); err != nil {
72849		return nil, err
72850	}
72851	ret := &Policy{
72852		ServerResponse: googleapi.ServerResponse{
72853			Header:         res.Header,
72854			HTTPStatusCode: res.StatusCode,
72855		},
72856	}
72857	target := &ret
72858	if err := gensupport.DecodeResponse(target, res); err != nil {
72859		return nil, err
72860	}
72861	return ret, nil
72862	// {
72863	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
72864	//   "httpMethod": "GET",
72865	//   "id": "compute.instances.getIamPolicy",
72866	//   "parameterOrder": [
72867	//     "project",
72868	//     "zone",
72869	//     "resource"
72870	//   ],
72871	//   "parameters": {
72872	//     "project": {
72873	//       "description": "Project ID for this request.",
72874	//       "location": "path",
72875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72876	//       "required": true,
72877	//       "type": "string"
72878	//     },
72879	//     "resource": {
72880	//       "description": "Name or id of the resource for this request.",
72881	//       "location": "path",
72882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72883	//       "required": true,
72884	//       "type": "string"
72885	//     },
72886	//     "zone": {
72887	//       "description": "The name of the zone for this request.",
72888	//       "location": "path",
72889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72890	//       "required": true,
72891	//       "type": "string"
72892	//     }
72893	//   },
72894	//   "path": "{project}/zones/{zone}/instances/{resource}/getIamPolicy",
72895	//   "response": {
72896	//     "$ref": "Policy"
72897	//   },
72898	//   "scopes": [
72899	//     "https://www.googleapis.com/auth/cloud-platform",
72900	//     "https://www.googleapis.com/auth/compute",
72901	//     "https://www.googleapis.com/auth/compute.readonly"
72902	//   ]
72903	// }
72904
72905}
72906
72907// method id "compute.instances.getSerialPortOutput":
72908
72909type InstancesGetSerialPortOutputCall struct {
72910	s            *Service
72911	project      string
72912	zone         string
72913	instance     string
72914	urlParams_   gensupport.URLParams
72915	ifNoneMatch_ string
72916	ctx_         context.Context
72917	header_      http.Header
72918}
72919
72920// GetSerialPortOutput: Returns the last 1 MB of serial port output from
72921// the specified instance.
72922// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
72923func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
72924	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72925	c.project = project
72926	c.zone = zone
72927	c.instance = instance
72928	return c
72929}
72930
72931// Port sets the optional parameter "port": Specifies which COM or
72932// serial port to retrieve data from.
72933func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
72934	c.urlParams_.Set("port", fmt.Sprint(port))
72935	return c
72936}
72937
72938// Start sets the optional parameter "start": Returns output starting
72939// from a specific byte position. Use this to page through output when
72940// the output is too large to return in a single request. For the
72941// initial request, leave this field unspecified. For subsequent calls,
72942// this field should be set to the next value returned in the previous
72943// call.
72944func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
72945	c.urlParams_.Set("start", fmt.Sprint(start))
72946	return c
72947}
72948
72949// Fields allows partial responses to be retrieved. See
72950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72951// for more information.
72952func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
72953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72954	return c
72955}
72956
72957// IfNoneMatch sets the optional parameter which makes the operation
72958// fail if the object's ETag matches the given value. This is useful for
72959// getting updates only after the object has changed since the last
72960// request. Use googleapi.IsNotModified to check whether the response
72961// error from Do is the result of In-None-Match.
72962func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
72963	c.ifNoneMatch_ = entityTag
72964	return c
72965}
72966
72967// Context sets the context to be used in this call's Do method. Any
72968// pending HTTP request will be aborted if the provided context is
72969// canceled.
72970func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
72971	c.ctx_ = ctx
72972	return c
72973}
72974
72975// Header returns an http.Header that can be modified by the caller to
72976// add HTTP headers to the request.
72977func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
72978	if c.header_ == nil {
72979		c.header_ = make(http.Header)
72980	}
72981	return c.header_
72982}
72983
72984func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
72985	reqHeaders := make(http.Header)
72986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72987	for k, v := range c.header_ {
72988		reqHeaders[k] = v
72989	}
72990	reqHeaders.Set("User-Agent", c.s.userAgent())
72991	if c.ifNoneMatch_ != "" {
72992		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72993	}
72994	var body io.Reader = nil
72995	c.urlParams_.Set("alt", alt)
72996	c.urlParams_.Set("prettyPrint", "false")
72997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
72998	urls += "?" + c.urlParams_.Encode()
72999	req, err := http.NewRequest("GET", urls, body)
73000	if err != nil {
73001		return nil, err
73002	}
73003	req.Header = reqHeaders
73004	googleapi.Expand(req.URL, map[string]string{
73005		"project":  c.project,
73006		"zone":     c.zone,
73007		"instance": c.instance,
73008	})
73009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73010}
73011
73012// Do executes the "compute.instances.getSerialPortOutput" call.
73013// Exactly one of *SerialPortOutput or error will be non-nil. Any
73014// non-2xx status code is an error. Response headers are in either
73015// *SerialPortOutput.ServerResponse.Header or (if a response was
73016// returned at all) in error.(*googleapi.Error).Header. Use
73017// googleapi.IsNotModified to check whether the returned error was
73018// because http.StatusNotModified was returned.
73019func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
73020	gensupport.SetOptions(c.urlParams_, opts...)
73021	res, err := c.doRequest("json")
73022	if res != nil && res.StatusCode == http.StatusNotModified {
73023		if res.Body != nil {
73024			res.Body.Close()
73025		}
73026		return nil, &googleapi.Error{
73027			Code:   res.StatusCode,
73028			Header: res.Header,
73029		}
73030	}
73031	if err != nil {
73032		return nil, err
73033	}
73034	defer googleapi.CloseBody(res)
73035	if err := googleapi.CheckResponse(res); err != nil {
73036		return nil, err
73037	}
73038	ret := &SerialPortOutput{
73039		ServerResponse: googleapi.ServerResponse{
73040			Header:         res.Header,
73041			HTTPStatusCode: res.StatusCode,
73042		},
73043	}
73044	target := &ret
73045	if err := gensupport.DecodeResponse(target, res); err != nil {
73046		return nil, err
73047	}
73048	return ret, nil
73049	// {
73050	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
73051	//   "httpMethod": "GET",
73052	//   "id": "compute.instances.getSerialPortOutput",
73053	//   "parameterOrder": [
73054	//     "project",
73055	//     "zone",
73056	//     "instance"
73057	//   ],
73058	//   "parameters": {
73059	//     "instance": {
73060	//       "description": "Name of the instance scoping this request.",
73061	//       "location": "path",
73062	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73063	//       "required": true,
73064	//       "type": "string"
73065	//     },
73066	//     "port": {
73067	//       "default": "1",
73068	//       "description": "Specifies which COM or serial port to retrieve data from.",
73069	//       "format": "int32",
73070	//       "location": "query",
73071	//       "maximum": "4",
73072	//       "minimum": "1",
73073	//       "type": "integer"
73074	//     },
73075	//     "project": {
73076	//       "description": "Project ID for this request.",
73077	//       "location": "path",
73078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73079	//       "required": true,
73080	//       "type": "string"
73081	//     },
73082	//     "start": {
73083	//       "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.",
73084	//       "format": "int64",
73085	//       "location": "query",
73086	//       "type": "string"
73087	//     },
73088	//     "zone": {
73089	//       "description": "The name of the zone for this request.",
73090	//       "location": "path",
73091	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73092	//       "required": true,
73093	//       "type": "string"
73094	//     }
73095	//   },
73096	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
73097	//   "response": {
73098	//     "$ref": "SerialPortOutput"
73099	//   },
73100	//   "scopes": [
73101	//     "https://www.googleapis.com/auth/cloud-platform",
73102	//     "https://www.googleapis.com/auth/compute",
73103	//     "https://www.googleapis.com/auth/compute.readonly"
73104	//   ]
73105	// }
73106
73107}
73108
73109// method id "compute.instances.getShieldedInstanceIdentity":
73110
73111type InstancesGetShieldedInstanceIdentityCall struct {
73112	s            *Service
73113	project      string
73114	zone         string
73115	instance     string
73116	urlParams_   gensupport.URLParams
73117	ifNoneMatch_ string
73118	ctx_         context.Context
73119	header_      http.Header
73120}
73121
73122// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
73123// of an instance
73124func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
73125	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73126	c.project = project
73127	c.zone = zone
73128	c.instance = instance
73129	return c
73130}
73131
73132// Fields allows partial responses to be retrieved. See
73133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73134// for more information.
73135func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
73136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73137	return c
73138}
73139
73140// IfNoneMatch sets the optional parameter which makes the operation
73141// fail if the object's ETag matches the given value. This is useful for
73142// getting updates only after the object has changed since the last
73143// request. Use googleapi.IsNotModified to check whether the response
73144// error from Do is the result of In-None-Match.
73145func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
73146	c.ifNoneMatch_ = entityTag
73147	return c
73148}
73149
73150// Context sets the context to be used in this call's Do method. Any
73151// pending HTTP request will be aborted if the provided context is
73152// canceled.
73153func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
73154	c.ctx_ = ctx
73155	return c
73156}
73157
73158// Header returns an http.Header that can be modified by the caller to
73159// add HTTP headers to the request.
73160func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
73161	if c.header_ == nil {
73162		c.header_ = make(http.Header)
73163	}
73164	return c.header_
73165}
73166
73167func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
73168	reqHeaders := make(http.Header)
73169	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73170	for k, v := range c.header_ {
73171		reqHeaders[k] = v
73172	}
73173	reqHeaders.Set("User-Agent", c.s.userAgent())
73174	if c.ifNoneMatch_ != "" {
73175		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73176	}
73177	var body io.Reader = nil
73178	c.urlParams_.Set("alt", alt)
73179	c.urlParams_.Set("prettyPrint", "false")
73180	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
73181	urls += "?" + c.urlParams_.Encode()
73182	req, err := http.NewRequest("GET", urls, body)
73183	if err != nil {
73184		return nil, err
73185	}
73186	req.Header = reqHeaders
73187	googleapi.Expand(req.URL, map[string]string{
73188		"project":  c.project,
73189		"zone":     c.zone,
73190		"instance": c.instance,
73191	})
73192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73193}
73194
73195// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
73196// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
73197// Any non-2xx status code is an error. Response headers are in either
73198// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
73199// returned at all) in error.(*googleapi.Error).Header. Use
73200// googleapi.IsNotModified to check whether the returned error was
73201// because http.StatusNotModified was returned.
73202func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
73203	gensupport.SetOptions(c.urlParams_, opts...)
73204	res, err := c.doRequest("json")
73205	if res != nil && res.StatusCode == http.StatusNotModified {
73206		if res.Body != nil {
73207			res.Body.Close()
73208		}
73209		return nil, &googleapi.Error{
73210			Code:   res.StatusCode,
73211			Header: res.Header,
73212		}
73213	}
73214	if err != nil {
73215		return nil, err
73216	}
73217	defer googleapi.CloseBody(res)
73218	if err := googleapi.CheckResponse(res); err != nil {
73219		return nil, err
73220	}
73221	ret := &ShieldedInstanceIdentity{
73222		ServerResponse: googleapi.ServerResponse{
73223			Header:         res.Header,
73224			HTTPStatusCode: res.StatusCode,
73225		},
73226	}
73227	target := &ret
73228	if err := gensupport.DecodeResponse(target, res); err != nil {
73229		return nil, err
73230	}
73231	return ret, nil
73232	// {
73233	//   "description": "Returns the Shielded Instance Identity of an instance",
73234	//   "httpMethod": "GET",
73235	//   "id": "compute.instances.getShieldedInstanceIdentity",
73236	//   "parameterOrder": [
73237	//     "project",
73238	//     "zone",
73239	//     "instance"
73240	//   ],
73241	//   "parameters": {
73242	//     "instance": {
73243	//       "description": "Name or id of the instance scoping this request.",
73244	//       "location": "path",
73245	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73246	//       "required": true,
73247	//       "type": "string"
73248	//     },
73249	//     "project": {
73250	//       "description": "Project ID for this request.",
73251	//       "location": "path",
73252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73253	//       "required": true,
73254	//       "type": "string"
73255	//     },
73256	//     "zone": {
73257	//       "description": "The name of the zone for this request.",
73258	//       "location": "path",
73259	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73260	//       "required": true,
73261	//       "type": "string"
73262	//     }
73263	//   },
73264	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
73265	//   "response": {
73266	//     "$ref": "ShieldedInstanceIdentity"
73267	//   },
73268	//   "scopes": [
73269	//     "https://www.googleapis.com/auth/cloud-platform",
73270	//     "https://www.googleapis.com/auth/compute",
73271	//     "https://www.googleapis.com/auth/compute.readonly"
73272	//   ]
73273	// }
73274
73275}
73276
73277// method id "compute.instances.insert":
73278
73279type InstancesInsertCall struct {
73280	s          *Service
73281	project    string
73282	zone       string
73283	instance   *Instance
73284	urlParams_ gensupport.URLParams
73285	ctx_       context.Context
73286	header_    http.Header
73287}
73288
73289// Insert: Creates an instance resource in the specified project using
73290// the data included in the request.
73291// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
73292func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
73293	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73294	c.project = project
73295	c.zone = zone
73296	c.instance = instance
73297	return c
73298}
73299
73300// RequestId sets the optional parameter "requestId": An optional
73301// request ID to identify requests. Specify a unique request ID so that
73302// if you must retry your request, the server will know to ignore the
73303// request if it has already been completed.
73304//
73305// For example, consider a situation where you make an initial request
73306// and the request times out. If you make the request again with the
73307// same request ID, the server can check if original operation with the
73308// same request ID was received, and if so, will ignore the second
73309// request. This prevents clients from accidentally creating duplicate
73310// commitments.
73311//
73312// The request ID must be a valid UUID with the exception that zero UUID
73313// is not supported (00000000-0000-0000-0000-000000000000).
73314func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
73315	c.urlParams_.Set("requestId", requestId)
73316	return c
73317}
73318
73319// SourceInstanceTemplate sets the optional parameter
73320// "sourceInstanceTemplate": Specifies instance template to create the
73321// instance.
73322//
73323// This field is optional. It can be a full or partial URL. For example,
73324// the following are all valid URLs to an instance template:
73325// -
73326// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
73327// - projects/project/global/instanceTemplates/instanceTemplate
73328// - global/instanceTemplates/instanceTemplate
73329func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
73330	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
73331	return c
73332}
73333
73334// Fields allows partial responses to be retrieved. See
73335// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73336// for more information.
73337func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
73338	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73339	return c
73340}
73341
73342// Context sets the context to be used in this call's Do method. Any
73343// pending HTTP request will be aborted if the provided context is
73344// canceled.
73345func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
73346	c.ctx_ = ctx
73347	return c
73348}
73349
73350// Header returns an http.Header that can be modified by the caller to
73351// add HTTP headers to the request.
73352func (c *InstancesInsertCall) Header() http.Header {
73353	if c.header_ == nil {
73354		c.header_ = make(http.Header)
73355	}
73356	return c.header_
73357}
73358
73359func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
73360	reqHeaders := make(http.Header)
73361	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73362	for k, v := range c.header_ {
73363		reqHeaders[k] = v
73364	}
73365	reqHeaders.Set("User-Agent", c.s.userAgent())
73366	var body io.Reader = nil
73367	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
73368	if err != nil {
73369		return nil, err
73370	}
73371	reqHeaders.Set("Content-Type", "application/json")
73372	c.urlParams_.Set("alt", alt)
73373	c.urlParams_.Set("prettyPrint", "false")
73374	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
73375	urls += "?" + c.urlParams_.Encode()
73376	req, err := http.NewRequest("POST", urls, body)
73377	if err != nil {
73378		return nil, err
73379	}
73380	req.Header = reqHeaders
73381	googleapi.Expand(req.URL, map[string]string{
73382		"project": c.project,
73383		"zone":    c.zone,
73384	})
73385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73386}
73387
73388// Do executes the "compute.instances.insert" call.
73389// Exactly one of *Operation or error will be non-nil. Any non-2xx
73390// status code is an error. Response headers are in either
73391// *Operation.ServerResponse.Header or (if a response was returned at
73392// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73393// to check whether the returned error was because
73394// http.StatusNotModified was returned.
73395func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73396	gensupport.SetOptions(c.urlParams_, opts...)
73397	res, err := c.doRequest("json")
73398	if res != nil && res.StatusCode == http.StatusNotModified {
73399		if res.Body != nil {
73400			res.Body.Close()
73401		}
73402		return nil, &googleapi.Error{
73403			Code:   res.StatusCode,
73404			Header: res.Header,
73405		}
73406	}
73407	if err != nil {
73408		return nil, err
73409	}
73410	defer googleapi.CloseBody(res)
73411	if err := googleapi.CheckResponse(res); err != nil {
73412		return nil, err
73413	}
73414	ret := &Operation{
73415		ServerResponse: googleapi.ServerResponse{
73416			Header:         res.Header,
73417			HTTPStatusCode: res.StatusCode,
73418		},
73419	}
73420	target := &ret
73421	if err := gensupport.DecodeResponse(target, res); err != nil {
73422		return nil, err
73423	}
73424	return ret, nil
73425	// {
73426	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
73427	//   "httpMethod": "POST",
73428	//   "id": "compute.instances.insert",
73429	//   "parameterOrder": [
73430	//     "project",
73431	//     "zone"
73432	//   ],
73433	//   "parameters": {
73434	//     "project": {
73435	//       "description": "Project ID for this request.",
73436	//       "location": "path",
73437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73438	//       "required": true,
73439	//       "type": "string"
73440	//     },
73441	//     "requestId": {
73442	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73443	//       "location": "query",
73444	//       "type": "string"
73445	//     },
73446	//     "sourceInstanceTemplate": {
73447	//       "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",
73448	//       "location": "query",
73449	//       "type": "string"
73450	//     },
73451	//     "zone": {
73452	//       "description": "The name of the zone for this request.",
73453	//       "location": "path",
73454	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73455	//       "required": true,
73456	//       "type": "string"
73457	//     }
73458	//   },
73459	//   "path": "{project}/zones/{zone}/instances",
73460	//   "request": {
73461	//     "$ref": "Instance"
73462	//   },
73463	//   "response": {
73464	//     "$ref": "Operation"
73465	//   },
73466	//   "scopes": [
73467	//     "https://www.googleapis.com/auth/cloud-platform",
73468	//     "https://www.googleapis.com/auth/compute"
73469	//   ]
73470	// }
73471
73472}
73473
73474// method id "compute.instances.list":
73475
73476type InstancesListCall struct {
73477	s            *Service
73478	project      string
73479	zone         string
73480	urlParams_   gensupport.URLParams
73481	ifNoneMatch_ string
73482	ctx_         context.Context
73483	header_      http.Header
73484}
73485
73486// List: Retrieves the list of instances contained within the specified
73487// zone.
73488// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
73489func (r *InstancesService) List(project string, zone string) *InstancesListCall {
73490	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73491	c.project = project
73492	c.zone = zone
73493	return c
73494}
73495
73496// Filter sets the optional parameter "filter": A filter expression that
73497// filters resources listed in the response. The expression must specify
73498// the field name, a comparison operator, and the value that you want to
73499// use for filtering. The value must be a string, a number, or a
73500// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73501// `<`.
73502//
73503// For example, if you are filtering Compute Engine instances, you can
73504// exclude instances named `example-instance` by specifying `name !=
73505// example-instance`.
73506//
73507// You can also filter nested fields. For example, you could specify
73508// `scheduling.automaticRestart = false` to include instances only if
73509// they are not scheduled for automatic restarts. You can use filtering
73510// on nested fields to filter based on resource labels.
73511//
73512// To filter on multiple expressions, provide each separate expression
73513// within parentheses. For example: ``` (scheduling.automaticRestart =
73514// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73515// is an `AND` expression. However, you can include `AND` and `OR`
73516// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73517// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73518// (scheduling.automaticRestart = true) ```
73519func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
73520	c.urlParams_.Set("filter", filter)
73521	return c
73522}
73523
73524// MaxResults sets the optional parameter "maxResults": The maximum
73525// number of results per page that should be returned. If the number of
73526// available results is larger than `maxResults`, Compute Engine returns
73527// a `nextPageToken` that can be used to get the next page of results in
73528// subsequent list requests. Acceptable values are `0` to `500`,
73529// inclusive. (Default: `500`)
73530func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
73531	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73532	return c
73533}
73534
73535// OrderBy sets the optional parameter "orderBy": Sorts list results by
73536// a certain order. By default, results are returned in alphanumerical
73537// order based on the resource name.
73538//
73539// You can also sort results in descending order based on the creation
73540// timestamp using `orderBy="creationTimestamp desc". This sorts
73541// results based on the `creationTimestamp` field in reverse
73542// chronological order (newest result first). Use this to sort resources
73543// like operations so that the newest operation is returned
73544// first.
73545//
73546// Currently, only sorting by `name` or `creationTimestamp desc` is
73547// supported.
73548func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
73549	c.urlParams_.Set("orderBy", orderBy)
73550	return c
73551}
73552
73553// PageToken sets the optional parameter "pageToken": Specifies a page
73554// token to use. Set `pageToken` to the `nextPageToken` returned by a
73555// previous list request to get the next page of results.
73556func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
73557	c.urlParams_.Set("pageToken", pageToken)
73558	return c
73559}
73560
73561// Fields allows partial responses to be retrieved. See
73562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73563// for more information.
73564func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
73565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73566	return c
73567}
73568
73569// IfNoneMatch sets the optional parameter which makes the operation
73570// fail if the object's ETag matches the given value. This is useful for
73571// getting updates only after the object has changed since the last
73572// request. Use googleapi.IsNotModified to check whether the response
73573// error from Do is the result of In-None-Match.
73574func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
73575	c.ifNoneMatch_ = entityTag
73576	return c
73577}
73578
73579// Context sets the context to be used in this call's Do method. Any
73580// pending HTTP request will be aborted if the provided context is
73581// canceled.
73582func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
73583	c.ctx_ = ctx
73584	return c
73585}
73586
73587// Header returns an http.Header that can be modified by the caller to
73588// add HTTP headers to the request.
73589func (c *InstancesListCall) Header() http.Header {
73590	if c.header_ == nil {
73591		c.header_ = make(http.Header)
73592	}
73593	return c.header_
73594}
73595
73596func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
73597	reqHeaders := make(http.Header)
73598	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73599	for k, v := range c.header_ {
73600		reqHeaders[k] = v
73601	}
73602	reqHeaders.Set("User-Agent", c.s.userAgent())
73603	if c.ifNoneMatch_ != "" {
73604		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73605	}
73606	var body io.Reader = nil
73607	c.urlParams_.Set("alt", alt)
73608	c.urlParams_.Set("prettyPrint", "false")
73609	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
73610	urls += "?" + c.urlParams_.Encode()
73611	req, err := http.NewRequest("GET", urls, body)
73612	if err != nil {
73613		return nil, err
73614	}
73615	req.Header = reqHeaders
73616	googleapi.Expand(req.URL, map[string]string{
73617		"project": c.project,
73618		"zone":    c.zone,
73619	})
73620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73621}
73622
73623// Do executes the "compute.instances.list" call.
73624// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
73625// status code is an error. Response headers are in either
73626// *InstanceList.ServerResponse.Header or (if a response was returned at
73627// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73628// to check whether the returned error was because
73629// http.StatusNotModified was returned.
73630func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
73631	gensupport.SetOptions(c.urlParams_, opts...)
73632	res, err := c.doRequest("json")
73633	if res != nil && res.StatusCode == http.StatusNotModified {
73634		if res.Body != nil {
73635			res.Body.Close()
73636		}
73637		return nil, &googleapi.Error{
73638			Code:   res.StatusCode,
73639			Header: res.Header,
73640		}
73641	}
73642	if err != nil {
73643		return nil, err
73644	}
73645	defer googleapi.CloseBody(res)
73646	if err := googleapi.CheckResponse(res); err != nil {
73647		return nil, err
73648	}
73649	ret := &InstanceList{
73650		ServerResponse: googleapi.ServerResponse{
73651			Header:         res.Header,
73652			HTTPStatusCode: res.StatusCode,
73653		},
73654	}
73655	target := &ret
73656	if err := gensupport.DecodeResponse(target, res); err != nil {
73657		return nil, err
73658	}
73659	return ret, nil
73660	// {
73661	//   "description": "Retrieves the list of instances contained within the specified zone.",
73662	//   "httpMethod": "GET",
73663	//   "id": "compute.instances.list",
73664	//   "parameterOrder": [
73665	//     "project",
73666	//     "zone"
73667	//   ],
73668	//   "parameters": {
73669	//     "filter": {
73670	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73671	//       "location": "query",
73672	//       "type": "string"
73673	//     },
73674	//     "maxResults": {
73675	//       "default": "500",
73676	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73677	//       "format": "uint32",
73678	//       "location": "query",
73679	//       "minimum": "0",
73680	//       "type": "integer"
73681	//     },
73682	//     "orderBy": {
73683	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73684	//       "location": "query",
73685	//       "type": "string"
73686	//     },
73687	//     "pageToken": {
73688	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73689	//       "location": "query",
73690	//       "type": "string"
73691	//     },
73692	//     "project": {
73693	//       "description": "Project ID for this request.",
73694	//       "location": "path",
73695	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73696	//       "required": true,
73697	//       "type": "string"
73698	//     },
73699	//     "zone": {
73700	//       "description": "The name of the zone for this request.",
73701	//       "location": "path",
73702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73703	//       "required": true,
73704	//       "type": "string"
73705	//     }
73706	//   },
73707	//   "path": "{project}/zones/{zone}/instances",
73708	//   "response": {
73709	//     "$ref": "InstanceList"
73710	//   },
73711	//   "scopes": [
73712	//     "https://www.googleapis.com/auth/cloud-platform",
73713	//     "https://www.googleapis.com/auth/compute",
73714	//     "https://www.googleapis.com/auth/compute.readonly"
73715	//   ]
73716	// }
73717
73718}
73719
73720// Pages invokes f for each page of results.
73721// A non-nil error returned from f will halt the iteration.
73722// The provided context supersedes any context provided to the Context method.
73723func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
73724	c.ctx_ = ctx
73725	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73726	for {
73727		x, err := c.Do()
73728		if err != nil {
73729			return err
73730		}
73731		if err := f(x); err != nil {
73732			return err
73733		}
73734		if x.NextPageToken == "" {
73735			return nil
73736		}
73737		c.PageToken(x.NextPageToken)
73738	}
73739}
73740
73741// method id "compute.instances.listReferrers":
73742
73743type InstancesListReferrersCall struct {
73744	s            *Service
73745	project      string
73746	zone         string
73747	instance     string
73748	urlParams_   gensupport.URLParams
73749	ifNoneMatch_ string
73750	ctx_         context.Context
73751	header_      http.Header
73752}
73753
73754// ListReferrers: Retrieves a list of resources that refer to the VM
73755// instance specified in the request. For example, if the VM instance is
73756// part of a managed instance group, the referrers list includes the
73757// managed instance group. For more information, read Viewing Referrers
73758// to VM Instances.
73759func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
73760	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73761	c.project = project
73762	c.zone = zone
73763	c.instance = instance
73764	return c
73765}
73766
73767// Filter sets the optional parameter "filter": A filter expression that
73768// filters resources listed in the response. The expression must specify
73769// the field name, a comparison operator, and the value that you want to
73770// use for filtering. The value must be a string, a number, or a
73771// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73772// `<`.
73773//
73774// For example, if you are filtering Compute Engine instances, you can
73775// exclude instances named `example-instance` by specifying `name !=
73776// example-instance`.
73777//
73778// You can also filter nested fields. For example, you could specify
73779// `scheduling.automaticRestart = false` to include instances only if
73780// they are not scheduled for automatic restarts. You can use filtering
73781// on nested fields to filter based on resource labels.
73782//
73783// To filter on multiple expressions, provide each separate expression
73784// within parentheses. For example: ``` (scheduling.automaticRestart =
73785// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73786// is an `AND` expression. However, you can include `AND` and `OR`
73787// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73788// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73789// (scheduling.automaticRestart = true) ```
73790func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
73791	c.urlParams_.Set("filter", filter)
73792	return c
73793}
73794
73795// MaxResults sets the optional parameter "maxResults": The maximum
73796// number of results per page that should be returned. If the number of
73797// available results is larger than `maxResults`, Compute Engine returns
73798// a `nextPageToken` that can be used to get the next page of results in
73799// subsequent list requests. Acceptable values are `0` to `500`,
73800// inclusive. (Default: `500`)
73801func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
73802	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73803	return c
73804}
73805
73806// OrderBy sets the optional parameter "orderBy": Sorts list results by
73807// a certain order. By default, results are returned in alphanumerical
73808// order based on the resource name.
73809//
73810// You can also sort results in descending order based on the creation
73811// timestamp using `orderBy="creationTimestamp desc". This sorts
73812// results based on the `creationTimestamp` field in reverse
73813// chronological order (newest result first). Use this to sort resources
73814// like operations so that the newest operation is returned
73815// first.
73816//
73817// Currently, only sorting by `name` or `creationTimestamp desc` is
73818// supported.
73819func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
73820	c.urlParams_.Set("orderBy", orderBy)
73821	return c
73822}
73823
73824// PageToken sets the optional parameter "pageToken": Specifies a page
73825// token to use. Set `pageToken` to the `nextPageToken` returned by a
73826// previous list request to get the next page of results.
73827func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
73828	c.urlParams_.Set("pageToken", pageToken)
73829	return c
73830}
73831
73832// Fields allows partial responses to be retrieved. See
73833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73834// for more information.
73835func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
73836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73837	return c
73838}
73839
73840// IfNoneMatch sets the optional parameter which makes the operation
73841// fail if the object's ETag matches the given value. This is useful for
73842// getting updates only after the object has changed since the last
73843// request. Use googleapi.IsNotModified to check whether the response
73844// error from Do is the result of In-None-Match.
73845func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
73846	c.ifNoneMatch_ = entityTag
73847	return c
73848}
73849
73850// Context sets the context to be used in this call's Do method. Any
73851// pending HTTP request will be aborted if the provided context is
73852// canceled.
73853func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
73854	c.ctx_ = ctx
73855	return c
73856}
73857
73858// Header returns an http.Header that can be modified by the caller to
73859// add HTTP headers to the request.
73860func (c *InstancesListReferrersCall) Header() http.Header {
73861	if c.header_ == nil {
73862		c.header_ = make(http.Header)
73863	}
73864	return c.header_
73865}
73866
73867func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
73868	reqHeaders := make(http.Header)
73869	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73870	for k, v := range c.header_ {
73871		reqHeaders[k] = v
73872	}
73873	reqHeaders.Set("User-Agent", c.s.userAgent())
73874	if c.ifNoneMatch_ != "" {
73875		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73876	}
73877	var body io.Reader = nil
73878	c.urlParams_.Set("alt", alt)
73879	c.urlParams_.Set("prettyPrint", "false")
73880	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
73881	urls += "?" + c.urlParams_.Encode()
73882	req, err := http.NewRequest("GET", urls, body)
73883	if err != nil {
73884		return nil, err
73885	}
73886	req.Header = reqHeaders
73887	googleapi.Expand(req.URL, map[string]string{
73888		"project":  c.project,
73889		"zone":     c.zone,
73890		"instance": c.instance,
73891	})
73892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73893}
73894
73895// Do executes the "compute.instances.listReferrers" call.
73896// Exactly one of *InstanceListReferrers or error will be non-nil. Any
73897// non-2xx status code is an error. Response headers are in either
73898// *InstanceListReferrers.ServerResponse.Header or (if a response was
73899// returned at all) in error.(*googleapi.Error).Header. Use
73900// googleapi.IsNotModified to check whether the returned error was
73901// because http.StatusNotModified was returned.
73902func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
73903	gensupport.SetOptions(c.urlParams_, opts...)
73904	res, err := c.doRequest("json")
73905	if res != nil && res.StatusCode == http.StatusNotModified {
73906		if res.Body != nil {
73907			res.Body.Close()
73908		}
73909		return nil, &googleapi.Error{
73910			Code:   res.StatusCode,
73911			Header: res.Header,
73912		}
73913	}
73914	if err != nil {
73915		return nil, err
73916	}
73917	defer googleapi.CloseBody(res)
73918	if err := googleapi.CheckResponse(res); err != nil {
73919		return nil, err
73920	}
73921	ret := &InstanceListReferrers{
73922		ServerResponse: googleapi.ServerResponse{
73923			Header:         res.Header,
73924			HTTPStatusCode: res.StatusCode,
73925		},
73926	}
73927	target := &ret
73928	if err := gensupport.DecodeResponse(target, res); err != nil {
73929		return nil, err
73930	}
73931	return ret, nil
73932	// {
73933	//   "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.",
73934	//   "httpMethod": "GET",
73935	//   "id": "compute.instances.listReferrers",
73936	//   "parameterOrder": [
73937	//     "project",
73938	//     "zone",
73939	//     "instance"
73940	//   ],
73941	//   "parameters": {
73942	//     "filter": {
73943	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73944	//       "location": "query",
73945	//       "type": "string"
73946	//     },
73947	//     "instance": {
73948	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
73949	//       "location": "path",
73950	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73951	//       "required": true,
73952	//       "type": "string"
73953	//     },
73954	//     "maxResults": {
73955	//       "default": "500",
73956	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73957	//       "format": "uint32",
73958	//       "location": "query",
73959	//       "minimum": "0",
73960	//       "type": "integer"
73961	//     },
73962	//     "orderBy": {
73963	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73964	//       "location": "query",
73965	//       "type": "string"
73966	//     },
73967	//     "pageToken": {
73968	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73969	//       "location": "query",
73970	//       "type": "string"
73971	//     },
73972	//     "project": {
73973	//       "description": "Project ID for this request.",
73974	//       "location": "path",
73975	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73976	//       "required": true,
73977	//       "type": "string"
73978	//     },
73979	//     "zone": {
73980	//       "description": "The name of the zone for this request.",
73981	//       "location": "path",
73982	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73983	//       "required": true,
73984	//       "type": "string"
73985	//     }
73986	//   },
73987	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
73988	//   "response": {
73989	//     "$ref": "InstanceListReferrers"
73990	//   },
73991	//   "scopes": [
73992	//     "https://www.googleapis.com/auth/cloud-platform",
73993	//     "https://www.googleapis.com/auth/compute",
73994	//     "https://www.googleapis.com/auth/compute.readonly"
73995	//   ]
73996	// }
73997
73998}
73999
74000// Pages invokes f for each page of results.
74001// A non-nil error returned from f will halt the iteration.
74002// The provided context supersedes any context provided to the Context method.
74003func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
74004	c.ctx_ = ctx
74005	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74006	for {
74007		x, err := c.Do()
74008		if err != nil {
74009			return err
74010		}
74011		if err := f(x); err != nil {
74012			return err
74013		}
74014		if x.NextPageToken == "" {
74015			return nil
74016		}
74017		c.PageToken(x.NextPageToken)
74018	}
74019}
74020
74021// method id "compute.instances.removeResourcePolicies":
74022
74023type InstancesRemoveResourcePoliciesCall struct {
74024	s                                      *Service
74025	project                                string
74026	zone                                   string
74027	instance                               string
74028	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
74029	urlParams_                             gensupport.URLParams
74030	ctx_                                   context.Context
74031	header_                                http.Header
74032}
74033
74034// RemoveResourcePolicies: Removes resource policies from an instance.
74035func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
74036	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74037	c.project = project
74038	c.zone = zone
74039	c.instance = instance
74040	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
74041	return c
74042}
74043
74044// RequestId sets the optional parameter "requestId": An optional
74045// request ID to identify requests. Specify a unique request ID so that
74046// if you must retry your request, the server will know to ignore the
74047// request if it has already been completed.
74048//
74049// For example, consider a situation where you make an initial request
74050// and the request times out. If you make the request again with the
74051// same request ID, the server can check if original operation with the
74052// same request ID was received, and if so, will ignore the second
74053// request. This prevents clients from accidentally creating duplicate
74054// commitments.
74055//
74056// The request ID must be a valid UUID with the exception that zero UUID
74057// is not supported (00000000-0000-0000-0000-000000000000).
74058func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
74059	c.urlParams_.Set("requestId", requestId)
74060	return c
74061}
74062
74063// Fields allows partial responses to be retrieved. See
74064// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74065// for more information.
74066func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
74067	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74068	return c
74069}
74070
74071// Context sets the context to be used in this call's Do method. Any
74072// pending HTTP request will be aborted if the provided context is
74073// canceled.
74074func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
74075	c.ctx_ = ctx
74076	return c
74077}
74078
74079// Header returns an http.Header that can be modified by the caller to
74080// add HTTP headers to the request.
74081func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
74082	if c.header_ == nil {
74083		c.header_ = make(http.Header)
74084	}
74085	return c.header_
74086}
74087
74088func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
74089	reqHeaders := make(http.Header)
74090	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74091	for k, v := range c.header_ {
74092		reqHeaders[k] = v
74093	}
74094	reqHeaders.Set("User-Agent", c.s.userAgent())
74095	var body io.Reader = nil
74096	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
74097	if err != nil {
74098		return nil, err
74099	}
74100	reqHeaders.Set("Content-Type", "application/json")
74101	c.urlParams_.Set("alt", alt)
74102	c.urlParams_.Set("prettyPrint", "false")
74103	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
74104	urls += "?" + c.urlParams_.Encode()
74105	req, err := http.NewRequest("POST", urls, body)
74106	if err != nil {
74107		return nil, err
74108	}
74109	req.Header = reqHeaders
74110	googleapi.Expand(req.URL, map[string]string{
74111		"project":  c.project,
74112		"zone":     c.zone,
74113		"instance": c.instance,
74114	})
74115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74116}
74117
74118// Do executes the "compute.instances.removeResourcePolicies" call.
74119// Exactly one of *Operation or error will be non-nil. Any non-2xx
74120// status code is an error. Response headers are in either
74121// *Operation.ServerResponse.Header or (if a response was returned at
74122// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74123// to check whether the returned error was because
74124// http.StatusNotModified was returned.
74125func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74126	gensupport.SetOptions(c.urlParams_, opts...)
74127	res, err := c.doRequest("json")
74128	if res != nil && res.StatusCode == http.StatusNotModified {
74129		if res.Body != nil {
74130			res.Body.Close()
74131		}
74132		return nil, &googleapi.Error{
74133			Code:   res.StatusCode,
74134			Header: res.Header,
74135		}
74136	}
74137	if err != nil {
74138		return nil, err
74139	}
74140	defer googleapi.CloseBody(res)
74141	if err := googleapi.CheckResponse(res); err != nil {
74142		return nil, err
74143	}
74144	ret := &Operation{
74145		ServerResponse: googleapi.ServerResponse{
74146			Header:         res.Header,
74147			HTTPStatusCode: res.StatusCode,
74148		},
74149	}
74150	target := &ret
74151	if err := gensupport.DecodeResponse(target, res); err != nil {
74152		return nil, err
74153	}
74154	return ret, nil
74155	// {
74156	//   "description": "Removes resource policies from an instance.",
74157	//   "httpMethod": "POST",
74158	//   "id": "compute.instances.removeResourcePolicies",
74159	//   "parameterOrder": [
74160	//     "project",
74161	//     "zone",
74162	//     "instance"
74163	//   ],
74164	//   "parameters": {
74165	//     "instance": {
74166	//       "description": "The instance name for this request.",
74167	//       "location": "path",
74168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74169	//       "required": true,
74170	//       "type": "string"
74171	//     },
74172	//     "project": {
74173	//       "description": "Project ID for this request.",
74174	//       "location": "path",
74175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74176	//       "required": true,
74177	//       "type": "string"
74178	//     },
74179	//     "requestId": {
74180	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74181	//       "location": "query",
74182	//       "type": "string"
74183	//     },
74184	//     "zone": {
74185	//       "description": "The name of the zone for this request.",
74186	//       "location": "path",
74187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74188	//       "required": true,
74189	//       "type": "string"
74190	//     }
74191	//   },
74192	//   "path": "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
74193	//   "request": {
74194	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
74195	//   },
74196	//   "response": {
74197	//     "$ref": "Operation"
74198	//   },
74199	//   "scopes": [
74200	//     "https://www.googleapis.com/auth/cloud-platform",
74201	//     "https://www.googleapis.com/auth/compute"
74202	//   ]
74203	// }
74204
74205}
74206
74207// method id "compute.instances.reset":
74208
74209type InstancesResetCall struct {
74210	s          *Service
74211	project    string
74212	zone       string
74213	instance   string
74214	urlParams_ gensupport.URLParams
74215	ctx_       context.Context
74216	header_    http.Header
74217}
74218
74219// Reset: Performs a reset on the instance. This is a hard reset the VM
74220// does not do a graceful shutdown. For more information, see Resetting
74221// an instance.
74222// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
74223func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
74224	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74225	c.project = project
74226	c.zone = zone
74227	c.instance = instance
74228	return c
74229}
74230
74231// RequestId sets the optional parameter "requestId": An optional
74232// request ID to identify requests. Specify a unique request ID so that
74233// if you must retry your request, the server will know to ignore the
74234// request if it has already been completed.
74235//
74236// For example, consider a situation where you make an initial request
74237// and the request times out. If you make the request again with the
74238// same request ID, the server can check if original operation with the
74239// same request ID was received, and if so, will ignore the second
74240// request. This prevents clients from accidentally creating duplicate
74241// commitments.
74242//
74243// The request ID must be a valid UUID with the exception that zero UUID
74244// is not supported (00000000-0000-0000-0000-000000000000).
74245func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
74246	c.urlParams_.Set("requestId", requestId)
74247	return c
74248}
74249
74250// Fields allows partial responses to be retrieved. See
74251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74252// for more information.
74253func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
74254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74255	return c
74256}
74257
74258// Context sets the context to be used in this call's Do method. Any
74259// pending HTTP request will be aborted if the provided context is
74260// canceled.
74261func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
74262	c.ctx_ = ctx
74263	return c
74264}
74265
74266// Header returns an http.Header that can be modified by the caller to
74267// add HTTP headers to the request.
74268func (c *InstancesResetCall) Header() http.Header {
74269	if c.header_ == nil {
74270		c.header_ = make(http.Header)
74271	}
74272	return c.header_
74273}
74274
74275func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
74276	reqHeaders := make(http.Header)
74277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74278	for k, v := range c.header_ {
74279		reqHeaders[k] = v
74280	}
74281	reqHeaders.Set("User-Agent", c.s.userAgent())
74282	var body io.Reader = nil
74283	c.urlParams_.Set("alt", alt)
74284	c.urlParams_.Set("prettyPrint", "false")
74285	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
74286	urls += "?" + c.urlParams_.Encode()
74287	req, err := http.NewRequest("POST", urls, body)
74288	if err != nil {
74289		return nil, err
74290	}
74291	req.Header = reqHeaders
74292	googleapi.Expand(req.URL, map[string]string{
74293		"project":  c.project,
74294		"zone":     c.zone,
74295		"instance": c.instance,
74296	})
74297	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74298}
74299
74300// Do executes the "compute.instances.reset" call.
74301// Exactly one of *Operation or error will be non-nil. Any non-2xx
74302// status code is an error. Response headers are in either
74303// *Operation.ServerResponse.Header or (if a response was returned at
74304// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74305// to check whether the returned error was because
74306// http.StatusNotModified was returned.
74307func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74308	gensupport.SetOptions(c.urlParams_, opts...)
74309	res, err := c.doRequest("json")
74310	if res != nil && res.StatusCode == http.StatusNotModified {
74311		if res.Body != nil {
74312			res.Body.Close()
74313		}
74314		return nil, &googleapi.Error{
74315			Code:   res.StatusCode,
74316			Header: res.Header,
74317		}
74318	}
74319	if err != nil {
74320		return nil, err
74321	}
74322	defer googleapi.CloseBody(res)
74323	if err := googleapi.CheckResponse(res); err != nil {
74324		return nil, err
74325	}
74326	ret := &Operation{
74327		ServerResponse: googleapi.ServerResponse{
74328			Header:         res.Header,
74329			HTTPStatusCode: res.StatusCode,
74330		},
74331	}
74332	target := &ret
74333	if err := gensupport.DecodeResponse(target, res); err != nil {
74334		return nil, err
74335	}
74336	return ret, nil
74337	// {
74338	//   "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.",
74339	//   "httpMethod": "POST",
74340	//   "id": "compute.instances.reset",
74341	//   "parameterOrder": [
74342	//     "project",
74343	//     "zone",
74344	//     "instance"
74345	//   ],
74346	//   "parameters": {
74347	//     "instance": {
74348	//       "description": "Name of the instance scoping this request.",
74349	//       "location": "path",
74350	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74351	//       "required": true,
74352	//       "type": "string"
74353	//     },
74354	//     "project": {
74355	//       "description": "Project ID for this request.",
74356	//       "location": "path",
74357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74358	//       "required": true,
74359	//       "type": "string"
74360	//     },
74361	//     "requestId": {
74362	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74363	//       "location": "query",
74364	//       "type": "string"
74365	//     },
74366	//     "zone": {
74367	//       "description": "The name of the zone for this request.",
74368	//       "location": "path",
74369	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74370	//       "required": true,
74371	//       "type": "string"
74372	//     }
74373	//   },
74374	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
74375	//   "response": {
74376	//     "$ref": "Operation"
74377	//   },
74378	//   "scopes": [
74379	//     "https://www.googleapis.com/auth/cloud-platform",
74380	//     "https://www.googleapis.com/auth/compute"
74381	//   ]
74382	// }
74383
74384}
74385
74386// method id "compute.instances.setDeletionProtection":
74387
74388type InstancesSetDeletionProtectionCall struct {
74389	s          *Service
74390	project    string
74391	zone       string
74392	resource   string
74393	urlParams_ gensupport.URLParams
74394	ctx_       context.Context
74395	header_    http.Header
74396}
74397
74398// SetDeletionProtection: Sets deletion protection on the instance.
74399func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
74400	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74401	c.project = project
74402	c.zone = zone
74403	c.resource = resource
74404	return c
74405}
74406
74407// DeletionProtection sets the optional parameter "deletionProtection":
74408// Whether the resource should be protected against deletion.
74409func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
74410	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
74411	return c
74412}
74413
74414// RequestId sets the optional parameter "requestId": An optional
74415// request ID to identify requests. Specify a unique request ID so that
74416// if you must retry your request, the server will know to ignore the
74417// request if it has already been completed.
74418//
74419// For example, consider a situation where you make an initial request
74420// and the request times out. If you make the request again with the
74421// same request ID, the server can check if original operation with the
74422// same request ID was received, and if so, will ignore the second
74423// request. This prevents clients from accidentally creating duplicate
74424// commitments.
74425//
74426// The request ID must be a valid UUID with the exception that zero UUID
74427// is not supported (00000000-0000-0000-0000-000000000000).
74428func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
74429	c.urlParams_.Set("requestId", requestId)
74430	return c
74431}
74432
74433// Fields allows partial responses to be retrieved. See
74434// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74435// for more information.
74436func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
74437	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74438	return c
74439}
74440
74441// Context sets the context to be used in this call's Do method. Any
74442// pending HTTP request will be aborted if the provided context is
74443// canceled.
74444func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
74445	c.ctx_ = ctx
74446	return c
74447}
74448
74449// Header returns an http.Header that can be modified by the caller to
74450// add HTTP headers to the request.
74451func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
74452	if c.header_ == nil {
74453		c.header_ = make(http.Header)
74454	}
74455	return c.header_
74456}
74457
74458func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
74459	reqHeaders := make(http.Header)
74460	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74461	for k, v := range c.header_ {
74462		reqHeaders[k] = v
74463	}
74464	reqHeaders.Set("User-Agent", c.s.userAgent())
74465	var body io.Reader = nil
74466	c.urlParams_.Set("alt", alt)
74467	c.urlParams_.Set("prettyPrint", "false")
74468	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
74469	urls += "?" + c.urlParams_.Encode()
74470	req, err := http.NewRequest("POST", urls, body)
74471	if err != nil {
74472		return nil, err
74473	}
74474	req.Header = reqHeaders
74475	googleapi.Expand(req.URL, map[string]string{
74476		"project":  c.project,
74477		"zone":     c.zone,
74478		"resource": c.resource,
74479	})
74480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74481}
74482
74483// Do executes the "compute.instances.setDeletionProtection" call.
74484// Exactly one of *Operation or error will be non-nil. Any non-2xx
74485// status code is an error. Response headers are in either
74486// *Operation.ServerResponse.Header or (if a response was returned at
74487// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74488// to check whether the returned error was because
74489// http.StatusNotModified was returned.
74490func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74491	gensupport.SetOptions(c.urlParams_, opts...)
74492	res, err := c.doRequest("json")
74493	if res != nil && res.StatusCode == http.StatusNotModified {
74494		if res.Body != nil {
74495			res.Body.Close()
74496		}
74497		return nil, &googleapi.Error{
74498			Code:   res.StatusCode,
74499			Header: res.Header,
74500		}
74501	}
74502	if err != nil {
74503		return nil, err
74504	}
74505	defer googleapi.CloseBody(res)
74506	if err := googleapi.CheckResponse(res); err != nil {
74507		return nil, err
74508	}
74509	ret := &Operation{
74510		ServerResponse: googleapi.ServerResponse{
74511			Header:         res.Header,
74512			HTTPStatusCode: res.StatusCode,
74513		},
74514	}
74515	target := &ret
74516	if err := gensupport.DecodeResponse(target, res); err != nil {
74517		return nil, err
74518	}
74519	return ret, nil
74520	// {
74521	//   "description": "Sets deletion protection on the instance.",
74522	//   "httpMethod": "POST",
74523	//   "id": "compute.instances.setDeletionProtection",
74524	//   "parameterOrder": [
74525	//     "project",
74526	//     "zone",
74527	//     "resource"
74528	//   ],
74529	//   "parameters": {
74530	//     "deletionProtection": {
74531	//       "default": "true",
74532	//       "description": "Whether the resource should be protected against deletion.",
74533	//       "location": "query",
74534	//       "type": "boolean"
74535	//     },
74536	//     "project": {
74537	//       "description": "Project ID for this request.",
74538	//       "location": "path",
74539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74540	//       "required": true,
74541	//       "type": "string"
74542	//     },
74543	//     "requestId": {
74544	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74545	//       "location": "query",
74546	//       "type": "string"
74547	//     },
74548	//     "resource": {
74549	//       "description": "Name or id of the resource for this request.",
74550	//       "location": "path",
74551	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74552	//       "required": true,
74553	//       "type": "string"
74554	//     },
74555	//     "zone": {
74556	//       "description": "The name of the zone for this request.",
74557	//       "location": "path",
74558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74559	//       "required": true,
74560	//       "type": "string"
74561	//     }
74562	//   },
74563	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
74564	//   "response": {
74565	//     "$ref": "Operation"
74566	//   },
74567	//   "scopes": [
74568	//     "https://www.googleapis.com/auth/cloud-platform",
74569	//     "https://www.googleapis.com/auth/compute"
74570	//   ]
74571	// }
74572
74573}
74574
74575// method id "compute.instances.setDiskAutoDelete":
74576
74577type InstancesSetDiskAutoDeleteCall struct {
74578	s          *Service
74579	project    string
74580	zone       string
74581	instance   string
74582	urlParams_ gensupport.URLParams
74583	ctx_       context.Context
74584	header_    http.Header
74585}
74586
74587// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
74588// an instance.
74589// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
74590func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
74591	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74592	c.project = project
74593	c.zone = zone
74594	c.instance = instance
74595	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
74596	c.urlParams_.Set("deviceName", deviceName)
74597	return c
74598}
74599
74600// RequestId sets the optional parameter "requestId": An optional
74601// request ID to identify requests. Specify a unique request ID so that
74602// if you must retry your request, the server will know to ignore the
74603// request if it has already been completed.
74604//
74605// For example, consider a situation where you make an initial request
74606// and the request times out. If you make the request again with the
74607// same request ID, the server can check if original operation with the
74608// same request ID was received, and if so, will ignore the second
74609// request. This prevents clients from accidentally creating duplicate
74610// commitments.
74611//
74612// The request ID must be a valid UUID with the exception that zero UUID
74613// is not supported (00000000-0000-0000-0000-000000000000).
74614func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
74615	c.urlParams_.Set("requestId", requestId)
74616	return c
74617}
74618
74619// Fields allows partial responses to be retrieved. See
74620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74621// for more information.
74622func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
74623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74624	return c
74625}
74626
74627// Context sets the context to be used in this call's Do method. Any
74628// pending HTTP request will be aborted if the provided context is
74629// canceled.
74630func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
74631	c.ctx_ = ctx
74632	return c
74633}
74634
74635// Header returns an http.Header that can be modified by the caller to
74636// add HTTP headers to the request.
74637func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
74638	if c.header_ == nil {
74639		c.header_ = make(http.Header)
74640	}
74641	return c.header_
74642}
74643
74644func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
74645	reqHeaders := make(http.Header)
74646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74647	for k, v := range c.header_ {
74648		reqHeaders[k] = v
74649	}
74650	reqHeaders.Set("User-Agent", c.s.userAgent())
74651	var body io.Reader = nil
74652	c.urlParams_.Set("alt", alt)
74653	c.urlParams_.Set("prettyPrint", "false")
74654	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
74655	urls += "?" + c.urlParams_.Encode()
74656	req, err := http.NewRequest("POST", urls, body)
74657	if err != nil {
74658		return nil, err
74659	}
74660	req.Header = reqHeaders
74661	googleapi.Expand(req.URL, map[string]string{
74662		"project":  c.project,
74663		"zone":     c.zone,
74664		"instance": c.instance,
74665	})
74666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74667}
74668
74669// Do executes the "compute.instances.setDiskAutoDelete" call.
74670// Exactly one of *Operation or error will be non-nil. Any non-2xx
74671// status code is an error. Response headers are in either
74672// *Operation.ServerResponse.Header or (if a response was returned at
74673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74674// to check whether the returned error was because
74675// http.StatusNotModified was returned.
74676func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74677	gensupport.SetOptions(c.urlParams_, opts...)
74678	res, err := c.doRequest("json")
74679	if res != nil && res.StatusCode == http.StatusNotModified {
74680		if res.Body != nil {
74681			res.Body.Close()
74682		}
74683		return nil, &googleapi.Error{
74684			Code:   res.StatusCode,
74685			Header: res.Header,
74686		}
74687	}
74688	if err != nil {
74689		return nil, err
74690	}
74691	defer googleapi.CloseBody(res)
74692	if err := googleapi.CheckResponse(res); err != nil {
74693		return nil, err
74694	}
74695	ret := &Operation{
74696		ServerResponse: googleapi.ServerResponse{
74697			Header:         res.Header,
74698			HTTPStatusCode: res.StatusCode,
74699		},
74700	}
74701	target := &ret
74702	if err := gensupport.DecodeResponse(target, res); err != nil {
74703		return nil, err
74704	}
74705	return ret, nil
74706	// {
74707	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
74708	//   "httpMethod": "POST",
74709	//   "id": "compute.instances.setDiskAutoDelete",
74710	//   "parameterOrder": [
74711	//     "project",
74712	//     "zone",
74713	//     "instance",
74714	//     "autoDelete",
74715	//     "deviceName"
74716	//   ],
74717	//   "parameters": {
74718	//     "autoDelete": {
74719	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
74720	//       "location": "query",
74721	//       "required": true,
74722	//       "type": "boolean"
74723	//     },
74724	//     "deviceName": {
74725	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
74726	//       "location": "query",
74727	//       "pattern": "\\w[\\w.-]{0,254}",
74728	//       "required": true,
74729	//       "type": "string"
74730	//     },
74731	//     "instance": {
74732	//       "description": "The instance name for this request.",
74733	//       "location": "path",
74734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74735	//       "required": true,
74736	//       "type": "string"
74737	//     },
74738	//     "project": {
74739	//       "description": "Project ID for this request.",
74740	//       "location": "path",
74741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74742	//       "required": true,
74743	//       "type": "string"
74744	//     },
74745	//     "requestId": {
74746	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74747	//       "location": "query",
74748	//       "type": "string"
74749	//     },
74750	//     "zone": {
74751	//       "description": "The name of the zone for this request.",
74752	//       "location": "path",
74753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74754	//       "required": true,
74755	//       "type": "string"
74756	//     }
74757	//   },
74758	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
74759	//   "response": {
74760	//     "$ref": "Operation"
74761	//   },
74762	//   "scopes": [
74763	//     "https://www.googleapis.com/auth/cloud-platform",
74764	//     "https://www.googleapis.com/auth/compute"
74765	//   ]
74766	// }
74767
74768}
74769
74770// method id "compute.instances.setIamPolicy":
74771
74772type InstancesSetIamPolicyCall struct {
74773	s                    *Service
74774	project              string
74775	zone                 string
74776	resource             string
74777	zonesetpolicyrequest *ZoneSetPolicyRequest
74778	urlParams_           gensupport.URLParams
74779	ctx_                 context.Context
74780	header_              http.Header
74781}
74782
74783// SetIamPolicy: Sets the access control policy on the specified
74784// resource. Replaces any existing policy.
74785func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
74786	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74787	c.project = project
74788	c.zone = zone
74789	c.resource = resource
74790	c.zonesetpolicyrequest = zonesetpolicyrequest
74791	return c
74792}
74793
74794// Fields allows partial responses to be retrieved. See
74795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74796// for more information.
74797func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
74798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74799	return c
74800}
74801
74802// Context sets the context to be used in this call's Do method. Any
74803// pending HTTP request will be aborted if the provided context is
74804// canceled.
74805func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
74806	c.ctx_ = ctx
74807	return c
74808}
74809
74810// Header returns an http.Header that can be modified by the caller to
74811// add HTTP headers to the request.
74812func (c *InstancesSetIamPolicyCall) Header() http.Header {
74813	if c.header_ == nil {
74814		c.header_ = make(http.Header)
74815	}
74816	return c.header_
74817}
74818
74819func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
74820	reqHeaders := make(http.Header)
74821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74822	for k, v := range c.header_ {
74823		reqHeaders[k] = v
74824	}
74825	reqHeaders.Set("User-Agent", c.s.userAgent())
74826	var body io.Reader = nil
74827	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
74828	if err != nil {
74829		return nil, err
74830	}
74831	reqHeaders.Set("Content-Type", "application/json")
74832	c.urlParams_.Set("alt", alt)
74833	c.urlParams_.Set("prettyPrint", "false")
74834	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setIamPolicy")
74835	urls += "?" + c.urlParams_.Encode()
74836	req, err := http.NewRequest("POST", urls, body)
74837	if err != nil {
74838		return nil, err
74839	}
74840	req.Header = reqHeaders
74841	googleapi.Expand(req.URL, map[string]string{
74842		"project":  c.project,
74843		"zone":     c.zone,
74844		"resource": c.resource,
74845	})
74846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74847}
74848
74849// Do executes the "compute.instances.setIamPolicy" call.
74850// Exactly one of *Policy or error will be non-nil. Any non-2xx status
74851// code is an error. Response headers are in either
74852// *Policy.ServerResponse.Header or (if a response was returned at all)
74853// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74854// check whether the returned error was because http.StatusNotModified
74855// was returned.
74856func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
74857	gensupport.SetOptions(c.urlParams_, opts...)
74858	res, err := c.doRequest("json")
74859	if res != nil && res.StatusCode == http.StatusNotModified {
74860		if res.Body != nil {
74861			res.Body.Close()
74862		}
74863		return nil, &googleapi.Error{
74864			Code:   res.StatusCode,
74865			Header: res.Header,
74866		}
74867	}
74868	if err != nil {
74869		return nil, err
74870	}
74871	defer googleapi.CloseBody(res)
74872	if err := googleapi.CheckResponse(res); err != nil {
74873		return nil, err
74874	}
74875	ret := &Policy{
74876		ServerResponse: googleapi.ServerResponse{
74877			Header:         res.Header,
74878			HTTPStatusCode: res.StatusCode,
74879		},
74880	}
74881	target := &ret
74882	if err := gensupport.DecodeResponse(target, res); err != nil {
74883		return nil, err
74884	}
74885	return ret, nil
74886	// {
74887	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
74888	//   "httpMethod": "POST",
74889	//   "id": "compute.instances.setIamPolicy",
74890	//   "parameterOrder": [
74891	//     "project",
74892	//     "zone",
74893	//     "resource"
74894	//   ],
74895	//   "parameters": {
74896	//     "project": {
74897	//       "description": "Project ID for this request.",
74898	//       "location": "path",
74899	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74900	//       "required": true,
74901	//       "type": "string"
74902	//     },
74903	//     "resource": {
74904	//       "description": "Name or id of the resource for this request.",
74905	//       "location": "path",
74906	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74907	//       "required": true,
74908	//       "type": "string"
74909	//     },
74910	//     "zone": {
74911	//       "description": "The name of the zone for this request.",
74912	//       "location": "path",
74913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74914	//       "required": true,
74915	//       "type": "string"
74916	//     }
74917	//   },
74918	//   "path": "{project}/zones/{zone}/instances/{resource}/setIamPolicy",
74919	//   "request": {
74920	//     "$ref": "ZoneSetPolicyRequest"
74921	//   },
74922	//   "response": {
74923	//     "$ref": "Policy"
74924	//   },
74925	//   "scopes": [
74926	//     "https://www.googleapis.com/auth/cloud-platform",
74927	//     "https://www.googleapis.com/auth/compute"
74928	//   ]
74929	// }
74930
74931}
74932
74933// method id "compute.instances.setLabels":
74934
74935type InstancesSetLabelsCall struct {
74936	s                         *Service
74937	project                   string
74938	zone                      string
74939	instance                  string
74940	instancessetlabelsrequest *InstancesSetLabelsRequest
74941	urlParams_                gensupport.URLParams
74942	ctx_                      context.Context
74943	header_                   http.Header
74944}
74945
74946// SetLabels: Sets labels on an instance. To learn more about labels,
74947// read the Labeling Resources documentation.
74948func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
74949	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74950	c.project = project
74951	c.zone = zone
74952	c.instance = instance
74953	c.instancessetlabelsrequest = instancessetlabelsrequest
74954	return c
74955}
74956
74957// RequestId sets the optional parameter "requestId": An optional
74958// request ID to identify requests. Specify a unique request ID so that
74959// if you must retry your request, the server will know to ignore the
74960// request if it has already been completed.
74961//
74962// For example, consider a situation where you make an initial request
74963// and the request times out. If you make the request again with the
74964// same request ID, the server can check if original operation with the
74965// same request ID was received, and if so, will ignore the second
74966// request. This prevents clients from accidentally creating duplicate
74967// commitments.
74968//
74969// The request ID must be a valid UUID with the exception that zero UUID
74970// is not supported (00000000-0000-0000-0000-000000000000).
74971func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
74972	c.urlParams_.Set("requestId", requestId)
74973	return c
74974}
74975
74976// Fields allows partial responses to be retrieved. See
74977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74978// for more information.
74979func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
74980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74981	return c
74982}
74983
74984// Context sets the context to be used in this call's Do method. Any
74985// pending HTTP request will be aborted if the provided context is
74986// canceled.
74987func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
74988	c.ctx_ = ctx
74989	return c
74990}
74991
74992// Header returns an http.Header that can be modified by the caller to
74993// add HTTP headers to the request.
74994func (c *InstancesSetLabelsCall) Header() http.Header {
74995	if c.header_ == nil {
74996		c.header_ = make(http.Header)
74997	}
74998	return c.header_
74999}
75000
75001func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
75002	reqHeaders := make(http.Header)
75003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75004	for k, v := range c.header_ {
75005		reqHeaders[k] = v
75006	}
75007	reqHeaders.Set("User-Agent", c.s.userAgent())
75008	var body io.Reader = nil
75009	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
75010	if err != nil {
75011		return nil, err
75012	}
75013	reqHeaders.Set("Content-Type", "application/json")
75014	c.urlParams_.Set("alt", alt)
75015	c.urlParams_.Set("prettyPrint", "false")
75016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
75017	urls += "?" + c.urlParams_.Encode()
75018	req, err := http.NewRequest("POST", urls, body)
75019	if err != nil {
75020		return nil, err
75021	}
75022	req.Header = reqHeaders
75023	googleapi.Expand(req.URL, map[string]string{
75024		"project":  c.project,
75025		"zone":     c.zone,
75026		"instance": c.instance,
75027	})
75028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75029}
75030
75031// Do executes the "compute.instances.setLabels" call.
75032// Exactly one of *Operation or error will be non-nil. Any non-2xx
75033// status code is an error. Response headers are in either
75034// *Operation.ServerResponse.Header or (if a response was returned at
75035// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75036// to check whether the returned error was because
75037// http.StatusNotModified was returned.
75038func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75039	gensupport.SetOptions(c.urlParams_, opts...)
75040	res, err := c.doRequest("json")
75041	if res != nil && res.StatusCode == http.StatusNotModified {
75042		if res.Body != nil {
75043			res.Body.Close()
75044		}
75045		return nil, &googleapi.Error{
75046			Code:   res.StatusCode,
75047			Header: res.Header,
75048		}
75049	}
75050	if err != nil {
75051		return nil, err
75052	}
75053	defer googleapi.CloseBody(res)
75054	if err := googleapi.CheckResponse(res); err != nil {
75055		return nil, err
75056	}
75057	ret := &Operation{
75058		ServerResponse: googleapi.ServerResponse{
75059			Header:         res.Header,
75060			HTTPStatusCode: res.StatusCode,
75061		},
75062	}
75063	target := &ret
75064	if err := gensupport.DecodeResponse(target, res); err != nil {
75065		return nil, err
75066	}
75067	return ret, nil
75068	// {
75069	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
75070	//   "httpMethod": "POST",
75071	//   "id": "compute.instances.setLabels",
75072	//   "parameterOrder": [
75073	//     "project",
75074	//     "zone",
75075	//     "instance"
75076	//   ],
75077	//   "parameters": {
75078	//     "instance": {
75079	//       "description": "Name of the instance scoping this request.",
75080	//       "location": "path",
75081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75082	//       "required": true,
75083	//       "type": "string"
75084	//     },
75085	//     "project": {
75086	//       "description": "Project ID for this request.",
75087	//       "location": "path",
75088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75089	//       "required": true,
75090	//       "type": "string"
75091	//     },
75092	//     "requestId": {
75093	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75094	//       "location": "query",
75095	//       "type": "string"
75096	//     },
75097	//     "zone": {
75098	//       "description": "The name of the zone for this request.",
75099	//       "location": "path",
75100	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75101	//       "required": true,
75102	//       "type": "string"
75103	//     }
75104	//   },
75105	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
75106	//   "request": {
75107	//     "$ref": "InstancesSetLabelsRequest"
75108	//   },
75109	//   "response": {
75110	//     "$ref": "Operation"
75111	//   },
75112	//   "scopes": [
75113	//     "https://www.googleapis.com/auth/cloud-platform",
75114	//     "https://www.googleapis.com/auth/compute"
75115	//   ]
75116	// }
75117
75118}
75119
75120// method id "compute.instances.setMachineResources":
75121
75122type InstancesSetMachineResourcesCall struct {
75123	s                                   *Service
75124	project                             string
75125	zone                                string
75126	instance                            string
75127	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
75128	urlParams_                          gensupport.URLParams
75129	ctx_                                context.Context
75130	header_                             http.Header
75131}
75132
75133// SetMachineResources: Changes the number and/or type of accelerator
75134// for a stopped instance to the values specified in the request.
75135func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
75136	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75137	c.project = project
75138	c.zone = zone
75139	c.instance = instance
75140	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
75141	return c
75142}
75143
75144// RequestId sets the optional parameter "requestId": An optional
75145// request ID to identify requests. Specify a unique request ID so that
75146// if you must retry your request, the server will know to ignore the
75147// request if it has already been completed.
75148//
75149// For example, consider a situation where you make an initial request
75150// and the request times out. If you make the request again with the
75151// same request ID, the server can check if original operation with the
75152// same request ID was received, and if so, will ignore the second
75153// request. This prevents clients from accidentally creating duplicate
75154// commitments.
75155//
75156// The request ID must be a valid UUID with the exception that zero UUID
75157// is not supported (00000000-0000-0000-0000-000000000000).
75158func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
75159	c.urlParams_.Set("requestId", requestId)
75160	return c
75161}
75162
75163// Fields allows partial responses to be retrieved. See
75164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75165// for more information.
75166func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
75167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75168	return c
75169}
75170
75171// Context sets the context to be used in this call's Do method. Any
75172// pending HTTP request will be aborted if the provided context is
75173// canceled.
75174func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
75175	c.ctx_ = ctx
75176	return c
75177}
75178
75179// Header returns an http.Header that can be modified by the caller to
75180// add HTTP headers to the request.
75181func (c *InstancesSetMachineResourcesCall) Header() http.Header {
75182	if c.header_ == nil {
75183		c.header_ = make(http.Header)
75184	}
75185	return c.header_
75186}
75187
75188func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
75189	reqHeaders := make(http.Header)
75190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75191	for k, v := range c.header_ {
75192		reqHeaders[k] = v
75193	}
75194	reqHeaders.Set("User-Agent", c.s.userAgent())
75195	var body io.Reader = nil
75196	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
75197	if err != nil {
75198		return nil, err
75199	}
75200	reqHeaders.Set("Content-Type", "application/json")
75201	c.urlParams_.Set("alt", alt)
75202	c.urlParams_.Set("prettyPrint", "false")
75203	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
75204	urls += "?" + c.urlParams_.Encode()
75205	req, err := http.NewRequest("POST", urls, body)
75206	if err != nil {
75207		return nil, err
75208	}
75209	req.Header = reqHeaders
75210	googleapi.Expand(req.URL, map[string]string{
75211		"project":  c.project,
75212		"zone":     c.zone,
75213		"instance": c.instance,
75214	})
75215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75216}
75217
75218// Do executes the "compute.instances.setMachineResources" call.
75219// Exactly one of *Operation or error will be non-nil. Any non-2xx
75220// status code is an error. Response headers are in either
75221// *Operation.ServerResponse.Header or (if a response was returned at
75222// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75223// to check whether the returned error was because
75224// http.StatusNotModified was returned.
75225func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75226	gensupport.SetOptions(c.urlParams_, opts...)
75227	res, err := c.doRequest("json")
75228	if res != nil && res.StatusCode == http.StatusNotModified {
75229		if res.Body != nil {
75230			res.Body.Close()
75231		}
75232		return nil, &googleapi.Error{
75233			Code:   res.StatusCode,
75234			Header: res.Header,
75235		}
75236	}
75237	if err != nil {
75238		return nil, err
75239	}
75240	defer googleapi.CloseBody(res)
75241	if err := googleapi.CheckResponse(res); err != nil {
75242		return nil, err
75243	}
75244	ret := &Operation{
75245		ServerResponse: googleapi.ServerResponse{
75246			Header:         res.Header,
75247			HTTPStatusCode: res.StatusCode,
75248		},
75249	}
75250	target := &ret
75251	if err := gensupport.DecodeResponse(target, res); err != nil {
75252		return nil, err
75253	}
75254	return ret, nil
75255	// {
75256	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
75257	//   "httpMethod": "POST",
75258	//   "id": "compute.instances.setMachineResources",
75259	//   "parameterOrder": [
75260	//     "project",
75261	//     "zone",
75262	//     "instance"
75263	//   ],
75264	//   "parameters": {
75265	//     "instance": {
75266	//       "description": "Name of the instance scoping this request.",
75267	//       "location": "path",
75268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75269	//       "required": true,
75270	//       "type": "string"
75271	//     },
75272	//     "project": {
75273	//       "description": "Project ID for this request.",
75274	//       "location": "path",
75275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75276	//       "required": true,
75277	//       "type": "string"
75278	//     },
75279	//     "requestId": {
75280	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75281	//       "location": "query",
75282	//       "type": "string"
75283	//     },
75284	//     "zone": {
75285	//       "description": "The name of the zone for this request.",
75286	//       "location": "path",
75287	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75288	//       "required": true,
75289	//       "type": "string"
75290	//     }
75291	//   },
75292	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
75293	//   "request": {
75294	//     "$ref": "InstancesSetMachineResourcesRequest"
75295	//   },
75296	//   "response": {
75297	//     "$ref": "Operation"
75298	//   },
75299	//   "scopes": [
75300	//     "https://www.googleapis.com/auth/cloud-platform",
75301	//     "https://www.googleapis.com/auth/compute"
75302	//   ]
75303	// }
75304
75305}
75306
75307// method id "compute.instances.setMachineType":
75308
75309type InstancesSetMachineTypeCall struct {
75310	s                              *Service
75311	project                        string
75312	zone                           string
75313	instance                       string
75314	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
75315	urlParams_                     gensupport.URLParams
75316	ctx_                           context.Context
75317	header_                        http.Header
75318}
75319
75320// SetMachineType: Changes the machine type for a stopped instance to
75321// the machine type specified in the request.
75322func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
75323	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75324	c.project = project
75325	c.zone = zone
75326	c.instance = instance
75327	c.instancessetmachinetyperequest = instancessetmachinetyperequest
75328	return c
75329}
75330
75331// RequestId sets the optional parameter "requestId": An optional
75332// request ID to identify requests. Specify a unique request ID so that
75333// if you must retry your request, the server will know to ignore the
75334// request if it has already been completed.
75335//
75336// For example, consider a situation where you make an initial request
75337// and the request times out. If you make the request again with the
75338// same request ID, the server can check if original operation with the
75339// same request ID was received, and if so, will ignore the second
75340// request. This prevents clients from accidentally creating duplicate
75341// commitments.
75342//
75343// The request ID must be a valid UUID with the exception that zero UUID
75344// is not supported (00000000-0000-0000-0000-000000000000).
75345func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
75346	c.urlParams_.Set("requestId", requestId)
75347	return c
75348}
75349
75350// Fields allows partial responses to be retrieved. See
75351// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75352// for more information.
75353func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
75354	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75355	return c
75356}
75357
75358// Context sets the context to be used in this call's Do method. Any
75359// pending HTTP request will be aborted if the provided context is
75360// canceled.
75361func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
75362	c.ctx_ = ctx
75363	return c
75364}
75365
75366// Header returns an http.Header that can be modified by the caller to
75367// add HTTP headers to the request.
75368func (c *InstancesSetMachineTypeCall) Header() http.Header {
75369	if c.header_ == nil {
75370		c.header_ = make(http.Header)
75371	}
75372	return c.header_
75373}
75374
75375func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
75376	reqHeaders := make(http.Header)
75377	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75378	for k, v := range c.header_ {
75379		reqHeaders[k] = v
75380	}
75381	reqHeaders.Set("User-Agent", c.s.userAgent())
75382	var body io.Reader = nil
75383	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
75384	if err != nil {
75385		return nil, err
75386	}
75387	reqHeaders.Set("Content-Type", "application/json")
75388	c.urlParams_.Set("alt", alt)
75389	c.urlParams_.Set("prettyPrint", "false")
75390	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
75391	urls += "?" + c.urlParams_.Encode()
75392	req, err := http.NewRequest("POST", urls, body)
75393	if err != nil {
75394		return nil, err
75395	}
75396	req.Header = reqHeaders
75397	googleapi.Expand(req.URL, map[string]string{
75398		"project":  c.project,
75399		"zone":     c.zone,
75400		"instance": c.instance,
75401	})
75402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75403}
75404
75405// Do executes the "compute.instances.setMachineType" call.
75406// Exactly one of *Operation or error will be non-nil. Any non-2xx
75407// status code is an error. Response headers are in either
75408// *Operation.ServerResponse.Header or (if a response was returned at
75409// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75410// to check whether the returned error was because
75411// http.StatusNotModified was returned.
75412func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75413	gensupport.SetOptions(c.urlParams_, opts...)
75414	res, err := c.doRequest("json")
75415	if res != nil && res.StatusCode == http.StatusNotModified {
75416		if res.Body != nil {
75417			res.Body.Close()
75418		}
75419		return nil, &googleapi.Error{
75420			Code:   res.StatusCode,
75421			Header: res.Header,
75422		}
75423	}
75424	if err != nil {
75425		return nil, err
75426	}
75427	defer googleapi.CloseBody(res)
75428	if err := googleapi.CheckResponse(res); err != nil {
75429		return nil, err
75430	}
75431	ret := &Operation{
75432		ServerResponse: googleapi.ServerResponse{
75433			Header:         res.Header,
75434			HTTPStatusCode: res.StatusCode,
75435		},
75436	}
75437	target := &ret
75438	if err := gensupport.DecodeResponse(target, res); err != nil {
75439		return nil, err
75440	}
75441	return ret, nil
75442	// {
75443	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
75444	//   "httpMethod": "POST",
75445	//   "id": "compute.instances.setMachineType",
75446	//   "parameterOrder": [
75447	//     "project",
75448	//     "zone",
75449	//     "instance"
75450	//   ],
75451	//   "parameters": {
75452	//     "instance": {
75453	//       "description": "Name of the instance scoping this request.",
75454	//       "location": "path",
75455	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75456	//       "required": true,
75457	//       "type": "string"
75458	//     },
75459	//     "project": {
75460	//       "description": "Project ID for this request.",
75461	//       "location": "path",
75462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75463	//       "required": true,
75464	//       "type": "string"
75465	//     },
75466	//     "requestId": {
75467	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75468	//       "location": "query",
75469	//       "type": "string"
75470	//     },
75471	//     "zone": {
75472	//       "description": "The name of the zone for this request.",
75473	//       "location": "path",
75474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75475	//       "required": true,
75476	//       "type": "string"
75477	//     }
75478	//   },
75479	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
75480	//   "request": {
75481	//     "$ref": "InstancesSetMachineTypeRequest"
75482	//   },
75483	//   "response": {
75484	//     "$ref": "Operation"
75485	//   },
75486	//   "scopes": [
75487	//     "https://www.googleapis.com/auth/cloud-platform",
75488	//     "https://www.googleapis.com/auth/compute"
75489	//   ]
75490	// }
75491
75492}
75493
75494// method id "compute.instances.setMetadata":
75495
75496type InstancesSetMetadataCall struct {
75497	s          *Service
75498	project    string
75499	zone       string
75500	instance   string
75501	metadata   *Metadata
75502	urlParams_ gensupport.URLParams
75503	ctx_       context.Context
75504	header_    http.Header
75505}
75506
75507// SetMetadata: Sets metadata for the specified instance to the data
75508// included in the request.
75509// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
75510func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
75511	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75512	c.project = project
75513	c.zone = zone
75514	c.instance = instance
75515	c.metadata = metadata
75516	return c
75517}
75518
75519// RequestId sets the optional parameter "requestId": An optional
75520// request ID to identify requests. Specify a unique request ID so that
75521// if you must retry your request, the server will know to ignore the
75522// request if it has already been completed.
75523//
75524// For example, consider a situation where you make an initial request
75525// and the request times out. If you make the request again with the
75526// same request ID, the server can check if original operation with the
75527// same request ID was received, and if so, will ignore the second
75528// request. This prevents clients from accidentally creating duplicate
75529// commitments.
75530//
75531// The request ID must be a valid UUID with the exception that zero UUID
75532// is not supported (00000000-0000-0000-0000-000000000000).
75533func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
75534	c.urlParams_.Set("requestId", requestId)
75535	return c
75536}
75537
75538// Fields allows partial responses to be retrieved. See
75539// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75540// for more information.
75541func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
75542	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75543	return c
75544}
75545
75546// Context sets the context to be used in this call's Do method. Any
75547// pending HTTP request will be aborted if the provided context is
75548// canceled.
75549func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
75550	c.ctx_ = ctx
75551	return c
75552}
75553
75554// Header returns an http.Header that can be modified by the caller to
75555// add HTTP headers to the request.
75556func (c *InstancesSetMetadataCall) Header() http.Header {
75557	if c.header_ == nil {
75558		c.header_ = make(http.Header)
75559	}
75560	return c.header_
75561}
75562
75563func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
75564	reqHeaders := make(http.Header)
75565	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75566	for k, v := range c.header_ {
75567		reqHeaders[k] = v
75568	}
75569	reqHeaders.Set("User-Agent", c.s.userAgent())
75570	var body io.Reader = nil
75571	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
75572	if err != nil {
75573		return nil, err
75574	}
75575	reqHeaders.Set("Content-Type", "application/json")
75576	c.urlParams_.Set("alt", alt)
75577	c.urlParams_.Set("prettyPrint", "false")
75578	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
75579	urls += "?" + c.urlParams_.Encode()
75580	req, err := http.NewRequest("POST", urls, body)
75581	if err != nil {
75582		return nil, err
75583	}
75584	req.Header = reqHeaders
75585	googleapi.Expand(req.URL, map[string]string{
75586		"project":  c.project,
75587		"zone":     c.zone,
75588		"instance": c.instance,
75589	})
75590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75591}
75592
75593// Do executes the "compute.instances.setMetadata" call.
75594// Exactly one of *Operation or error will be non-nil. Any non-2xx
75595// status code is an error. Response headers are in either
75596// *Operation.ServerResponse.Header or (if a response was returned at
75597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75598// to check whether the returned error was because
75599// http.StatusNotModified was returned.
75600func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75601	gensupport.SetOptions(c.urlParams_, opts...)
75602	res, err := c.doRequest("json")
75603	if res != nil && res.StatusCode == http.StatusNotModified {
75604		if res.Body != nil {
75605			res.Body.Close()
75606		}
75607		return nil, &googleapi.Error{
75608			Code:   res.StatusCode,
75609			Header: res.Header,
75610		}
75611	}
75612	if err != nil {
75613		return nil, err
75614	}
75615	defer googleapi.CloseBody(res)
75616	if err := googleapi.CheckResponse(res); err != nil {
75617		return nil, err
75618	}
75619	ret := &Operation{
75620		ServerResponse: googleapi.ServerResponse{
75621			Header:         res.Header,
75622			HTTPStatusCode: res.StatusCode,
75623		},
75624	}
75625	target := &ret
75626	if err := gensupport.DecodeResponse(target, res); err != nil {
75627		return nil, err
75628	}
75629	return ret, nil
75630	// {
75631	//   "description": "Sets metadata for the specified instance to the data included in the request.",
75632	//   "httpMethod": "POST",
75633	//   "id": "compute.instances.setMetadata",
75634	//   "parameterOrder": [
75635	//     "project",
75636	//     "zone",
75637	//     "instance"
75638	//   ],
75639	//   "parameters": {
75640	//     "instance": {
75641	//       "description": "Name of the instance scoping this request.",
75642	//       "location": "path",
75643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75644	//       "required": true,
75645	//       "type": "string"
75646	//     },
75647	//     "project": {
75648	//       "description": "Project ID for this request.",
75649	//       "location": "path",
75650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75651	//       "required": true,
75652	//       "type": "string"
75653	//     },
75654	//     "requestId": {
75655	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75656	//       "location": "query",
75657	//       "type": "string"
75658	//     },
75659	//     "zone": {
75660	//       "description": "The name of the zone for this request.",
75661	//       "location": "path",
75662	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75663	//       "required": true,
75664	//       "type": "string"
75665	//     }
75666	//   },
75667	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
75668	//   "request": {
75669	//     "$ref": "Metadata"
75670	//   },
75671	//   "response": {
75672	//     "$ref": "Operation"
75673	//   },
75674	//   "scopes": [
75675	//     "https://www.googleapis.com/auth/cloud-platform",
75676	//     "https://www.googleapis.com/auth/compute"
75677	//   ]
75678	// }
75679
75680}
75681
75682// method id "compute.instances.setMinCpuPlatform":
75683
75684type InstancesSetMinCpuPlatformCall struct {
75685	s                                 *Service
75686	project                           string
75687	zone                              string
75688	instance                          string
75689	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
75690	urlParams_                        gensupport.URLParams
75691	ctx_                              context.Context
75692	header_                           http.Header
75693}
75694
75695// SetMinCpuPlatform: Changes the minimum CPU platform that this
75696// instance should use. This method can only be called on a stopped
75697// instance. For more information, read Specifying a Minimum CPU
75698// Platform.
75699func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
75700	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75701	c.project = project
75702	c.zone = zone
75703	c.instance = instance
75704	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
75705	return c
75706}
75707
75708// RequestId sets the optional parameter "requestId": An optional
75709// request ID to identify requests. Specify a unique request ID so that
75710// if you must retry your request, the server will know to ignore the
75711// request if it has already been completed.
75712//
75713// For example, consider a situation where you make an initial request
75714// and the request times out. If you make the request again with the
75715// same request ID, the server can check if original operation with the
75716// same request ID was received, and if so, will ignore the second
75717// request. This prevents clients from accidentally creating duplicate
75718// commitments.
75719//
75720// The request ID must be a valid UUID with the exception that zero UUID
75721// is not supported (00000000-0000-0000-0000-000000000000).
75722func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
75723	c.urlParams_.Set("requestId", requestId)
75724	return c
75725}
75726
75727// Fields allows partial responses to be retrieved. See
75728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75729// for more information.
75730func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
75731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75732	return c
75733}
75734
75735// Context sets the context to be used in this call's Do method. Any
75736// pending HTTP request will be aborted if the provided context is
75737// canceled.
75738func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
75739	c.ctx_ = ctx
75740	return c
75741}
75742
75743// Header returns an http.Header that can be modified by the caller to
75744// add HTTP headers to the request.
75745func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
75746	if c.header_ == nil {
75747		c.header_ = make(http.Header)
75748	}
75749	return c.header_
75750}
75751
75752func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
75753	reqHeaders := make(http.Header)
75754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75755	for k, v := range c.header_ {
75756		reqHeaders[k] = v
75757	}
75758	reqHeaders.Set("User-Agent", c.s.userAgent())
75759	var body io.Reader = nil
75760	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
75761	if err != nil {
75762		return nil, err
75763	}
75764	reqHeaders.Set("Content-Type", "application/json")
75765	c.urlParams_.Set("alt", alt)
75766	c.urlParams_.Set("prettyPrint", "false")
75767	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
75768	urls += "?" + c.urlParams_.Encode()
75769	req, err := http.NewRequest("POST", urls, body)
75770	if err != nil {
75771		return nil, err
75772	}
75773	req.Header = reqHeaders
75774	googleapi.Expand(req.URL, map[string]string{
75775		"project":  c.project,
75776		"zone":     c.zone,
75777		"instance": c.instance,
75778	})
75779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75780}
75781
75782// Do executes the "compute.instances.setMinCpuPlatform" call.
75783// Exactly one of *Operation or error will be non-nil. Any non-2xx
75784// status code is an error. Response headers are in either
75785// *Operation.ServerResponse.Header or (if a response was returned at
75786// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75787// to check whether the returned error was because
75788// http.StatusNotModified was returned.
75789func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75790	gensupport.SetOptions(c.urlParams_, opts...)
75791	res, err := c.doRequest("json")
75792	if res != nil && res.StatusCode == http.StatusNotModified {
75793		if res.Body != nil {
75794			res.Body.Close()
75795		}
75796		return nil, &googleapi.Error{
75797			Code:   res.StatusCode,
75798			Header: res.Header,
75799		}
75800	}
75801	if err != nil {
75802		return nil, err
75803	}
75804	defer googleapi.CloseBody(res)
75805	if err := googleapi.CheckResponse(res); err != nil {
75806		return nil, err
75807	}
75808	ret := &Operation{
75809		ServerResponse: googleapi.ServerResponse{
75810			Header:         res.Header,
75811			HTTPStatusCode: res.StatusCode,
75812		},
75813	}
75814	target := &ret
75815	if err := gensupport.DecodeResponse(target, res); err != nil {
75816		return nil, err
75817	}
75818	return ret, nil
75819	// {
75820	//   "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.",
75821	//   "httpMethod": "POST",
75822	//   "id": "compute.instances.setMinCpuPlatform",
75823	//   "parameterOrder": [
75824	//     "project",
75825	//     "zone",
75826	//     "instance"
75827	//   ],
75828	//   "parameters": {
75829	//     "instance": {
75830	//       "description": "Name of the instance scoping this request.",
75831	//       "location": "path",
75832	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75833	//       "required": true,
75834	//       "type": "string"
75835	//     },
75836	//     "project": {
75837	//       "description": "Project ID for this request.",
75838	//       "location": "path",
75839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75840	//       "required": true,
75841	//       "type": "string"
75842	//     },
75843	//     "requestId": {
75844	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75845	//       "location": "query",
75846	//       "type": "string"
75847	//     },
75848	//     "zone": {
75849	//       "description": "The name of the zone for this request.",
75850	//       "location": "path",
75851	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75852	//       "required": true,
75853	//       "type": "string"
75854	//     }
75855	//   },
75856	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
75857	//   "request": {
75858	//     "$ref": "InstancesSetMinCpuPlatformRequest"
75859	//   },
75860	//   "response": {
75861	//     "$ref": "Operation"
75862	//   },
75863	//   "scopes": [
75864	//     "https://www.googleapis.com/auth/cloud-platform",
75865	//     "https://www.googleapis.com/auth/compute"
75866	//   ]
75867	// }
75868
75869}
75870
75871// method id "compute.instances.setScheduling":
75872
75873type InstancesSetSchedulingCall struct {
75874	s          *Service
75875	project    string
75876	zone       string
75877	instance   string
75878	scheduling *Scheduling
75879	urlParams_ gensupport.URLParams
75880	ctx_       context.Context
75881	header_    http.Header
75882}
75883
75884// SetScheduling: Sets an instance's scheduling options. You can only
75885// call this method on a stopped instance, that is, a VM instance that
75886// is in a `TERMINATED` state. See Instance Life Cycle for more
75887// information on the possible instance states.
75888// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
75889func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
75890	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75891	c.project = project
75892	c.zone = zone
75893	c.instance = instance
75894	c.scheduling = scheduling
75895	return c
75896}
75897
75898// RequestId sets the optional parameter "requestId": An optional
75899// request ID to identify requests. Specify a unique request ID so that
75900// if you must retry your request, the server will know to ignore the
75901// request if it has already been completed.
75902//
75903// For example, consider a situation where you make an initial request
75904// and the request times out. If you make the request again with the
75905// same request ID, the server can check if original operation with the
75906// same request ID was received, and if so, will ignore the second
75907// request. This prevents clients from accidentally creating duplicate
75908// commitments.
75909//
75910// The request ID must be a valid UUID with the exception that zero UUID
75911// is not supported (00000000-0000-0000-0000-000000000000).
75912func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
75913	c.urlParams_.Set("requestId", requestId)
75914	return c
75915}
75916
75917// Fields allows partial responses to be retrieved. See
75918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75919// for more information.
75920func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
75921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75922	return c
75923}
75924
75925// Context sets the context to be used in this call's Do method. Any
75926// pending HTTP request will be aborted if the provided context is
75927// canceled.
75928func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
75929	c.ctx_ = ctx
75930	return c
75931}
75932
75933// Header returns an http.Header that can be modified by the caller to
75934// add HTTP headers to the request.
75935func (c *InstancesSetSchedulingCall) Header() http.Header {
75936	if c.header_ == nil {
75937		c.header_ = make(http.Header)
75938	}
75939	return c.header_
75940}
75941
75942func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
75943	reqHeaders := make(http.Header)
75944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75945	for k, v := range c.header_ {
75946		reqHeaders[k] = v
75947	}
75948	reqHeaders.Set("User-Agent", c.s.userAgent())
75949	var body io.Reader = nil
75950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
75951	if err != nil {
75952		return nil, err
75953	}
75954	reqHeaders.Set("Content-Type", "application/json")
75955	c.urlParams_.Set("alt", alt)
75956	c.urlParams_.Set("prettyPrint", "false")
75957	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
75958	urls += "?" + c.urlParams_.Encode()
75959	req, err := http.NewRequest("POST", urls, body)
75960	if err != nil {
75961		return nil, err
75962	}
75963	req.Header = reqHeaders
75964	googleapi.Expand(req.URL, map[string]string{
75965		"project":  c.project,
75966		"zone":     c.zone,
75967		"instance": c.instance,
75968	})
75969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75970}
75971
75972// Do executes the "compute.instances.setScheduling" call.
75973// Exactly one of *Operation or error will be non-nil. Any non-2xx
75974// status code is an error. Response headers are in either
75975// *Operation.ServerResponse.Header or (if a response was returned at
75976// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75977// to check whether the returned error was because
75978// http.StatusNotModified was returned.
75979func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75980	gensupport.SetOptions(c.urlParams_, opts...)
75981	res, err := c.doRequest("json")
75982	if res != nil && res.StatusCode == http.StatusNotModified {
75983		if res.Body != nil {
75984			res.Body.Close()
75985		}
75986		return nil, &googleapi.Error{
75987			Code:   res.StatusCode,
75988			Header: res.Header,
75989		}
75990	}
75991	if err != nil {
75992		return nil, err
75993	}
75994	defer googleapi.CloseBody(res)
75995	if err := googleapi.CheckResponse(res); err != nil {
75996		return nil, err
75997	}
75998	ret := &Operation{
75999		ServerResponse: googleapi.ServerResponse{
76000			Header:         res.Header,
76001			HTTPStatusCode: res.StatusCode,
76002		},
76003	}
76004	target := &ret
76005	if err := gensupport.DecodeResponse(target, res); err != nil {
76006		return nil, err
76007	}
76008	return ret, nil
76009	// {
76010	//   "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.",
76011	//   "httpMethod": "POST",
76012	//   "id": "compute.instances.setScheduling",
76013	//   "parameterOrder": [
76014	//     "project",
76015	//     "zone",
76016	//     "instance"
76017	//   ],
76018	//   "parameters": {
76019	//     "instance": {
76020	//       "description": "Instance name for this request.",
76021	//       "location": "path",
76022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76023	//       "required": true,
76024	//       "type": "string"
76025	//     },
76026	//     "project": {
76027	//       "description": "Project ID for this request.",
76028	//       "location": "path",
76029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76030	//       "required": true,
76031	//       "type": "string"
76032	//     },
76033	//     "requestId": {
76034	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76035	//       "location": "query",
76036	//       "type": "string"
76037	//     },
76038	//     "zone": {
76039	//       "description": "The name of the zone for this request.",
76040	//       "location": "path",
76041	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76042	//       "required": true,
76043	//       "type": "string"
76044	//     }
76045	//   },
76046	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
76047	//   "request": {
76048	//     "$ref": "Scheduling"
76049	//   },
76050	//   "response": {
76051	//     "$ref": "Operation"
76052	//   },
76053	//   "scopes": [
76054	//     "https://www.googleapis.com/auth/cloud-platform",
76055	//     "https://www.googleapis.com/auth/compute"
76056	//   ]
76057	// }
76058
76059}
76060
76061// method id "compute.instances.setServiceAccount":
76062
76063type InstancesSetServiceAccountCall struct {
76064	s                                 *Service
76065	project                           string
76066	zone                              string
76067	instance                          string
76068	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
76069	urlParams_                        gensupport.URLParams
76070	ctx_                              context.Context
76071	header_                           http.Header
76072}
76073
76074// SetServiceAccount: Sets the service account on the instance. For more
76075// information, read Changing the service account and access scopes for
76076// an instance.
76077func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
76078	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76079	c.project = project
76080	c.zone = zone
76081	c.instance = instance
76082	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
76083	return c
76084}
76085
76086// RequestId sets the optional parameter "requestId": An optional
76087// request ID to identify requests. Specify a unique request ID so that
76088// if you must retry your request, the server will know to ignore the
76089// request if it has already been completed.
76090//
76091// For example, consider a situation where you make an initial request
76092// and the request times out. If you make the request again with the
76093// same request ID, the server can check if original operation with the
76094// same request ID was received, and if so, will ignore the second
76095// request. This prevents clients from accidentally creating duplicate
76096// commitments.
76097//
76098// The request ID must be a valid UUID with the exception that zero UUID
76099// is not supported (00000000-0000-0000-0000-000000000000).
76100func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
76101	c.urlParams_.Set("requestId", requestId)
76102	return c
76103}
76104
76105// Fields allows partial responses to be retrieved. See
76106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76107// for more information.
76108func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
76109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76110	return c
76111}
76112
76113// Context sets the context to be used in this call's Do method. Any
76114// pending HTTP request will be aborted if the provided context is
76115// canceled.
76116func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
76117	c.ctx_ = ctx
76118	return c
76119}
76120
76121// Header returns an http.Header that can be modified by the caller to
76122// add HTTP headers to the request.
76123func (c *InstancesSetServiceAccountCall) Header() http.Header {
76124	if c.header_ == nil {
76125		c.header_ = make(http.Header)
76126	}
76127	return c.header_
76128}
76129
76130func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
76131	reqHeaders := make(http.Header)
76132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76133	for k, v := range c.header_ {
76134		reqHeaders[k] = v
76135	}
76136	reqHeaders.Set("User-Agent", c.s.userAgent())
76137	var body io.Reader = nil
76138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
76139	if err != nil {
76140		return nil, err
76141	}
76142	reqHeaders.Set("Content-Type", "application/json")
76143	c.urlParams_.Set("alt", alt)
76144	c.urlParams_.Set("prettyPrint", "false")
76145	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
76146	urls += "?" + c.urlParams_.Encode()
76147	req, err := http.NewRequest("POST", urls, body)
76148	if err != nil {
76149		return nil, err
76150	}
76151	req.Header = reqHeaders
76152	googleapi.Expand(req.URL, map[string]string{
76153		"project":  c.project,
76154		"zone":     c.zone,
76155		"instance": c.instance,
76156	})
76157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76158}
76159
76160// Do executes the "compute.instances.setServiceAccount" call.
76161// Exactly one of *Operation or error will be non-nil. Any non-2xx
76162// status code is an error. Response headers are in either
76163// *Operation.ServerResponse.Header or (if a response was returned at
76164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76165// to check whether the returned error was because
76166// http.StatusNotModified was returned.
76167func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76168	gensupport.SetOptions(c.urlParams_, opts...)
76169	res, err := c.doRequest("json")
76170	if res != nil && res.StatusCode == http.StatusNotModified {
76171		if res.Body != nil {
76172			res.Body.Close()
76173		}
76174		return nil, &googleapi.Error{
76175			Code:   res.StatusCode,
76176			Header: res.Header,
76177		}
76178	}
76179	if err != nil {
76180		return nil, err
76181	}
76182	defer googleapi.CloseBody(res)
76183	if err := googleapi.CheckResponse(res); err != nil {
76184		return nil, err
76185	}
76186	ret := &Operation{
76187		ServerResponse: googleapi.ServerResponse{
76188			Header:         res.Header,
76189			HTTPStatusCode: res.StatusCode,
76190		},
76191	}
76192	target := &ret
76193	if err := gensupport.DecodeResponse(target, res); err != nil {
76194		return nil, err
76195	}
76196	return ret, nil
76197	// {
76198	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
76199	//   "httpMethod": "POST",
76200	//   "id": "compute.instances.setServiceAccount",
76201	//   "parameterOrder": [
76202	//     "project",
76203	//     "zone",
76204	//     "instance"
76205	//   ],
76206	//   "parameters": {
76207	//     "instance": {
76208	//       "description": "Name of the instance resource to start.",
76209	//       "location": "path",
76210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76211	//       "required": true,
76212	//       "type": "string"
76213	//     },
76214	//     "project": {
76215	//       "description": "Project ID for this request.",
76216	//       "location": "path",
76217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76218	//       "required": true,
76219	//       "type": "string"
76220	//     },
76221	//     "requestId": {
76222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76223	//       "location": "query",
76224	//       "type": "string"
76225	//     },
76226	//     "zone": {
76227	//       "description": "The name of the zone for this request.",
76228	//       "location": "path",
76229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76230	//       "required": true,
76231	//       "type": "string"
76232	//     }
76233	//   },
76234	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
76235	//   "request": {
76236	//     "$ref": "InstancesSetServiceAccountRequest"
76237	//   },
76238	//   "response": {
76239	//     "$ref": "Operation"
76240	//   },
76241	//   "scopes": [
76242	//     "https://www.googleapis.com/auth/cloud-platform",
76243	//     "https://www.googleapis.com/auth/compute"
76244	//   ]
76245	// }
76246
76247}
76248
76249// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
76250
76251type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
76252	s                               *Service
76253	project                         string
76254	zone                            string
76255	instance                        string
76256	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
76257	urlParams_                      gensupport.URLParams
76258	ctx_                            context.Context
76259	header_                         http.Header
76260}
76261
76262// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
76263// integrity policy for an instance. You can only use this method on a
76264// running instance. This method supports PATCH semantics and uses the
76265// JSON merge patch format and processing rules.
76266func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
76267	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76268	c.project = project
76269	c.zone = zone
76270	c.instance = instance
76271	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
76272	return c
76273}
76274
76275// RequestId sets the optional parameter "requestId": An optional
76276// request ID to identify requests. Specify a unique request ID so that
76277// if you must retry your request, the server will know to ignore the
76278// request if it has already been completed.
76279//
76280// For example, consider a situation where you make an initial request
76281// and the request times out. If you make the request again with the
76282// same request ID, the server can check if original operation with the
76283// same request ID was received, and if so, will ignore the second
76284// request. This prevents clients from accidentally creating duplicate
76285// commitments.
76286//
76287// The request ID must be a valid UUID with the exception that zero UUID
76288// is not supported (00000000-0000-0000-0000-000000000000).
76289func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
76290	c.urlParams_.Set("requestId", requestId)
76291	return c
76292}
76293
76294// Fields allows partial responses to be retrieved. See
76295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76296// for more information.
76297func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
76298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76299	return c
76300}
76301
76302// Context sets the context to be used in this call's Do method. Any
76303// pending HTTP request will be aborted if the provided context is
76304// canceled.
76305func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
76306	c.ctx_ = ctx
76307	return c
76308}
76309
76310// Header returns an http.Header that can be modified by the caller to
76311// add HTTP headers to the request.
76312func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
76313	if c.header_ == nil {
76314		c.header_ = make(http.Header)
76315	}
76316	return c.header_
76317}
76318
76319func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
76320	reqHeaders := make(http.Header)
76321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76322	for k, v := range c.header_ {
76323		reqHeaders[k] = v
76324	}
76325	reqHeaders.Set("User-Agent", c.s.userAgent())
76326	var body io.Reader = nil
76327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
76328	if err != nil {
76329		return nil, err
76330	}
76331	reqHeaders.Set("Content-Type", "application/json")
76332	c.urlParams_.Set("alt", alt)
76333	c.urlParams_.Set("prettyPrint", "false")
76334	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
76335	urls += "?" + c.urlParams_.Encode()
76336	req, err := http.NewRequest("PATCH", urls, body)
76337	if err != nil {
76338		return nil, err
76339	}
76340	req.Header = reqHeaders
76341	googleapi.Expand(req.URL, map[string]string{
76342		"project":  c.project,
76343		"zone":     c.zone,
76344		"instance": c.instance,
76345	})
76346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76347}
76348
76349// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
76350// Exactly one of *Operation or error will be non-nil. Any non-2xx
76351// status code is an error. Response headers are in either
76352// *Operation.ServerResponse.Header or (if a response was returned at
76353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76354// to check whether the returned error was because
76355// http.StatusNotModified was returned.
76356func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76357	gensupport.SetOptions(c.urlParams_, opts...)
76358	res, err := c.doRequest("json")
76359	if res != nil && res.StatusCode == http.StatusNotModified {
76360		if res.Body != nil {
76361			res.Body.Close()
76362		}
76363		return nil, &googleapi.Error{
76364			Code:   res.StatusCode,
76365			Header: res.Header,
76366		}
76367	}
76368	if err != nil {
76369		return nil, err
76370	}
76371	defer googleapi.CloseBody(res)
76372	if err := googleapi.CheckResponse(res); err != nil {
76373		return nil, err
76374	}
76375	ret := &Operation{
76376		ServerResponse: googleapi.ServerResponse{
76377			Header:         res.Header,
76378			HTTPStatusCode: res.StatusCode,
76379		},
76380	}
76381	target := &ret
76382	if err := gensupport.DecodeResponse(target, res); err != nil {
76383		return nil, err
76384	}
76385	return ret, nil
76386	// {
76387	//   "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.",
76388	//   "httpMethod": "PATCH",
76389	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
76390	//   "parameterOrder": [
76391	//     "project",
76392	//     "zone",
76393	//     "instance"
76394	//   ],
76395	//   "parameters": {
76396	//     "instance": {
76397	//       "description": "Name or id of the instance scoping this request.",
76398	//       "location": "path",
76399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76400	//       "required": true,
76401	//       "type": "string"
76402	//     },
76403	//     "project": {
76404	//       "description": "Project ID for this request.",
76405	//       "location": "path",
76406	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76407	//       "required": true,
76408	//       "type": "string"
76409	//     },
76410	//     "requestId": {
76411	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76412	//       "location": "query",
76413	//       "type": "string"
76414	//     },
76415	//     "zone": {
76416	//       "description": "The name of the zone for this request.",
76417	//       "location": "path",
76418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76419	//       "required": true,
76420	//       "type": "string"
76421	//     }
76422	//   },
76423	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
76424	//   "request": {
76425	//     "$ref": "ShieldedInstanceIntegrityPolicy"
76426	//   },
76427	//   "response": {
76428	//     "$ref": "Operation"
76429	//   },
76430	//   "scopes": [
76431	//     "https://www.googleapis.com/auth/cloud-platform",
76432	//     "https://www.googleapis.com/auth/compute"
76433	//   ]
76434	// }
76435
76436}
76437
76438// method id "compute.instances.setTags":
76439
76440type InstancesSetTagsCall struct {
76441	s          *Service
76442	project    string
76443	zone       string
76444	instance   string
76445	tags       *Tags
76446	urlParams_ gensupport.URLParams
76447	ctx_       context.Context
76448	header_    http.Header
76449}
76450
76451// SetTags: Sets network tags for the specified instance to the data
76452// included in the request.
76453// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
76454func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
76455	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76456	c.project = project
76457	c.zone = zone
76458	c.instance = instance
76459	c.tags = tags
76460	return c
76461}
76462
76463// RequestId sets the optional parameter "requestId": An optional
76464// request ID to identify requests. Specify a unique request ID so that
76465// if you must retry your request, the server will know to ignore the
76466// request if it has already been completed.
76467//
76468// For example, consider a situation where you make an initial request
76469// and the request times out. If you make the request again with the
76470// same request ID, the server can check if original operation with the
76471// same request ID was received, and if so, will ignore the second
76472// request. This prevents clients from accidentally creating duplicate
76473// commitments.
76474//
76475// The request ID must be a valid UUID with the exception that zero UUID
76476// is not supported (00000000-0000-0000-0000-000000000000).
76477func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
76478	c.urlParams_.Set("requestId", requestId)
76479	return c
76480}
76481
76482// Fields allows partial responses to be retrieved. See
76483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76484// for more information.
76485func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
76486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76487	return c
76488}
76489
76490// Context sets the context to be used in this call's Do method. Any
76491// pending HTTP request will be aborted if the provided context is
76492// canceled.
76493func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
76494	c.ctx_ = ctx
76495	return c
76496}
76497
76498// Header returns an http.Header that can be modified by the caller to
76499// add HTTP headers to the request.
76500func (c *InstancesSetTagsCall) Header() http.Header {
76501	if c.header_ == nil {
76502		c.header_ = make(http.Header)
76503	}
76504	return c.header_
76505}
76506
76507func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
76508	reqHeaders := make(http.Header)
76509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76510	for k, v := range c.header_ {
76511		reqHeaders[k] = v
76512	}
76513	reqHeaders.Set("User-Agent", c.s.userAgent())
76514	var body io.Reader = nil
76515	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
76516	if err != nil {
76517		return nil, err
76518	}
76519	reqHeaders.Set("Content-Type", "application/json")
76520	c.urlParams_.Set("alt", alt)
76521	c.urlParams_.Set("prettyPrint", "false")
76522	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
76523	urls += "?" + c.urlParams_.Encode()
76524	req, err := http.NewRequest("POST", urls, body)
76525	if err != nil {
76526		return nil, err
76527	}
76528	req.Header = reqHeaders
76529	googleapi.Expand(req.URL, map[string]string{
76530		"project":  c.project,
76531		"zone":     c.zone,
76532		"instance": c.instance,
76533	})
76534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76535}
76536
76537// Do executes the "compute.instances.setTags" call.
76538// Exactly one of *Operation or error will be non-nil. Any non-2xx
76539// status code is an error. Response headers are in either
76540// *Operation.ServerResponse.Header or (if a response was returned at
76541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76542// to check whether the returned error was because
76543// http.StatusNotModified was returned.
76544func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76545	gensupport.SetOptions(c.urlParams_, opts...)
76546	res, err := c.doRequest("json")
76547	if res != nil && res.StatusCode == http.StatusNotModified {
76548		if res.Body != nil {
76549			res.Body.Close()
76550		}
76551		return nil, &googleapi.Error{
76552			Code:   res.StatusCode,
76553			Header: res.Header,
76554		}
76555	}
76556	if err != nil {
76557		return nil, err
76558	}
76559	defer googleapi.CloseBody(res)
76560	if err := googleapi.CheckResponse(res); err != nil {
76561		return nil, err
76562	}
76563	ret := &Operation{
76564		ServerResponse: googleapi.ServerResponse{
76565			Header:         res.Header,
76566			HTTPStatusCode: res.StatusCode,
76567		},
76568	}
76569	target := &ret
76570	if err := gensupport.DecodeResponse(target, res); err != nil {
76571		return nil, err
76572	}
76573	return ret, nil
76574	// {
76575	//   "description": "Sets network tags for the specified instance to the data included in the request.",
76576	//   "httpMethod": "POST",
76577	//   "id": "compute.instances.setTags",
76578	//   "parameterOrder": [
76579	//     "project",
76580	//     "zone",
76581	//     "instance"
76582	//   ],
76583	//   "parameters": {
76584	//     "instance": {
76585	//       "description": "Name of the instance scoping this request.",
76586	//       "location": "path",
76587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76588	//       "required": true,
76589	//       "type": "string"
76590	//     },
76591	//     "project": {
76592	//       "description": "Project ID for this request.",
76593	//       "location": "path",
76594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76595	//       "required": true,
76596	//       "type": "string"
76597	//     },
76598	//     "requestId": {
76599	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76600	//       "location": "query",
76601	//       "type": "string"
76602	//     },
76603	//     "zone": {
76604	//       "description": "The name of the zone for this request.",
76605	//       "location": "path",
76606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76607	//       "required": true,
76608	//       "type": "string"
76609	//     }
76610	//   },
76611	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
76612	//   "request": {
76613	//     "$ref": "Tags"
76614	//   },
76615	//   "response": {
76616	//     "$ref": "Operation"
76617	//   },
76618	//   "scopes": [
76619	//     "https://www.googleapis.com/auth/cloud-platform",
76620	//     "https://www.googleapis.com/auth/compute"
76621	//   ]
76622	// }
76623
76624}
76625
76626// method id "compute.instances.simulateMaintenanceEvent":
76627
76628type InstancesSimulateMaintenanceEventCall struct {
76629	s          *Service
76630	project    string
76631	zone       string
76632	instance   string
76633	urlParams_ gensupport.URLParams
76634	ctx_       context.Context
76635	header_    http.Header
76636}
76637
76638// SimulateMaintenanceEvent: Simulates a maintenance event on the
76639// instance.
76640func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
76641	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76642	c.project = project
76643	c.zone = zone
76644	c.instance = instance
76645	return c
76646}
76647
76648// Fields allows partial responses to be retrieved. See
76649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76650// for more information.
76651func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
76652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76653	return c
76654}
76655
76656// Context sets the context to be used in this call's Do method. Any
76657// pending HTTP request will be aborted if the provided context is
76658// canceled.
76659func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
76660	c.ctx_ = ctx
76661	return c
76662}
76663
76664// Header returns an http.Header that can be modified by the caller to
76665// add HTTP headers to the request.
76666func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
76667	if c.header_ == nil {
76668		c.header_ = make(http.Header)
76669	}
76670	return c.header_
76671}
76672
76673func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
76674	reqHeaders := make(http.Header)
76675	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76676	for k, v := range c.header_ {
76677		reqHeaders[k] = v
76678	}
76679	reqHeaders.Set("User-Agent", c.s.userAgent())
76680	var body io.Reader = nil
76681	c.urlParams_.Set("alt", alt)
76682	c.urlParams_.Set("prettyPrint", "false")
76683	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
76684	urls += "?" + c.urlParams_.Encode()
76685	req, err := http.NewRequest("POST", urls, body)
76686	if err != nil {
76687		return nil, err
76688	}
76689	req.Header = reqHeaders
76690	googleapi.Expand(req.URL, map[string]string{
76691		"project":  c.project,
76692		"zone":     c.zone,
76693		"instance": c.instance,
76694	})
76695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76696}
76697
76698// Do executes the "compute.instances.simulateMaintenanceEvent" call.
76699// Exactly one of *Operation or error will be non-nil. Any non-2xx
76700// status code is an error. Response headers are in either
76701// *Operation.ServerResponse.Header or (if a response was returned at
76702// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76703// to check whether the returned error was because
76704// http.StatusNotModified was returned.
76705func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76706	gensupport.SetOptions(c.urlParams_, opts...)
76707	res, err := c.doRequest("json")
76708	if res != nil && res.StatusCode == http.StatusNotModified {
76709		if res.Body != nil {
76710			res.Body.Close()
76711		}
76712		return nil, &googleapi.Error{
76713			Code:   res.StatusCode,
76714			Header: res.Header,
76715		}
76716	}
76717	if err != nil {
76718		return nil, err
76719	}
76720	defer googleapi.CloseBody(res)
76721	if err := googleapi.CheckResponse(res); err != nil {
76722		return nil, err
76723	}
76724	ret := &Operation{
76725		ServerResponse: googleapi.ServerResponse{
76726			Header:         res.Header,
76727			HTTPStatusCode: res.StatusCode,
76728		},
76729	}
76730	target := &ret
76731	if err := gensupport.DecodeResponse(target, res); err != nil {
76732		return nil, err
76733	}
76734	return ret, nil
76735	// {
76736	//   "description": "Simulates a maintenance event on the instance.",
76737	//   "httpMethod": "POST",
76738	//   "id": "compute.instances.simulateMaintenanceEvent",
76739	//   "parameterOrder": [
76740	//     "project",
76741	//     "zone",
76742	//     "instance"
76743	//   ],
76744	//   "parameters": {
76745	//     "instance": {
76746	//       "description": "Name of the instance scoping this request.",
76747	//       "location": "path",
76748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76749	//       "required": true,
76750	//       "type": "string"
76751	//     },
76752	//     "project": {
76753	//       "description": "Project ID for this request.",
76754	//       "location": "path",
76755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76756	//       "required": true,
76757	//       "type": "string"
76758	//     },
76759	//     "zone": {
76760	//       "description": "The name of the zone for this request.",
76761	//       "location": "path",
76762	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76763	//       "required": true,
76764	//       "type": "string"
76765	//     }
76766	//   },
76767	//   "path": "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
76768	//   "response": {
76769	//     "$ref": "Operation"
76770	//   },
76771	//   "scopes": [
76772	//     "https://www.googleapis.com/auth/cloud-platform",
76773	//     "https://www.googleapis.com/auth/compute"
76774	//   ]
76775	// }
76776
76777}
76778
76779// method id "compute.instances.start":
76780
76781type InstancesStartCall struct {
76782	s          *Service
76783	project    string
76784	zone       string
76785	instance   string
76786	urlParams_ gensupport.URLParams
76787	ctx_       context.Context
76788	header_    http.Header
76789}
76790
76791// Start: Starts an instance that was stopped using the instances().stop
76792// method. For more information, see Restart an instance.
76793// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
76794func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
76795	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76796	c.project = project
76797	c.zone = zone
76798	c.instance = instance
76799	return c
76800}
76801
76802// RequestId sets the optional parameter "requestId": An optional
76803// request ID to identify requests. Specify a unique request ID so that
76804// if you must retry your request, the server will know to ignore the
76805// request if it has already been completed.
76806//
76807// For example, consider a situation where you make an initial request
76808// and the request times out. If you make the request again with the
76809// same request ID, the server can check if original operation with the
76810// same request ID was received, and if so, will ignore the second
76811// request. This prevents clients from accidentally creating duplicate
76812// commitments.
76813//
76814// The request ID must be a valid UUID with the exception that zero UUID
76815// is not supported (00000000-0000-0000-0000-000000000000).
76816func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
76817	c.urlParams_.Set("requestId", requestId)
76818	return c
76819}
76820
76821// Fields allows partial responses to be retrieved. See
76822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76823// for more information.
76824func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
76825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76826	return c
76827}
76828
76829// Context sets the context to be used in this call's Do method. Any
76830// pending HTTP request will be aborted if the provided context is
76831// canceled.
76832func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
76833	c.ctx_ = ctx
76834	return c
76835}
76836
76837// Header returns an http.Header that can be modified by the caller to
76838// add HTTP headers to the request.
76839func (c *InstancesStartCall) Header() http.Header {
76840	if c.header_ == nil {
76841		c.header_ = make(http.Header)
76842	}
76843	return c.header_
76844}
76845
76846func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
76847	reqHeaders := make(http.Header)
76848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76849	for k, v := range c.header_ {
76850		reqHeaders[k] = v
76851	}
76852	reqHeaders.Set("User-Agent", c.s.userAgent())
76853	var body io.Reader = nil
76854	c.urlParams_.Set("alt", alt)
76855	c.urlParams_.Set("prettyPrint", "false")
76856	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
76857	urls += "?" + c.urlParams_.Encode()
76858	req, err := http.NewRequest("POST", urls, body)
76859	if err != nil {
76860		return nil, err
76861	}
76862	req.Header = reqHeaders
76863	googleapi.Expand(req.URL, map[string]string{
76864		"project":  c.project,
76865		"zone":     c.zone,
76866		"instance": c.instance,
76867	})
76868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76869}
76870
76871// Do executes the "compute.instances.start" call.
76872// Exactly one of *Operation or error will be non-nil. Any non-2xx
76873// status code is an error. Response headers are in either
76874// *Operation.ServerResponse.Header or (if a response was returned at
76875// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76876// to check whether the returned error was because
76877// http.StatusNotModified was returned.
76878func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76879	gensupport.SetOptions(c.urlParams_, opts...)
76880	res, err := c.doRequest("json")
76881	if res != nil && res.StatusCode == http.StatusNotModified {
76882		if res.Body != nil {
76883			res.Body.Close()
76884		}
76885		return nil, &googleapi.Error{
76886			Code:   res.StatusCode,
76887			Header: res.Header,
76888		}
76889	}
76890	if err != nil {
76891		return nil, err
76892	}
76893	defer googleapi.CloseBody(res)
76894	if err := googleapi.CheckResponse(res); err != nil {
76895		return nil, err
76896	}
76897	ret := &Operation{
76898		ServerResponse: googleapi.ServerResponse{
76899			Header:         res.Header,
76900			HTTPStatusCode: res.StatusCode,
76901		},
76902	}
76903	target := &ret
76904	if err := gensupport.DecodeResponse(target, res); err != nil {
76905		return nil, err
76906	}
76907	return ret, nil
76908	// {
76909	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
76910	//   "httpMethod": "POST",
76911	//   "id": "compute.instances.start",
76912	//   "parameterOrder": [
76913	//     "project",
76914	//     "zone",
76915	//     "instance"
76916	//   ],
76917	//   "parameters": {
76918	//     "instance": {
76919	//       "description": "Name of the instance resource to start.",
76920	//       "location": "path",
76921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76922	//       "required": true,
76923	//       "type": "string"
76924	//     },
76925	//     "project": {
76926	//       "description": "Project ID for this request.",
76927	//       "location": "path",
76928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76929	//       "required": true,
76930	//       "type": "string"
76931	//     },
76932	//     "requestId": {
76933	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76934	//       "location": "query",
76935	//       "type": "string"
76936	//     },
76937	//     "zone": {
76938	//       "description": "The name of the zone for this request.",
76939	//       "location": "path",
76940	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76941	//       "required": true,
76942	//       "type": "string"
76943	//     }
76944	//   },
76945	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
76946	//   "response": {
76947	//     "$ref": "Operation"
76948	//   },
76949	//   "scopes": [
76950	//     "https://www.googleapis.com/auth/cloud-platform",
76951	//     "https://www.googleapis.com/auth/compute"
76952	//   ]
76953	// }
76954
76955}
76956
76957// method id "compute.instances.startWithEncryptionKey":
76958
76959type InstancesStartWithEncryptionKeyCall struct {
76960	s                                      *Service
76961	project                                string
76962	zone                                   string
76963	instance                               string
76964	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
76965	urlParams_                             gensupport.URLParams
76966	ctx_                                   context.Context
76967	header_                                http.Header
76968}
76969
76970// StartWithEncryptionKey: Starts an instance that was stopped using the
76971// instances().stop method. For more information, see Restart an
76972// instance.
76973func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
76974	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76975	c.project = project
76976	c.zone = zone
76977	c.instance = instance
76978	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
76979	return c
76980}
76981
76982// RequestId sets the optional parameter "requestId": An optional
76983// request ID to identify requests. Specify a unique request ID so that
76984// if you must retry your request, the server will know to ignore the
76985// request if it has already been completed.
76986//
76987// For example, consider a situation where you make an initial request
76988// and the request times out. If you make the request again with the
76989// same request ID, the server can check if original operation with the
76990// same request ID was received, and if so, will ignore the second
76991// request. This prevents clients from accidentally creating duplicate
76992// commitments.
76993//
76994// The request ID must be a valid UUID with the exception that zero UUID
76995// is not supported (00000000-0000-0000-0000-000000000000).
76996func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
76997	c.urlParams_.Set("requestId", requestId)
76998	return c
76999}
77000
77001// Fields allows partial responses to be retrieved. See
77002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77003// for more information.
77004func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
77005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77006	return c
77007}
77008
77009// Context sets the context to be used in this call's Do method. Any
77010// pending HTTP request will be aborted if the provided context is
77011// canceled.
77012func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
77013	c.ctx_ = ctx
77014	return c
77015}
77016
77017// Header returns an http.Header that can be modified by the caller to
77018// add HTTP headers to the request.
77019func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
77020	if c.header_ == nil {
77021		c.header_ = make(http.Header)
77022	}
77023	return c.header_
77024}
77025
77026func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
77027	reqHeaders := make(http.Header)
77028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77029	for k, v := range c.header_ {
77030		reqHeaders[k] = v
77031	}
77032	reqHeaders.Set("User-Agent", c.s.userAgent())
77033	var body io.Reader = nil
77034	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
77035	if err != nil {
77036		return nil, err
77037	}
77038	reqHeaders.Set("Content-Type", "application/json")
77039	c.urlParams_.Set("alt", alt)
77040	c.urlParams_.Set("prettyPrint", "false")
77041	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
77042	urls += "?" + c.urlParams_.Encode()
77043	req, err := http.NewRequest("POST", urls, body)
77044	if err != nil {
77045		return nil, err
77046	}
77047	req.Header = reqHeaders
77048	googleapi.Expand(req.URL, map[string]string{
77049		"project":  c.project,
77050		"zone":     c.zone,
77051		"instance": c.instance,
77052	})
77053	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77054}
77055
77056// Do executes the "compute.instances.startWithEncryptionKey" call.
77057// Exactly one of *Operation or error will be non-nil. Any non-2xx
77058// status code is an error. Response headers are in either
77059// *Operation.ServerResponse.Header or (if a response was returned at
77060// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77061// to check whether the returned error was because
77062// http.StatusNotModified was returned.
77063func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77064	gensupport.SetOptions(c.urlParams_, opts...)
77065	res, err := c.doRequest("json")
77066	if res != nil && res.StatusCode == http.StatusNotModified {
77067		if res.Body != nil {
77068			res.Body.Close()
77069		}
77070		return nil, &googleapi.Error{
77071			Code:   res.StatusCode,
77072			Header: res.Header,
77073		}
77074	}
77075	if err != nil {
77076		return nil, err
77077	}
77078	defer googleapi.CloseBody(res)
77079	if err := googleapi.CheckResponse(res); err != nil {
77080		return nil, err
77081	}
77082	ret := &Operation{
77083		ServerResponse: googleapi.ServerResponse{
77084			Header:         res.Header,
77085			HTTPStatusCode: res.StatusCode,
77086		},
77087	}
77088	target := &ret
77089	if err := gensupport.DecodeResponse(target, res); err != nil {
77090		return nil, err
77091	}
77092	return ret, nil
77093	// {
77094	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
77095	//   "httpMethod": "POST",
77096	//   "id": "compute.instances.startWithEncryptionKey",
77097	//   "parameterOrder": [
77098	//     "project",
77099	//     "zone",
77100	//     "instance"
77101	//   ],
77102	//   "parameters": {
77103	//     "instance": {
77104	//       "description": "Name of the instance resource to start.",
77105	//       "location": "path",
77106	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77107	//       "required": true,
77108	//       "type": "string"
77109	//     },
77110	//     "project": {
77111	//       "description": "Project ID for this request.",
77112	//       "location": "path",
77113	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77114	//       "required": true,
77115	//       "type": "string"
77116	//     },
77117	//     "requestId": {
77118	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77119	//       "location": "query",
77120	//       "type": "string"
77121	//     },
77122	//     "zone": {
77123	//       "description": "The name of the zone for this request.",
77124	//       "location": "path",
77125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77126	//       "required": true,
77127	//       "type": "string"
77128	//     }
77129	//   },
77130	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
77131	//   "request": {
77132	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
77133	//   },
77134	//   "response": {
77135	//     "$ref": "Operation"
77136	//   },
77137	//   "scopes": [
77138	//     "https://www.googleapis.com/auth/cloud-platform",
77139	//     "https://www.googleapis.com/auth/compute"
77140	//   ]
77141	// }
77142
77143}
77144
77145// method id "compute.instances.stop":
77146
77147type InstancesStopCall struct {
77148	s          *Service
77149	project    string
77150	zone       string
77151	instance   string
77152	urlParams_ gensupport.URLParams
77153	ctx_       context.Context
77154	header_    http.Header
77155}
77156
77157// Stop: Stops a running instance, shutting it down cleanly, and allows
77158// you to restart the instance at a later time. Stopped instances do not
77159// incur VM usage charges while they are stopped. However, resources
77160// that the VM is using, such as persistent disks and static IP
77161// addresses, will continue to be charged until they are deleted. For
77162// more information, see Stopping an instance.
77163// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
77164func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
77165	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77166	c.project = project
77167	c.zone = zone
77168	c.instance = instance
77169	return c
77170}
77171
77172// RequestId sets the optional parameter "requestId": An optional
77173// request ID to identify requests. Specify a unique request ID so that
77174// if you must retry your request, the server will know to ignore the
77175// request if it has already been completed.
77176//
77177// For example, consider a situation where you make an initial request
77178// and the request times out. If you make the request again with the
77179// same request ID, the server can check if original operation with the
77180// same request ID was received, and if so, will ignore the second
77181// request. This prevents clients from accidentally creating duplicate
77182// commitments.
77183//
77184// The request ID must be a valid UUID with the exception that zero UUID
77185// is not supported (00000000-0000-0000-0000-000000000000).
77186func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
77187	c.urlParams_.Set("requestId", requestId)
77188	return c
77189}
77190
77191// Fields allows partial responses to be retrieved. See
77192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77193// for more information.
77194func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
77195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77196	return c
77197}
77198
77199// Context sets the context to be used in this call's Do method. Any
77200// pending HTTP request will be aborted if the provided context is
77201// canceled.
77202func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
77203	c.ctx_ = ctx
77204	return c
77205}
77206
77207// Header returns an http.Header that can be modified by the caller to
77208// add HTTP headers to the request.
77209func (c *InstancesStopCall) Header() http.Header {
77210	if c.header_ == nil {
77211		c.header_ = make(http.Header)
77212	}
77213	return c.header_
77214}
77215
77216func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
77217	reqHeaders := make(http.Header)
77218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77219	for k, v := range c.header_ {
77220		reqHeaders[k] = v
77221	}
77222	reqHeaders.Set("User-Agent", c.s.userAgent())
77223	var body io.Reader = nil
77224	c.urlParams_.Set("alt", alt)
77225	c.urlParams_.Set("prettyPrint", "false")
77226	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
77227	urls += "?" + c.urlParams_.Encode()
77228	req, err := http.NewRequest("POST", urls, body)
77229	if err != nil {
77230		return nil, err
77231	}
77232	req.Header = reqHeaders
77233	googleapi.Expand(req.URL, map[string]string{
77234		"project":  c.project,
77235		"zone":     c.zone,
77236		"instance": c.instance,
77237	})
77238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77239}
77240
77241// Do executes the "compute.instances.stop" call.
77242// Exactly one of *Operation or error will be non-nil. Any non-2xx
77243// status code is an error. Response headers are in either
77244// *Operation.ServerResponse.Header or (if a response was returned at
77245// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77246// to check whether the returned error was because
77247// http.StatusNotModified was returned.
77248func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77249	gensupport.SetOptions(c.urlParams_, opts...)
77250	res, err := c.doRequest("json")
77251	if res != nil && res.StatusCode == http.StatusNotModified {
77252		if res.Body != nil {
77253			res.Body.Close()
77254		}
77255		return nil, &googleapi.Error{
77256			Code:   res.StatusCode,
77257			Header: res.Header,
77258		}
77259	}
77260	if err != nil {
77261		return nil, err
77262	}
77263	defer googleapi.CloseBody(res)
77264	if err := googleapi.CheckResponse(res); err != nil {
77265		return nil, err
77266	}
77267	ret := &Operation{
77268		ServerResponse: googleapi.ServerResponse{
77269			Header:         res.Header,
77270			HTTPStatusCode: res.StatusCode,
77271		},
77272	}
77273	target := &ret
77274	if err := gensupport.DecodeResponse(target, res); err != nil {
77275		return nil, err
77276	}
77277	return ret, nil
77278	// {
77279	//   "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.",
77280	//   "httpMethod": "POST",
77281	//   "id": "compute.instances.stop",
77282	//   "parameterOrder": [
77283	//     "project",
77284	//     "zone",
77285	//     "instance"
77286	//   ],
77287	//   "parameters": {
77288	//     "instance": {
77289	//       "description": "Name of the instance resource to stop.",
77290	//       "location": "path",
77291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77292	//       "required": true,
77293	//       "type": "string"
77294	//     },
77295	//     "project": {
77296	//       "description": "Project ID for this request.",
77297	//       "location": "path",
77298	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77299	//       "required": true,
77300	//       "type": "string"
77301	//     },
77302	//     "requestId": {
77303	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77304	//       "location": "query",
77305	//       "type": "string"
77306	//     },
77307	//     "zone": {
77308	//       "description": "The name of the zone for this request.",
77309	//       "location": "path",
77310	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77311	//       "required": true,
77312	//       "type": "string"
77313	//     }
77314	//   },
77315	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
77316	//   "response": {
77317	//     "$ref": "Operation"
77318	//   },
77319	//   "scopes": [
77320	//     "https://www.googleapis.com/auth/cloud-platform",
77321	//     "https://www.googleapis.com/auth/compute"
77322	//   ]
77323	// }
77324
77325}
77326
77327// method id "compute.instances.testIamPermissions":
77328
77329type InstancesTestIamPermissionsCall struct {
77330	s                      *Service
77331	project                string
77332	zone                   string
77333	resource               string
77334	testpermissionsrequest *TestPermissionsRequest
77335	urlParams_             gensupport.URLParams
77336	ctx_                   context.Context
77337	header_                http.Header
77338}
77339
77340// TestIamPermissions: Returns permissions that a caller has on the
77341// specified resource.
77342func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
77343	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77344	c.project = project
77345	c.zone = zone
77346	c.resource = resource
77347	c.testpermissionsrequest = testpermissionsrequest
77348	return c
77349}
77350
77351// Fields allows partial responses to be retrieved. See
77352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77353// for more information.
77354func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
77355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77356	return c
77357}
77358
77359// Context sets the context to be used in this call's Do method. Any
77360// pending HTTP request will be aborted if the provided context is
77361// canceled.
77362func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
77363	c.ctx_ = ctx
77364	return c
77365}
77366
77367// Header returns an http.Header that can be modified by the caller to
77368// add HTTP headers to the request.
77369func (c *InstancesTestIamPermissionsCall) Header() http.Header {
77370	if c.header_ == nil {
77371		c.header_ = make(http.Header)
77372	}
77373	return c.header_
77374}
77375
77376func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
77377	reqHeaders := make(http.Header)
77378	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77379	for k, v := range c.header_ {
77380		reqHeaders[k] = v
77381	}
77382	reqHeaders.Set("User-Agent", c.s.userAgent())
77383	var body io.Reader = nil
77384	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
77385	if err != nil {
77386		return nil, err
77387	}
77388	reqHeaders.Set("Content-Type", "application/json")
77389	c.urlParams_.Set("alt", alt)
77390	c.urlParams_.Set("prettyPrint", "false")
77391	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/testIamPermissions")
77392	urls += "?" + c.urlParams_.Encode()
77393	req, err := http.NewRequest("POST", urls, body)
77394	if err != nil {
77395		return nil, err
77396	}
77397	req.Header = reqHeaders
77398	googleapi.Expand(req.URL, map[string]string{
77399		"project":  c.project,
77400		"zone":     c.zone,
77401		"resource": c.resource,
77402	})
77403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77404}
77405
77406// Do executes the "compute.instances.testIamPermissions" call.
77407// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
77408// non-2xx status code is an error. Response headers are in either
77409// *TestPermissionsResponse.ServerResponse.Header or (if a response was
77410// returned at all) in error.(*googleapi.Error).Header. Use
77411// googleapi.IsNotModified to check whether the returned error was
77412// because http.StatusNotModified was returned.
77413func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
77414	gensupport.SetOptions(c.urlParams_, opts...)
77415	res, err := c.doRequest("json")
77416	if res != nil && res.StatusCode == http.StatusNotModified {
77417		if res.Body != nil {
77418			res.Body.Close()
77419		}
77420		return nil, &googleapi.Error{
77421			Code:   res.StatusCode,
77422			Header: res.Header,
77423		}
77424	}
77425	if err != nil {
77426		return nil, err
77427	}
77428	defer googleapi.CloseBody(res)
77429	if err := googleapi.CheckResponse(res); err != nil {
77430		return nil, err
77431	}
77432	ret := &TestPermissionsResponse{
77433		ServerResponse: googleapi.ServerResponse{
77434			Header:         res.Header,
77435			HTTPStatusCode: res.StatusCode,
77436		},
77437	}
77438	target := &ret
77439	if err := gensupport.DecodeResponse(target, res); err != nil {
77440		return nil, err
77441	}
77442	return ret, nil
77443	// {
77444	//   "description": "Returns permissions that a caller has on the specified resource.",
77445	//   "httpMethod": "POST",
77446	//   "id": "compute.instances.testIamPermissions",
77447	//   "parameterOrder": [
77448	//     "project",
77449	//     "zone",
77450	//     "resource"
77451	//   ],
77452	//   "parameters": {
77453	//     "project": {
77454	//       "description": "Project ID for this request.",
77455	//       "location": "path",
77456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77457	//       "required": true,
77458	//       "type": "string"
77459	//     },
77460	//     "resource": {
77461	//       "description": "Name or id of the resource for this request.",
77462	//       "location": "path",
77463	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77464	//       "required": true,
77465	//       "type": "string"
77466	//     },
77467	//     "zone": {
77468	//       "description": "The name of the zone for this request.",
77469	//       "location": "path",
77470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77471	//       "required": true,
77472	//       "type": "string"
77473	//     }
77474	//   },
77475	//   "path": "{project}/zones/{zone}/instances/{resource}/testIamPermissions",
77476	//   "request": {
77477	//     "$ref": "TestPermissionsRequest"
77478	//   },
77479	//   "response": {
77480	//     "$ref": "TestPermissionsResponse"
77481	//   },
77482	//   "scopes": [
77483	//     "https://www.googleapis.com/auth/cloud-platform",
77484	//     "https://www.googleapis.com/auth/compute",
77485	//     "https://www.googleapis.com/auth/compute.readonly"
77486	//   ]
77487	// }
77488
77489}
77490
77491// method id "compute.instances.update":
77492
77493type InstancesUpdateCall struct {
77494	s          *Service
77495	project    string
77496	zone       string
77497	instance   string
77498	instance2  *Instance
77499	urlParams_ gensupport.URLParams
77500	ctx_       context.Context
77501	header_    http.Header
77502}
77503
77504// Update: Updates an instance only if the necessary resources are
77505// available. This method can update only a specific set of instance
77506// properties. See  Updating a running instance for a list of updatable
77507// instance properties.
77508func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
77509	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77510	c.project = project
77511	c.zone = zone
77512	c.instance = instance
77513	c.instance2 = instance2
77514	return c
77515}
77516
77517// MinimalAction sets the optional parameter "minimalAction": Specifies
77518// the action to take when updating an instance even if the updated
77519// properties do not require it. If not specified, then Compute Engine
77520// acts based on the minimum action that the updated properties require.
77521//
77522// Possible values:
77523//   "INVALID"
77524//   "NO_EFFECT"
77525//   "REFRESH"
77526//   "RESTART"
77527func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
77528	c.urlParams_.Set("minimalAction", minimalAction)
77529	return c
77530}
77531
77532// MostDisruptiveAllowedAction sets the optional parameter
77533// "mostDisruptiveAllowedAction": Specifies the most disruptive action
77534// that can be taken on the instance as part of the update. Compute
77535// Engine returns an error if the instance properties require a more
77536// disruptive action as part of the instance update. Valid options from
77537// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
77538//
77539// Possible values:
77540//   "INVALID"
77541//   "NO_EFFECT"
77542//   "REFRESH"
77543//   "RESTART"
77544func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
77545	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
77546	return c
77547}
77548
77549// RequestId sets the optional parameter "requestId": An optional
77550// request ID to identify requests. Specify a unique request ID so that
77551// if you must retry your request, the server will know to ignore the
77552// request if it has already been completed.
77553//
77554// For example, consider a situation where you make an initial request
77555// and the request times out. If you make the request again with the
77556// same request ID, the server can check if original operation with the
77557// same request ID was received, and if so, will ignore the second
77558// request. This prevents clients from accidentally creating duplicate
77559// commitments.
77560//
77561// The request ID must be a valid UUID with the exception that zero UUID
77562// is not supported (00000000-0000-0000-0000-000000000000).
77563func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
77564	c.urlParams_.Set("requestId", requestId)
77565	return c
77566}
77567
77568// Fields allows partial responses to be retrieved. See
77569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77570// for more information.
77571func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
77572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77573	return c
77574}
77575
77576// Context sets the context to be used in this call's Do method. Any
77577// pending HTTP request will be aborted if the provided context is
77578// canceled.
77579func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
77580	c.ctx_ = ctx
77581	return c
77582}
77583
77584// Header returns an http.Header that can be modified by the caller to
77585// add HTTP headers to the request.
77586func (c *InstancesUpdateCall) Header() http.Header {
77587	if c.header_ == nil {
77588		c.header_ = make(http.Header)
77589	}
77590	return c.header_
77591}
77592
77593func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
77594	reqHeaders := make(http.Header)
77595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77596	for k, v := range c.header_ {
77597		reqHeaders[k] = v
77598	}
77599	reqHeaders.Set("User-Agent", c.s.userAgent())
77600	var body io.Reader = nil
77601	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
77602	if err != nil {
77603		return nil, err
77604	}
77605	reqHeaders.Set("Content-Type", "application/json")
77606	c.urlParams_.Set("alt", alt)
77607	c.urlParams_.Set("prettyPrint", "false")
77608	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
77609	urls += "?" + c.urlParams_.Encode()
77610	req, err := http.NewRequest("PUT", urls, body)
77611	if err != nil {
77612		return nil, err
77613	}
77614	req.Header = reqHeaders
77615	googleapi.Expand(req.URL, map[string]string{
77616		"project":  c.project,
77617		"zone":     c.zone,
77618		"instance": c.instance,
77619	})
77620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77621}
77622
77623// Do executes the "compute.instances.update" call.
77624// Exactly one of *Operation or error will be non-nil. Any non-2xx
77625// status code is an error. Response headers are in either
77626// *Operation.ServerResponse.Header or (if a response was returned at
77627// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77628// to check whether the returned error was because
77629// http.StatusNotModified was returned.
77630func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77631	gensupport.SetOptions(c.urlParams_, opts...)
77632	res, err := c.doRequest("json")
77633	if res != nil && res.StatusCode == http.StatusNotModified {
77634		if res.Body != nil {
77635			res.Body.Close()
77636		}
77637		return nil, &googleapi.Error{
77638			Code:   res.StatusCode,
77639			Header: res.Header,
77640		}
77641	}
77642	if err != nil {
77643		return nil, err
77644	}
77645	defer googleapi.CloseBody(res)
77646	if err := googleapi.CheckResponse(res); err != nil {
77647		return nil, err
77648	}
77649	ret := &Operation{
77650		ServerResponse: googleapi.ServerResponse{
77651			Header:         res.Header,
77652			HTTPStatusCode: res.StatusCode,
77653		},
77654	}
77655	target := &ret
77656	if err := gensupport.DecodeResponse(target, res); err != nil {
77657		return nil, err
77658	}
77659	return ret, nil
77660	// {
77661	//   "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.",
77662	//   "httpMethod": "PUT",
77663	//   "id": "compute.instances.update",
77664	//   "parameterOrder": [
77665	//     "project",
77666	//     "zone",
77667	//     "instance"
77668	//   ],
77669	//   "parameters": {
77670	//     "instance": {
77671	//       "description": "Name of the instance resource to update.",
77672	//       "location": "path",
77673	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77674	//       "required": true,
77675	//       "type": "string"
77676	//     },
77677	//     "minimalAction": {
77678	//       "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.",
77679	//       "enum": [
77680	//         "INVALID",
77681	//         "NO_EFFECT",
77682	//         "REFRESH",
77683	//         "RESTART"
77684	//       ],
77685	//       "enumDescriptions": [
77686	//         "",
77687	//         "",
77688	//         "",
77689	//         ""
77690	//       ],
77691	//       "location": "query",
77692	//       "type": "string"
77693	//     },
77694	//     "mostDisruptiveAllowedAction": {
77695	//       "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.",
77696	//       "enum": [
77697	//         "INVALID",
77698	//         "NO_EFFECT",
77699	//         "REFRESH",
77700	//         "RESTART"
77701	//       ],
77702	//       "enumDescriptions": [
77703	//         "",
77704	//         "",
77705	//         "",
77706	//         ""
77707	//       ],
77708	//       "location": "query",
77709	//       "type": "string"
77710	//     },
77711	//     "project": {
77712	//       "description": "Project ID for this request.",
77713	//       "location": "path",
77714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77715	//       "required": true,
77716	//       "type": "string"
77717	//     },
77718	//     "requestId": {
77719	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77720	//       "location": "query",
77721	//       "type": "string"
77722	//     },
77723	//     "zone": {
77724	//       "description": "The name of the zone for this request.",
77725	//       "location": "path",
77726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77727	//       "required": true,
77728	//       "type": "string"
77729	//     }
77730	//   },
77731	//   "path": "{project}/zones/{zone}/instances/{instance}",
77732	//   "request": {
77733	//     "$ref": "Instance"
77734	//   },
77735	//   "response": {
77736	//     "$ref": "Operation"
77737	//   },
77738	//   "scopes": [
77739	//     "https://www.googleapis.com/auth/cloud-platform",
77740	//     "https://www.googleapis.com/auth/compute"
77741	//   ]
77742	// }
77743
77744}
77745
77746// method id "compute.instances.updateAccessConfig":
77747
77748type InstancesUpdateAccessConfigCall struct {
77749	s            *Service
77750	project      string
77751	zone         string
77752	instance     string
77753	accessconfig *AccessConfig
77754	urlParams_   gensupport.URLParams
77755	ctx_         context.Context
77756	header_      http.Header
77757}
77758
77759// UpdateAccessConfig: Updates the specified access config from an
77760// instance's network interface with the data included in the request.
77761// This method supports PATCH semantics and uses the JSON merge patch
77762// format and processing rules.
77763func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
77764	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77765	c.project = project
77766	c.zone = zone
77767	c.instance = instance
77768	c.urlParams_.Set("networkInterface", networkInterface)
77769	c.accessconfig = accessconfig
77770	return c
77771}
77772
77773// RequestId sets the optional parameter "requestId": An optional
77774// request ID to identify requests. Specify a unique request ID so that
77775// if you must retry your request, the server will know to ignore the
77776// request if it has already been completed.
77777//
77778// For example, consider a situation where you make an initial request
77779// and the request times out. If you make the request again with the
77780// same request ID, the server can check if original operation with the
77781// same request ID was received, and if so, will ignore the second
77782// request. This prevents clients from accidentally creating duplicate
77783// commitments.
77784//
77785// The request ID must be a valid UUID with the exception that zero UUID
77786// is not supported (00000000-0000-0000-0000-000000000000).
77787func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
77788	c.urlParams_.Set("requestId", requestId)
77789	return c
77790}
77791
77792// Fields allows partial responses to be retrieved. See
77793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77794// for more information.
77795func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
77796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77797	return c
77798}
77799
77800// Context sets the context to be used in this call's Do method. Any
77801// pending HTTP request will be aborted if the provided context is
77802// canceled.
77803func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
77804	c.ctx_ = ctx
77805	return c
77806}
77807
77808// Header returns an http.Header that can be modified by the caller to
77809// add HTTP headers to the request.
77810func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
77811	if c.header_ == nil {
77812		c.header_ = make(http.Header)
77813	}
77814	return c.header_
77815}
77816
77817func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
77818	reqHeaders := make(http.Header)
77819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77820	for k, v := range c.header_ {
77821		reqHeaders[k] = v
77822	}
77823	reqHeaders.Set("User-Agent", c.s.userAgent())
77824	var body io.Reader = nil
77825	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
77826	if err != nil {
77827		return nil, err
77828	}
77829	reqHeaders.Set("Content-Type", "application/json")
77830	c.urlParams_.Set("alt", alt)
77831	c.urlParams_.Set("prettyPrint", "false")
77832	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
77833	urls += "?" + c.urlParams_.Encode()
77834	req, err := http.NewRequest("POST", urls, body)
77835	if err != nil {
77836		return nil, err
77837	}
77838	req.Header = reqHeaders
77839	googleapi.Expand(req.URL, map[string]string{
77840		"project":  c.project,
77841		"zone":     c.zone,
77842		"instance": c.instance,
77843	})
77844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77845}
77846
77847// Do executes the "compute.instances.updateAccessConfig" call.
77848// Exactly one of *Operation or error will be non-nil. Any non-2xx
77849// status code is an error. Response headers are in either
77850// *Operation.ServerResponse.Header or (if a response was returned at
77851// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77852// to check whether the returned error was because
77853// http.StatusNotModified was returned.
77854func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77855	gensupport.SetOptions(c.urlParams_, opts...)
77856	res, err := c.doRequest("json")
77857	if res != nil && res.StatusCode == http.StatusNotModified {
77858		if res.Body != nil {
77859			res.Body.Close()
77860		}
77861		return nil, &googleapi.Error{
77862			Code:   res.StatusCode,
77863			Header: res.Header,
77864		}
77865	}
77866	if err != nil {
77867		return nil, err
77868	}
77869	defer googleapi.CloseBody(res)
77870	if err := googleapi.CheckResponse(res); err != nil {
77871		return nil, err
77872	}
77873	ret := &Operation{
77874		ServerResponse: googleapi.ServerResponse{
77875			Header:         res.Header,
77876			HTTPStatusCode: res.StatusCode,
77877		},
77878	}
77879	target := &ret
77880	if err := gensupport.DecodeResponse(target, res); err != nil {
77881		return nil, err
77882	}
77883	return ret, nil
77884	// {
77885	//   "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.",
77886	//   "httpMethod": "POST",
77887	//   "id": "compute.instances.updateAccessConfig",
77888	//   "parameterOrder": [
77889	//     "project",
77890	//     "zone",
77891	//     "instance",
77892	//     "networkInterface"
77893	//   ],
77894	//   "parameters": {
77895	//     "instance": {
77896	//       "description": "The instance name for this request.",
77897	//       "location": "path",
77898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77899	//       "required": true,
77900	//       "type": "string"
77901	//     },
77902	//     "networkInterface": {
77903	//       "description": "The name of the network interface where the access config is attached.",
77904	//       "location": "query",
77905	//       "required": true,
77906	//       "type": "string"
77907	//     },
77908	//     "project": {
77909	//       "description": "Project ID for this request.",
77910	//       "location": "path",
77911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77912	//       "required": true,
77913	//       "type": "string"
77914	//     },
77915	//     "requestId": {
77916	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77917	//       "location": "query",
77918	//       "type": "string"
77919	//     },
77920	//     "zone": {
77921	//       "description": "The name of the zone for this request.",
77922	//       "location": "path",
77923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77924	//       "required": true,
77925	//       "type": "string"
77926	//     }
77927	//   },
77928	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
77929	//   "request": {
77930	//     "$ref": "AccessConfig"
77931	//   },
77932	//   "response": {
77933	//     "$ref": "Operation"
77934	//   },
77935	//   "scopes": [
77936	//     "https://www.googleapis.com/auth/cloud-platform",
77937	//     "https://www.googleapis.com/auth/compute"
77938	//   ]
77939	// }
77940
77941}
77942
77943// method id "compute.instances.updateDisplayDevice":
77944
77945type InstancesUpdateDisplayDeviceCall struct {
77946	s             *Service
77947	project       string
77948	zone          string
77949	instance      string
77950	displaydevice *DisplayDevice
77951	urlParams_    gensupport.URLParams
77952	ctx_          context.Context
77953	header_       http.Header
77954}
77955
77956// UpdateDisplayDevice: Updates the Display config for a VM instance.
77957// You can only use this method on a stopped VM instance. This method
77958// supports PATCH semantics and uses the JSON merge patch format and
77959// processing rules.
77960func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
77961	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77962	c.project = project
77963	c.zone = zone
77964	c.instance = instance
77965	c.displaydevice = displaydevice
77966	return c
77967}
77968
77969// RequestId sets the optional parameter "requestId": An optional
77970// request ID to identify requests. Specify a unique request ID so that
77971// if you must retry your request, the server will know to ignore the
77972// request if it has already been completed.
77973//
77974// For example, consider a situation where you make an initial request
77975// and the request times out. If you make the request again with the
77976// same request ID, the server can check if original operation with the
77977// same request ID was received, and if so, will ignore the second
77978// request. This prevents clients from accidentally creating duplicate
77979// commitments.
77980//
77981// The request ID must be a valid UUID with the exception that zero UUID
77982// is not supported (00000000-0000-0000-0000-000000000000).
77983func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
77984	c.urlParams_.Set("requestId", requestId)
77985	return c
77986}
77987
77988// Fields allows partial responses to be retrieved. See
77989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77990// for more information.
77991func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
77992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77993	return c
77994}
77995
77996// Context sets the context to be used in this call's Do method. Any
77997// pending HTTP request will be aborted if the provided context is
77998// canceled.
77999func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
78000	c.ctx_ = ctx
78001	return c
78002}
78003
78004// Header returns an http.Header that can be modified by the caller to
78005// add HTTP headers to the request.
78006func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
78007	if c.header_ == nil {
78008		c.header_ = make(http.Header)
78009	}
78010	return c.header_
78011}
78012
78013func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
78014	reqHeaders := make(http.Header)
78015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78016	for k, v := range c.header_ {
78017		reqHeaders[k] = v
78018	}
78019	reqHeaders.Set("User-Agent", c.s.userAgent())
78020	var body io.Reader = nil
78021	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
78022	if err != nil {
78023		return nil, err
78024	}
78025	reqHeaders.Set("Content-Type", "application/json")
78026	c.urlParams_.Set("alt", alt)
78027	c.urlParams_.Set("prettyPrint", "false")
78028	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
78029	urls += "?" + c.urlParams_.Encode()
78030	req, err := http.NewRequest("PATCH", urls, body)
78031	if err != nil {
78032		return nil, err
78033	}
78034	req.Header = reqHeaders
78035	googleapi.Expand(req.URL, map[string]string{
78036		"project":  c.project,
78037		"zone":     c.zone,
78038		"instance": c.instance,
78039	})
78040	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78041}
78042
78043// Do executes the "compute.instances.updateDisplayDevice" call.
78044// Exactly one of *Operation or error will be non-nil. Any non-2xx
78045// status code is an error. Response headers are in either
78046// *Operation.ServerResponse.Header or (if a response was returned at
78047// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78048// to check whether the returned error was because
78049// http.StatusNotModified was returned.
78050func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78051	gensupport.SetOptions(c.urlParams_, opts...)
78052	res, err := c.doRequest("json")
78053	if res != nil && res.StatusCode == http.StatusNotModified {
78054		if res.Body != nil {
78055			res.Body.Close()
78056		}
78057		return nil, &googleapi.Error{
78058			Code:   res.StatusCode,
78059			Header: res.Header,
78060		}
78061	}
78062	if err != nil {
78063		return nil, err
78064	}
78065	defer googleapi.CloseBody(res)
78066	if err := googleapi.CheckResponse(res); err != nil {
78067		return nil, err
78068	}
78069	ret := &Operation{
78070		ServerResponse: googleapi.ServerResponse{
78071			Header:         res.Header,
78072			HTTPStatusCode: res.StatusCode,
78073		},
78074	}
78075	target := &ret
78076	if err := gensupport.DecodeResponse(target, res); err != nil {
78077		return nil, err
78078	}
78079	return ret, nil
78080	// {
78081	//   "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.",
78082	//   "httpMethod": "PATCH",
78083	//   "id": "compute.instances.updateDisplayDevice",
78084	//   "parameterOrder": [
78085	//     "project",
78086	//     "zone",
78087	//     "instance"
78088	//   ],
78089	//   "parameters": {
78090	//     "instance": {
78091	//       "description": "Name of the instance scoping this request.",
78092	//       "location": "path",
78093	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78094	//       "required": true,
78095	//       "type": "string"
78096	//     },
78097	//     "project": {
78098	//       "description": "Project ID for this request.",
78099	//       "location": "path",
78100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78101	//       "required": true,
78102	//       "type": "string"
78103	//     },
78104	//     "requestId": {
78105	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78106	//       "location": "query",
78107	//       "type": "string"
78108	//     },
78109	//     "zone": {
78110	//       "description": "The name of the zone for this request.",
78111	//       "location": "path",
78112	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78113	//       "required": true,
78114	//       "type": "string"
78115	//     }
78116	//   },
78117	//   "path": "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
78118	//   "request": {
78119	//     "$ref": "DisplayDevice"
78120	//   },
78121	//   "response": {
78122	//     "$ref": "Operation"
78123	//   },
78124	//   "scopes": [
78125	//     "https://www.googleapis.com/auth/cloud-platform",
78126	//     "https://www.googleapis.com/auth/compute"
78127	//   ]
78128	// }
78129
78130}
78131
78132// method id "compute.instances.updateNetworkInterface":
78133
78134type InstancesUpdateNetworkInterfaceCall struct {
78135	s                *Service
78136	project          string
78137	zone             string
78138	instance         string
78139	networkinterface *NetworkInterface
78140	urlParams_       gensupport.URLParams
78141	ctx_             context.Context
78142	header_          http.Header
78143}
78144
78145// UpdateNetworkInterface: Updates an instance's network interface. This
78146// method follows PATCH semantics.
78147func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
78148	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78149	c.project = project
78150	c.zone = zone
78151	c.instance = instance
78152	c.urlParams_.Set("networkInterface", networkInterface)
78153	c.networkinterface = networkinterface
78154	return c
78155}
78156
78157// RequestId sets the optional parameter "requestId": An optional
78158// request ID to identify requests. Specify a unique request ID so that
78159// if you must retry your request, the server will know to ignore the
78160// request if it has already been completed.
78161//
78162// For example, consider a situation where you make an initial request
78163// and the request times out. If you make the request again with the
78164// same request ID, the server can check if original operation with the
78165// same request ID was received, and if so, will ignore the second
78166// request. This prevents clients from accidentally creating duplicate
78167// commitments.
78168//
78169// The request ID must be a valid UUID with the exception that zero UUID
78170// is not supported (00000000-0000-0000-0000-000000000000).
78171func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
78172	c.urlParams_.Set("requestId", requestId)
78173	return c
78174}
78175
78176// Fields allows partial responses to be retrieved. See
78177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78178// for more information.
78179func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
78180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78181	return c
78182}
78183
78184// Context sets the context to be used in this call's Do method. Any
78185// pending HTTP request will be aborted if the provided context is
78186// canceled.
78187func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
78188	c.ctx_ = ctx
78189	return c
78190}
78191
78192// Header returns an http.Header that can be modified by the caller to
78193// add HTTP headers to the request.
78194func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
78195	if c.header_ == nil {
78196		c.header_ = make(http.Header)
78197	}
78198	return c.header_
78199}
78200
78201func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
78202	reqHeaders := make(http.Header)
78203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78204	for k, v := range c.header_ {
78205		reqHeaders[k] = v
78206	}
78207	reqHeaders.Set("User-Agent", c.s.userAgent())
78208	var body io.Reader = nil
78209	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
78210	if err != nil {
78211		return nil, err
78212	}
78213	reqHeaders.Set("Content-Type", "application/json")
78214	c.urlParams_.Set("alt", alt)
78215	c.urlParams_.Set("prettyPrint", "false")
78216	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
78217	urls += "?" + c.urlParams_.Encode()
78218	req, err := http.NewRequest("PATCH", urls, body)
78219	if err != nil {
78220		return nil, err
78221	}
78222	req.Header = reqHeaders
78223	googleapi.Expand(req.URL, map[string]string{
78224		"project":  c.project,
78225		"zone":     c.zone,
78226		"instance": c.instance,
78227	})
78228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78229}
78230
78231// Do executes the "compute.instances.updateNetworkInterface" call.
78232// Exactly one of *Operation or error will be non-nil. Any non-2xx
78233// status code is an error. Response headers are in either
78234// *Operation.ServerResponse.Header or (if a response was returned at
78235// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78236// to check whether the returned error was because
78237// http.StatusNotModified was returned.
78238func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78239	gensupport.SetOptions(c.urlParams_, opts...)
78240	res, err := c.doRequest("json")
78241	if res != nil && res.StatusCode == http.StatusNotModified {
78242		if res.Body != nil {
78243			res.Body.Close()
78244		}
78245		return nil, &googleapi.Error{
78246			Code:   res.StatusCode,
78247			Header: res.Header,
78248		}
78249	}
78250	if err != nil {
78251		return nil, err
78252	}
78253	defer googleapi.CloseBody(res)
78254	if err := googleapi.CheckResponse(res); err != nil {
78255		return nil, err
78256	}
78257	ret := &Operation{
78258		ServerResponse: googleapi.ServerResponse{
78259			Header:         res.Header,
78260			HTTPStatusCode: res.StatusCode,
78261		},
78262	}
78263	target := &ret
78264	if err := gensupport.DecodeResponse(target, res); err != nil {
78265		return nil, err
78266	}
78267	return ret, nil
78268	// {
78269	//   "description": "Updates an instance's network interface. This method follows PATCH semantics.",
78270	//   "httpMethod": "PATCH",
78271	//   "id": "compute.instances.updateNetworkInterface",
78272	//   "parameterOrder": [
78273	//     "project",
78274	//     "zone",
78275	//     "instance",
78276	//     "networkInterface"
78277	//   ],
78278	//   "parameters": {
78279	//     "instance": {
78280	//       "description": "The instance name for this request.",
78281	//       "location": "path",
78282	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78283	//       "required": true,
78284	//       "type": "string"
78285	//     },
78286	//     "networkInterface": {
78287	//       "description": "The name of the network interface to update.",
78288	//       "location": "query",
78289	//       "required": true,
78290	//       "type": "string"
78291	//     },
78292	//     "project": {
78293	//       "description": "Project ID for this request.",
78294	//       "location": "path",
78295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78296	//       "required": true,
78297	//       "type": "string"
78298	//     },
78299	//     "requestId": {
78300	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78301	//       "location": "query",
78302	//       "type": "string"
78303	//     },
78304	//     "zone": {
78305	//       "description": "The name of the zone for this request.",
78306	//       "location": "path",
78307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78308	//       "required": true,
78309	//       "type": "string"
78310	//     }
78311	//   },
78312	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
78313	//   "request": {
78314	//     "$ref": "NetworkInterface"
78315	//   },
78316	//   "response": {
78317	//     "$ref": "Operation"
78318	//   },
78319	//   "scopes": [
78320	//     "https://www.googleapis.com/auth/cloud-platform",
78321	//     "https://www.googleapis.com/auth/compute"
78322	//   ]
78323	// }
78324
78325}
78326
78327// method id "compute.instances.updateShieldedInstanceConfig":
78328
78329type InstancesUpdateShieldedInstanceConfigCall struct {
78330	s                      *Service
78331	project                string
78332	zone                   string
78333	instance               string
78334	shieldedinstanceconfig *ShieldedInstanceConfig
78335	urlParams_             gensupport.URLParams
78336	ctx_                   context.Context
78337	header_                http.Header
78338}
78339
78340// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
78341// for an instance. You can only use this method on a stopped instance.
78342// This method supports PATCH semantics and uses the JSON merge patch
78343// format and processing rules.
78344func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
78345	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78346	c.project = project
78347	c.zone = zone
78348	c.instance = instance
78349	c.shieldedinstanceconfig = shieldedinstanceconfig
78350	return c
78351}
78352
78353// RequestId sets the optional parameter "requestId": An optional
78354// request ID to identify requests. Specify a unique request ID so that
78355// if you must retry your request, the server will know to ignore the
78356// request if it has already been completed.
78357//
78358// For example, consider a situation where you make an initial request
78359// and the request times out. If you make the request again with the
78360// same request ID, the server can check if original operation with the
78361// same request ID was received, and if so, will ignore the second
78362// request. This prevents clients from accidentally creating duplicate
78363// commitments.
78364//
78365// The request ID must be a valid UUID with the exception that zero UUID
78366// is not supported (00000000-0000-0000-0000-000000000000).
78367func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
78368	c.urlParams_.Set("requestId", requestId)
78369	return c
78370}
78371
78372// Fields allows partial responses to be retrieved. See
78373// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78374// for more information.
78375func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
78376	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78377	return c
78378}
78379
78380// Context sets the context to be used in this call's Do method. Any
78381// pending HTTP request will be aborted if the provided context is
78382// canceled.
78383func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
78384	c.ctx_ = ctx
78385	return c
78386}
78387
78388// Header returns an http.Header that can be modified by the caller to
78389// add HTTP headers to the request.
78390func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
78391	if c.header_ == nil {
78392		c.header_ = make(http.Header)
78393	}
78394	return c.header_
78395}
78396
78397func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
78398	reqHeaders := make(http.Header)
78399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78400	for k, v := range c.header_ {
78401		reqHeaders[k] = v
78402	}
78403	reqHeaders.Set("User-Agent", c.s.userAgent())
78404	var body io.Reader = nil
78405	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
78406	if err != nil {
78407		return nil, err
78408	}
78409	reqHeaders.Set("Content-Type", "application/json")
78410	c.urlParams_.Set("alt", alt)
78411	c.urlParams_.Set("prettyPrint", "false")
78412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
78413	urls += "?" + c.urlParams_.Encode()
78414	req, err := http.NewRequest("PATCH", urls, body)
78415	if err != nil {
78416		return nil, err
78417	}
78418	req.Header = reqHeaders
78419	googleapi.Expand(req.URL, map[string]string{
78420		"project":  c.project,
78421		"zone":     c.zone,
78422		"instance": c.instance,
78423	})
78424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78425}
78426
78427// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
78428// Exactly one of *Operation or error will be non-nil. Any non-2xx
78429// status code is an error. Response headers are in either
78430// *Operation.ServerResponse.Header or (if a response was returned at
78431// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78432// to check whether the returned error was because
78433// http.StatusNotModified was returned.
78434func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78435	gensupport.SetOptions(c.urlParams_, opts...)
78436	res, err := c.doRequest("json")
78437	if res != nil && res.StatusCode == http.StatusNotModified {
78438		if res.Body != nil {
78439			res.Body.Close()
78440		}
78441		return nil, &googleapi.Error{
78442			Code:   res.StatusCode,
78443			Header: res.Header,
78444		}
78445	}
78446	if err != nil {
78447		return nil, err
78448	}
78449	defer googleapi.CloseBody(res)
78450	if err := googleapi.CheckResponse(res); err != nil {
78451		return nil, err
78452	}
78453	ret := &Operation{
78454		ServerResponse: googleapi.ServerResponse{
78455			Header:         res.Header,
78456			HTTPStatusCode: res.StatusCode,
78457		},
78458	}
78459	target := &ret
78460	if err := gensupport.DecodeResponse(target, res); err != nil {
78461		return nil, err
78462	}
78463	return ret, nil
78464	// {
78465	//   "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.",
78466	//   "httpMethod": "PATCH",
78467	//   "id": "compute.instances.updateShieldedInstanceConfig",
78468	//   "parameterOrder": [
78469	//     "project",
78470	//     "zone",
78471	//     "instance"
78472	//   ],
78473	//   "parameters": {
78474	//     "instance": {
78475	//       "description": "Name or id of the instance scoping this request.",
78476	//       "location": "path",
78477	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78478	//       "required": true,
78479	//       "type": "string"
78480	//     },
78481	//     "project": {
78482	//       "description": "Project ID for this request.",
78483	//       "location": "path",
78484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78485	//       "required": true,
78486	//       "type": "string"
78487	//     },
78488	//     "requestId": {
78489	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78490	//       "location": "query",
78491	//       "type": "string"
78492	//     },
78493	//     "zone": {
78494	//       "description": "The name of the zone for this request.",
78495	//       "location": "path",
78496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78497	//       "required": true,
78498	//       "type": "string"
78499	//     }
78500	//   },
78501	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
78502	//   "request": {
78503	//     "$ref": "ShieldedInstanceConfig"
78504	//   },
78505	//   "response": {
78506	//     "$ref": "Operation"
78507	//   },
78508	//   "scopes": [
78509	//     "https://www.googleapis.com/auth/cloud-platform",
78510	//     "https://www.googleapis.com/auth/compute"
78511	//   ]
78512	// }
78513
78514}
78515
78516// method id "compute.interconnectAttachments.aggregatedList":
78517
78518type InterconnectAttachmentsAggregatedListCall struct {
78519	s            *Service
78520	project      string
78521	urlParams_   gensupport.URLParams
78522	ifNoneMatch_ string
78523	ctx_         context.Context
78524	header_      http.Header
78525}
78526
78527// AggregatedList: Retrieves an aggregated list of interconnect
78528// attachments.
78529func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
78530	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78531	c.project = project
78532	return c
78533}
78534
78535// Filter sets the optional parameter "filter": A filter expression that
78536// filters resources listed in the response. The expression must specify
78537// the field name, a comparison operator, and the value that you want to
78538// use for filtering. The value must be a string, a number, or a
78539// boolean. The comparison operator must be either `=`, `!=`, `>`, or
78540// `<`.
78541//
78542// For example, if you are filtering Compute Engine instances, you can
78543// exclude instances named `example-instance` by specifying `name !=
78544// example-instance`.
78545//
78546// You can also filter nested fields. For example, you could specify
78547// `scheduling.automaticRestart = false` to include instances only if
78548// they are not scheduled for automatic restarts. You can use filtering
78549// on nested fields to filter based on resource labels.
78550//
78551// To filter on multiple expressions, provide each separate expression
78552// within parentheses. For example: ``` (scheduling.automaticRestart =
78553// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
78554// is an `AND` expression. However, you can include `AND` and `OR`
78555// expressions explicitly. For example: ``` (cpuPlatform = "Intel
78556// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
78557// (scheduling.automaticRestart = true) ```
78558func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
78559	c.urlParams_.Set("filter", filter)
78560	return c
78561}
78562
78563// IncludeAllScopes sets the optional parameter "includeAllScopes":
78564// Indicates whether every visible scope for each scope type (zone,
78565// region, global) should be included in the response. For new resource
78566// types added after this field, the flag has no effect as new resource
78567// types will always include every visible scope for each scope type in
78568// response. For resource types which predate this field, if this flag
78569// is omitted or false, only scopes of the scope types where the
78570// resource type is expected to be found will be included.
78571func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
78572	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
78573	return c
78574}
78575
78576// MaxResults sets the optional parameter "maxResults": The maximum
78577// number of results per page that should be returned. If the number of
78578// available results is larger than `maxResults`, Compute Engine returns
78579// a `nextPageToken` that can be used to get the next page of results in
78580// subsequent list requests. Acceptable values are `0` to `500`,
78581// inclusive. (Default: `500`)
78582func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
78583	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78584	return c
78585}
78586
78587// OrderBy sets the optional parameter "orderBy": Sorts list results by
78588// a certain order. By default, results are returned in alphanumerical
78589// order based on the resource name.
78590//
78591// You can also sort results in descending order based on the creation
78592// timestamp using `orderBy="creationTimestamp desc". This sorts
78593// results based on the `creationTimestamp` field in reverse
78594// chronological order (newest result first). Use this to sort resources
78595// like operations so that the newest operation is returned
78596// first.
78597//
78598// Currently, only sorting by `name` or `creationTimestamp desc` is
78599// supported.
78600func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
78601	c.urlParams_.Set("orderBy", orderBy)
78602	return c
78603}
78604
78605// PageToken sets the optional parameter "pageToken": Specifies a page
78606// token to use. Set `pageToken` to the `nextPageToken` returned by a
78607// previous list request to get the next page of results.
78608func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
78609	c.urlParams_.Set("pageToken", pageToken)
78610	return c
78611}
78612
78613// Fields allows partial responses to be retrieved. See
78614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78615// for more information.
78616func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
78617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78618	return c
78619}
78620
78621// IfNoneMatch sets the optional parameter which makes the operation
78622// fail if the object's ETag matches the given value. This is useful for
78623// getting updates only after the object has changed since the last
78624// request. Use googleapi.IsNotModified to check whether the response
78625// error from Do is the result of In-None-Match.
78626func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
78627	c.ifNoneMatch_ = entityTag
78628	return c
78629}
78630
78631// Context sets the context to be used in this call's Do method. Any
78632// pending HTTP request will be aborted if the provided context is
78633// canceled.
78634func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
78635	c.ctx_ = ctx
78636	return c
78637}
78638
78639// Header returns an http.Header that can be modified by the caller to
78640// add HTTP headers to the request.
78641func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
78642	if c.header_ == nil {
78643		c.header_ = make(http.Header)
78644	}
78645	return c.header_
78646}
78647
78648func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
78649	reqHeaders := make(http.Header)
78650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78651	for k, v := range c.header_ {
78652		reqHeaders[k] = v
78653	}
78654	reqHeaders.Set("User-Agent", c.s.userAgent())
78655	if c.ifNoneMatch_ != "" {
78656		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78657	}
78658	var body io.Reader = nil
78659	c.urlParams_.Set("alt", alt)
78660	c.urlParams_.Set("prettyPrint", "false")
78661	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
78662	urls += "?" + c.urlParams_.Encode()
78663	req, err := http.NewRequest("GET", urls, body)
78664	if err != nil {
78665		return nil, err
78666	}
78667	req.Header = reqHeaders
78668	googleapi.Expand(req.URL, map[string]string{
78669		"project": c.project,
78670	})
78671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78672}
78673
78674// Do executes the "compute.interconnectAttachments.aggregatedList" call.
78675// Exactly one of *InterconnectAttachmentAggregatedList or error will be
78676// non-nil. Any non-2xx status code is an error. Response headers are in
78677// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
78678// (if a response was returned at all) in
78679// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
78680// whether the returned error was because http.StatusNotModified was
78681// returned.
78682func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
78683	gensupport.SetOptions(c.urlParams_, opts...)
78684	res, err := c.doRequest("json")
78685	if res != nil && res.StatusCode == http.StatusNotModified {
78686		if res.Body != nil {
78687			res.Body.Close()
78688		}
78689		return nil, &googleapi.Error{
78690			Code:   res.StatusCode,
78691			Header: res.Header,
78692		}
78693	}
78694	if err != nil {
78695		return nil, err
78696	}
78697	defer googleapi.CloseBody(res)
78698	if err := googleapi.CheckResponse(res); err != nil {
78699		return nil, err
78700	}
78701	ret := &InterconnectAttachmentAggregatedList{
78702		ServerResponse: googleapi.ServerResponse{
78703			Header:         res.Header,
78704			HTTPStatusCode: res.StatusCode,
78705		},
78706	}
78707	target := &ret
78708	if err := gensupport.DecodeResponse(target, res); err != nil {
78709		return nil, err
78710	}
78711	return ret, nil
78712	// {
78713	//   "description": "Retrieves an aggregated list of interconnect attachments.",
78714	//   "httpMethod": "GET",
78715	//   "id": "compute.interconnectAttachments.aggregatedList",
78716	//   "parameterOrder": [
78717	//     "project"
78718	//   ],
78719	//   "parameters": {
78720	//     "filter": {
78721	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
78722	//       "location": "query",
78723	//       "type": "string"
78724	//     },
78725	//     "includeAllScopes": {
78726	//       "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.",
78727	//       "location": "query",
78728	//       "type": "boolean"
78729	//     },
78730	//     "maxResults": {
78731	//       "default": "500",
78732	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
78733	//       "format": "uint32",
78734	//       "location": "query",
78735	//       "minimum": "0",
78736	//       "type": "integer"
78737	//     },
78738	//     "orderBy": {
78739	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
78740	//       "location": "query",
78741	//       "type": "string"
78742	//     },
78743	//     "pageToken": {
78744	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
78745	//       "location": "query",
78746	//       "type": "string"
78747	//     },
78748	//     "project": {
78749	//       "description": "Project ID for this request.",
78750	//       "location": "path",
78751	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78752	//       "required": true,
78753	//       "type": "string"
78754	//     }
78755	//   },
78756	//   "path": "{project}/aggregated/interconnectAttachments",
78757	//   "response": {
78758	//     "$ref": "InterconnectAttachmentAggregatedList"
78759	//   },
78760	//   "scopes": [
78761	//     "https://www.googleapis.com/auth/cloud-platform",
78762	//     "https://www.googleapis.com/auth/compute",
78763	//     "https://www.googleapis.com/auth/compute.readonly"
78764	//   ]
78765	// }
78766
78767}
78768
78769// Pages invokes f for each page of results.
78770// A non-nil error returned from f will halt the iteration.
78771// The provided context supersedes any context provided to the Context method.
78772func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
78773	c.ctx_ = ctx
78774	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78775	for {
78776		x, err := c.Do()
78777		if err != nil {
78778			return err
78779		}
78780		if err := f(x); err != nil {
78781			return err
78782		}
78783		if x.NextPageToken == "" {
78784			return nil
78785		}
78786		c.PageToken(x.NextPageToken)
78787	}
78788}
78789
78790// method id "compute.interconnectAttachments.delete":
78791
78792type InterconnectAttachmentsDeleteCall struct {
78793	s                      *Service
78794	project                string
78795	region                 string
78796	interconnectAttachment string
78797	urlParams_             gensupport.URLParams
78798	ctx_                   context.Context
78799	header_                http.Header
78800}
78801
78802// Delete: Deletes the specified interconnect attachment.
78803func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
78804	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78805	c.project = project
78806	c.region = region
78807	c.interconnectAttachment = interconnectAttachment
78808	return c
78809}
78810
78811// RequestId sets the optional parameter "requestId": An optional
78812// request ID to identify requests. Specify a unique request ID so that
78813// if you must retry your request, the server will know to ignore the
78814// request if it has already been completed.
78815//
78816// For example, consider a situation where you make an initial request
78817// and the request times out. If you make the request again with the
78818// same request ID, the server can check if original operation with the
78819// same request ID was received, and if so, will ignore the second
78820// request. This prevents clients from accidentally creating duplicate
78821// commitments.
78822//
78823// The request ID must be a valid UUID with the exception that zero UUID
78824// is not supported (00000000-0000-0000-0000-000000000000).
78825func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
78826	c.urlParams_.Set("requestId", requestId)
78827	return c
78828}
78829
78830// Fields allows partial responses to be retrieved. See
78831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78832// for more information.
78833func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
78834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78835	return c
78836}
78837
78838// Context sets the context to be used in this call's Do method. Any
78839// pending HTTP request will be aborted if the provided context is
78840// canceled.
78841func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
78842	c.ctx_ = ctx
78843	return c
78844}
78845
78846// Header returns an http.Header that can be modified by the caller to
78847// add HTTP headers to the request.
78848func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
78849	if c.header_ == nil {
78850		c.header_ = make(http.Header)
78851	}
78852	return c.header_
78853}
78854
78855func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
78856	reqHeaders := make(http.Header)
78857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78858	for k, v := range c.header_ {
78859		reqHeaders[k] = v
78860	}
78861	reqHeaders.Set("User-Agent", c.s.userAgent())
78862	var body io.Reader = nil
78863	c.urlParams_.Set("alt", alt)
78864	c.urlParams_.Set("prettyPrint", "false")
78865	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
78866	urls += "?" + c.urlParams_.Encode()
78867	req, err := http.NewRequest("DELETE", urls, body)
78868	if err != nil {
78869		return nil, err
78870	}
78871	req.Header = reqHeaders
78872	googleapi.Expand(req.URL, map[string]string{
78873		"project":                c.project,
78874		"region":                 c.region,
78875		"interconnectAttachment": c.interconnectAttachment,
78876	})
78877	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78878}
78879
78880// Do executes the "compute.interconnectAttachments.delete" call.
78881// Exactly one of *Operation or error will be non-nil. Any non-2xx
78882// status code is an error. Response headers are in either
78883// *Operation.ServerResponse.Header or (if a response was returned at
78884// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78885// to check whether the returned error was because
78886// http.StatusNotModified was returned.
78887func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78888	gensupport.SetOptions(c.urlParams_, opts...)
78889	res, err := c.doRequest("json")
78890	if res != nil && res.StatusCode == http.StatusNotModified {
78891		if res.Body != nil {
78892			res.Body.Close()
78893		}
78894		return nil, &googleapi.Error{
78895			Code:   res.StatusCode,
78896			Header: res.Header,
78897		}
78898	}
78899	if err != nil {
78900		return nil, err
78901	}
78902	defer googleapi.CloseBody(res)
78903	if err := googleapi.CheckResponse(res); err != nil {
78904		return nil, err
78905	}
78906	ret := &Operation{
78907		ServerResponse: googleapi.ServerResponse{
78908			Header:         res.Header,
78909			HTTPStatusCode: res.StatusCode,
78910		},
78911	}
78912	target := &ret
78913	if err := gensupport.DecodeResponse(target, res); err != nil {
78914		return nil, err
78915	}
78916	return ret, nil
78917	// {
78918	//   "description": "Deletes the specified interconnect attachment.",
78919	//   "httpMethod": "DELETE",
78920	//   "id": "compute.interconnectAttachments.delete",
78921	//   "parameterOrder": [
78922	//     "project",
78923	//     "region",
78924	//     "interconnectAttachment"
78925	//   ],
78926	//   "parameters": {
78927	//     "interconnectAttachment": {
78928	//       "description": "Name of the interconnect attachment to delete.",
78929	//       "location": "path",
78930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78931	//       "required": true,
78932	//       "type": "string"
78933	//     },
78934	//     "project": {
78935	//       "description": "Project ID for this request.",
78936	//       "location": "path",
78937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78938	//       "required": true,
78939	//       "type": "string"
78940	//     },
78941	//     "region": {
78942	//       "description": "Name of the region for this request.",
78943	//       "location": "path",
78944	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78945	//       "required": true,
78946	//       "type": "string"
78947	//     },
78948	//     "requestId": {
78949	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78950	//       "location": "query",
78951	//       "type": "string"
78952	//     }
78953	//   },
78954	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
78955	//   "response": {
78956	//     "$ref": "Operation"
78957	//   },
78958	//   "scopes": [
78959	//     "https://www.googleapis.com/auth/cloud-platform",
78960	//     "https://www.googleapis.com/auth/compute"
78961	//   ]
78962	// }
78963
78964}
78965
78966// method id "compute.interconnectAttachments.get":
78967
78968type InterconnectAttachmentsGetCall struct {
78969	s                      *Service
78970	project                string
78971	region                 string
78972	interconnectAttachment string
78973	urlParams_             gensupport.URLParams
78974	ifNoneMatch_           string
78975	ctx_                   context.Context
78976	header_                http.Header
78977}
78978
78979// Get: Returns the specified interconnect attachment.
78980func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
78981	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78982	c.project = project
78983	c.region = region
78984	c.interconnectAttachment = interconnectAttachment
78985	return c
78986}
78987
78988// Fields allows partial responses to be retrieved. See
78989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78990// for more information.
78991func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
78992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78993	return c
78994}
78995
78996// IfNoneMatch sets the optional parameter which makes the operation
78997// fail if the object's ETag matches the given value. This is useful for
78998// getting updates only after the object has changed since the last
78999// request. Use googleapi.IsNotModified to check whether the response
79000// error from Do is the result of In-None-Match.
79001func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
79002	c.ifNoneMatch_ = entityTag
79003	return c
79004}
79005
79006// Context sets the context to be used in this call's Do method. Any
79007// pending HTTP request will be aborted if the provided context is
79008// canceled.
79009func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
79010	c.ctx_ = ctx
79011	return c
79012}
79013
79014// Header returns an http.Header that can be modified by the caller to
79015// add HTTP headers to the request.
79016func (c *InterconnectAttachmentsGetCall) Header() http.Header {
79017	if c.header_ == nil {
79018		c.header_ = make(http.Header)
79019	}
79020	return c.header_
79021}
79022
79023func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
79024	reqHeaders := make(http.Header)
79025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79026	for k, v := range c.header_ {
79027		reqHeaders[k] = v
79028	}
79029	reqHeaders.Set("User-Agent", c.s.userAgent())
79030	if c.ifNoneMatch_ != "" {
79031		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79032	}
79033	var body io.Reader = nil
79034	c.urlParams_.Set("alt", alt)
79035	c.urlParams_.Set("prettyPrint", "false")
79036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
79037	urls += "?" + c.urlParams_.Encode()
79038	req, err := http.NewRequest("GET", urls, body)
79039	if err != nil {
79040		return nil, err
79041	}
79042	req.Header = reqHeaders
79043	googleapi.Expand(req.URL, map[string]string{
79044		"project":                c.project,
79045		"region":                 c.region,
79046		"interconnectAttachment": c.interconnectAttachment,
79047	})
79048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79049}
79050
79051// Do executes the "compute.interconnectAttachments.get" call.
79052// Exactly one of *InterconnectAttachment or error will be non-nil. Any
79053// non-2xx status code is an error. Response headers are in either
79054// *InterconnectAttachment.ServerResponse.Header or (if a response was
79055// returned at all) in error.(*googleapi.Error).Header. Use
79056// googleapi.IsNotModified to check whether the returned error was
79057// because http.StatusNotModified was returned.
79058func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
79059	gensupport.SetOptions(c.urlParams_, opts...)
79060	res, err := c.doRequest("json")
79061	if res != nil && res.StatusCode == http.StatusNotModified {
79062		if res.Body != nil {
79063			res.Body.Close()
79064		}
79065		return nil, &googleapi.Error{
79066			Code:   res.StatusCode,
79067			Header: res.Header,
79068		}
79069	}
79070	if err != nil {
79071		return nil, err
79072	}
79073	defer googleapi.CloseBody(res)
79074	if err := googleapi.CheckResponse(res); err != nil {
79075		return nil, err
79076	}
79077	ret := &InterconnectAttachment{
79078		ServerResponse: googleapi.ServerResponse{
79079			Header:         res.Header,
79080			HTTPStatusCode: res.StatusCode,
79081		},
79082	}
79083	target := &ret
79084	if err := gensupport.DecodeResponse(target, res); err != nil {
79085		return nil, err
79086	}
79087	return ret, nil
79088	// {
79089	//   "description": "Returns the specified interconnect attachment.",
79090	//   "httpMethod": "GET",
79091	//   "id": "compute.interconnectAttachments.get",
79092	//   "parameterOrder": [
79093	//     "project",
79094	//     "region",
79095	//     "interconnectAttachment"
79096	//   ],
79097	//   "parameters": {
79098	//     "interconnectAttachment": {
79099	//       "description": "Name of the interconnect attachment to return.",
79100	//       "location": "path",
79101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79102	//       "required": true,
79103	//       "type": "string"
79104	//     },
79105	//     "project": {
79106	//       "description": "Project ID for this request.",
79107	//       "location": "path",
79108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79109	//       "required": true,
79110	//       "type": "string"
79111	//     },
79112	//     "region": {
79113	//       "description": "Name of the region for this request.",
79114	//       "location": "path",
79115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79116	//       "required": true,
79117	//       "type": "string"
79118	//     }
79119	//   },
79120	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
79121	//   "response": {
79122	//     "$ref": "InterconnectAttachment"
79123	//   },
79124	//   "scopes": [
79125	//     "https://www.googleapis.com/auth/cloud-platform",
79126	//     "https://www.googleapis.com/auth/compute",
79127	//     "https://www.googleapis.com/auth/compute.readonly"
79128	//   ]
79129	// }
79130
79131}
79132
79133// method id "compute.interconnectAttachments.insert":
79134
79135type InterconnectAttachmentsInsertCall struct {
79136	s                      *Service
79137	project                string
79138	region                 string
79139	interconnectattachment *InterconnectAttachment
79140	urlParams_             gensupport.URLParams
79141	ctx_                   context.Context
79142	header_                http.Header
79143}
79144
79145// Insert: Creates an InterconnectAttachment in the specified project
79146// using the data included in the request.
79147func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
79148	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79149	c.project = project
79150	c.region = region
79151	c.interconnectattachment = interconnectattachment
79152	return c
79153}
79154
79155// RequestId sets the optional parameter "requestId": An optional
79156// request ID to identify requests. Specify a unique request ID so that
79157// if you must retry your request, the server will know to ignore the
79158// request if it has already been completed.
79159//
79160// For example, consider a situation where you make an initial request
79161// and the request times out. If you make the request again with the
79162// same request ID, the server can check if original operation with the
79163// same request ID was received, and if so, will ignore the second
79164// request. This prevents clients from accidentally creating duplicate
79165// commitments.
79166//
79167// The request ID must be a valid UUID with the exception that zero UUID
79168// is not supported (00000000-0000-0000-0000-000000000000).
79169func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
79170	c.urlParams_.Set("requestId", requestId)
79171	return c
79172}
79173
79174// ValidateOnly sets the optional parameter "validateOnly": If true, the
79175// request will not be committed.
79176func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
79177	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
79178	return c
79179}
79180
79181// Fields allows partial responses to be retrieved. See
79182// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79183// for more information.
79184func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
79185	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79186	return c
79187}
79188
79189// Context sets the context to be used in this call's Do method. Any
79190// pending HTTP request will be aborted if the provided context is
79191// canceled.
79192func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
79193	c.ctx_ = ctx
79194	return c
79195}
79196
79197// Header returns an http.Header that can be modified by the caller to
79198// add HTTP headers to the request.
79199func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
79200	if c.header_ == nil {
79201		c.header_ = make(http.Header)
79202	}
79203	return c.header_
79204}
79205
79206func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
79207	reqHeaders := make(http.Header)
79208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79209	for k, v := range c.header_ {
79210		reqHeaders[k] = v
79211	}
79212	reqHeaders.Set("User-Agent", c.s.userAgent())
79213	var body io.Reader = nil
79214	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
79215	if err != nil {
79216		return nil, err
79217	}
79218	reqHeaders.Set("Content-Type", "application/json")
79219	c.urlParams_.Set("alt", alt)
79220	c.urlParams_.Set("prettyPrint", "false")
79221	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
79222	urls += "?" + c.urlParams_.Encode()
79223	req, err := http.NewRequest("POST", urls, body)
79224	if err != nil {
79225		return nil, err
79226	}
79227	req.Header = reqHeaders
79228	googleapi.Expand(req.URL, map[string]string{
79229		"project": c.project,
79230		"region":  c.region,
79231	})
79232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79233}
79234
79235// Do executes the "compute.interconnectAttachments.insert" call.
79236// Exactly one of *Operation or error will be non-nil. Any non-2xx
79237// status code is an error. Response headers are in either
79238// *Operation.ServerResponse.Header or (if a response was returned at
79239// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79240// to check whether the returned error was because
79241// http.StatusNotModified was returned.
79242func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79243	gensupport.SetOptions(c.urlParams_, opts...)
79244	res, err := c.doRequest("json")
79245	if res != nil && res.StatusCode == http.StatusNotModified {
79246		if res.Body != nil {
79247			res.Body.Close()
79248		}
79249		return nil, &googleapi.Error{
79250			Code:   res.StatusCode,
79251			Header: res.Header,
79252		}
79253	}
79254	if err != nil {
79255		return nil, err
79256	}
79257	defer googleapi.CloseBody(res)
79258	if err := googleapi.CheckResponse(res); err != nil {
79259		return nil, err
79260	}
79261	ret := &Operation{
79262		ServerResponse: googleapi.ServerResponse{
79263			Header:         res.Header,
79264			HTTPStatusCode: res.StatusCode,
79265		},
79266	}
79267	target := &ret
79268	if err := gensupport.DecodeResponse(target, res); err != nil {
79269		return nil, err
79270	}
79271	return ret, nil
79272	// {
79273	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
79274	//   "httpMethod": "POST",
79275	//   "id": "compute.interconnectAttachments.insert",
79276	//   "parameterOrder": [
79277	//     "project",
79278	//     "region"
79279	//   ],
79280	//   "parameters": {
79281	//     "project": {
79282	//       "description": "Project ID for this request.",
79283	//       "location": "path",
79284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79285	//       "required": true,
79286	//       "type": "string"
79287	//     },
79288	//     "region": {
79289	//       "description": "Name of the region for this request.",
79290	//       "location": "path",
79291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79292	//       "required": true,
79293	//       "type": "string"
79294	//     },
79295	//     "requestId": {
79296	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79297	//       "location": "query",
79298	//       "type": "string"
79299	//     },
79300	//     "validateOnly": {
79301	//       "description": "If true, the request will not be committed.",
79302	//       "location": "query",
79303	//       "type": "boolean"
79304	//     }
79305	//   },
79306	//   "path": "{project}/regions/{region}/interconnectAttachments",
79307	//   "request": {
79308	//     "$ref": "InterconnectAttachment"
79309	//   },
79310	//   "response": {
79311	//     "$ref": "Operation"
79312	//   },
79313	//   "scopes": [
79314	//     "https://www.googleapis.com/auth/cloud-platform",
79315	//     "https://www.googleapis.com/auth/compute"
79316	//   ]
79317	// }
79318
79319}
79320
79321// method id "compute.interconnectAttachments.list":
79322
79323type InterconnectAttachmentsListCall struct {
79324	s            *Service
79325	project      string
79326	region       string
79327	urlParams_   gensupport.URLParams
79328	ifNoneMatch_ string
79329	ctx_         context.Context
79330	header_      http.Header
79331}
79332
79333// List: Retrieves the list of interconnect attachments contained within
79334// the specified region.
79335func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
79336	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79337	c.project = project
79338	c.region = region
79339	return c
79340}
79341
79342// Filter sets the optional parameter "filter": A filter expression that
79343// filters resources listed in the response. The expression must specify
79344// the field name, a comparison operator, and the value that you want to
79345// use for filtering. The value must be a string, a number, or a
79346// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79347// `<`.
79348//
79349// For example, if you are filtering Compute Engine instances, you can
79350// exclude instances named `example-instance` by specifying `name !=
79351// example-instance`.
79352//
79353// You can also filter nested fields. For example, you could specify
79354// `scheduling.automaticRestart = false` to include instances only if
79355// they are not scheduled for automatic restarts. You can use filtering
79356// on nested fields to filter based on resource labels.
79357//
79358// To filter on multiple expressions, provide each separate expression
79359// within parentheses. For example: ``` (scheduling.automaticRestart =
79360// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79361// is an `AND` expression. However, you can include `AND` and `OR`
79362// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79363// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79364// (scheduling.automaticRestart = true) ```
79365func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
79366	c.urlParams_.Set("filter", filter)
79367	return c
79368}
79369
79370// MaxResults sets the optional parameter "maxResults": The maximum
79371// number of results per page that should be returned. If the number of
79372// available results is larger than `maxResults`, Compute Engine returns
79373// a `nextPageToken` that can be used to get the next page of results in
79374// subsequent list requests. Acceptable values are `0` to `500`,
79375// inclusive. (Default: `500`)
79376func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
79377	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79378	return c
79379}
79380
79381// OrderBy sets the optional parameter "orderBy": Sorts list results by
79382// a certain order. By default, results are returned in alphanumerical
79383// order based on the resource name.
79384//
79385// You can also sort results in descending order based on the creation
79386// timestamp using `orderBy="creationTimestamp desc". This sorts
79387// results based on the `creationTimestamp` field in reverse
79388// chronological order (newest result first). Use this to sort resources
79389// like operations so that the newest operation is returned
79390// first.
79391//
79392// Currently, only sorting by `name` or `creationTimestamp desc` is
79393// supported.
79394func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
79395	c.urlParams_.Set("orderBy", orderBy)
79396	return c
79397}
79398
79399// PageToken sets the optional parameter "pageToken": Specifies a page
79400// token to use. Set `pageToken` to the `nextPageToken` returned by a
79401// previous list request to get the next page of results.
79402func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
79403	c.urlParams_.Set("pageToken", pageToken)
79404	return c
79405}
79406
79407// Fields allows partial responses to be retrieved. See
79408// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79409// for more information.
79410func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
79411	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79412	return c
79413}
79414
79415// IfNoneMatch sets the optional parameter which makes the operation
79416// fail if the object's ETag matches the given value. This is useful for
79417// getting updates only after the object has changed since the last
79418// request. Use googleapi.IsNotModified to check whether the response
79419// error from Do is the result of In-None-Match.
79420func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
79421	c.ifNoneMatch_ = entityTag
79422	return c
79423}
79424
79425// Context sets the context to be used in this call's Do method. Any
79426// pending HTTP request will be aborted if the provided context is
79427// canceled.
79428func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
79429	c.ctx_ = ctx
79430	return c
79431}
79432
79433// Header returns an http.Header that can be modified by the caller to
79434// add HTTP headers to the request.
79435func (c *InterconnectAttachmentsListCall) Header() http.Header {
79436	if c.header_ == nil {
79437		c.header_ = make(http.Header)
79438	}
79439	return c.header_
79440}
79441
79442func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
79443	reqHeaders := make(http.Header)
79444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79445	for k, v := range c.header_ {
79446		reqHeaders[k] = v
79447	}
79448	reqHeaders.Set("User-Agent", c.s.userAgent())
79449	if c.ifNoneMatch_ != "" {
79450		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79451	}
79452	var body io.Reader = nil
79453	c.urlParams_.Set("alt", alt)
79454	c.urlParams_.Set("prettyPrint", "false")
79455	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
79456	urls += "?" + c.urlParams_.Encode()
79457	req, err := http.NewRequest("GET", urls, body)
79458	if err != nil {
79459		return nil, err
79460	}
79461	req.Header = reqHeaders
79462	googleapi.Expand(req.URL, map[string]string{
79463		"project": c.project,
79464		"region":  c.region,
79465	})
79466	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79467}
79468
79469// Do executes the "compute.interconnectAttachments.list" call.
79470// Exactly one of *InterconnectAttachmentList or error will be non-nil.
79471// Any non-2xx status code is an error. Response headers are in either
79472// *InterconnectAttachmentList.ServerResponse.Header or (if a response
79473// was returned at all) in error.(*googleapi.Error).Header. Use
79474// googleapi.IsNotModified to check whether the returned error was
79475// because http.StatusNotModified was returned.
79476func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
79477	gensupport.SetOptions(c.urlParams_, opts...)
79478	res, err := c.doRequest("json")
79479	if res != nil && res.StatusCode == http.StatusNotModified {
79480		if res.Body != nil {
79481			res.Body.Close()
79482		}
79483		return nil, &googleapi.Error{
79484			Code:   res.StatusCode,
79485			Header: res.Header,
79486		}
79487	}
79488	if err != nil {
79489		return nil, err
79490	}
79491	defer googleapi.CloseBody(res)
79492	if err := googleapi.CheckResponse(res); err != nil {
79493		return nil, err
79494	}
79495	ret := &InterconnectAttachmentList{
79496		ServerResponse: googleapi.ServerResponse{
79497			Header:         res.Header,
79498			HTTPStatusCode: res.StatusCode,
79499		},
79500	}
79501	target := &ret
79502	if err := gensupport.DecodeResponse(target, res); err != nil {
79503		return nil, err
79504	}
79505	return ret, nil
79506	// {
79507	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
79508	//   "httpMethod": "GET",
79509	//   "id": "compute.interconnectAttachments.list",
79510	//   "parameterOrder": [
79511	//     "project",
79512	//     "region"
79513	//   ],
79514	//   "parameters": {
79515	//     "filter": {
79516	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
79517	//       "location": "query",
79518	//       "type": "string"
79519	//     },
79520	//     "maxResults": {
79521	//       "default": "500",
79522	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
79523	//       "format": "uint32",
79524	//       "location": "query",
79525	//       "minimum": "0",
79526	//       "type": "integer"
79527	//     },
79528	//     "orderBy": {
79529	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
79530	//       "location": "query",
79531	//       "type": "string"
79532	//     },
79533	//     "pageToken": {
79534	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
79535	//       "location": "query",
79536	//       "type": "string"
79537	//     },
79538	//     "project": {
79539	//       "description": "Project ID for this request.",
79540	//       "location": "path",
79541	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79542	//       "required": true,
79543	//       "type": "string"
79544	//     },
79545	//     "region": {
79546	//       "description": "Name of the region for this request.",
79547	//       "location": "path",
79548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79549	//       "required": true,
79550	//       "type": "string"
79551	//     }
79552	//   },
79553	//   "path": "{project}/regions/{region}/interconnectAttachments",
79554	//   "response": {
79555	//     "$ref": "InterconnectAttachmentList"
79556	//   },
79557	//   "scopes": [
79558	//     "https://www.googleapis.com/auth/cloud-platform",
79559	//     "https://www.googleapis.com/auth/compute",
79560	//     "https://www.googleapis.com/auth/compute.readonly"
79561	//   ]
79562	// }
79563
79564}
79565
79566// Pages invokes f for each page of results.
79567// A non-nil error returned from f will halt the iteration.
79568// The provided context supersedes any context provided to the Context method.
79569func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
79570	c.ctx_ = ctx
79571	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79572	for {
79573		x, err := c.Do()
79574		if err != nil {
79575			return err
79576		}
79577		if err := f(x); err != nil {
79578			return err
79579		}
79580		if x.NextPageToken == "" {
79581			return nil
79582		}
79583		c.PageToken(x.NextPageToken)
79584	}
79585}
79586
79587// method id "compute.interconnectAttachments.patch":
79588
79589type InterconnectAttachmentsPatchCall struct {
79590	s                      *Service
79591	project                string
79592	region                 string
79593	interconnectAttachment string
79594	interconnectattachment *InterconnectAttachment
79595	urlParams_             gensupport.URLParams
79596	ctx_                   context.Context
79597	header_                http.Header
79598}
79599
79600// Patch: Updates the specified interconnect attachment with the data
79601// included in the request. This method supports PATCH semantics and
79602// uses the JSON merge patch format and processing rules.
79603func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
79604	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79605	c.project = project
79606	c.region = region
79607	c.interconnectAttachment = interconnectAttachment
79608	c.interconnectattachment = interconnectattachment
79609	return c
79610}
79611
79612// RequestId sets the optional parameter "requestId": An optional
79613// request ID to identify requests. Specify a unique request ID so that
79614// if you must retry your request, the server will know to ignore the
79615// request if it has already been completed.
79616//
79617// For example, consider a situation where you make an initial request
79618// and the request times out. If you make the request again with the
79619// same request ID, the server can check if original operation with the
79620// same request ID was received, and if so, will ignore the second
79621// request. This prevents clients from accidentally creating duplicate
79622// commitments.
79623//
79624// The request ID must be a valid UUID with the exception that zero UUID
79625// is not supported (00000000-0000-0000-0000-000000000000).
79626func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
79627	c.urlParams_.Set("requestId", requestId)
79628	return c
79629}
79630
79631// Fields allows partial responses to be retrieved. See
79632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79633// for more information.
79634func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
79635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79636	return c
79637}
79638
79639// Context sets the context to be used in this call's Do method. Any
79640// pending HTTP request will be aborted if the provided context is
79641// canceled.
79642func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
79643	c.ctx_ = ctx
79644	return c
79645}
79646
79647// Header returns an http.Header that can be modified by the caller to
79648// add HTTP headers to the request.
79649func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
79650	if c.header_ == nil {
79651		c.header_ = make(http.Header)
79652	}
79653	return c.header_
79654}
79655
79656func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
79657	reqHeaders := make(http.Header)
79658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79659	for k, v := range c.header_ {
79660		reqHeaders[k] = v
79661	}
79662	reqHeaders.Set("User-Agent", c.s.userAgent())
79663	var body io.Reader = nil
79664	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
79665	if err != nil {
79666		return nil, err
79667	}
79668	reqHeaders.Set("Content-Type", "application/json")
79669	c.urlParams_.Set("alt", alt)
79670	c.urlParams_.Set("prettyPrint", "false")
79671	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
79672	urls += "?" + c.urlParams_.Encode()
79673	req, err := http.NewRequest("PATCH", urls, body)
79674	if err != nil {
79675		return nil, err
79676	}
79677	req.Header = reqHeaders
79678	googleapi.Expand(req.URL, map[string]string{
79679		"project":                c.project,
79680		"region":                 c.region,
79681		"interconnectAttachment": c.interconnectAttachment,
79682	})
79683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79684}
79685
79686// Do executes the "compute.interconnectAttachments.patch" call.
79687// Exactly one of *Operation or error will be non-nil. Any non-2xx
79688// status code is an error. Response headers are in either
79689// *Operation.ServerResponse.Header or (if a response was returned at
79690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79691// to check whether the returned error was because
79692// http.StatusNotModified was returned.
79693func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79694	gensupport.SetOptions(c.urlParams_, opts...)
79695	res, err := c.doRequest("json")
79696	if res != nil && res.StatusCode == http.StatusNotModified {
79697		if res.Body != nil {
79698			res.Body.Close()
79699		}
79700		return nil, &googleapi.Error{
79701			Code:   res.StatusCode,
79702			Header: res.Header,
79703		}
79704	}
79705	if err != nil {
79706		return nil, err
79707	}
79708	defer googleapi.CloseBody(res)
79709	if err := googleapi.CheckResponse(res); err != nil {
79710		return nil, err
79711	}
79712	ret := &Operation{
79713		ServerResponse: googleapi.ServerResponse{
79714			Header:         res.Header,
79715			HTTPStatusCode: res.StatusCode,
79716		},
79717	}
79718	target := &ret
79719	if err := gensupport.DecodeResponse(target, res); err != nil {
79720		return nil, err
79721	}
79722	return ret, nil
79723	// {
79724	//   "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.",
79725	//   "httpMethod": "PATCH",
79726	//   "id": "compute.interconnectAttachments.patch",
79727	//   "parameterOrder": [
79728	//     "project",
79729	//     "region",
79730	//     "interconnectAttachment"
79731	//   ],
79732	//   "parameters": {
79733	//     "interconnectAttachment": {
79734	//       "description": "Name of the interconnect attachment to patch.",
79735	//       "location": "path",
79736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79737	//       "required": true,
79738	//       "type": "string"
79739	//     },
79740	//     "project": {
79741	//       "description": "Project ID for this request.",
79742	//       "location": "path",
79743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79744	//       "required": true,
79745	//       "type": "string"
79746	//     },
79747	//     "region": {
79748	//       "description": "Name of the region scoping this request.",
79749	//       "location": "path",
79750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79751	//       "required": true,
79752	//       "type": "string"
79753	//     },
79754	//     "requestId": {
79755	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79756	//       "location": "query",
79757	//       "type": "string"
79758	//     }
79759	//   },
79760	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
79761	//   "request": {
79762	//     "$ref": "InterconnectAttachment"
79763	//   },
79764	//   "response": {
79765	//     "$ref": "Operation"
79766	//   },
79767	//   "scopes": [
79768	//     "https://www.googleapis.com/auth/cloud-platform",
79769	//     "https://www.googleapis.com/auth/compute"
79770	//   ]
79771	// }
79772
79773}
79774
79775// method id "compute.interconnectLocations.get":
79776
79777type InterconnectLocationsGetCall struct {
79778	s                    *Service
79779	project              string
79780	interconnectLocation string
79781	urlParams_           gensupport.URLParams
79782	ifNoneMatch_         string
79783	ctx_                 context.Context
79784	header_              http.Header
79785}
79786
79787// Get: Returns the details for the specified interconnect location.
79788// Gets a list of available interconnect locations by making a list()
79789// request.
79790func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
79791	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79792	c.project = project
79793	c.interconnectLocation = interconnectLocation
79794	return c
79795}
79796
79797// Fields allows partial responses to be retrieved. See
79798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79799// for more information.
79800func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
79801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79802	return c
79803}
79804
79805// IfNoneMatch sets the optional parameter which makes the operation
79806// fail if the object's ETag matches the given value. This is useful for
79807// getting updates only after the object has changed since the last
79808// request. Use googleapi.IsNotModified to check whether the response
79809// error from Do is the result of In-None-Match.
79810func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
79811	c.ifNoneMatch_ = entityTag
79812	return c
79813}
79814
79815// Context sets the context to be used in this call's Do method. Any
79816// pending HTTP request will be aborted if the provided context is
79817// canceled.
79818func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
79819	c.ctx_ = ctx
79820	return c
79821}
79822
79823// Header returns an http.Header that can be modified by the caller to
79824// add HTTP headers to the request.
79825func (c *InterconnectLocationsGetCall) Header() http.Header {
79826	if c.header_ == nil {
79827		c.header_ = make(http.Header)
79828	}
79829	return c.header_
79830}
79831
79832func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
79833	reqHeaders := make(http.Header)
79834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79835	for k, v := range c.header_ {
79836		reqHeaders[k] = v
79837	}
79838	reqHeaders.Set("User-Agent", c.s.userAgent())
79839	if c.ifNoneMatch_ != "" {
79840		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79841	}
79842	var body io.Reader = nil
79843	c.urlParams_.Set("alt", alt)
79844	c.urlParams_.Set("prettyPrint", "false")
79845	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
79846	urls += "?" + c.urlParams_.Encode()
79847	req, err := http.NewRequest("GET", urls, body)
79848	if err != nil {
79849		return nil, err
79850	}
79851	req.Header = reqHeaders
79852	googleapi.Expand(req.URL, map[string]string{
79853		"project":              c.project,
79854		"interconnectLocation": c.interconnectLocation,
79855	})
79856	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79857}
79858
79859// Do executes the "compute.interconnectLocations.get" call.
79860// Exactly one of *InterconnectLocation or error will be non-nil. Any
79861// non-2xx status code is an error. Response headers are in either
79862// *InterconnectLocation.ServerResponse.Header or (if a response was
79863// returned at all) in error.(*googleapi.Error).Header. Use
79864// googleapi.IsNotModified to check whether the returned error was
79865// because http.StatusNotModified was returned.
79866func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
79867	gensupport.SetOptions(c.urlParams_, opts...)
79868	res, err := c.doRequest("json")
79869	if res != nil && res.StatusCode == http.StatusNotModified {
79870		if res.Body != nil {
79871			res.Body.Close()
79872		}
79873		return nil, &googleapi.Error{
79874			Code:   res.StatusCode,
79875			Header: res.Header,
79876		}
79877	}
79878	if err != nil {
79879		return nil, err
79880	}
79881	defer googleapi.CloseBody(res)
79882	if err := googleapi.CheckResponse(res); err != nil {
79883		return nil, err
79884	}
79885	ret := &InterconnectLocation{
79886		ServerResponse: googleapi.ServerResponse{
79887			Header:         res.Header,
79888			HTTPStatusCode: res.StatusCode,
79889		},
79890	}
79891	target := &ret
79892	if err := gensupport.DecodeResponse(target, res); err != nil {
79893		return nil, err
79894	}
79895	return ret, nil
79896	// {
79897	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
79898	//   "httpMethod": "GET",
79899	//   "id": "compute.interconnectLocations.get",
79900	//   "parameterOrder": [
79901	//     "project",
79902	//     "interconnectLocation"
79903	//   ],
79904	//   "parameters": {
79905	//     "interconnectLocation": {
79906	//       "description": "Name of the interconnect location to return.",
79907	//       "location": "path",
79908	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79909	//       "required": true,
79910	//       "type": "string"
79911	//     },
79912	//     "project": {
79913	//       "description": "Project ID for this request.",
79914	//       "location": "path",
79915	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79916	//       "required": true,
79917	//       "type": "string"
79918	//     }
79919	//   },
79920	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
79921	//   "response": {
79922	//     "$ref": "InterconnectLocation"
79923	//   },
79924	//   "scopes": [
79925	//     "https://www.googleapis.com/auth/cloud-platform",
79926	//     "https://www.googleapis.com/auth/compute",
79927	//     "https://www.googleapis.com/auth/compute.readonly"
79928	//   ]
79929	// }
79930
79931}
79932
79933// method id "compute.interconnectLocations.list":
79934
79935type InterconnectLocationsListCall struct {
79936	s            *Service
79937	project      string
79938	urlParams_   gensupport.URLParams
79939	ifNoneMatch_ string
79940	ctx_         context.Context
79941	header_      http.Header
79942}
79943
79944// List: Retrieves the list of interconnect locations available to the
79945// specified project.
79946func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
79947	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79948	c.project = project
79949	return c
79950}
79951
79952// Filter sets the optional parameter "filter": A filter expression that
79953// filters resources listed in the response. The expression must specify
79954// the field name, a comparison operator, and the value that you want to
79955// use for filtering. The value must be a string, a number, or a
79956// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79957// `<`.
79958//
79959// For example, if you are filtering Compute Engine instances, you can
79960// exclude instances named `example-instance` by specifying `name !=
79961// example-instance`.
79962//
79963// You can also filter nested fields. For example, you could specify
79964// `scheduling.automaticRestart = false` to include instances only if
79965// they are not scheduled for automatic restarts. You can use filtering
79966// on nested fields to filter based on resource labels.
79967//
79968// To filter on multiple expressions, provide each separate expression
79969// within parentheses. For example: ``` (scheduling.automaticRestart =
79970// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79971// is an `AND` expression. However, you can include `AND` and `OR`
79972// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79973// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79974// (scheduling.automaticRestart = true) ```
79975func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
79976	c.urlParams_.Set("filter", filter)
79977	return c
79978}
79979
79980// MaxResults sets the optional parameter "maxResults": The maximum
79981// number of results per page that should be returned. If the number of
79982// available results is larger than `maxResults`, Compute Engine returns
79983// a `nextPageToken` that can be used to get the next page of results in
79984// subsequent list requests. Acceptable values are `0` to `500`,
79985// inclusive. (Default: `500`)
79986func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
79987	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79988	return c
79989}
79990
79991// OrderBy sets the optional parameter "orderBy": Sorts list results by
79992// a certain order. By default, results are returned in alphanumerical
79993// order based on the resource name.
79994//
79995// You can also sort results in descending order based on the creation
79996// timestamp using `orderBy="creationTimestamp desc". This sorts
79997// results based on the `creationTimestamp` field in reverse
79998// chronological order (newest result first). Use this to sort resources
79999// like operations so that the newest operation is returned
80000// first.
80001//
80002// Currently, only sorting by `name` or `creationTimestamp desc` is
80003// supported.
80004func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
80005	c.urlParams_.Set("orderBy", orderBy)
80006	return c
80007}
80008
80009// PageToken sets the optional parameter "pageToken": Specifies a page
80010// token to use. Set `pageToken` to the `nextPageToken` returned by a
80011// previous list request to get the next page of results.
80012func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
80013	c.urlParams_.Set("pageToken", pageToken)
80014	return c
80015}
80016
80017// Fields allows partial responses to be retrieved. See
80018// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80019// for more information.
80020func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
80021	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80022	return c
80023}
80024
80025// IfNoneMatch sets the optional parameter which makes the operation
80026// fail if the object's ETag matches the given value. This is useful for
80027// getting updates only after the object has changed since the last
80028// request. Use googleapi.IsNotModified to check whether the response
80029// error from Do is the result of In-None-Match.
80030func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
80031	c.ifNoneMatch_ = entityTag
80032	return c
80033}
80034
80035// Context sets the context to be used in this call's Do method. Any
80036// pending HTTP request will be aborted if the provided context is
80037// canceled.
80038func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
80039	c.ctx_ = ctx
80040	return c
80041}
80042
80043// Header returns an http.Header that can be modified by the caller to
80044// add HTTP headers to the request.
80045func (c *InterconnectLocationsListCall) Header() http.Header {
80046	if c.header_ == nil {
80047		c.header_ = make(http.Header)
80048	}
80049	return c.header_
80050}
80051
80052func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
80053	reqHeaders := make(http.Header)
80054	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80055	for k, v := range c.header_ {
80056		reqHeaders[k] = v
80057	}
80058	reqHeaders.Set("User-Agent", c.s.userAgent())
80059	if c.ifNoneMatch_ != "" {
80060		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80061	}
80062	var body io.Reader = nil
80063	c.urlParams_.Set("alt", alt)
80064	c.urlParams_.Set("prettyPrint", "false")
80065	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
80066	urls += "?" + c.urlParams_.Encode()
80067	req, err := http.NewRequest("GET", urls, body)
80068	if err != nil {
80069		return nil, err
80070	}
80071	req.Header = reqHeaders
80072	googleapi.Expand(req.URL, map[string]string{
80073		"project": c.project,
80074	})
80075	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80076}
80077
80078// Do executes the "compute.interconnectLocations.list" call.
80079// Exactly one of *InterconnectLocationList or error will be non-nil.
80080// Any non-2xx status code is an error. Response headers are in either
80081// *InterconnectLocationList.ServerResponse.Header or (if a response was
80082// returned at all) in error.(*googleapi.Error).Header. Use
80083// googleapi.IsNotModified to check whether the returned error was
80084// because http.StatusNotModified was returned.
80085func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
80086	gensupport.SetOptions(c.urlParams_, opts...)
80087	res, err := c.doRequest("json")
80088	if res != nil && res.StatusCode == http.StatusNotModified {
80089		if res.Body != nil {
80090			res.Body.Close()
80091		}
80092		return nil, &googleapi.Error{
80093			Code:   res.StatusCode,
80094			Header: res.Header,
80095		}
80096	}
80097	if err != nil {
80098		return nil, err
80099	}
80100	defer googleapi.CloseBody(res)
80101	if err := googleapi.CheckResponse(res); err != nil {
80102		return nil, err
80103	}
80104	ret := &InterconnectLocationList{
80105		ServerResponse: googleapi.ServerResponse{
80106			Header:         res.Header,
80107			HTTPStatusCode: res.StatusCode,
80108		},
80109	}
80110	target := &ret
80111	if err := gensupport.DecodeResponse(target, res); err != nil {
80112		return nil, err
80113	}
80114	return ret, nil
80115	// {
80116	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
80117	//   "httpMethod": "GET",
80118	//   "id": "compute.interconnectLocations.list",
80119	//   "parameterOrder": [
80120	//     "project"
80121	//   ],
80122	//   "parameters": {
80123	//     "filter": {
80124	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
80125	//       "location": "query",
80126	//       "type": "string"
80127	//     },
80128	//     "maxResults": {
80129	//       "default": "500",
80130	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
80131	//       "format": "uint32",
80132	//       "location": "query",
80133	//       "minimum": "0",
80134	//       "type": "integer"
80135	//     },
80136	//     "orderBy": {
80137	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
80138	//       "location": "query",
80139	//       "type": "string"
80140	//     },
80141	//     "pageToken": {
80142	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
80143	//       "location": "query",
80144	//       "type": "string"
80145	//     },
80146	//     "project": {
80147	//       "description": "Project ID for this request.",
80148	//       "location": "path",
80149	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80150	//       "required": true,
80151	//       "type": "string"
80152	//     }
80153	//   },
80154	//   "path": "{project}/global/interconnectLocations",
80155	//   "response": {
80156	//     "$ref": "InterconnectLocationList"
80157	//   },
80158	//   "scopes": [
80159	//     "https://www.googleapis.com/auth/cloud-platform",
80160	//     "https://www.googleapis.com/auth/compute",
80161	//     "https://www.googleapis.com/auth/compute.readonly"
80162	//   ]
80163	// }
80164
80165}
80166
80167// Pages invokes f for each page of results.
80168// A non-nil error returned from f will halt the iteration.
80169// The provided context supersedes any context provided to the Context method.
80170func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
80171	c.ctx_ = ctx
80172	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80173	for {
80174		x, err := c.Do()
80175		if err != nil {
80176			return err
80177		}
80178		if err := f(x); err != nil {
80179			return err
80180		}
80181		if x.NextPageToken == "" {
80182			return nil
80183		}
80184		c.PageToken(x.NextPageToken)
80185	}
80186}
80187
80188// method id "compute.interconnects.delete":
80189
80190type InterconnectsDeleteCall struct {
80191	s            *Service
80192	project      string
80193	interconnect string
80194	urlParams_   gensupport.URLParams
80195	ctx_         context.Context
80196	header_      http.Header
80197}
80198
80199// Delete: Deletes the specified interconnect.
80200func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
80201	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80202	c.project = project
80203	c.interconnect = interconnect
80204	return c
80205}
80206
80207// RequestId sets the optional parameter "requestId": An optional
80208// request ID to identify requests. Specify a unique request ID so that
80209// if you must retry your request, the server will know to ignore the
80210// request if it has already been completed.
80211//
80212// For example, consider a situation where you make an initial request
80213// and the request times out. If you make the request again with the
80214// same request ID, the server can check if original operation with the
80215// same request ID was received, and if so, will ignore the second
80216// request. This prevents clients from accidentally creating duplicate
80217// commitments.
80218//
80219// The request ID must be a valid UUID with the exception that zero UUID
80220// is not supported (00000000-0000-0000-0000-000000000000).
80221func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
80222	c.urlParams_.Set("requestId", requestId)
80223	return c
80224}
80225
80226// Fields allows partial responses to be retrieved. See
80227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80228// for more information.
80229func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
80230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80231	return c
80232}
80233
80234// Context sets the context to be used in this call's Do method. Any
80235// pending HTTP request will be aborted if the provided context is
80236// canceled.
80237func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
80238	c.ctx_ = ctx
80239	return c
80240}
80241
80242// Header returns an http.Header that can be modified by the caller to
80243// add HTTP headers to the request.
80244func (c *InterconnectsDeleteCall) Header() http.Header {
80245	if c.header_ == nil {
80246		c.header_ = make(http.Header)
80247	}
80248	return c.header_
80249}
80250
80251func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
80252	reqHeaders := make(http.Header)
80253	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80254	for k, v := range c.header_ {
80255		reqHeaders[k] = v
80256	}
80257	reqHeaders.Set("User-Agent", c.s.userAgent())
80258	var body io.Reader = nil
80259	c.urlParams_.Set("alt", alt)
80260	c.urlParams_.Set("prettyPrint", "false")
80261	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
80262	urls += "?" + c.urlParams_.Encode()
80263	req, err := http.NewRequest("DELETE", urls, body)
80264	if err != nil {
80265		return nil, err
80266	}
80267	req.Header = reqHeaders
80268	googleapi.Expand(req.URL, map[string]string{
80269		"project":      c.project,
80270		"interconnect": c.interconnect,
80271	})
80272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80273}
80274
80275// Do executes the "compute.interconnects.delete" call.
80276// Exactly one of *Operation or error will be non-nil. Any non-2xx
80277// status code is an error. Response headers are in either
80278// *Operation.ServerResponse.Header or (if a response was returned at
80279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80280// to check whether the returned error was because
80281// http.StatusNotModified was returned.
80282func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80283	gensupport.SetOptions(c.urlParams_, opts...)
80284	res, err := c.doRequest("json")
80285	if res != nil && res.StatusCode == http.StatusNotModified {
80286		if res.Body != nil {
80287			res.Body.Close()
80288		}
80289		return nil, &googleapi.Error{
80290			Code:   res.StatusCode,
80291			Header: res.Header,
80292		}
80293	}
80294	if err != nil {
80295		return nil, err
80296	}
80297	defer googleapi.CloseBody(res)
80298	if err := googleapi.CheckResponse(res); err != nil {
80299		return nil, err
80300	}
80301	ret := &Operation{
80302		ServerResponse: googleapi.ServerResponse{
80303			Header:         res.Header,
80304			HTTPStatusCode: res.StatusCode,
80305		},
80306	}
80307	target := &ret
80308	if err := gensupport.DecodeResponse(target, res); err != nil {
80309		return nil, err
80310	}
80311	return ret, nil
80312	// {
80313	//   "description": "Deletes the specified interconnect.",
80314	//   "httpMethod": "DELETE",
80315	//   "id": "compute.interconnects.delete",
80316	//   "parameterOrder": [
80317	//     "project",
80318	//     "interconnect"
80319	//   ],
80320	//   "parameters": {
80321	//     "interconnect": {
80322	//       "description": "Name of the interconnect to delete.",
80323	//       "location": "path",
80324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80325	//       "required": true,
80326	//       "type": "string"
80327	//     },
80328	//     "project": {
80329	//       "description": "Project ID for this request.",
80330	//       "location": "path",
80331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80332	//       "required": true,
80333	//       "type": "string"
80334	//     },
80335	//     "requestId": {
80336	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80337	//       "location": "query",
80338	//       "type": "string"
80339	//     }
80340	//   },
80341	//   "path": "{project}/global/interconnects/{interconnect}",
80342	//   "response": {
80343	//     "$ref": "Operation"
80344	//   },
80345	//   "scopes": [
80346	//     "https://www.googleapis.com/auth/cloud-platform",
80347	//     "https://www.googleapis.com/auth/compute"
80348	//   ]
80349	// }
80350
80351}
80352
80353// method id "compute.interconnects.get":
80354
80355type InterconnectsGetCall struct {
80356	s            *Service
80357	project      string
80358	interconnect string
80359	urlParams_   gensupport.URLParams
80360	ifNoneMatch_ string
80361	ctx_         context.Context
80362	header_      http.Header
80363}
80364
80365// Get: Returns the specified interconnect. Get a list of available
80366// interconnects by making a list() request.
80367func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
80368	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80369	c.project = project
80370	c.interconnect = interconnect
80371	return c
80372}
80373
80374// Fields allows partial responses to be retrieved. See
80375// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80376// for more information.
80377func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
80378	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80379	return c
80380}
80381
80382// IfNoneMatch sets the optional parameter which makes the operation
80383// fail if the object's ETag matches the given value. This is useful for
80384// getting updates only after the object has changed since the last
80385// request. Use googleapi.IsNotModified to check whether the response
80386// error from Do is the result of In-None-Match.
80387func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
80388	c.ifNoneMatch_ = entityTag
80389	return c
80390}
80391
80392// Context sets the context to be used in this call's Do method. Any
80393// pending HTTP request will be aborted if the provided context is
80394// canceled.
80395func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
80396	c.ctx_ = ctx
80397	return c
80398}
80399
80400// Header returns an http.Header that can be modified by the caller to
80401// add HTTP headers to the request.
80402func (c *InterconnectsGetCall) Header() http.Header {
80403	if c.header_ == nil {
80404		c.header_ = make(http.Header)
80405	}
80406	return c.header_
80407}
80408
80409func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
80410	reqHeaders := make(http.Header)
80411	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80412	for k, v := range c.header_ {
80413		reqHeaders[k] = v
80414	}
80415	reqHeaders.Set("User-Agent", c.s.userAgent())
80416	if c.ifNoneMatch_ != "" {
80417		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80418	}
80419	var body io.Reader = nil
80420	c.urlParams_.Set("alt", alt)
80421	c.urlParams_.Set("prettyPrint", "false")
80422	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
80423	urls += "?" + c.urlParams_.Encode()
80424	req, err := http.NewRequest("GET", urls, body)
80425	if err != nil {
80426		return nil, err
80427	}
80428	req.Header = reqHeaders
80429	googleapi.Expand(req.URL, map[string]string{
80430		"project":      c.project,
80431		"interconnect": c.interconnect,
80432	})
80433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80434}
80435
80436// Do executes the "compute.interconnects.get" call.
80437// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
80438// status code is an error. Response headers are in either
80439// *Interconnect.ServerResponse.Header or (if a response was returned at
80440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80441// to check whether the returned error was because
80442// http.StatusNotModified was returned.
80443func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
80444	gensupport.SetOptions(c.urlParams_, opts...)
80445	res, err := c.doRequest("json")
80446	if res != nil && res.StatusCode == http.StatusNotModified {
80447		if res.Body != nil {
80448			res.Body.Close()
80449		}
80450		return nil, &googleapi.Error{
80451			Code:   res.StatusCode,
80452			Header: res.Header,
80453		}
80454	}
80455	if err != nil {
80456		return nil, err
80457	}
80458	defer googleapi.CloseBody(res)
80459	if err := googleapi.CheckResponse(res); err != nil {
80460		return nil, err
80461	}
80462	ret := &Interconnect{
80463		ServerResponse: googleapi.ServerResponse{
80464			Header:         res.Header,
80465			HTTPStatusCode: res.StatusCode,
80466		},
80467	}
80468	target := &ret
80469	if err := gensupport.DecodeResponse(target, res); err != nil {
80470		return nil, err
80471	}
80472	return ret, nil
80473	// {
80474	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
80475	//   "httpMethod": "GET",
80476	//   "id": "compute.interconnects.get",
80477	//   "parameterOrder": [
80478	//     "project",
80479	//     "interconnect"
80480	//   ],
80481	//   "parameters": {
80482	//     "interconnect": {
80483	//       "description": "Name of the interconnect to return.",
80484	//       "location": "path",
80485	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80486	//       "required": true,
80487	//       "type": "string"
80488	//     },
80489	//     "project": {
80490	//       "description": "Project ID for this request.",
80491	//       "location": "path",
80492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80493	//       "required": true,
80494	//       "type": "string"
80495	//     }
80496	//   },
80497	//   "path": "{project}/global/interconnects/{interconnect}",
80498	//   "response": {
80499	//     "$ref": "Interconnect"
80500	//   },
80501	//   "scopes": [
80502	//     "https://www.googleapis.com/auth/cloud-platform",
80503	//     "https://www.googleapis.com/auth/compute",
80504	//     "https://www.googleapis.com/auth/compute.readonly"
80505	//   ]
80506	// }
80507
80508}
80509
80510// method id "compute.interconnects.getDiagnostics":
80511
80512type InterconnectsGetDiagnosticsCall struct {
80513	s            *Service
80514	project      string
80515	interconnect string
80516	urlParams_   gensupport.URLParams
80517	ifNoneMatch_ string
80518	ctx_         context.Context
80519	header_      http.Header
80520}
80521
80522// GetDiagnostics: Returns the interconnectDiagnostics for the specified
80523// interconnect.
80524func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
80525	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80526	c.project = project
80527	c.interconnect = interconnect
80528	return c
80529}
80530
80531// Fields allows partial responses to be retrieved. See
80532// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80533// for more information.
80534func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
80535	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80536	return c
80537}
80538
80539// IfNoneMatch sets the optional parameter which makes the operation
80540// fail if the object's ETag matches the given value. This is useful for
80541// getting updates only after the object has changed since the last
80542// request. Use googleapi.IsNotModified to check whether the response
80543// error from Do is the result of In-None-Match.
80544func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
80545	c.ifNoneMatch_ = entityTag
80546	return c
80547}
80548
80549// Context sets the context to be used in this call's Do method. Any
80550// pending HTTP request will be aborted if the provided context is
80551// canceled.
80552func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
80553	c.ctx_ = ctx
80554	return c
80555}
80556
80557// Header returns an http.Header that can be modified by the caller to
80558// add HTTP headers to the request.
80559func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
80560	if c.header_ == nil {
80561		c.header_ = make(http.Header)
80562	}
80563	return c.header_
80564}
80565
80566func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
80567	reqHeaders := make(http.Header)
80568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80569	for k, v := range c.header_ {
80570		reqHeaders[k] = v
80571	}
80572	reqHeaders.Set("User-Agent", c.s.userAgent())
80573	if c.ifNoneMatch_ != "" {
80574		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80575	}
80576	var body io.Reader = nil
80577	c.urlParams_.Set("alt", alt)
80578	c.urlParams_.Set("prettyPrint", "false")
80579	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}/getDiagnostics")
80580	urls += "?" + c.urlParams_.Encode()
80581	req, err := http.NewRequest("GET", urls, body)
80582	if err != nil {
80583		return nil, err
80584	}
80585	req.Header = reqHeaders
80586	googleapi.Expand(req.URL, map[string]string{
80587		"project":      c.project,
80588		"interconnect": c.interconnect,
80589	})
80590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80591}
80592
80593// Do executes the "compute.interconnects.getDiagnostics" call.
80594// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
80595// non-nil. Any non-2xx status code is an error. Response headers are in
80596// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
80597// (if a response was returned at all) in
80598// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
80599// whether the returned error was because http.StatusNotModified was
80600// returned.
80601func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
80602	gensupport.SetOptions(c.urlParams_, opts...)
80603	res, err := c.doRequest("json")
80604	if res != nil && res.StatusCode == http.StatusNotModified {
80605		if res.Body != nil {
80606			res.Body.Close()
80607		}
80608		return nil, &googleapi.Error{
80609			Code:   res.StatusCode,
80610			Header: res.Header,
80611		}
80612	}
80613	if err != nil {
80614		return nil, err
80615	}
80616	defer googleapi.CloseBody(res)
80617	if err := googleapi.CheckResponse(res); err != nil {
80618		return nil, err
80619	}
80620	ret := &InterconnectsGetDiagnosticsResponse{
80621		ServerResponse: googleapi.ServerResponse{
80622			Header:         res.Header,
80623			HTTPStatusCode: res.StatusCode,
80624		},
80625	}
80626	target := &ret
80627	if err := gensupport.DecodeResponse(target, res); err != nil {
80628		return nil, err
80629	}
80630	return ret, nil
80631	// {
80632	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
80633	//   "httpMethod": "GET",
80634	//   "id": "compute.interconnects.getDiagnostics",
80635	//   "parameterOrder": [
80636	//     "project",
80637	//     "interconnect"
80638	//   ],
80639	//   "parameters": {
80640	//     "interconnect": {
80641	//       "description": "Name of the interconnect resource to query.",
80642	//       "location": "path",
80643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80644	//       "required": true,
80645	//       "type": "string"
80646	//     },
80647	//     "project": {
80648	//       "description": "Project ID for this request.",
80649	//       "location": "path",
80650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80651	//       "required": true,
80652	//       "type": "string"
80653	//     }
80654	//   },
80655	//   "path": "{project}/global/interconnects/{interconnect}/getDiagnostics",
80656	//   "response": {
80657	//     "$ref": "InterconnectsGetDiagnosticsResponse"
80658	//   },
80659	//   "scopes": [
80660	//     "https://www.googleapis.com/auth/cloud-platform",
80661	//     "https://www.googleapis.com/auth/compute",
80662	//     "https://www.googleapis.com/auth/compute.readonly"
80663	//   ]
80664	// }
80665
80666}
80667
80668// method id "compute.interconnects.insert":
80669
80670type InterconnectsInsertCall struct {
80671	s            *Service
80672	project      string
80673	interconnect *Interconnect
80674	urlParams_   gensupport.URLParams
80675	ctx_         context.Context
80676	header_      http.Header
80677}
80678
80679// Insert: Creates a Interconnect in the specified project using the
80680// data included in the request.
80681func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
80682	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80683	c.project = project
80684	c.interconnect = interconnect
80685	return c
80686}
80687
80688// RequestId sets the optional parameter "requestId": An optional
80689// request ID to identify requests. Specify a unique request ID so that
80690// if you must retry your request, the server will know to ignore the
80691// request if it has already been completed.
80692//
80693// For example, consider a situation where you make an initial request
80694// and the request times out. If you make the request again with the
80695// same request ID, the server can check if original operation with the
80696// same request ID was received, and if so, will ignore the second
80697// request. This prevents clients from accidentally creating duplicate
80698// commitments.
80699//
80700// The request ID must be a valid UUID with the exception that zero UUID
80701// is not supported (00000000-0000-0000-0000-000000000000).
80702func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
80703	c.urlParams_.Set("requestId", requestId)
80704	return c
80705}
80706
80707// Fields allows partial responses to be retrieved. See
80708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80709// for more information.
80710func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
80711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80712	return c
80713}
80714
80715// Context sets the context to be used in this call's Do method. Any
80716// pending HTTP request will be aborted if the provided context is
80717// canceled.
80718func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
80719	c.ctx_ = ctx
80720	return c
80721}
80722
80723// Header returns an http.Header that can be modified by the caller to
80724// add HTTP headers to the request.
80725func (c *InterconnectsInsertCall) Header() http.Header {
80726	if c.header_ == nil {
80727		c.header_ = make(http.Header)
80728	}
80729	return c.header_
80730}
80731
80732func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
80733	reqHeaders := make(http.Header)
80734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80735	for k, v := range c.header_ {
80736		reqHeaders[k] = v
80737	}
80738	reqHeaders.Set("User-Agent", c.s.userAgent())
80739	var body io.Reader = nil
80740	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
80741	if err != nil {
80742		return nil, err
80743	}
80744	reqHeaders.Set("Content-Type", "application/json")
80745	c.urlParams_.Set("alt", alt)
80746	c.urlParams_.Set("prettyPrint", "false")
80747	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
80748	urls += "?" + c.urlParams_.Encode()
80749	req, err := http.NewRequest("POST", urls, body)
80750	if err != nil {
80751		return nil, err
80752	}
80753	req.Header = reqHeaders
80754	googleapi.Expand(req.URL, map[string]string{
80755		"project": c.project,
80756	})
80757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80758}
80759
80760// Do executes the "compute.interconnects.insert" call.
80761// Exactly one of *Operation or error will be non-nil. Any non-2xx
80762// status code is an error. Response headers are in either
80763// *Operation.ServerResponse.Header or (if a response was returned at
80764// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80765// to check whether the returned error was because
80766// http.StatusNotModified was returned.
80767func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80768	gensupport.SetOptions(c.urlParams_, opts...)
80769	res, err := c.doRequest("json")
80770	if res != nil && res.StatusCode == http.StatusNotModified {
80771		if res.Body != nil {
80772			res.Body.Close()
80773		}
80774		return nil, &googleapi.Error{
80775			Code:   res.StatusCode,
80776			Header: res.Header,
80777		}
80778	}
80779	if err != nil {
80780		return nil, err
80781	}
80782	defer googleapi.CloseBody(res)
80783	if err := googleapi.CheckResponse(res); err != nil {
80784		return nil, err
80785	}
80786	ret := &Operation{
80787		ServerResponse: googleapi.ServerResponse{
80788			Header:         res.Header,
80789			HTTPStatusCode: res.StatusCode,
80790		},
80791	}
80792	target := &ret
80793	if err := gensupport.DecodeResponse(target, res); err != nil {
80794		return nil, err
80795	}
80796	return ret, nil
80797	// {
80798	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
80799	//   "httpMethod": "POST",
80800	//   "id": "compute.interconnects.insert",
80801	//   "parameterOrder": [
80802	//     "project"
80803	//   ],
80804	//   "parameters": {
80805	//     "project": {
80806	//       "description": "Project ID for this request.",
80807	//       "location": "path",
80808	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80809	//       "required": true,
80810	//       "type": "string"
80811	//     },
80812	//     "requestId": {
80813	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80814	//       "location": "query",
80815	//       "type": "string"
80816	//     }
80817	//   },
80818	//   "path": "{project}/global/interconnects",
80819	//   "request": {
80820	//     "$ref": "Interconnect"
80821	//   },
80822	//   "response": {
80823	//     "$ref": "Operation"
80824	//   },
80825	//   "scopes": [
80826	//     "https://www.googleapis.com/auth/cloud-platform",
80827	//     "https://www.googleapis.com/auth/compute"
80828	//   ]
80829	// }
80830
80831}
80832
80833// method id "compute.interconnects.list":
80834
80835type InterconnectsListCall struct {
80836	s            *Service
80837	project      string
80838	urlParams_   gensupport.URLParams
80839	ifNoneMatch_ string
80840	ctx_         context.Context
80841	header_      http.Header
80842}
80843
80844// List: Retrieves the list of interconnect available to the specified
80845// project.
80846func (r *InterconnectsService) List(project string) *InterconnectsListCall {
80847	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80848	c.project = project
80849	return c
80850}
80851
80852// Filter sets the optional parameter "filter": A filter expression that
80853// filters resources listed in the response. The expression must specify
80854// the field name, a comparison operator, and the value that you want to
80855// use for filtering. The value must be a string, a number, or a
80856// boolean. The comparison operator must be either `=`, `!=`, `>`, or
80857// `<`.
80858//
80859// For example, if you are filtering Compute Engine instances, you can
80860// exclude instances named `example-instance` by specifying `name !=
80861// example-instance`.
80862//
80863// You can also filter nested fields. For example, you could specify
80864// `scheduling.automaticRestart = false` to include instances only if
80865// they are not scheduled for automatic restarts. You can use filtering
80866// on nested fields to filter based on resource labels.
80867//
80868// To filter on multiple expressions, provide each separate expression
80869// within parentheses. For example: ``` (scheduling.automaticRestart =
80870// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
80871// is an `AND` expression. However, you can include `AND` and `OR`
80872// expressions explicitly. For example: ``` (cpuPlatform = "Intel
80873// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
80874// (scheduling.automaticRestart = true) ```
80875func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
80876	c.urlParams_.Set("filter", filter)
80877	return c
80878}
80879
80880// MaxResults sets the optional parameter "maxResults": The maximum
80881// number of results per page that should be returned. If the number of
80882// available results is larger than `maxResults`, Compute Engine returns
80883// a `nextPageToken` that can be used to get the next page of results in
80884// subsequent list requests. Acceptable values are `0` to `500`,
80885// inclusive. (Default: `500`)
80886func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
80887	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80888	return c
80889}
80890
80891// OrderBy sets the optional parameter "orderBy": Sorts list results by
80892// a certain order. By default, results are returned in alphanumerical
80893// order based on the resource name.
80894//
80895// You can also sort results in descending order based on the creation
80896// timestamp using `orderBy="creationTimestamp desc". This sorts
80897// results based on the `creationTimestamp` field in reverse
80898// chronological order (newest result first). Use this to sort resources
80899// like operations so that the newest operation is returned
80900// first.
80901//
80902// Currently, only sorting by `name` or `creationTimestamp desc` is
80903// supported.
80904func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
80905	c.urlParams_.Set("orderBy", orderBy)
80906	return c
80907}
80908
80909// PageToken sets the optional parameter "pageToken": Specifies a page
80910// token to use. Set `pageToken` to the `nextPageToken` returned by a
80911// previous list request to get the next page of results.
80912func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
80913	c.urlParams_.Set("pageToken", pageToken)
80914	return c
80915}
80916
80917// Fields allows partial responses to be retrieved. See
80918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80919// for more information.
80920func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
80921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80922	return c
80923}
80924
80925// IfNoneMatch sets the optional parameter which makes the operation
80926// fail if the object's ETag matches the given value. This is useful for
80927// getting updates only after the object has changed since the last
80928// request. Use googleapi.IsNotModified to check whether the response
80929// error from Do is the result of In-None-Match.
80930func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
80931	c.ifNoneMatch_ = entityTag
80932	return c
80933}
80934
80935// Context sets the context to be used in this call's Do method. Any
80936// pending HTTP request will be aborted if the provided context is
80937// canceled.
80938func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
80939	c.ctx_ = ctx
80940	return c
80941}
80942
80943// Header returns an http.Header that can be modified by the caller to
80944// add HTTP headers to the request.
80945func (c *InterconnectsListCall) Header() http.Header {
80946	if c.header_ == nil {
80947		c.header_ = make(http.Header)
80948	}
80949	return c.header_
80950}
80951
80952func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
80953	reqHeaders := make(http.Header)
80954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80955	for k, v := range c.header_ {
80956		reqHeaders[k] = v
80957	}
80958	reqHeaders.Set("User-Agent", c.s.userAgent())
80959	if c.ifNoneMatch_ != "" {
80960		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80961	}
80962	var body io.Reader = nil
80963	c.urlParams_.Set("alt", alt)
80964	c.urlParams_.Set("prettyPrint", "false")
80965	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
80966	urls += "?" + c.urlParams_.Encode()
80967	req, err := http.NewRequest("GET", urls, body)
80968	if err != nil {
80969		return nil, err
80970	}
80971	req.Header = reqHeaders
80972	googleapi.Expand(req.URL, map[string]string{
80973		"project": c.project,
80974	})
80975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80976}
80977
80978// Do executes the "compute.interconnects.list" call.
80979// Exactly one of *InterconnectList or error will be non-nil. Any
80980// non-2xx status code is an error. Response headers are in either
80981// *InterconnectList.ServerResponse.Header or (if a response was
80982// returned at all) in error.(*googleapi.Error).Header. Use
80983// googleapi.IsNotModified to check whether the returned error was
80984// because http.StatusNotModified was returned.
80985func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
80986	gensupport.SetOptions(c.urlParams_, opts...)
80987	res, err := c.doRequest("json")
80988	if res != nil && res.StatusCode == http.StatusNotModified {
80989		if res.Body != nil {
80990			res.Body.Close()
80991		}
80992		return nil, &googleapi.Error{
80993			Code:   res.StatusCode,
80994			Header: res.Header,
80995		}
80996	}
80997	if err != nil {
80998		return nil, err
80999	}
81000	defer googleapi.CloseBody(res)
81001	if err := googleapi.CheckResponse(res); err != nil {
81002		return nil, err
81003	}
81004	ret := &InterconnectList{
81005		ServerResponse: googleapi.ServerResponse{
81006			Header:         res.Header,
81007			HTTPStatusCode: res.StatusCode,
81008		},
81009	}
81010	target := &ret
81011	if err := gensupport.DecodeResponse(target, res); err != nil {
81012		return nil, err
81013	}
81014	return ret, nil
81015	// {
81016	//   "description": "Retrieves the list of interconnect available to the specified project.",
81017	//   "httpMethod": "GET",
81018	//   "id": "compute.interconnects.list",
81019	//   "parameterOrder": [
81020	//     "project"
81021	//   ],
81022	//   "parameters": {
81023	//     "filter": {
81024	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
81025	//       "location": "query",
81026	//       "type": "string"
81027	//     },
81028	//     "maxResults": {
81029	//       "default": "500",
81030	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
81031	//       "format": "uint32",
81032	//       "location": "query",
81033	//       "minimum": "0",
81034	//       "type": "integer"
81035	//     },
81036	//     "orderBy": {
81037	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
81038	//       "location": "query",
81039	//       "type": "string"
81040	//     },
81041	//     "pageToken": {
81042	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
81043	//       "location": "query",
81044	//       "type": "string"
81045	//     },
81046	//     "project": {
81047	//       "description": "Project ID for this request.",
81048	//       "location": "path",
81049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81050	//       "required": true,
81051	//       "type": "string"
81052	//     }
81053	//   },
81054	//   "path": "{project}/global/interconnects",
81055	//   "response": {
81056	//     "$ref": "InterconnectList"
81057	//   },
81058	//   "scopes": [
81059	//     "https://www.googleapis.com/auth/cloud-platform",
81060	//     "https://www.googleapis.com/auth/compute",
81061	//     "https://www.googleapis.com/auth/compute.readonly"
81062	//   ]
81063	// }
81064
81065}
81066
81067// Pages invokes f for each page of results.
81068// A non-nil error returned from f will halt the iteration.
81069// The provided context supersedes any context provided to the Context method.
81070func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
81071	c.ctx_ = ctx
81072	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81073	for {
81074		x, err := c.Do()
81075		if err != nil {
81076			return err
81077		}
81078		if err := f(x); err != nil {
81079			return err
81080		}
81081		if x.NextPageToken == "" {
81082			return nil
81083		}
81084		c.PageToken(x.NextPageToken)
81085	}
81086}
81087
81088// method id "compute.interconnects.patch":
81089
81090type InterconnectsPatchCall struct {
81091	s             *Service
81092	project       string
81093	interconnect  string
81094	interconnect2 *Interconnect
81095	urlParams_    gensupport.URLParams
81096	ctx_          context.Context
81097	header_       http.Header
81098}
81099
81100// Patch: Updates the specified interconnect with the data included in
81101// the request. This method supports PATCH semantics and uses the JSON
81102// merge patch format and processing rules.
81103func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
81104	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81105	c.project = project
81106	c.interconnect = interconnect
81107	c.interconnect2 = interconnect2
81108	return c
81109}
81110
81111// RequestId sets the optional parameter "requestId": An optional
81112// request ID to identify requests. Specify a unique request ID so that
81113// if you must retry your request, the server will know to ignore the
81114// request if it has already been completed.
81115//
81116// For example, consider a situation where you make an initial request
81117// and the request times out. If you make the request again with the
81118// same request ID, the server can check if original operation with the
81119// same request ID was received, and if so, will ignore the second
81120// request. This prevents clients from accidentally creating duplicate
81121// commitments.
81122//
81123// The request ID must be a valid UUID with the exception that zero UUID
81124// is not supported (00000000-0000-0000-0000-000000000000).
81125func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
81126	c.urlParams_.Set("requestId", requestId)
81127	return c
81128}
81129
81130// Fields allows partial responses to be retrieved. See
81131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81132// for more information.
81133func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
81134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81135	return c
81136}
81137
81138// Context sets the context to be used in this call's Do method. Any
81139// pending HTTP request will be aborted if the provided context is
81140// canceled.
81141func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
81142	c.ctx_ = ctx
81143	return c
81144}
81145
81146// Header returns an http.Header that can be modified by the caller to
81147// add HTTP headers to the request.
81148func (c *InterconnectsPatchCall) Header() http.Header {
81149	if c.header_ == nil {
81150		c.header_ = make(http.Header)
81151	}
81152	return c.header_
81153}
81154
81155func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
81156	reqHeaders := make(http.Header)
81157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81158	for k, v := range c.header_ {
81159		reqHeaders[k] = v
81160	}
81161	reqHeaders.Set("User-Agent", c.s.userAgent())
81162	var body io.Reader = nil
81163	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
81164	if err != nil {
81165		return nil, err
81166	}
81167	reqHeaders.Set("Content-Type", "application/json")
81168	c.urlParams_.Set("alt", alt)
81169	c.urlParams_.Set("prettyPrint", "false")
81170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
81171	urls += "?" + c.urlParams_.Encode()
81172	req, err := http.NewRequest("PATCH", urls, body)
81173	if err != nil {
81174		return nil, err
81175	}
81176	req.Header = reqHeaders
81177	googleapi.Expand(req.URL, map[string]string{
81178		"project":      c.project,
81179		"interconnect": c.interconnect,
81180	})
81181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81182}
81183
81184// Do executes the "compute.interconnects.patch" call.
81185// Exactly one of *Operation or error will be non-nil. Any non-2xx
81186// status code is an error. Response headers are in either
81187// *Operation.ServerResponse.Header or (if a response was returned at
81188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81189// to check whether the returned error was because
81190// http.StatusNotModified was returned.
81191func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81192	gensupport.SetOptions(c.urlParams_, opts...)
81193	res, err := c.doRequest("json")
81194	if res != nil && res.StatusCode == http.StatusNotModified {
81195		if res.Body != nil {
81196			res.Body.Close()
81197		}
81198		return nil, &googleapi.Error{
81199			Code:   res.StatusCode,
81200			Header: res.Header,
81201		}
81202	}
81203	if err != nil {
81204		return nil, err
81205	}
81206	defer googleapi.CloseBody(res)
81207	if err := googleapi.CheckResponse(res); err != nil {
81208		return nil, err
81209	}
81210	ret := &Operation{
81211		ServerResponse: googleapi.ServerResponse{
81212			Header:         res.Header,
81213			HTTPStatusCode: res.StatusCode,
81214		},
81215	}
81216	target := &ret
81217	if err := gensupport.DecodeResponse(target, res); err != nil {
81218		return nil, err
81219	}
81220	return ret, nil
81221	// {
81222	//   "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.",
81223	//   "httpMethod": "PATCH",
81224	//   "id": "compute.interconnects.patch",
81225	//   "parameterOrder": [
81226	//     "project",
81227	//     "interconnect"
81228	//   ],
81229	//   "parameters": {
81230	//     "interconnect": {
81231	//       "description": "Name of the interconnect to update.",
81232	//       "location": "path",
81233	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81234	//       "required": true,
81235	//       "type": "string"
81236	//     },
81237	//     "project": {
81238	//       "description": "Project ID for this request.",
81239	//       "location": "path",
81240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81241	//       "required": true,
81242	//       "type": "string"
81243	//     },
81244	//     "requestId": {
81245	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81246	//       "location": "query",
81247	//       "type": "string"
81248	//     }
81249	//   },
81250	//   "path": "{project}/global/interconnects/{interconnect}",
81251	//   "request": {
81252	//     "$ref": "Interconnect"
81253	//   },
81254	//   "response": {
81255	//     "$ref": "Operation"
81256	//   },
81257	//   "scopes": [
81258	//     "https://www.googleapis.com/auth/cloud-platform",
81259	//     "https://www.googleapis.com/auth/compute"
81260	//   ]
81261	// }
81262
81263}
81264
81265// method id "compute.licenseCodes.get":
81266
81267type LicenseCodesGetCall struct {
81268	s            *Service
81269	project      string
81270	licenseCode  string
81271	urlParams_   gensupport.URLParams
81272	ifNoneMatch_ string
81273	ctx_         context.Context
81274	header_      http.Header
81275}
81276
81277// Get: Return a specified license code. License codes are mirrored
81278// across all projects that have permissions to read the License Code.
81279// Caution This resource is intended for use only by third-party
81280// partners who are creating Cloud Marketplace images.
81281func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
81282	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81283	c.project = project
81284	c.licenseCode = licenseCode
81285	return c
81286}
81287
81288// Fields allows partial responses to be retrieved. See
81289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81290// for more information.
81291func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
81292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81293	return c
81294}
81295
81296// IfNoneMatch sets the optional parameter which makes the operation
81297// fail if the object's ETag matches the given value. This is useful for
81298// getting updates only after the object has changed since the last
81299// request. Use googleapi.IsNotModified to check whether the response
81300// error from Do is the result of In-None-Match.
81301func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
81302	c.ifNoneMatch_ = entityTag
81303	return c
81304}
81305
81306// Context sets the context to be used in this call's Do method. Any
81307// pending HTTP request will be aborted if the provided context is
81308// canceled.
81309func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
81310	c.ctx_ = ctx
81311	return c
81312}
81313
81314// Header returns an http.Header that can be modified by the caller to
81315// add HTTP headers to the request.
81316func (c *LicenseCodesGetCall) Header() http.Header {
81317	if c.header_ == nil {
81318		c.header_ = make(http.Header)
81319	}
81320	return c.header_
81321}
81322
81323func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
81324	reqHeaders := make(http.Header)
81325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81326	for k, v := range c.header_ {
81327		reqHeaders[k] = v
81328	}
81329	reqHeaders.Set("User-Agent", c.s.userAgent())
81330	if c.ifNoneMatch_ != "" {
81331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81332	}
81333	var body io.Reader = nil
81334	c.urlParams_.Set("alt", alt)
81335	c.urlParams_.Set("prettyPrint", "false")
81336	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
81337	urls += "?" + c.urlParams_.Encode()
81338	req, err := http.NewRequest("GET", urls, body)
81339	if err != nil {
81340		return nil, err
81341	}
81342	req.Header = reqHeaders
81343	googleapi.Expand(req.URL, map[string]string{
81344		"project":     c.project,
81345		"licenseCode": c.licenseCode,
81346	})
81347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81348}
81349
81350// Do executes the "compute.licenseCodes.get" call.
81351// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
81352// status code is an error. Response headers are in either
81353// *LicenseCode.ServerResponse.Header or (if a response was returned at
81354// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81355// to check whether the returned error was because
81356// http.StatusNotModified was returned.
81357func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
81358	gensupport.SetOptions(c.urlParams_, opts...)
81359	res, err := c.doRequest("json")
81360	if res != nil && res.StatusCode == http.StatusNotModified {
81361		if res.Body != nil {
81362			res.Body.Close()
81363		}
81364		return nil, &googleapi.Error{
81365			Code:   res.StatusCode,
81366			Header: res.Header,
81367		}
81368	}
81369	if err != nil {
81370		return nil, err
81371	}
81372	defer googleapi.CloseBody(res)
81373	if err := googleapi.CheckResponse(res); err != nil {
81374		return nil, err
81375	}
81376	ret := &LicenseCode{
81377		ServerResponse: googleapi.ServerResponse{
81378			Header:         res.Header,
81379			HTTPStatusCode: res.StatusCode,
81380		},
81381	}
81382	target := &ret
81383	if err := gensupport.DecodeResponse(target, res); err != nil {
81384		return nil, err
81385	}
81386	return ret, nil
81387	// {
81388	//   "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.",
81389	//   "httpMethod": "GET",
81390	//   "id": "compute.licenseCodes.get",
81391	//   "parameterOrder": [
81392	//     "project",
81393	//     "licenseCode"
81394	//   ],
81395	//   "parameters": {
81396	//     "licenseCode": {
81397	//       "description": "Number corresponding to the License code resource to return.",
81398	//       "location": "path",
81399	//       "pattern": "[0-9]{0,61}?",
81400	//       "required": true,
81401	//       "type": "string"
81402	//     },
81403	//     "project": {
81404	//       "description": "Project ID for this request.",
81405	//       "location": "path",
81406	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81407	//       "required": true,
81408	//       "type": "string"
81409	//     }
81410	//   },
81411	//   "path": "{project}/global/licenseCodes/{licenseCode}",
81412	//   "response": {
81413	//     "$ref": "LicenseCode"
81414	//   },
81415	//   "scopes": [
81416	//     "https://www.googleapis.com/auth/cloud-platform",
81417	//     "https://www.googleapis.com/auth/compute",
81418	//     "https://www.googleapis.com/auth/compute.readonly"
81419	//   ]
81420	// }
81421
81422}
81423
81424// method id "compute.licenseCodes.testIamPermissions":
81425
81426type LicenseCodesTestIamPermissionsCall struct {
81427	s                      *Service
81428	project                string
81429	resource               string
81430	testpermissionsrequest *TestPermissionsRequest
81431	urlParams_             gensupport.URLParams
81432	ctx_                   context.Context
81433	header_                http.Header
81434}
81435
81436// TestIamPermissions: Returns permissions that a caller has on the
81437// specified resource.  Caution This resource is intended for use only
81438// by third-party partners who are creating Cloud Marketplace images.
81439func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
81440	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81441	c.project = project
81442	c.resource = resource
81443	c.testpermissionsrequest = testpermissionsrequest
81444	return c
81445}
81446
81447// Fields allows partial responses to be retrieved. See
81448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81449// for more information.
81450func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
81451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81452	return c
81453}
81454
81455// Context sets the context to be used in this call's Do method. Any
81456// pending HTTP request will be aborted if the provided context is
81457// canceled.
81458func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
81459	c.ctx_ = ctx
81460	return c
81461}
81462
81463// Header returns an http.Header that can be modified by the caller to
81464// add HTTP headers to the request.
81465func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
81466	if c.header_ == nil {
81467		c.header_ = make(http.Header)
81468	}
81469	return c.header_
81470}
81471
81472func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
81473	reqHeaders := make(http.Header)
81474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81475	for k, v := range c.header_ {
81476		reqHeaders[k] = v
81477	}
81478	reqHeaders.Set("User-Agent", c.s.userAgent())
81479	var body io.Reader = nil
81480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
81481	if err != nil {
81482		return nil, err
81483	}
81484	reqHeaders.Set("Content-Type", "application/json")
81485	c.urlParams_.Set("alt", alt)
81486	c.urlParams_.Set("prettyPrint", "false")
81487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/testIamPermissions")
81488	urls += "?" + c.urlParams_.Encode()
81489	req, err := http.NewRequest("POST", urls, body)
81490	if err != nil {
81491		return nil, err
81492	}
81493	req.Header = reqHeaders
81494	googleapi.Expand(req.URL, map[string]string{
81495		"project":  c.project,
81496		"resource": c.resource,
81497	})
81498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81499}
81500
81501// Do executes the "compute.licenseCodes.testIamPermissions" call.
81502// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
81503// non-2xx status code is an error. Response headers are in either
81504// *TestPermissionsResponse.ServerResponse.Header or (if a response was
81505// returned at all) in error.(*googleapi.Error).Header. Use
81506// googleapi.IsNotModified to check whether the returned error was
81507// because http.StatusNotModified was returned.
81508func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
81509	gensupport.SetOptions(c.urlParams_, opts...)
81510	res, err := c.doRequest("json")
81511	if res != nil && res.StatusCode == http.StatusNotModified {
81512		if res.Body != nil {
81513			res.Body.Close()
81514		}
81515		return nil, &googleapi.Error{
81516			Code:   res.StatusCode,
81517			Header: res.Header,
81518		}
81519	}
81520	if err != nil {
81521		return nil, err
81522	}
81523	defer googleapi.CloseBody(res)
81524	if err := googleapi.CheckResponse(res); err != nil {
81525		return nil, err
81526	}
81527	ret := &TestPermissionsResponse{
81528		ServerResponse: googleapi.ServerResponse{
81529			Header:         res.Header,
81530			HTTPStatusCode: res.StatusCode,
81531		},
81532	}
81533	target := &ret
81534	if err := gensupport.DecodeResponse(target, res); err != nil {
81535		return nil, err
81536	}
81537	return ret, nil
81538	// {
81539	//   "description": "Returns permissions that a caller has on the specified resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
81540	//   "httpMethod": "POST",
81541	//   "id": "compute.licenseCodes.testIamPermissions",
81542	//   "parameterOrder": [
81543	//     "project",
81544	//     "resource"
81545	//   ],
81546	//   "parameters": {
81547	//     "project": {
81548	//       "description": "Project ID for this request.",
81549	//       "location": "path",
81550	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81551	//       "required": true,
81552	//       "type": "string"
81553	//     },
81554	//     "resource": {
81555	//       "description": "Name or id of the resource for this request.",
81556	//       "location": "path",
81557	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81558	//       "required": true,
81559	//       "type": "string"
81560	//     }
81561	//   },
81562	//   "path": "{project}/global/licenseCodes/{resource}/testIamPermissions",
81563	//   "request": {
81564	//     "$ref": "TestPermissionsRequest"
81565	//   },
81566	//   "response": {
81567	//     "$ref": "TestPermissionsResponse"
81568	//   },
81569	//   "scopes": [
81570	//     "https://www.googleapis.com/auth/cloud-platform",
81571	//     "https://www.googleapis.com/auth/compute",
81572	//     "https://www.googleapis.com/auth/compute.readonly"
81573	//   ]
81574	// }
81575
81576}
81577
81578// method id "compute.licenses.delete":
81579
81580type LicensesDeleteCall struct {
81581	s          *Service
81582	project    string
81583	license    string
81584	urlParams_ gensupport.URLParams
81585	ctx_       context.Context
81586	header_    http.Header
81587}
81588
81589// Delete: Deletes the specified license.  Caution This resource is
81590// intended for use only by third-party partners who are creating Cloud
81591// Marketplace images.
81592func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
81593	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81594	c.project = project
81595	c.license = license
81596	return c
81597}
81598
81599// RequestId sets the optional parameter "requestId": An optional
81600// request ID to identify requests. Specify a unique request ID so that
81601// if you must retry your request, the server will know to ignore the
81602// request if it has already been completed.
81603//
81604// For example, consider a situation where you make an initial request
81605// and the request times out. If you make the request again with the
81606// same request ID, the server can check if original operation with the
81607// same request ID was received, and if so, will ignore the second
81608// request. This prevents clients from accidentally creating duplicate
81609// commitments.
81610//
81611// The request ID must be a valid UUID with the exception that zero UUID
81612// is not supported (00000000-0000-0000-0000-000000000000).
81613func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
81614	c.urlParams_.Set("requestId", requestId)
81615	return c
81616}
81617
81618// Fields allows partial responses to be retrieved. See
81619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81620// for more information.
81621func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
81622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81623	return c
81624}
81625
81626// Context sets the context to be used in this call's Do method. Any
81627// pending HTTP request will be aborted if the provided context is
81628// canceled.
81629func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
81630	c.ctx_ = ctx
81631	return c
81632}
81633
81634// Header returns an http.Header that can be modified by the caller to
81635// add HTTP headers to the request.
81636func (c *LicensesDeleteCall) Header() http.Header {
81637	if c.header_ == nil {
81638		c.header_ = make(http.Header)
81639	}
81640	return c.header_
81641}
81642
81643func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
81644	reqHeaders := make(http.Header)
81645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81646	for k, v := range c.header_ {
81647		reqHeaders[k] = v
81648	}
81649	reqHeaders.Set("User-Agent", c.s.userAgent())
81650	var body io.Reader = nil
81651	c.urlParams_.Set("alt", alt)
81652	c.urlParams_.Set("prettyPrint", "false")
81653	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
81654	urls += "?" + c.urlParams_.Encode()
81655	req, err := http.NewRequest("DELETE", urls, body)
81656	if err != nil {
81657		return nil, err
81658	}
81659	req.Header = reqHeaders
81660	googleapi.Expand(req.URL, map[string]string{
81661		"project": c.project,
81662		"license": c.license,
81663	})
81664	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81665}
81666
81667// Do executes the "compute.licenses.delete" call.
81668// Exactly one of *Operation or error will be non-nil. Any non-2xx
81669// status code is an error. Response headers are in either
81670// *Operation.ServerResponse.Header or (if a response was returned at
81671// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81672// to check whether the returned error was because
81673// http.StatusNotModified was returned.
81674func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81675	gensupport.SetOptions(c.urlParams_, opts...)
81676	res, err := c.doRequest("json")
81677	if res != nil && res.StatusCode == http.StatusNotModified {
81678		if res.Body != nil {
81679			res.Body.Close()
81680		}
81681		return nil, &googleapi.Error{
81682			Code:   res.StatusCode,
81683			Header: res.Header,
81684		}
81685	}
81686	if err != nil {
81687		return nil, err
81688	}
81689	defer googleapi.CloseBody(res)
81690	if err := googleapi.CheckResponse(res); err != nil {
81691		return nil, err
81692	}
81693	ret := &Operation{
81694		ServerResponse: googleapi.ServerResponse{
81695			Header:         res.Header,
81696			HTTPStatusCode: res.StatusCode,
81697		},
81698	}
81699	target := &ret
81700	if err := gensupport.DecodeResponse(target, res); err != nil {
81701		return nil, err
81702	}
81703	return ret, nil
81704	// {
81705	//   "description": "Deletes the specified license.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
81706	//   "httpMethod": "DELETE",
81707	//   "id": "compute.licenses.delete",
81708	//   "parameterOrder": [
81709	//     "project",
81710	//     "license"
81711	//   ],
81712	//   "parameters": {
81713	//     "license": {
81714	//       "description": "Name of the license resource to delete.",
81715	//       "location": "path",
81716	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81717	//       "required": true,
81718	//       "type": "string"
81719	//     },
81720	//     "project": {
81721	//       "description": "Project ID for this request.",
81722	//       "location": "path",
81723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81724	//       "required": true,
81725	//       "type": "string"
81726	//     },
81727	//     "requestId": {
81728	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81729	//       "location": "query",
81730	//       "type": "string"
81731	//     }
81732	//   },
81733	//   "path": "{project}/global/licenses/{license}",
81734	//   "response": {
81735	//     "$ref": "Operation"
81736	//   },
81737	//   "scopes": [
81738	//     "https://www.googleapis.com/auth/cloud-platform",
81739	//     "https://www.googleapis.com/auth/compute"
81740	//   ]
81741	// }
81742
81743}
81744
81745// method id "compute.licenses.get":
81746
81747type LicensesGetCall struct {
81748	s            *Service
81749	project      string
81750	license      string
81751	urlParams_   gensupport.URLParams
81752	ifNoneMatch_ string
81753	ctx_         context.Context
81754	header_      http.Header
81755}
81756
81757// Get: Returns the specified License resource.  Caution This resource
81758// is intended for use only by third-party partners who are creating
81759// Cloud Marketplace images.
81760// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
81761func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
81762	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81763	c.project = project
81764	c.license = license
81765	return c
81766}
81767
81768// Fields allows partial responses to be retrieved. See
81769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81770// for more information.
81771func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
81772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81773	return c
81774}
81775
81776// IfNoneMatch sets the optional parameter which makes the operation
81777// fail if the object's ETag matches the given value. This is useful for
81778// getting updates only after the object has changed since the last
81779// request. Use googleapi.IsNotModified to check whether the response
81780// error from Do is the result of In-None-Match.
81781func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
81782	c.ifNoneMatch_ = entityTag
81783	return c
81784}
81785
81786// Context sets the context to be used in this call's Do method. Any
81787// pending HTTP request will be aborted if the provided context is
81788// canceled.
81789func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
81790	c.ctx_ = ctx
81791	return c
81792}
81793
81794// Header returns an http.Header that can be modified by the caller to
81795// add HTTP headers to the request.
81796func (c *LicensesGetCall) Header() http.Header {
81797	if c.header_ == nil {
81798		c.header_ = make(http.Header)
81799	}
81800	return c.header_
81801}
81802
81803func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
81804	reqHeaders := make(http.Header)
81805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81806	for k, v := range c.header_ {
81807		reqHeaders[k] = v
81808	}
81809	reqHeaders.Set("User-Agent", c.s.userAgent())
81810	if c.ifNoneMatch_ != "" {
81811		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81812	}
81813	var body io.Reader = nil
81814	c.urlParams_.Set("alt", alt)
81815	c.urlParams_.Set("prettyPrint", "false")
81816	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
81817	urls += "?" + c.urlParams_.Encode()
81818	req, err := http.NewRequest("GET", urls, body)
81819	if err != nil {
81820		return nil, err
81821	}
81822	req.Header = reqHeaders
81823	googleapi.Expand(req.URL, map[string]string{
81824		"project": c.project,
81825		"license": c.license,
81826	})
81827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81828}
81829
81830// Do executes the "compute.licenses.get" call.
81831// Exactly one of *License or error will be non-nil. Any non-2xx status
81832// code is an error. Response headers are in either
81833// *License.ServerResponse.Header or (if a response was returned at all)
81834// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
81835// check whether the returned error was because http.StatusNotModified
81836// was returned.
81837func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
81838	gensupport.SetOptions(c.urlParams_, opts...)
81839	res, err := c.doRequest("json")
81840	if res != nil && res.StatusCode == http.StatusNotModified {
81841		if res.Body != nil {
81842			res.Body.Close()
81843		}
81844		return nil, &googleapi.Error{
81845			Code:   res.StatusCode,
81846			Header: res.Header,
81847		}
81848	}
81849	if err != nil {
81850		return nil, err
81851	}
81852	defer googleapi.CloseBody(res)
81853	if err := googleapi.CheckResponse(res); err != nil {
81854		return nil, err
81855	}
81856	ret := &License{
81857		ServerResponse: googleapi.ServerResponse{
81858			Header:         res.Header,
81859			HTTPStatusCode: res.StatusCode,
81860		},
81861	}
81862	target := &ret
81863	if err := gensupport.DecodeResponse(target, res); err != nil {
81864		return nil, err
81865	}
81866	return ret, nil
81867	// {
81868	//   "description": "Returns the specified License resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
81869	//   "httpMethod": "GET",
81870	//   "id": "compute.licenses.get",
81871	//   "parameterOrder": [
81872	//     "project",
81873	//     "license"
81874	//   ],
81875	//   "parameters": {
81876	//     "license": {
81877	//       "description": "Name of the License resource to return.",
81878	//       "location": "path",
81879	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81880	//       "required": true,
81881	//       "type": "string"
81882	//     },
81883	//     "project": {
81884	//       "description": "Project ID for this request.",
81885	//       "location": "path",
81886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81887	//       "required": true,
81888	//       "type": "string"
81889	//     }
81890	//   },
81891	//   "path": "{project}/global/licenses/{license}",
81892	//   "response": {
81893	//     "$ref": "License"
81894	//   },
81895	//   "scopes": [
81896	//     "https://www.googleapis.com/auth/cloud-platform",
81897	//     "https://www.googleapis.com/auth/compute",
81898	//     "https://www.googleapis.com/auth/compute.readonly"
81899	//   ]
81900	// }
81901
81902}
81903
81904// method id "compute.licenses.getIamPolicy":
81905
81906type LicensesGetIamPolicyCall struct {
81907	s            *Service
81908	project      string
81909	resource     string
81910	urlParams_   gensupport.URLParams
81911	ifNoneMatch_ string
81912	ctx_         context.Context
81913	header_      http.Header
81914}
81915
81916// GetIamPolicy: Gets the access control policy for a resource. May be
81917// empty if no such policy or resource exists.  Caution This resource is
81918// intended for use only by third-party partners who are creating Cloud
81919// Marketplace images.
81920func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
81921	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81922	c.project = project
81923	c.resource = resource
81924	return c
81925}
81926
81927// Fields allows partial responses to be retrieved. See
81928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81929// for more information.
81930func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
81931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81932	return c
81933}
81934
81935// IfNoneMatch sets the optional parameter which makes the operation
81936// fail if the object's ETag matches the given value. This is useful for
81937// getting updates only after the object has changed since the last
81938// request. Use googleapi.IsNotModified to check whether the response
81939// error from Do is the result of In-None-Match.
81940func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
81941	c.ifNoneMatch_ = entityTag
81942	return c
81943}
81944
81945// Context sets the context to be used in this call's Do method. Any
81946// pending HTTP request will be aborted if the provided context is
81947// canceled.
81948func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
81949	c.ctx_ = ctx
81950	return c
81951}
81952
81953// Header returns an http.Header that can be modified by the caller to
81954// add HTTP headers to the request.
81955func (c *LicensesGetIamPolicyCall) Header() http.Header {
81956	if c.header_ == nil {
81957		c.header_ = make(http.Header)
81958	}
81959	return c.header_
81960}
81961
81962func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
81963	reqHeaders := make(http.Header)
81964	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81965	for k, v := range c.header_ {
81966		reqHeaders[k] = v
81967	}
81968	reqHeaders.Set("User-Agent", c.s.userAgent())
81969	if c.ifNoneMatch_ != "" {
81970		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81971	}
81972	var body io.Reader = nil
81973	c.urlParams_.Set("alt", alt)
81974	c.urlParams_.Set("prettyPrint", "false")
81975	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/getIamPolicy")
81976	urls += "?" + c.urlParams_.Encode()
81977	req, err := http.NewRequest("GET", urls, body)
81978	if err != nil {
81979		return nil, err
81980	}
81981	req.Header = reqHeaders
81982	googleapi.Expand(req.URL, map[string]string{
81983		"project":  c.project,
81984		"resource": c.resource,
81985	})
81986	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81987}
81988
81989// Do executes the "compute.licenses.getIamPolicy" call.
81990// Exactly one of *Policy or error will be non-nil. Any non-2xx status
81991// code is an error. Response headers are in either
81992// *Policy.ServerResponse.Header or (if a response was returned at all)
81993// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
81994// check whether the returned error was because http.StatusNotModified
81995// was returned.
81996func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
81997	gensupport.SetOptions(c.urlParams_, opts...)
81998	res, err := c.doRequest("json")
81999	if res != nil && res.StatusCode == http.StatusNotModified {
82000		if res.Body != nil {
82001			res.Body.Close()
82002		}
82003		return nil, &googleapi.Error{
82004			Code:   res.StatusCode,
82005			Header: res.Header,
82006		}
82007	}
82008	if err != nil {
82009		return nil, err
82010	}
82011	defer googleapi.CloseBody(res)
82012	if err := googleapi.CheckResponse(res); err != nil {
82013		return nil, err
82014	}
82015	ret := &Policy{
82016		ServerResponse: googleapi.ServerResponse{
82017			Header:         res.Header,
82018			HTTPStatusCode: res.StatusCode,
82019		},
82020	}
82021	target := &ret
82022	if err := gensupport.DecodeResponse(target, res); err != nil {
82023		return nil, err
82024	}
82025	return ret, nil
82026	// {
82027	//   "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.",
82028	//   "httpMethod": "GET",
82029	//   "id": "compute.licenses.getIamPolicy",
82030	//   "parameterOrder": [
82031	//     "project",
82032	//     "resource"
82033	//   ],
82034	//   "parameters": {
82035	//     "project": {
82036	//       "description": "Project ID for this request.",
82037	//       "location": "path",
82038	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82039	//       "required": true,
82040	//       "type": "string"
82041	//     },
82042	//     "resource": {
82043	//       "description": "Name or id of the resource for this request.",
82044	//       "location": "path",
82045	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82046	//       "required": true,
82047	//       "type": "string"
82048	//     }
82049	//   },
82050	//   "path": "{project}/global/licenses/{resource}/getIamPolicy",
82051	//   "response": {
82052	//     "$ref": "Policy"
82053	//   },
82054	//   "scopes": [
82055	//     "https://www.googleapis.com/auth/cloud-platform",
82056	//     "https://www.googleapis.com/auth/compute",
82057	//     "https://www.googleapis.com/auth/compute.readonly"
82058	//   ]
82059	// }
82060
82061}
82062
82063// method id "compute.licenses.insert":
82064
82065type LicensesInsertCall struct {
82066	s          *Service
82067	project    string
82068	license    *License
82069	urlParams_ gensupport.URLParams
82070	ctx_       context.Context
82071	header_    http.Header
82072}
82073
82074// Insert: Create a License resource in the specified project.  Caution
82075// This resource is intended for use only by third-party partners who
82076// are creating Cloud Marketplace images.
82077func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
82078	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82079	c.project = project
82080	c.license = license
82081	return c
82082}
82083
82084// RequestId sets the optional parameter "requestId": An optional
82085// request ID to identify requests. Specify a unique request ID so that
82086// if you must retry your request, the server will know to ignore the
82087// request if it has already been completed.
82088//
82089// For example, consider a situation where you make an initial request
82090// and the request times out. If you make the request again with the
82091// same request ID, the server can check if original operation with the
82092// same request ID was received, and if so, will ignore the second
82093// request. This prevents clients from accidentally creating duplicate
82094// commitments.
82095//
82096// The request ID must be a valid UUID with the exception that zero UUID
82097// is not supported (00000000-0000-0000-0000-000000000000).
82098func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
82099	c.urlParams_.Set("requestId", requestId)
82100	return c
82101}
82102
82103// Fields allows partial responses to be retrieved. See
82104// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82105// for more information.
82106func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
82107	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82108	return c
82109}
82110
82111// Context sets the context to be used in this call's Do method. Any
82112// pending HTTP request will be aborted if the provided context is
82113// canceled.
82114func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
82115	c.ctx_ = ctx
82116	return c
82117}
82118
82119// Header returns an http.Header that can be modified by the caller to
82120// add HTTP headers to the request.
82121func (c *LicensesInsertCall) Header() http.Header {
82122	if c.header_ == nil {
82123		c.header_ = make(http.Header)
82124	}
82125	return c.header_
82126}
82127
82128func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
82129	reqHeaders := make(http.Header)
82130	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82131	for k, v := range c.header_ {
82132		reqHeaders[k] = v
82133	}
82134	reqHeaders.Set("User-Agent", c.s.userAgent())
82135	var body io.Reader = nil
82136	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
82137	if err != nil {
82138		return nil, err
82139	}
82140	reqHeaders.Set("Content-Type", "application/json")
82141	c.urlParams_.Set("alt", alt)
82142	c.urlParams_.Set("prettyPrint", "false")
82143	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
82144	urls += "?" + c.urlParams_.Encode()
82145	req, err := http.NewRequest("POST", urls, body)
82146	if err != nil {
82147		return nil, err
82148	}
82149	req.Header = reqHeaders
82150	googleapi.Expand(req.URL, map[string]string{
82151		"project": c.project,
82152	})
82153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82154}
82155
82156// Do executes the "compute.licenses.insert" call.
82157// Exactly one of *Operation or error will be non-nil. Any non-2xx
82158// status code is an error. Response headers are in either
82159// *Operation.ServerResponse.Header or (if a response was returned at
82160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82161// to check whether the returned error was because
82162// http.StatusNotModified was returned.
82163func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82164	gensupport.SetOptions(c.urlParams_, opts...)
82165	res, err := c.doRequest("json")
82166	if res != nil && res.StatusCode == http.StatusNotModified {
82167		if res.Body != nil {
82168			res.Body.Close()
82169		}
82170		return nil, &googleapi.Error{
82171			Code:   res.StatusCode,
82172			Header: res.Header,
82173		}
82174	}
82175	if err != nil {
82176		return nil, err
82177	}
82178	defer googleapi.CloseBody(res)
82179	if err := googleapi.CheckResponse(res); err != nil {
82180		return nil, err
82181	}
82182	ret := &Operation{
82183		ServerResponse: googleapi.ServerResponse{
82184			Header:         res.Header,
82185			HTTPStatusCode: res.StatusCode,
82186		},
82187	}
82188	target := &ret
82189	if err := gensupport.DecodeResponse(target, res); err != nil {
82190		return nil, err
82191	}
82192	return ret, nil
82193	// {
82194	//   "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.",
82195	//   "httpMethod": "POST",
82196	//   "id": "compute.licenses.insert",
82197	//   "parameterOrder": [
82198	//     "project"
82199	//   ],
82200	//   "parameters": {
82201	//     "project": {
82202	//       "description": "Project ID for this request.",
82203	//       "location": "path",
82204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82205	//       "required": true,
82206	//       "type": "string"
82207	//     },
82208	//     "requestId": {
82209	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82210	//       "location": "query",
82211	//       "type": "string"
82212	//     }
82213	//   },
82214	//   "path": "{project}/global/licenses",
82215	//   "request": {
82216	//     "$ref": "License"
82217	//   },
82218	//   "response": {
82219	//     "$ref": "Operation"
82220	//   },
82221	//   "scopes": [
82222	//     "https://www.googleapis.com/auth/cloud-platform",
82223	//     "https://www.googleapis.com/auth/compute",
82224	//     "https://www.googleapis.com/auth/devstorage.full_control",
82225	//     "https://www.googleapis.com/auth/devstorage.read_only",
82226	//     "https://www.googleapis.com/auth/devstorage.read_write"
82227	//   ]
82228	// }
82229
82230}
82231
82232// method id "compute.licenses.list":
82233
82234type LicensesListCall struct {
82235	s            *Service
82236	project      string
82237	urlParams_   gensupport.URLParams
82238	ifNoneMatch_ string
82239	ctx_         context.Context
82240	header_      http.Header
82241}
82242
82243// List: Retrieves the list of licenses available in the specified
82244// project. This method does not get any licenses that belong to other
82245// projects, including licenses attached to publicly-available images,
82246// like Debian 9. If you want to get a list of publicly-available
82247// licenses, use this method to make a request to the respective image
82248// project, such as debian-cloud or windows-cloud.  Caution This
82249// resource is intended for use only by third-party partners who are
82250// creating Cloud Marketplace images.
82251func (r *LicensesService) List(project string) *LicensesListCall {
82252	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82253	c.project = project
82254	return c
82255}
82256
82257// Filter sets the optional parameter "filter": A filter expression that
82258// filters resources listed in the response. The expression must specify
82259// the field name, a comparison operator, and the value that you want to
82260// use for filtering. The value must be a string, a number, or a
82261// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82262// `<`.
82263//
82264// For example, if you are filtering Compute Engine instances, you can
82265// exclude instances named `example-instance` by specifying `name !=
82266// example-instance`.
82267//
82268// You can also filter nested fields. For example, you could specify
82269// `scheduling.automaticRestart = false` to include instances only if
82270// they are not scheduled for automatic restarts. You can use filtering
82271// on nested fields to filter based on resource labels.
82272//
82273// To filter on multiple expressions, provide each separate expression
82274// within parentheses. For example: ``` (scheduling.automaticRestart =
82275// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82276// is an `AND` expression. However, you can include `AND` and `OR`
82277// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82278// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82279// (scheduling.automaticRestart = true) ```
82280func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
82281	c.urlParams_.Set("filter", filter)
82282	return c
82283}
82284
82285// MaxResults sets the optional parameter "maxResults": The maximum
82286// number of results per page that should be returned. If the number of
82287// available results is larger than `maxResults`, Compute Engine returns
82288// a `nextPageToken` that can be used to get the next page of results in
82289// subsequent list requests. Acceptable values are `0` to `500`,
82290// inclusive. (Default: `500`)
82291func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
82292	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82293	return c
82294}
82295
82296// OrderBy sets the optional parameter "orderBy": Sorts list results by
82297// a certain order. By default, results are returned in alphanumerical
82298// order based on the resource name.
82299//
82300// You can also sort results in descending order based on the creation
82301// timestamp using `orderBy="creationTimestamp desc". This sorts
82302// results based on the `creationTimestamp` field in reverse
82303// chronological order (newest result first). Use this to sort resources
82304// like operations so that the newest operation is returned
82305// first.
82306//
82307// Currently, only sorting by `name` or `creationTimestamp desc` is
82308// supported.
82309func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
82310	c.urlParams_.Set("orderBy", orderBy)
82311	return c
82312}
82313
82314// PageToken sets the optional parameter "pageToken": Specifies a page
82315// token to use. Set `pageToken` to the `nextPageToken` returned by a
82316// previous list request to get the next page of results.
82317func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
82318	c.urlParams_.Set("pageToken", pageToken)
82319	return c
82320}
82321
82322// Fields allows partial responses to be retrieved. See
82323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82324// for more information.
82325func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
82326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82327	return c
82328}
82329
82330// IfNoneMatch sets the optional parameter which makes the operation
82331// fail if the object's ETag matches the given value. This is useful for
82332// getting updates only after the object has changed since the last
82333// request. Use googleapi.IsNotModified to check whether the response
82334// error from Do is the result of In-None-Match.
82335func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
82336	c.ifNoneMatch_ = entityTag
82337	return c
82338}
82339
82340// Context sets the context to be used in this call's Do method. Any
82341// pending HTTP request will be aborted if the provided context is
82342// canceled.
82343func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
82344	c.ctx_ = ctx
82345	return c
82346}
82347
82348// Header returns an http.Header that can be modified by the caller to
82349// add HTTP headers to the request.
82350func (c *LicensesListCall) Header() http.Header {
82351	if c.header_ == nil {
82352		c.header_ = make(http.Header)
82353	}
82354	return c.header_
82355}
82356
82357func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
82358	reqHeaders := make(http.Header)
82359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82360	for k, v := range c.header_ {
82361		reqHeaders[k] = v
82362	}
82363	reqHeaders.Set("User-Agent", c.s.userAgent())
82364	if c.ifNoneMatch_ != "" {
82365		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82366	}
82367	var body io.Reader = nil
82368	c.urlParams_.Set("alt", alt)
82369	c.urlParams_.Set("prettyPrint", "false")
82370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
82371	urls += "?" + c.urlParams_.Encode()
82372	req, err := http.NewRequest("GET", urls, body)
82373	if err != nil {
82374		return nil, err
82375	}
82376	req.Header = reqHeaders
82377	googleapi.Expand(req.URL, map[string]string{
82378		"project": c.project,
82379	})
82380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82381}
82382
82383// Do executes the "compute.licenses.list" call.
82384// Exactly one of *LicensesListResponse or error will be non-nil. Any
82385// non-2xx status code is an error. Response headers are in either
82386// *LicensesListResponse.ServerResponse.Header or (if a response was
82387// returned at all) in error.(*googleapi.Error).Header. Use
82388// googleapi.IsNotModified to check whether the returned error was
82389// because http.StatusNotModified was returned.
82390func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
82391	gensupport.SetOptions(c.urlParams_, opts...)
82392	res, err := c.doRequest("json")
82393	if res != nil && res.StatusCode == http.StatusNotModified {
82394		if res.Body != nil {
82395			res.Body.Close()
82396		}
82397		return nil, &googleapi.Error{
82398			Code:   res.StatusCode,
82399			Header: res.Header,
82400		}
82401	}
82402	if err != nil {
82403		return nil, err
82404	}
82405	defer googleapi.CloseBody(res)
82406	if err := googleapi.CheckResponse(res); err != nil {
82407		return nil, err
82408	}
82409	ret := &LicensesListResponse{
82410		ServerResponse: googleapi.ServerResponse{
82411			Header:         res.Header,
82412			HTTPStatusCode: res.StatusCode,
82413		},
82414	}
82415	target := &ret
82416	if err := gensupport.DecodeResponse(target, res); err != nil {
82417		return nil, err
82418	}
82419	return ret, nil
82420	// {
82421	//   "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.",
82422	//   "httpMethod": "GET",
82423	//   "id": "compute.licenses.list",
82424	//   "parameterOrder": [
82425	//     "project"
82426	//   ],
82427	//   "parameters": {
82428	//     "filter": {
82429	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82430	//       "location": "query",
82431	//       "type": "string"
82432	//     },
82433	//     "maxResults": {
82434	//       "default": "500",
82435	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82436	//       "format": "uint32",
82437	//       "location": "query",
82438	//       "minimum": "0",
82439	//       "type": "integer"
82440	//     },
82441	//     "orderBy": {
82442	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
82443	//       "location": "query",
82444	//       "type": "string"
82445	//     },
82446	//     "pageToken": {
82447	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82448	//       "location": "query",
82449	//       "type": "string"
82450	//     },
82451	//     "project": {
82452	//       "description": "Project ID for this request.",
82453	//       "location": "path",
82454	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82455	//       "required": true,
82456	//       "type": "string"
82457	//     }
82458	//   },
82459	//   "path": "{project}/global/licenses",
82460	//   "response": {
82461	//     "$ref": "LicensesListResponse"
82462	//   },
82463	//   "scopes": [
82464	//     "https://www.googleapis.com/auth/cloud-platform",
82465	//     "https://www.googleapis.com/auth/compute",
82466	//     "https://www.googleapis.com/auth/compute.readonly"
82467	//   ]
82468	// }
82469
82470}
82471
82472// Pages invokes f for each page of results.
82473// A non-nil error returned from f will halt the iteration.
82474// The provided context supersedes any context provided to the Context method.
82475func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
82476	c.ctx_ = ctx
82477	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82478	for {
82479		x, err := c.Do()
82480		if err != nil {
82481			return err
82482		}
82483		if err := f(x); err != nil {
82484			return err
82485		}
82486		if x.NextPageToken == "" {
82487			return nil
82488		}
82489		c.PageToken(x.NextPageToken)
82490	}
82491}
82492
82493// method id "compute.licenses.setIamPolicy":
82494
82495type LicensesSetIamPolicyCall struct {
82496	s                      *Service
82497	project                string
82498	resource               string
82499	globalsetpolicyrequest *GlobalSetPolicyRequest
82500	urlParams_             gensupport.URLParams
82501	ctx_                   context.Context
82502	header_                http.Header
82503}
82504
82505// SetIamPolicy: Sets the access control policy on the specified
82506// resource. Replaces any existing policy.  Caution This resource is
82507// intended for use only by third-party partners who are creating Cloud
82508// Marketplace images.
82509func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
82510	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82511	c.project = project
82512	c.resource = resource
82513	c.globalsetpolicyrequest = globalsetpolicyrequest
82514	return c
82515}
82516
82517// Fields allows partial responses to be retrieved. See
82518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82519// for more information.
82520func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
82521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82522	return c
82523}
82524
82525// Context sets the context to be used in this call's Do method. Any
82526// pending HTTP request will be aborted if the provided context is
82527// canceled.
82528func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
82529	c.ctx_ = ctx
82530	return c
82531}
82532
82533// Header returns an http.Header that can be modified by the caller to
82534// add HTTP headers to the request.
82535func (c *LicensesSetIamPolicyCall) Header() http.Header {
82536	if c.header_ == nil {
82537		c.header_ = make(http.Header)
82538	}
82539	return c.header_
82540}
82541
82542func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
82543	reqHeaders := make(http.Header)
82544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82545	for k, v := range c.header_ {
82546		reqHeaders[k] = v
82547	}
82548	reqHeaders.Set("User-Agent", c.s.userAgent())
82549	var body io.Reader = nil
82550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
82551	if err != nil {
82552		return nil, err
82553	}
82554	reqHeaders.Set("Content-Type", "application/json")
82555	c.urlParams_.Set("alt", alt)
82556	c.urlParams_.Set("prettyPrint", "false")
82557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/setIamPolicy")
82558	urls += "?" + c.urlParams_.Encode()
82559	req, err := http.NewRequest("POST", urls, body)
82560	if err != nil {
82561		return nil, err
82562	}
82563	req.Header = reqHeaders
82564	googleapi.Expand(req.URL, map[string]string{
82565		"project":  c.project,
82566		"resource": c.resource,
82567	})
82568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82569}
82570
82571// Do executes the "compute.licenses.setIamPolicy" call.
82572// Exactly one of *Policy or error will be non-nil. Any non-2xx status
82573// code is an error. Response headers are in either
82574// *Policy.ServerResponse.Header or (if a response was returned at all)
82575// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
82576// check whether the returned error was because http.StatusNotModified
82577// was returned.
82578func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
82579	gensupport.SetOptions(c.urlParams_, opts...)
82580	res, err := c.doRequest("json")
82581	if res != nil && res.StatusCode == http.StatusNotModified {
82582		if res.Body != nil {
82583			res.Body.Close()
82584		}
82585		return nil, &googleapi.Error{
82586			Code:   res.StatusCode,
82587			Header: res.Header,
82588		}
82589	}
82590	if err != nil {
82591		return nil, err
82592	}
82593	defer googleapi.CloseBody(res)
82594	if err := googleapi.CheckResponse(res); err != nil {
82595		return nil, err
82596	}
82597	ret := &Policy{
82598		ServerResponse: googleapi.ServerResponse{
82599			Header:         res.Header,
82600			HTTPStatusCode: res.StatusCode,
82601		},
82602	}
82603	target := &ret
82604	if err := gensupport.DecodeResponse(target, res); err != nil {
82605		return nil, err
82606	}
82607	return ret, nil
82608	// {
82609	//   "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.",
82610	//   "httpMethod": "POST",
82611	//   "id": "compute.licenses.setIamPolicy",
82612	//   "parameterOrder": [
82613	//     "project",
82614	//     "resource"
82615	//   ],
82616	//   "parameters": {
82617	//     "project": {
82618	//       "description": "Project ID for this request.",
82619	//       "location": "path",
82620	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82621	//       "required": true,
82622	//       "type": "string"
82623	//     },
82624	//     "resource": {
82625	//       "description": "Name or id of the resource for this request.",
82626	//       "location": "path",
82627	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82628	//       "required": true,
82629	//       "type": "string"
82630	//     }
82631	//   },
82632	//   "path": "{project}/global/licenses/{resource}/setIamPolicy",
82633	//   "request": {
82634	//     "$ref": "GlobalSetPolicyRequest"
82635	//   },
82636	//   "response": {
82637	//     "$ref": "Policy"
82638	//   },
82639	//   "scopes": [
82640	//     "https://www.googleapis.com/auth/cloud-platform",
82641	//     "https://www.googleapis.com/auth/compute"
82642	//   ]
82643	// }
82644
82645}
82646
82647// method id "compute.licenses.testIamPermissions":
82648
82649type LicensesTestIamPermissionsCall struct {
82650	s                      *Service
82651	project                string
82652	resource               string
82653	testpermissionsrequest *TestPermissionsRequest
82654	urlParams_             gensupport.URLParams
82655	ctx_                   context.Context
82656	header_                http.Header
82657}
82658
82659// TestIamPermissions: Returns permissions that a caller has on the
82660// specified resource.  Caution This resource is intended for use only
82661// by third-party partners who are creating Cloud Marketplace images.
82662func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
82663	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82664	c.project = project
82665	c.resource = resource
82666	c.testpermissionsrequest = testpermissionsrequest
82667	return c
82668}
82669
82670// Fields allows partial responses to be retrieved. See
82671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82672// for more information.
82673func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
82674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82675	return c
82676}
82677
82678// Context sets the context to be used in this call's Do method. Any
82679// pending HTTP request will be aborted if the provided context is
82680// canceled.
82681func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
82682	c.ctx_ = ctx
82683	return c
82684}
82685
82686// Header returns an http.Header that can be modified by the caller to
82687// add HTTP headers to the request.
82688func (c *LicensesTestIamPermissionsCall) Header() http.Header {
82689	if c.header_ == nil {
82690		c.header_ = make(http.Header)
82691	}
82692	return c.header_
82693}
82694
82695func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
82696	reqHeaders := make(http.Header)
82697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82698	for k, v := range c.header_ {
82699		reqHeaders[k] = v
82700	}
82701	reqHeaders.Set("User-Agent", c.s.userAgent())
82702	var body io.Reader = nil
82703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
82704	if err != nil {
82705		return nil, err
82706	}
82707	reqHeaders.Set("Content-Type", "application/json")
82708	c.urlParams_.Set("alt", alt)
82709	c.urlParams_.Set("prettyPrint", "false")
82710	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/testIamPermissions")
82711	urls += "?" + c.urlParams_.Encode()
82712	req, err := http.NewRequest("POST", urls, body)
82713	if err != nil {
82714		return nil, err
82715	}
82716	req.Header = reqHeaders
82717	googleapi.Expand(req.URL, map[string]string{
82718		"project":  c.project,
82719		"resource": c.resource,
82720	})
82721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82722}
82723
82724// Do executes the "compute.licenses.testIamPermissions" call.
82725// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
82726// non-2xx status code is an error. Response headers are in either
82727// *TestPermissionsResponse.ServerResponse.Header or (if a response was
82728// returned at all) in error.(*googleapi.Error).Header. Use
82729// googleapi.IsNotModified to check whether the returned error was
82730// because http.StatusNotModified was returned.
82731func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
82732	gensupport.SetOptions(c.urlParams_, opts...)
82733	res, err := c.doRequest("json")
82734	if res != nil && res.StatusCode == http.StatusNotModified {
82735		if res.Body != nil {
82736			res.Body.Close()
82737		}
82738		return nil, &googleapi.Error{
82739			Code:   res.StatusCode,
82740			Header: res.Header,
82741		}
82742	}
82743	if err != nil {
82744		return nil, err
82745	}
82746	defer googleapi.CloseBody(res)
82747	if err := googleapi.CheckResponse(res); err != nil {
82748		return nil, err
82749	}
82750	ret := &TestPermissionsResponse{
82751		ServerResponse: googleapi.ServerResponse{
82752			Header:         res.Header,
82753			HTTPStatusCode: res.StatusCode,
82754		},
82755	}
82756	target := &ret
82757	if err := gensupport.DecodeResponse(target, res); err != nil {
82758		return nil, err
82759	}
82760	return ret, nil
82761	// {
82762	//   "description": "Returns permissions that a caller has on the specified resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
82763	//   "httpMethod": "POST",
82764	//   "id": "compute.licenses.testIamPermissions",
82765	//   "parameterOrder": [
82766	//     "project",
82767	//     "resource"
82768	//   ],
82769	//   "parameters": {
82770	//     "project": {
82771	//       "description": "Project ID for this request.",
82772	//       "location": "path",
82773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82774	//       "required": true,
82775	//       "type": "string"
82776	//     },
82777	//     "resource": {
82778	//       "description": "Name or id of the resource for this request.",
82779	//       "location": "path",
82780	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82781	//       "required": true,
82782	//       "type": "string"
82783	//     }
82784	//   },
82785	//   "path": "{project}/global/licenses/{resource}/testIamPermissions",
82786	//   "request": {
82787	//     "$ref": "TestPermissionsRequest"
82788	//   },
82789	//   "response": {
82790	//     "$ref": "TestPermissionsResponse"
82791	//   },
82792	//   "scopes": [
82793	//     "https://www.googleapis.com/auth/cloud-platform",
82794	//     "https://www.googleapis.com/auth/compute",
82795	//     "https://www.googleapis.com/auth/compute.readonly"
82796	//   ]
82797	// }
82798
82799}
82800
82801// method id "compute.machineTypes.aggregatedList":
82802
82803type MachineTypesAggregatedListCall struct {
82804	s            *Service
82805	project      string
82806	urlParams_   gensupport.URLParams
82807	ifNoneMatch_ string
82808	ctx_         context.Context
82809	header_      http.Header
82810}
82811
82812// AggregatedList: Retrieves an aggregated list of machine types.
82813// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
82814func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
82815	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82816	c.project = project
82817	return c
82818}
82819
82820// Filter sets the optional parameter "filter": A filter expression that
82821// filters resources listed in the response. The expression must specify
82822// the field name, a comparison operator, and the value that you want to
82823// use for filtering. The value must be a string, a number, or a
82824// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82825// `<`.
82826//
82827// For example, if you are filtering Compute Engine instances, you can
82828// exclude instances named `example-instance` by specifying `name !=
82829// example-instance`.
82830//
82831// You can also filter nested fields. For example, you could specify
82832// `scheduling.automaticRestart = false` to include instances only if
82833// they are not scheduled for automatic restarts. You can use filtering
82834// on nested fields to filter based on resource labels.
82835//
82836// To filter on multiple expressions, provide each separate expression
82837// within parentheses. For example: ``` (scheduling.automaticRestart =
82838// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82839// is an `AND` expression. However, you can include `AND` and `OR`
82840// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82841// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82842// (scheduling.automaticRestart = true) ```
82843func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
82844	c.urlParams_.Set("filter", filter)
82845	return c
82846}
82847
82848// IncludeAllScopes sets the optional parameter "includeAllScopes":
82849// Indicates whether every visible scope for each scope type (zone,
82850// region, global) should be included in the response. For new resource
82851// types added after this field, the flag has no effect as new resource
82852// types will always include every visible scope for each scope type in
82853// response. For resource types which predate this field, if this flag
82854// is omitted or false, only scopes of the scope types where the
82855// resource type is expected to be found will be included.
82856func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
82857	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
82858	return c
82859}
82860
82861// MaxResults sets the optional parameter "maxResults": The maximum
82862// number of results per page that should be returned. If the number of
82863// available results is larger than `maxResults`, Compute Engine returns
82864// a `nextPageToken` that can be used to get the next page of results in
82865// subsequent list requests. Acceptable values are `0` to `500`,
82866// inclusive. (Default: `500`)
82867func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
82868	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82869	return c
82870}
82871
82872// OrderBy sets the optional parameter "orderBy": Sorts list results by
82873// a certain order. By default, results are returned in alphanumerical
82874// order based on the resource name.
82875//
82876// You can also sort results in descending order based on the creation
82877// timestamp using `orderBy="creationTimestamp desc". This sorts
82878// results based on the `creationTimestamp` field in reverse
82879// chronological order (newest result first). Use this to sort resources
82880// like operations so that the newest operation is returned
82881// first.
82882//
82883// Currently, only sorting by `name` or `creationTimestamp desc` is
82884// supported.
82885func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
82886	c.urlParams_.Set("orderBy", orderBy)
82887	return c
82888}
82889
82890// PageToken sets the optional parameter "pageToken": Specifies a page
82891// token to use. Set `pageToken` to the `nextPageToken` returned by a
82892// previous list request to get the next page of results.
82893func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
82894	c.urlParams_.Set("pageToken", pageToken)
82895	return c
82896}
82897
82898// Fields allows partial responses to be retrieved. See
82899// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82900// for more information.
82901func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
82902	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82903	return c
82904}
82905
82906// IfNoneMatch sets the optional parameter which makes the operation
82907// fail if the object's ETag matches the given value. This is useful for
82908// getting updates only after the object has changed since the last
82909// request. Use googleapi.IsNotModified to check whether the response
82910// error from Do is the result of In-None-Match.
82911func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
82912	c.ifNoneMatch_ = entityTag
82913	return c
82914}
82915
82916// Context sets the context to be used in this call's Do method. Any
82917// pending HTTP request will be aborted if the provided context is
82918// canceled.
82919func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
82920	c.ctx_ = ctx
82921	return c
82922}
82923
82924// Header returns an http.Header that can be modified by the caller to
82925// add HTTP headers to the request.
82926func (c *MachineTypesAggregatedListCall) Header() http.Header {
82927	if c.header_ == nil {
82928		c.header_ = make(http.Header)
82929	}
82930	return c.header_
82931}
82932
82933func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
82934	reqHeaders := make(http.Header)
82935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82936	for k, v := range c.header_ {
82937		reqHeaders[k] = v
82938	}
82939	reqHeaders.Set("User-Agent", c.s.userAgent())
82940	if c.ifNoneMatch_ != "" {
82941		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82942	}
82943	var body io.Reader = nil
82944	c.urlParams_.Set("alt", alt)
82945	c.urlParams_.Set("prettyPrint", "false")
82946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
82947	urls += "?" + c.urlParams_.Encode()
82948	req, err := http.NewRequest("GET", urls, body)
82949	if err != nil {
82950		return nil, err
82951	}
82952	req.Header = reqHeaders
82953	googleapi.Expand(req.URL, map[string]string{
82954		"project": c.project,
82955	})
82956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82957}
82958
82959// Do executes the "compute.machineTypes.aggregatedList" call.
82960// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
82961// Any non-2xx status code is an error. Response headers are in either
82962// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
82963// was returned at all) in error.(*googleapi.Error).Header. Use
82964// googleapi.IsNotModified to check whether the returned error was
82965// because http.StatusNotModified was returned.
82966func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
82967	gensupport.SetOptions(c.urlParams_, opts...)
82968	res, err := c.doRequest("json")
82969	if res != nil && res.StatusCode == http.StatusNotModified {
82970		if res.Body != nil {
82971			res.Body.Close()
82972		}
82973		return nil, &googleapi.Error{
82974			Code:   res.StatusCode,
82975			Header: res.Header,
82976		}
82977	}
82978	if err != nil {
82979		return nil, err
82980	}
82981	defer googleapi.CloseBody(res)
82982	if err := googleapi.CheckResponse(res); err != nil {
82983		return nil, err
82984	}
82985	ret := &MachineTypeAggregatedList{
82986		ServerResponse: googleapi.ServerResponse{
82987			Header:         res.Header,
82988			HTTPStatusCode: res.StatusCode,
82989		},
82990	}
82991	target := &ret
82992	if err := gensupport.DecodeResponse(target, res); err != nil {
82993		return nil, err
82994	}
82995	return ret, nil
82996	// {
82997	//   "description": "Retrieves an aggregated list of machine types.",
82998	//   "httpMethod": "GET",
82999	//   "id": "compute.machineTypes.aggregatedList",
83000	//   "parameterOrder": [
83001	//     "project"
83002	//   ],
83003	//   "parameters": {
83004	//     "filter": {
83005	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83006	//       "location": "query",
83007	//       "type": "string"
83008	//     },
83009	//     "includeAllScopes": {
83010	//       "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.",
83011	//       "location": "query",
83012	//       "type": "boolean"
83013	//     },
83014	//     "maxResults": {
83015	//       "default": "500",
83016	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83017	//       "format": "uint32",
83018	//       "location": "query",
83019	//       "minimum": "0",
83020	//       "type": "integer"
83021	//     },
83022	//     "orderBy": {
83023	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83024	//       "location": "query",
83025	//       "type": "string"
83026	//     },
83027	//     "pageToken": {
83028	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83029	//       "location": "query",
83030	//       "type": "string"
83031	//     },
83032	//     "project": {
83033	//       "description": "Project ID for this request.",
83034	//       "location": "path",
83035	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83036	//       "required": true,
83037	//       "type": "string"
83038	//     }
83039	//   },
83040	//   "path": "{project}/aggregated/machineTypes",
83041	//   "response": {
83042	//     "$ref": "MachineTypeAggregatedList"
83043	//   },
83044	//   "scopes": [
83045	//     "https://www.googleapis.com/auth/cloud-platform",
83046	//     "https://www.googleapis.com/auth/compute",
83047	//     "https://www.googleapis.com/auth/compute.readonly"
83048	//   ]
83049	// }
83050
83051}
83052
83053// Pages invokes f for each page of results.
83054// A non-nil error returned from f will halt the iteration.
83055// The provided context supersedes any context provided to the Context method.
83056func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
83057	c.ctx_ = ctx
83058	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83059	for {
83060		x, err := c.Do()
83061		if err != nil {
83062			return err
83063		}
83064		if err := f(x); err != nil {
83065			return err
83066		}
83067		if x.NextPageToken == "" {
83068			return nil
83069		}
83070		c.PageToken(x.NextPageToken)
83071	}
83072}
83073
83074// method id "compute.machineTypes.get":
83075
83076type MachineTypesGetCall struct {
83077	s            *Service
83078	project      string
83079	zone         string
83080	machineType  string
83081	urlParams_   gensupport.URLParams
83082	ifNoneMatch_ string
83083	ctx_         context.Context
83084	header_      http.Header
83085}
83086
83087// Get: Returns the specified machine type. Gets a list of available
83088// machine types by making a list() request.
83089// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
83090func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
83091	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83092	c.project = project
83093	c.zone = zone
83094	c.machineType = machineType
83095	return c
83096}
83097
83098// Fields allows partial responses to be retrieved. See
83099// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83100// for more information.
83101func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
83102	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83103	return c
83104}
83105
83106// IfNoneMatch sets the optional parameter which makes the operation
83107// fail if the object's ETag matches the given value. This is useful for
83108// getting updates only after the object has changed since the last
83109// request. Use googleapi.IsNotModified to check whether the response
83110// error from Do is the result of In-None-Match.
83111func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
83112	c.ifNoneMatch_ = entityTag
83113	return c
83114}
83115
83116// Context sets the context to be used in this call's Do method. Any
83117// pending HTTP request will be aborted if the provided context is
83118// canceled.
83119func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
83120	c.ctx_ = ctx
83121	return c
83122}
83123
83124// Header returns an http.Header that can be modified by the caller to
83125// add HTTP headers to the request.
83126func (c *MachineTypesGetCall) Header() http.Header {
83127	if c.header_ == nil {
83128		c.header_ = make(http.Header)
83129	}
83130	return c.header_
83131}
83132
83133func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
83134	reqHeaders := make(http.Header)
83135	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83136	for k, v := range c.header_ {
83137		reqHeaders[k] = v
83138	}
83139	reqHeaders.Set("User-Agent", c.s.userAgent())
83140	if c.ifNoneMatch_ != "" {
83141		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83142	}
83143	var body io.Reader = nil
83144	c.urlParams_.Set("alt", alt)
83145	c.urlParams_.Set("prettyPrint", "false")
83146	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
83147	urls += "?" + c.urlParams_.Encode()
83148	req, err := http.NewRequest("GET", urls, body)
83149	if err != nil {
83150		return nil, err
83151	}
83152	req.Header = reqHeaders
83153	googleapi.Expand(req.URL, map[string]string{
83154		"project":     c.project,
83155		"zone":        c.zone,
83156		"machineType": c.machineType,
83157	})
83158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83159}
83160
83161// Do executes the "compute.machineTypes.get" call.
83162// Exactly one of *MachineType or error will be non-nil. Any non-2xx
83163// status code is an error. Response headers are in either
83164// *MachineType.ServerResponse.Header or (if a response was returned at
83165// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83166// to check whether the returned error was because
83167// http.StatusNotModified was returned.
83168func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
83169	gensupport.SetOptions(c.urlParams_, opts...)
83170	res, err := c.doRequest("json")
83171	if res != nil && res.StatusCode == http.StatusNotModified {
83172		if res.Body != nil {
83173			res.Body.Close()
83174		}
83175		return nil, &googleapi.Error{
83176			Code:   res.StatusCode,
83177			Header: res.Header,
83178		}
83179	}
83180	if err != nil {
83181		return nil, err
83182	}
83183	defer googleapi.CloseBody(res)
83184	if err := googleapi.CheckResponse(res); err != nil {
83185		return nil, err
83186	}
83187	ret := &MachineType{
83188		ServerResponse: googleapi.ServerResponse{
83189			Header:         res.Header,
83190			HTTPStatusCode: res.StatusCode,
83191		},
83192	}
83193	target := &ret
83194	if err := gensupport.DecodeResponse(target, res); err != nil {
83195		return nil, err
83196	}
83197	return ret, nil
83198	// {
83199	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
83200	//   "httpMethod": "GET",
83201	//   "id": "compute.machineTypes.get",
83202	//   "parameterOrder": [
83203	//     "project",
83204	//     "zone",
83205	//     "machineType"
83206	//   ],
83207	//   "parameters": {
83208	//     "machineType": {
83209	//       "description": "Name of the machine type to return.",
83210	//       "location": "path",
83211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83212	//       "required": true,
83213	//       "type": "string"
83214	//     },
83215	//     "project": {
83216	//       "description": "Project ID for this request.",
83217	//       "location": "path",
83218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83219	//       "required": true,
83220	//       "type": "string"
83221	//     },
83222	//     "zone": {
83223	//       "description": "The name of the zone for this request.",
83224	//       "location": "path",
83225	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83226	//       "required": true,
83227	//       "type": "string"
83228	//     }
83229	//   },
83230	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
83231	//   "response": {
83232	//     "$ref": "MachineType"
83233	//   },
83234	//   "scopes": [
83235	//     "https://www.googleapis.com/auth/cloud-platform",
83236	//     "https://www.googleapis.com/auth/compute",
83237	//     "https://www.googleapis.com/auth/compute.readonly"
83238	//   ]
83239	// }
83240
83241}
83242
83243// method id "compute.machineTypes.list":
83244
83245type MachineTypesListCall struct {
83246	s            *Service
83247	project      string
83248	zone         string
83249	urlParams_   gensupport.URLParams
83250	ifNoneMatch_ string
83251	ctx_         context.Context
83252	header_      http.Header
83253}
83254
83255// List: Retrieves a list of machine types available to the specified
83256// project.
83257// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
83258func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
83259	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83260	c.project = project
83261	c.zone = zone
83262	return c
83263}
83264
83265// Filter sets the optional parameter "filter": A filter expression that
83266// filters resources listed in the response. The expression must specify
83267// the field name, a comparison operator, and the value that you want to
83268// use for filtering. The value must be a string, a number, or a
83269// boolean. The comparison operator must be either `=`, `!=`, `>`, or
83270// `<`.
83271//
83272// For example, if you are filtering Compute Engine instances, you can
83273// exclude instances named `example-instance` by specifying `name !=
83274// example-instance`.
83275//
83276// You can also filter nested fields. For example, you could specify
83277// `scheduling.automaticRestart = false` to include instances only if
83278// they are not scheduled for automatic restarts. You can use filtering
83279// on nested fields to filter based on resource labels.
83280//
83281// To filter on multiple expressions, provide each separate expression
83282// within parentheses. For example: ``` (scheduling.automaticRestart =
83283// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
83284// is an `AND` expression. However, you can include `AND` and `OR`
83285// expressions explicitly. For example: ``` (cpuPlatform = "Intel
83286// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
83287// (scheduling.automaticRestart = true) ```
83288func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
83289	c.urlParams_.Set("filter", filter)
83290	return c
83291}
83292
83293// MaxResults sets the optional parameter "maxResults": The maximum
83294// number of results per page that should be returned. If the number of
83295// available results is larger than `maxResults`, Compute Engine returns
83296// a `nextPageToken` that can be used to get the next page of results in
83297// subsequent list requests. Acceptable values are `0` to `500`,
83298// inclusive. (Default: `500`)
83299func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
83300	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83301	return c
83302}
83303
83304// OrderBy sets the optional parameter "orderBy": Sorts list results by
83305// a certain order. By default, results are returned in alphanumerical
83306// order based on the resource name.
83307//
83308// You can also sort results in descending order based on the creation
83309// timestamp using `orderBy="creationTimestamp desc". This sorts
83310// results based on the `creationTimestamp` field in reverse
83311// chronological order (newest result first). Use this to sort resources
83312// like operations so that the newest operation is returned
83313// first.
83314//
83315// Currently, only sorting by `name` or `creationTimestamp desc` is
83316// supported.
83317func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
83318	c.urlParams_.Set("orderBy", orderBy)
83319	return c
83320}
83321
83322// PageToken sets the optional parameter "pageToken": Specifies a page
83323// token to use. Set `pageToken` to the `nextPageToken` returned by a
83324// previous list request to get the next page of results.
83325func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
83326	c.urlParams_.Set("pageToken", pageToken)
83327	return c
83328}
83329
83330// Fields allows partial responses to be retrieved. See
83331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83332// for more information.
83333func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
83334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83335	return c
83336}
83337
83338// IfNoneMatch sets the optional parameter which makes the operation
83339// fail if the object's ETag matches the given value. This is useful for
83340// getting updates only after the object has changed since the last
83341// request. Use googleapi.IsNotModified to check whether the response
83342// error from Do is the result of In-None-Match.
83343func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
83344	c.ifNoneMatch_ = entityTag
83345	return c
83346}
83347
83348// Context sets the context to be used in this call's Do method. Any
83349// pending HTTP request will be aborted if the provided context is
83350// canceled.
83351func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
83352	c.ctx_ = ctx
83353	return c
83354}
83355
83356// Header returns an http.Header that can be modified by the caller to
83357// add HTTP headers to the request.
83358func (c *MachineTypesListCall) Header() http.Header {
83359	if c.header_ == nil {
83360		c.header_ = make(http.Header)
83361	}
83362	return c.header_
83363}
83364
83365func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
83366	reqHeaders := make(http.Header)
83367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83368	for k, v := range c.header_ {
83369		reqHeaders[k] = v
83370	}
83371	reqHeaders.Set("User-Agent", c.s.userAgent())
83372	if c.ifNoneMatch_ != "" {
83373		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83374	}
83375	var body io.Reader = nil
83376	c.urlParams_.Set("alt", alt)
83377	c.urlParams_.Set("prettyPrint", "false")
83378	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
83379	urls += "?" + c.urlParams_.Encode()
83380	req, err := http.NewRequest("GET", urls, body)
83381	if err != nil {
83382		return nil, err
83383	}
83384	req.Header = reqHeaders
83385	googleapi.Expand(req.URL, map[string]string{
83386		"project": c.project,
83387		"zone":    c.zone,
83388	})
83389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83390}
83391
83392// Do executes the "compute.machineTypes.list" call.
83393// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
83394// status code is an error. Response headers are in either
83395// *MachineTypeList.ServerResponse.Header or (if a response was returned
83396// at all) in error.(*googleapi.Error).Header. Use
83397// googleapi.IsNotModified to check whether the returned error was
83398// because http.StatusNotModified was returned.
83399func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
83400	gensupport.SetOptions(c.urlParams_, opts...)
83401	res, err := c.doRequest("json")
83402	if res != nil && res.StatusCode == http.StatusNotModified {
83403		if res.Body != nil {
83404			res.Body.Close()
83405		}
83406		return nil, &googleapi.Error{
83407			Code:   res.StatusCode,
83408			Header: res.Header,
83409		}
83410	}
83411	if err != nil {
83412		return nil, err
83413	}
83414	defer googleapi.CloseBody(res)
83415	if err := googleapi.CheckResponse(res); err != nil {
83416		return nil, err
83417	}
83418	ret := &MachineTypeList{
83419		ServerResponse: googleapi.ServerResponse{
83420			Header:         res.Header,
83421			HTTPStatusCode: res.StatusCode,
83422		},
83423	}
83424	target := &ret
83425	if err := gensupport.DecodeResponse(target, res); err != nil {
83426		return nil, err
83427	}
83428	return ret, nil
83429	// {
83430	//   "description": "Retrieves a list of machine types available to the specified project.",
83431	//   "httpMethod": "GET",
83432	//   "id": "compute.machineTypes.list",
83433	//   "parameterOrder": [
83434	//     "project",
83435	//     "zone"
83436	//   ],
83437	//   "parameters": {
83438	//     "filter": {
83439	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83440	//       "location": "query",
83441	//       "type": "string"
83442	//     },
83443	//     "maxResults": {
83444	//       "default": "500",
83445	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83446	//       "format": "uint32",
83447	//       "location": "query",
83448	//       "minimum": "0",
83449	//       "type": "integer"
83450	//     },
83451	//     "orderBy": {
83452	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83453	//       "location": "query",
83454	//       "type": "string"
83455	//     },
83456	//     "pageToken": {
83457	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83458	//       "location": "query",
83459	//       "type": "string"
83460	//     },
83461	//     "project": {
83462	//       "description": "Project ID for this request.",
83463	//       "location": "path",
83464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83465	//       "required": true,
83466	//       "type": "string"
83467	//     },
83468	//     "zone": {
83469	//       "description": "The name of the zone for this request.",
83470	//       "location": "path",
83471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83472	//       "required": true,
83473	//       "type": "string"
83474	//     }
83475	//   },
83476	//   "path": "{project}/zones/{zone}/machineTypes",
83477	//   "response": {
83478	//     "$ref": "MachineTypeList"
83479	//   },
83480	//   "scopes": [
83481	//     "https://www.googleapis.com/auth/cloud-platform",
83482	//     "https://www.googleapis.com/auth/compute",
83483	//     "https://www.googleapis.com/auth/compute.readonly"
83484	//   ]
83485	// }
83486
83487}
83488
83489// Pages invokes f for each page of results.
83490// A non-nil error returned from f will halt the iteration.
83491// The provided context supersedes any context provided to the Context method.
83492func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
83493	c.ctx_ = ctx
83494	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83495	for {
83496		x, err := c.Do()
83497		if err != nil {
83498			return err
83499		}
83500		if err := f(x); err != nil {
83501			return err
83502		}
83503		if x.NextPageToken == "" {
83504			return nil
83505		}
83506		c.PageToken(x.NextPageToken)
83507	}
83508}
83509
83510// method id "compute.networkEndpointGroups.aggregatedList":
83511
83512type NetworkEndpointGroupsAggregatedListCall struct {
83513	s            *Service
83514	project      string
83515	urlParams_   gensupport.URLParams
83516	ifNoneMatch_ string
83517	ctx_         context.Context
83518	header_      http.Header
83519}
83520
83521// AggregatedList: Retrieves the list of network endpoint groups and
83522// sorts them by zone.
83523func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
83524	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83525	c.project = project
83526	return c
83527}
83528
83529// Filter sets the optional parameter "filter": A filter expression that
83530// filters resources listed in the response. The expression must specify
83531// the field name, a comparison operator, and the value that you want to
83532// use for filtering. The value must be a string, a number, or a
83533// boolean. The comparison operator must be either `=`, `!=`, `>`, or
83534// `<`.
83535//
83536// For example, if you are filtering Compute Engine instances, you can
83537// exclude instances named `example-instance` by specifying `name !=
83538// example-instance`.
83539//
83540// You can also filter nested fields. For example, you could specify
83541// `scheduling.automaticRestart = false` to include instances only if
83542// they are not scheduled for automatic restarts. You can use filtering
83543// on nested fields to filter based on resource labels.
83544//
83545// To filter on multiple expressions, provide each separate expression
83546// within parentheses. For example: ``` (scheduling.automaticRestart =
83547// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
83548// is an `AND` expression. However, you can include `AND` and `OR`
83549// expressions explicitly. For example: ``` (cpuPlatform = "Intel
83550// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
83551// (scheduling.automaticRestart = true) ```
83552func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
83553	c.urlParams_.Set("filter", filter)
83554	return c
83555}
83556
83557// IncludeAllScopes sets the optional parameter "includeAllScopes":
83558// Indicates whether every visible scope for each scope type (zone,
83559// region, global) should be included in the response. For new resource
83560// types added after this field, the flag has no effect as new resource
83561// types will always include every visible scope for each scope type in
83562// response. For resource types which predate this field, if this flag
83563// is omitted or false, only scopes of the scope types where the
83564// resource type is expected to be found will be included.
83565func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
83566	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
83567	return c
83568}
83569
83570// MaxResults sets the optional parameter "maxResults": The maximum
83571// number of results per page that should be returned. If the number of
83572// available results is larger than `maxResults`, Compute Engine returns
83573// a `nextPageToken` that can be used to get the next page of results in
83574// subsequent list requests. Acceptable values are `0` to `500`,
83575// inclusive. (Default: `500`)
83576func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
83577	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83578	return c
83579}
83580
83581// OrderBy sets the optional parameter "orderBy": Sorts list results by
83582// a certain order. By default, results are returned in alphanumerical
83583// order based on the resource name.
83584//
83585// You can also sort results in descending order based on the creation
83586// timestamp using `orderBy="creationTimestamp desc". This sorts
83587// results based on the `creationTimestamp` field in reverse
83588// chronological order (newest result first). Use this to sort resources
83589// like operations so that the newest operation is returned
83590// first.
83591//
83592// Currently, only sorting by `name` or `creationTimestamp desc` is
83593// supported.
83594func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
83595	c.urlParams_.Set("orderBy", orderBy)
83596	return c
83597}
83598
83599// PageToken sets the optional parameter "pageToken": Specifies a page
83600// token to use. Set `pageToken` to the `nextPageToken` returned by a
83601// previous list request to get the next page of results.
83602func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
83603	c.urlParams_.Set("pageToken", pageToken)
83604	return c
83605}
83606
83607// Fields allows partial responses to be retrieved. See
83608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83609// for more information.
83610func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
83611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83612	return c
83613}
83614
83615// IfNoneMatch sets the optional parameter which makes the operation
83616// fail if the object's ETag matches the given value. This is useful for
83617// getting updates only after the object has changed since the last
83618// request. Use googleapi.IsNotModified to check whether the response
83619// error from Do is the result of In-None-Match.
83620func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
83621	c.ifNoneMatch_ = entityTag
83622	return c
83623}
83624
83625// Context sets the context to be used in this call's Do method. Any
83626// pending HTTP request will be aborted if the provided context is
83627// canceled.
83628func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
83629	c.ctx_ = ctx
83630	return c
83631}
83632
83633// Header returns an http.Header that can be modified by the caller to
83634// add HTTP headers to the request.
83635func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
83636	if c.header_ == nil {
83637		c.header_ = make(http.Header)
83638	}
83639	return c.header_
83640}
83641
83642func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
83643	reqHeaders := make(http.Header)
83644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83645	for k, v := range c.header_ {
83646		reqHeaders[k] = v
83647	}
83648	reqHeaders.Set("User-Agent", c.s.userAgent())
83649	if c.ifNoneMatch_ != "" {
83650		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83651	}
83652	var body io.Reader = nil
83653	c.urlParams_.Set("alt", alt)
83654	c.urlParams_.Set("prettyPrint", "false")
83655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/networkEndpointGroups")
83656	urls += "?" + c.urlParams_.Encode()
83657	req, err := http.NewRequest("GET", 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	})
83665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83666}
83667
83668// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
83669// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
83670// non-nil. Any non-2xx status code is an error. Response headers are in
83671// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
83672// (if a response was returned at all) in
83673// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
83674// whether the returned error was because http.StatusNotModified was
83675// returned.
83676func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
83677	gensupport.SetOptions(c.urlParams_, opts...)
83678	res, err := c.doRequest("json")
83679	if res != nil && res.StatusCode == http.StatusNotModified {
83680		if res.Body != nil {
83681			res.Body.Close()
83682		}
83683		return nil, &googleapi.Error{
83684			Code:   res.StatusCode,
83685			Header: res.Header,
83686		}
83687	}
83688	if err != nil {
83689		return nil, err
83690	}
83691	defer googleapi.CloseBody(res)
83692	if err := googleapi.CheckResponse(res); err != nil {
83693		return nil, err
83694	}
83695	ret := &NetworkEndpointGroupAggregatedList{
83696		ServerResponse: googleapi.ServerResponse{
83697			Header:         res.Header,
83698			HTTPStatusCode: res.StatusCode,
83699		},
83700	}
83701	target := &ret
83702	if err := gensupport.DecodeResponse(target, res); err != nil {
83703		return nil, err
83704	}
83705	return ret, nil
83706	// {
83707	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
83708	//   "httpMethod": "GET",
83709	//   "id": "compute.networkEndpointGroups.aggregatedList",
83710	//   "parameterOrder": [
83711	//     "project"
83712	//   ],
83713	//   "parameters": {
83714	//     "filter": {
83715	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83716	//       "location": "query",
83717	//       "type": "string"
83718	//     },
83719	//     "includeAllScopes": {
83720	//       "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.",
83721	//       "location": "query",
83722	//       "type": "boolean"
83723	//     },
83724	//     "maxResults": {
83725	//       "default": "500",
83726	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83727	//       "format": "uint32",
83728	//       "location": "query",
83729	//       "minimum": "0",
83730	//       "type": "integer"
83731	//     },
83732	//     "orderBy": {
83733	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83734	//       "location": "query",
83735	//       "type": "string"
83736	//     },
83737	//     "pageToken": {
83738	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83739	//       "location": "query",
83740	//       "type": "string"
83741	//     },
83742	//     "project": {
83743	//       "description": "Project ID for this request.",
83744	//       "location": "path",
83745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83746	//       "required": true,
83747	//       "type": "string"
83748	//     }
83749	//   },
83750	//   "path": "{project}/aggregated/networkEndpointGroups",
83751	//   "response": {
83752	//     "$ref": "NetworkEndpointGroupAggregatedList"
83753	//   },
83754	//   "scopes": [
83755	//     "https://www.googleapis.com/auth/cloud-platform",
83756	//     "https://www.googleapis.com/auth/compute",
83757	//     "https://www.googleapis.com/auth/compute.readonly"
83758	//   ]
83759	// }
83760
83761}
83762
83763// Pages invokes f for each page of results.
83764// A non-nil error returned from f will halt the iteration.
83765// The provided context supersedes any context provided to the Context method.
83766func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
83767	c.ctx_ = ctx
83768	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83769	for {
83770		x, err := c.Do()
83771		if err != nil {
83772			return err
83773		}
83774		if err := f(x); err != nil {
83775			return err
83776		}
83777		if x.NextPageToken == "" {
83778			return nil
83779		}
83780		c.PageToken(x.NextPageToken)
83781	}
83782}
83783
83784// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
83785
83786type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
83787	s                                           *Service
83788	project                                     string
83789	zone                                        string
83790	networkEndpointGroup                        string
83791	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
83792	urlParams_                                  gensupport.URLParams
83793	ctx_                                        context.Context
83794	header_                                     http.Header
83795}
83796
83797// AttachNetworkEndpoints: Attach a list of network endpoints to the
83798// specified network endpoint group.
83799func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
83800	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83801	c.project = project
83802	c.zone = zone
83803	c.networkEndpointGroup = networkEndpointGroup
83804	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
83805	return c
83806}
83807
83808// RequestId sets the optional parameter "requestId": An optional
83809// request ID to identify requests. Specify a unique request ID so that
83810// if you must retry your request, the server will know to ignore the
83811// request if it has already been completed.
83812//
83813// For example, consider a situation where you make an initial request
83814// and the request times out. If you make the request again with the
83815// same request ID, the server can check if original operation with the
83816// same request ID was received, and if so, will ignore the second
83817// request. This prevents clients from accidentally creating duplicate
83818// commitments.
83819//
83820// The request ID must be a valid UUID with the exception that zero UUID
83821// is not supported (00000000-0000-0000-0000-000000000000).
83822func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
83823	c.urlParams_.Set("requestId", requestId)
83824	return c
83825}
83826
83827// Fields allows partial responses to be retrieved. See
83828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83829// for more information.
83830func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
83831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83832	return c
83833}
83834
83835// Context sets the context to be used in this call's Do method. Any
83836// pending HTTP request will be aborted if the provided context is
83837// canceled.
83838func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
83839	c.ctx_ = ctx
83840	return c
83841}
83842
83843// Header returns an http.Header that can be modified by the caller to
83844// add HTTP headers to the request.
83845func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
83846	if c.header_ == nil {
83847		c.header_ = make(http.Header)
83848	}
83849	return c.header_
83850}
83851
83852func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
83853	reqHeaders := make(http.Header)
83854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83855	for k, v := range c.header_ {
83856		reqHeaders[k] = v
83857	}
83858	reqHeaders.Set("User-Agent", c.s.userAgent())
83859	var body io.Reader = nil
83860	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
83861	if err != nil {
83862		return nil, err
83863	}
83864	reqHeaders.Set("Content-Type", "application/json")
83865	c.urlParams_.Set("alt", alt)
83866	c.urlParams_.Set("prettyPrint", "false")
83867	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
83868	urls += "?" + c.urlParams_.Encode()
83869	req, err := http.NewRequest("POST", urls, body)
83870	if err != nil {
83871		return nil, err
83872	}
83873	req.Header = reqHeaders
83874	googleapi.Expand(req.URL, map[string]string{
83875		"project":              c.project,
83876		"zone":                 c.zone,
83877		"networkEndpointGroup": c.networkEndpointGroup,
83878	})
83879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83880}
83881
83882// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
83883// Exactly one of *Operation or error will be non-nil. Any non-2xx
83884// status code is an error. Response headers are in either
83885// *Operation.ServerResponse.Header or (if a response was returned at
83886// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83887// to check whether the returned error was because
83888// http.StatusNotModified was returned.
83889func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83890	gensupport.SetOptions(c.urlParams_, opts...)
83891	res, err := c.doRequest("json")
83892	if res != nil && res.StatusCode == http.StatusNotModified {
83893		if res.Body != nil {
83894			res.Body.Close()
83895		}
83896		return nil, &googleapi.Error{
83897			Code:   res.StatusCode,
83898			Header: res.Header,
83899		}
83900	}
83901	if err != nil {
83902		return nil, err
83903	}
83904	defer googleapi.CloseBody(res)
83905	if err := googleapi.CheckResponse(res); err != nil {
83906		return nil, err
83907	}
83908	ret := &Operation{
83909		ServerResponse: googleapi.ServerResponse{
83910			Header:         res.Header,
83911			HTTPStatusCode: res.StatusCode,
83912		},
83913	}
83914	target := &ret
83915	if err := gensupport.DecodeResponse(target, res); err != nil {
83916		return nil, err
83917	}
83918	return ret, nil
83919	// {
83920	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
83921	//   "httpMethod": "POST",
83922	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
83923	//   "parameterOrder": [
83924	//     "project",
83925	//     "zone",
83926	//     "networkEndpointGroup"
83927	//   ],
83928	//   "parameters": {
83929	//     "networkEndpointGroup": {
83930	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
83931	//       "location": "path",
83932	//       "required": true,
83933	//       "type": "string"
83934	//     },
83935	//     "project": {
83936	//       "description": "Project ID for this request.",
83937	//       "location": "path",
83938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83939	//       "required": true,
83940	//       "type": "string"
83941	//     },
83942	//     "requestId": {
83943	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83944	//       "location": "query",
83945	//       "type": "string"
83946	//     },
83947	//     "zone": {
83948	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
83949	//       "location": "path",
83950	//       "required": true,
83951	//       "type": "string"
83952	//     }
83953	//   },
83954	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
83955	//   "request": {
83956	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
83957	//   },
83958	//   "response": {
83959	//     "$ref": "Operation"
83960	//   },
83961	//   "scopes": [
83962	//     "https://www.googleapis.com/auth/cloud-platform",
83963	//     "https://www.googleapis.com/auth/compute"
83964	//   ]
83965	// }
83966
83967}
83968
83969// method id "compute.networkEndpointGroups.delete":
83970
83971type NetworkEndpointGroupsDeleteCall struct {
83972	s                    *Service
83973	project              string
83974	zone                 string
83975	networkEndpointGroup string
83976	urlParams_           gensupport.URLParams
83977	ctx_                 context.Context
83978	header_              http.Header
83979}
83980
83981// Delete: Deletes the specified network endpoint group. The network
83982// endpoints in the NEG and the VM instances they belong to are not
83983// terminated when the NEG is deleted. Note that the NEG cannot be
83984// deleted if there are backend services referencing it.
83985func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
83986	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83987	c.project = project
83988	c.zone = zone
83989	c.networkEndpointGroup = networkEndpointGroup
83990	return c
83991}
83992
83993// RequestId sets the optional parameter "requestId": An optional
83994// request ID to identify requests. Specify a unique request ID so that
83995// if you must retry your request, the server will know to ignore the
83996// request if it has already been completed.
83997//
83998// For example, consider a situation where you make an initial request
83999// and the request times out. If you make the request again with the
84000// same request ID, the server can check if original operation with the
84001// same request ID was received, and if so, will ignore the second
84002// request. This prevents clients from accidentally creating duplicate
84003// commitments.
84004//
84005// The request ID must be a valid UUID with the exception that zero UUID
84006// is not supported (00000000-0000-0000-0000-000000000000).
84007func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
84008	c.urlParams_.Set("requestId", requestId)
84009	return c
84010}
84011
84012// Fields allows partial responses to be retrieved. See
84013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84014// for more information.
84015func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
84016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84017	return c
84018}
84019
84020// Context sets the context to be used in this call's Do method. Any
84021// pending HTTP request will be aborted if the provided context is
84022// canceled.
84023func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
84024	c.ctx_ = ctx
84025	return c
84026}
84027
84028// Header returns an http.Header that can be modified by the caller to
84029// add HTTP headers to the request.
84030func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
84031	if c.header_ == nil {
84032		c.header_ = make(http.Header)
84033	}
84034	return c.header_
84035}
84036
84037func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
84038	reqHeaders := make(http.Header)
84039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84040	for k, v := range c.header_ {
84041		reqHeaders[k] = v
84042	}
84043	reqHeaders.Set("User-Agent", c.s.userAgent())
84044	var body io.Reader = nil
84045	c.urlParams_.Set("alt", alt)
84046	c.urlParams_.Set("prettyPrint", "false")
84047	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
84048	urls += "?" + c.urlParams_.Encode()
84049	req, err := http.NewRequest("DELETE", urls, body)
84050	if err != nil {
84051		return nil, err
84052	}
84053	req.Header = reqHeaders
84054	googleapi.Expand(req.URL, map[string]string{
84055		"project":              c.project,
84056		"zone":                 c.zone,
84057		"networkEndpointGroup": c.networkEndpointGroup,
84058	})
84059	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84060}
84061
84062// Do executes the "compute.networkEndpointGroups.delete" call.
84063// Exactly one of *Operation or error will be non-nil. Any non-2xx
84064// status code is an error. Response headers are in either
84065// *Operation.ServerResponse.Header or (if a response was returned at
84066// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84067// to check whether the returned error was because
84068// http.StatusNotModified was returned.
84069func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84070	gensupport.SetOptions(c.urlParams_, opts...)
84071	res, err := c.doRequest("json")
84072	if res != nil && res.StatusCode == http.StatusNotModified {
84073		if res.Body != nil {
84074			res.Body.Close()
84075		}
84076		return nil, &googleapi.Error{
84077			Code:   res.StatusCode,
84078			Header: res.Header,
84079		}
84080	}
84081	if err != nil {
84082		return nil, err
84083	}
84084	defer googleapi.CloseBody(res)
84085	if err := googleapi.CheckResponse(res); err != nil {
84086		return nil, err
84087	}
84088	ret := &Operation{
84089		ServerResponse: googleapi.ServerResponse{
84090			Header:         res.Header,
84091			HTTPStatusCode: res.StatusCode,
84092		},
84093	}
84094	target := &ret
84095	if err := gensupport.DecodeResponse(target, res); err != nil {
84096		return nil, err
84097	}
84098	return ret, nil
84099	// {
84100	//   "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.",
84101	//   "httpMethod": "DELETE",
84102	//   "id": "compute.networkEndpointGroups.delete",
84103	//   "parameterOrder": [
84104	//     "project",
84105	//     "zone",
84106	//     "networkEndpointGroup"
84107	//   ],
84108	//   "parameters": {
84109	//     "networkEndpointGroup": {
84110	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
84111	//       "location": "path",
84112	//       "required": true,
84113	//       "type": "string"
84114	//     },
84115	//     "project": {
84116	//       "description": "Project ID for this request.",
84117	//       "location": "path",
84118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84119	//       "required": true,
84120	//       "type": "string"
84121	//     },
84122	//     "requestId": {
84123	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84124	//       "location": "query",
84125	//       "type": "string"
84126	//     },
84127	//     "zone": {
84128	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
84129	//       "location": "path",
84130	//       "required": true,
84131	//       "type": "string"
84132	//     }
84133	//   },
84134	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
84135	//   "response": {
84136	//     "$ref": "Operation"
84137	//   },
84138	//   "scopes": [
84139	//     "https://www.googleapis.com/auth/cloud-platform",
84140	//     "https://www.googleapis.com/auth/compute"
84141	//   ]
84142	// }
84143
84144}
84145
84146// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
84147
84148type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
84149	s                                           *Service
84150	project                                     string
84151	zone                                        string
84152	networkEndpointGroup                        string
84153	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
84154	urlParams_                                  gensupport.URLParams
84155	ctx_                                        context.Context
84156	header_                                     http.Header
84157}
84158
84159// DetachNetworkEndpoints: Detach a list of network endpoints from the
84160// specified network endpoint group.
84161func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
84162	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84163	c.project = project
84164	c.zone = zone
84165	c.networkEndpointGroup = networkEndpointGroup
84166	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
84167	return c
84168}
84169
84170// RequestId sets the optional parameter "requestId": An optional
84171// request ID to identify requests. Specify a unique request ID so that
84172// if you must retry your request, the server will know to ignore the
84173// request if it has already been completed.
84174//
84175// For example, consider a situation where you make an initial request
84176// and the request times out. If you make the request again with the
84177// same request ID, the server can check if original operation with the
84178// same request ID was received, and if so, will ignore the second
84179// request. This prevents clients from accidentally creating duplicate
84180// commitments.
84181//
84182// The request ID must be a valid UUID with the exception that zero UUID
84183// is not supported (00000000-0000-0000-0000-000000000000).
84184func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
84185	c.urlParams_.Set("requestId", requestId)
84186	return c
84187}
84188
84189// Fields allows partial responses to be retrieved. See
84190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84191// for more information.
84192func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
84193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84194	return c
84195}
84196
84197// Context sets the context to be used in this call's Do method. Any
84198// pending HTTP request will be aborted if the provided context is
84199// canceled.
84200func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
84201	c.ctx_ = ctx
84202	return c
84203}
84204
84205// Header returns an http.Header that can be modified by the caller to
84206// add HTTP headers to the request.
84207func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
84208	if c.header_ == nil {
84209		c.header_ = make(http.Header)
84210	}
84211	return c.header_
84212}
84213
84214func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
84215	reqHeaders := make(http.Header)
84216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84217	for k, v := range c.header_ {
84218		reqHeaders[k] = v
84219	}
84220	reqHeaders.Set("User-Agent", c.s.userAgent())
84221	var body io.Reader = nil
84222	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
84223	if err != nil {
84224		return nil, err
84225	}
84226	reqHeaders.Set("Content-Type", "application/json")
84227	c.urlParams_.Set("alt", alt)
84228	c.urlParams_.Set("prettyPrint", "false")
84229	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
84230	urls += "?" + c.urlParams_.Encode()
84231	req, err := http.NewRequest("POST", urls, body)
84232	if err != nil {
84233		return nil, err
84234	}
84235	req.Header = reqHeaders
84236	googleapi.Expand(req.URL, map[string]string{
84237		"project":              c.project,
84238		"zone":                 c.zone,
84239		"networkEndpointGroup": c.networkEndpointGroup,
84240	})
84241	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84242}
84243
84244// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
84245// Exactly one of *Operation or error will be non-nil. Any non-2xx
84246// status code is an error. Response headers are in either
84247// *Operation.ServerResponse.Header or (if a response was returned at
84248// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84249// to check whether the returned error was because
84250// http.StatusNotModified was returned.
84251func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84252	gensupport.SetOptions(c.urlParams_, opts...)
84253	res, err := c.doRequest("json")
84254	if res != nil && res.StatusCode == http.StatusNotModified {
84255		if res.Body != nil {
84256			res.Body.Close()
84257		}
84258		return nil, &googleapi.Error{
84259			Code:   res.StatusCode,
84260			Header: res.Header,
84261		}
84262	}
84263	if err != nil {
84264		return nil, err
84265	}
84266	defer googleapi.CloseBody(res)
84267	if err := googleapi.CheckResponse(res); err != nil {
84268		return nil, err
84269	}
84270	ret := &Operation{
84271		ServerResponse: googleapi.ServerResponse{
84272			Header:         res.Header,
84273			HTTPStatusCode: res.StatusCode,
84274		},
84275	}
84276	target := &ret
84277	if err := gensupport.DecodeResponse(target, res); err != nil {
84278		return nil, err
84279	}
84280	return ret, nil
84281	// {
84282	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
84283	//   "httpMethod": "POST",
84284	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
84285	//   "parameterOrder": [
84286	//     "project",
84287	//     "zone",
84288	//     "networkEndpointGroup"
84289	//   ],
84290	//   "parameters": {
84291	//     "networkEndpointGroup": {
84292	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
84293	//       "location": "path",
84294	//       "required": true,
84295	//       "type": "string"
84296	//     },
84297	//     "project": {
84298	//       "description": "Project ID for this request.",
84299	//       "location": "path",
84300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84301	//       "required": true,
84302	//       "type": "string"
84303	//     },
84304	//     "requestId": {
84305	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84306	//       "location": "query",
84307	//       "type": "string"
84308	//     },
84309	//     "zone": {
84310	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
84311	//       "location": "path",
84312	//       "required": true,
84313	//       "type": "string"
84314	//     }
84315	//   },
84316	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
84317	//   "request": {
84318	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
84319	//   },
84320	//   "response": {
84321	//     "$ref": "Operation"
84322	//   },
84323	//   "scopes": [
84324	//     "https://www.googleapis.com/auth/cloud-platform",
84325	//     "https://www.googleapis.com/auth/compute"
84326	//   ]
84327	// }
84328
84329}
84330
84331// method id "compute.networkEndpointGroups.get":
84332
84333type NetworkEndpointGroupsGetCall struct {
84334	s                    *Service
84335	project              string
84336	zone                 string
84337	networkEndpointGroup string
84338	urlParams_           gensupport.URLParams
84339	ifNoneMatch_         string
84340	ctx_                 context.Context
84341	header_              http.Header
84342}
84343
84344// Get: Returns the specified network endpoint group. Gets a list of
84345// available network endpoint groups by making a list() request.
84346func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
84347	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84348	c.project = project
84349	c.zone = zone
84350	c.networkEndpointGroup = networkEndpointGroup
84351	return c
84352}
84353
84354// Fields allows partial responses to be retrieved. See
84355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84356// for more information.
84357func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
84358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84359	return c
84360}
84361
84362// IfNoneMatch sets the optional parameter which makes the operation
84363// fail if the object's ETag matches the given value. This is useful for
84364// getting updates only after the object has changed since the last
84365// request. Use googleapi.IsNotModified to check whether the response
84366// error from Do is the result of In-None-Match.
84367func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
84368	c.ifNoneMatch_ = entityTag
84369	return c
84370}
84371
84372// Context sets the context to be used in this call's Do method. Any
84373// pending HTTP request will be aborted if the provided context is
84374// canceled.
84375func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
84376	c.ctx_ = ctx
84377	return c
84378}
84379
84380// Header returns an http.Header that can be modified by the caller to
84381// add HTTP headers to the request.
84382func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
84383	if c.header_ == nil {
84384		c.header_ = make(http.Header)
84385	}
84386	return c.header_
84387}
84388
84389func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
84390	reqHeaders := make(http.Header)
84391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84392	for k, v := range c.header_ {
84393		reqHeaders[k] = v
84394	}
84395	reqHeaders.Set("User-Agent", c.s.userAgent())
84396	if c.ifNoneMatch_ != "" {
84397		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84398	}
84399	var body io.Reader = nil
84400	c.urlParams_.Set("alt", alt)
84401	c.urlParams_.Set("prettyPrint", "false")
84402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
84403	urls += "?" + c.urlParams_.Encode()
84404	req, err := http.NewRequest("GET", urls, body)
84405	if err != nil {
84406		return nil, err
84407	}
84408	req.Header = reqHeaders
84409	googleapi.Expand(req.URL, map[string]string{
84410		"project":              c.project,
84411		"zone":                 c.zone,
84412		"networkEndpointGroup": c.networkEndpointGroup,
84413	})
84414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84415}
84416
84417// Do executes the "compute.networkEndpointGroups.get" call.
84418// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
84419// non-2xx status code is an error. Response headers are in either
84420// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
84421// returned at all) in error.(*googleapi.Error).Header. Use
84422// googleapi.IsNotModified to check whether the returned error was
84423// because http.StatusNotModified was returned.
84424func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
84425	gensupport.SetOptions(c.urlParams_, opts...)
84426	res, err := c.doRequest("json")
84427	if res != nil && res.StatusCode == http.StatusNotModified {
84428		if res.Body != nil {
84429			res.Body.Close()
84430		}
84431		return nil, &googleapi.Error{
84432			Code:   res.StatusCode,
84433			Header: res.Header,
84434		}
84435	}
84436	if err != nil {
84437		return nil, err
84438	}
84439	defer googleapi.CloseBody(res)
84440	if err := googleapi.CheckResponse(res); err != nil {
84441		return nil, err
84442	}
84443	ret := &NetworkEndpointGroup{
84444		ServerResponse: googleapi.ServerResponse{
84445			Header:         res.Header,
84446			HTTPStatusCode: res.StatusCode,
84447		},
84448	}
84449	target := &ret
84450	if err := gensupport.DecodeResponse(target, res); err != nil {
84451		return nil, err
84452	}
84453	return ret, nil
84454	// {
84455	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
84456	//   "httpMethod": "GET",
84457	//   "id": "compute.networkEndpointGroups.get",
84458	//   "parameterOrder": [
84459	//     "project",
84460	//     "zone",
84461	//     "networkEndpointGroup"
84462	//   ],
84463	//   "parameters": {
84464	//     "networkEndpointGroup": {
84465	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
84466	//       "location": "path",
84467	//       "required": true,
84468	//       "type": "string"
84469	//     },
84470	//     "project": {
84471	//       "description": "Project ID for this request.",
84472	//       "location": "path",
84473	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84474	//       "required": true,
84475	//       "type": "string"
84476	//     },
84477	//     "zone": {
84478	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
84479	//       "location": "path",
84480	//       "required": true,
84481	//       "type": "string"
84482	//     }
84483	//   },
84484	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
84485	//   "response": {
84486	//     "$ref": "NetworkEndpointGroup"
84487	//   },
84488	//   "scopes": [
84489	//     "https://www.googleapis.com/auth/cloud-platform",
84490	//     "https://www.googleapis.com/auth/compute",
84491	//     "https://www.googleapis.com/auth/compute.readonly"
84492	//   ]
84493	// }
84494
84495}
84496
84497// method id "compute.networkEndpointGroups.insert":
84498
84499type NetworkEndpointGroupsInsertCall struct {
84500	s                    *Service
84501	project              string
84502	zone                 string
84503	networkendpointgroup *NetworkEndpointGroup
84504	urlParams_           gensupport.URLParams
84505	ctx_                 context.Context
84506	header_              http.Header
84507}
84508
84509// Insert: Creates a network endpoint group in the specified project
84510// using the parameters that are included in the request.
84511func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
84512	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84513	c.project = project
84514	c.zone = zone
84515	c.networkendpointgroup = networkendpointgroup
84516	return c
84517}
84518
84519// RequestId sets the optional parameter "requestId": An optional
84520// request ID to identify requests. Specify a unique request ID so that
84521// if you must retry your request, the server will know to ignore the
84522// request if it has already been completed.
84523//
84524// For example, consider a situation where you make an initial request
84525// and the request times out. If you make the request again with the
84526// same request ID, the server can check if original operation with the
84527// same request ID was received, and if so, will ignore the second
84528// request. This prevents clients from accidentally creating duplicate
84529// commitments.
84530//
84531// The request ID must be a valid UUID with the exception that zero UUID
84532// is not supported (00000000-0000-0000-0000-000000000000).
84533func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
84534	c.urlParams_.Set("requestId", requestId)
84535	return c
84536}
84537
84538// Fields allows partial responses to be retrieved. See
84539// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84540// for more information.
84541func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
84542	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84543	return c
84544}
84545
84546// Context sets the context to be used in this call's Do method. Any
84547// pending HTTP request will be aborted if the provided context is
84548// canceled.
84549func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
84550	c.ctx_ = ctx
84551	return c
84552}
84553
84554// Header returns an http.Header that can be modified by the caller to
84555// add HTTP headers to the request.
84556func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
84557	if c.header_ == nil {
84558		c.header_ = make(http.Header)
84559	}
84560	return c.header_
84561}
84562
84563func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
84564	reqHeaders := make(http.Header)
84565	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84566	for k, v := range c.header_ {
84567		reqHeaders[k] = v
84568	}
84569	reqHeaders.Set("User-Agent", c.s.userAgent())
84570	var body io.Reader = nil
84571	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
84572	if err != nil {
84573		return nil, err
84574	}
84575	reqHeaders.Set("Content-Type", "application/json")
84576	c.urlParams_.Set("alt", alt)
84577	c.urlParams_.Set("prettyPrint", "false")
84578	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
84579	urls += "?" + c.urlParams_.Encode()
84580	req, err := http.NewRequest("POST", urls, body)
84581	if err != nil {
84582		return nil, err
84583	}
84584	req.Header = reqHeaders
84585	googleapi.Expand(req.URL, map[string]string{
84586		"project": c.project,
84587		"zone":    c.zone,
84588	})
84589	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84590}
84591
84592// Do executes the "compute.networkEndpointGroups.insert" call.
84593// Exactly one of *Operation or error will be non-nil. Any non-2xx
84594// status code is an error. Response headers are in either
84595// *Operation.ServerResponse.Header or (if a response was returned at
84596// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84597// to check whether the returned error was because
84598// http.StatusNotModified was returned.
84599func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84600	gensupport.SetOptions(c.urlParams_, opts...)
84601	res, err := c.doRequest("json")
84602	if res != nil && res.StatusCode == http.StatusNotModified {
84603		if res.Body != nil {
84604			res.Body.Close()
84605		}
84606		return nil, &googleapi.Error{
84607			Code:   res.StatusCode,
84608			Header: res.Header,
84609		}
84610	}
84611	if err != nil {
84612		return nil, err
84613	}
84614	defer googleapi.CloseBody(res)
84615	if err := googleapi.CheckResponse(res); err != nil {
84616		return nil, err
84617	}
84618	ret := &Operation{
84619		ServerResponse: googleapi.ServerResponse{
84620			Header:         res.Header,
84621			HTTPStatusCode: res.StatusCode,
84622		},
84623	}
84624	target := &ret
84625	if err := gensupport.DecodeResponse(target, res); err != nil {
84626		return nil, err
84627	}
84628	return ret, nil
84629	// {
84630	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
84631	//   "httpMethod": "POST",
84632	//   "id": "compute.networkEndpointGroups.insert",
84633	//   "parameterOrder": [
84634	//     "project",
84635	//     "zone"
84636	//   ],
84637	//   "parameters": {
84638	//     "project": {
84639	//       "description": "Project ID for this request.",
84640	//       "location": "path",
84641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84642	//       "required": true,
84643	//       "type": "string"
84644	//     },
84645	//     "requestId": {
84646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84647	//       "location": "query",
84648	//       "type": "string"
84649	//     },
84650	//     "zone": {
84651	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
84652	//       "location": "path",
84653	//       "required": true,
84654	//       "type": "string"
84655	//     }
84656	//   },
84657	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
84658	//   "request": {
84659	//     "$ref": "NetworkEndpointGroup"
84660	//   },
84661	//   "response": {
84662	//     "$ref": "Operation"
84663	//   },
84664	//   "scopes": [
84665	//     "https://www.googleapis.com/auth/cloud-platform",
84666	//     "https://www.googleapis.com/auth/compute"
84667	//   ]
84668	// }
84669
84670}
84671
84672// method id "compute.networkEndpointGroups.list":
84673
84674type NetworkEndpointGroupsListCall struct {
84675	s            *Service
84676	project      string
84677	zone         string
84678	urlParams_   gensupport.URLParams
84679	ifNoneMatch_ string
84680	ctx_         context.Context
84681	header_      http.Header
84682}
84683
84684// List: Retrieves the list of network endpoint groups that are located
84685// in the specified project and zone.
84686func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
84687	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84688	c.project = project
84689	c.zone = zone
84690	return c
84691}
84692
84693// Filter sets the optional parameter "filter": A filter expression that
84694// filters resources listed in the response. The expression must specify
84695// the field name, a comparison operator, and the value that you want to
84696// use for filtering. The value must be a string, a number, or a
84697// boolean. The comparison operator must be either `=`, `!=`, `>`, or
84698// `<`.
84699//
84700// For example, if you are filtering Compute Engine instances, you can
84701// exclude instances named `example-instance` by specifying `name !=
84702// example-instance`.
84703//
84704// You can also filter nested fields. For example, you could specify
84705// `scheduling.automaticRestart = false` to include instances only if
84706// they are not scheduled for automatic restarts. You can use filtering
84707// on nested fields to filter based on resource labels.
84708//
84709// To filter on multiple expressions, provide each separate expression
84710// within parentheses. For example: ``` (scheduling.automaticRestart =
84711// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
84712// is an `AND` expression. However, you can include `AND` and `OR`
84713// expressions explicitly. For example: ``` (cpuPlatform = "Intel
84714// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
84715// (scheduling.automaticRestart = true) ```
84716func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
84717	c.urlParams_.Set("filter", filter)
84718	return c
84719}
84720
84721// MaxResults sets the optional parameter "maxResults": The maximum
84722// number of results per page that should be returned. If the number of
84723// available results is larger than `maxResults`, Compute Engine returns
84724// a `nextPageToken` that can be used to get the next page of results in
84725// subsequent list requests. Acceptable values are `0` to `500`,
84726// inclusive. (Default: `500`)
84727func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
84728	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84729	return c
84730}
84731
84732// OrderBy sets the optional parameter "orderBy": Sorts list results by
84733// a certain order. By default, results are returned in alphanumerical
84734// order based on the resource name.
84735//
84736// You can also sort results in descending order based on the creation
84737// timestamp using `orderBy="creationTimestamp desc". This sorts
84738// results based on the `creationTimestamp` field in reverse
84739// chronological order (newest result first). Use this to sort resources
84740// like operations so that the newest operation is returned
84741// first.
84742//
84743// Currently, only sorting by `name` or `creationTimestamp desc` is
84744// supported.
84745func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
84746	c.urlParams_.Set("orderBy", orderBy)
84747	return c
84748}
84749
84750// PageToken sets the optional parameter "pageToken": Specifies a page
84751// token to use. Set `pageToken` to the `nextPageToken` returned by a
84752// previous list request to get the next page of results.
84753func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
84754	c.urlParams_.Set("pageToken", pageToken)
84755	return c
84756}
84757
84758// Fields allows partial responses to be retrieved. See
84759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84760// for more information.
84761func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
84762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84763	return c
84764}
84765
84766// IfNoneMatch sets the optional parameter which makes the operation
84767// fail if the object's ETag matches the given value. This is useful for
84768// getting updates only after the object has changed since the last
84769// request. Use googleapi.IsNotModified to check whether the response
84770// error from Do is the result of In-None-Match.
84771func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
84772	c.ifNoneMatch_ = entityTag
84773	return c
84774}
84775
84776// Context sets the context to be used in this call's Do method. Any
84777// pending HTTP request will be aborted if the provided context is
84778// canceled.
84779func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
84780	c.ctx_ = ctx
84781	return c
84782}
84783
84784// Header returns an http.Header that can be modified by the caller to
84785// add HTTP headers to the request.
84786func (c *NetworkEndpointGroupsListCall) Header() http.Header {
84787	if c.header_ == nil {
84788		c.header_ = make(http.Header)
84789	}
84790	return c.header_
84791}
84792
84793func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
84794	reqHeaders := make(http.Header)
84795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84796	for k, v := range c.header_ {
84797		reqHeaders[k] = v
84798	}
84799	reqHeaders.Set("User-Agent", c.s.userAgent())
84800	if c.ifNoneMatch_ != "" {
84801		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84802	}
84803	var body io.Reader = nil
84804	c.urlParams_.Set("alt", alt)
84805	c.urlParams_.Set("prettyPrint", "false")
84806	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
84807	urls += "?" + c.urlParams_.Encode()
84808	req, err := http.NewRequest("GET", urls, body)
84809	if err != nil {
84810		return nil, err
84811	}
84812	req.Header = reqHeaders
84813	googleapi.Expand(req.URL, map[string]string{
84814		"project": c.project,
84815		"zone":    c.zone,
84816	})
84817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84818}
84819
84820// Do executes the "compute.networkEndpointGroups.list" call.
84821// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
84822// Any non-2xx status code is an error. Response headers are in either
84823// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
84824// returned at all) in error.(*googleapi.Error).Header. Use
84825// googleapi.IsNotModified to check whether the returned error was
84826// because http.StatusNotModified was returned.
84827func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
84828	gensupport.SetOptions(c.urlParams_, opts...)
84829	res, err := c.doRequest("json")
84830	if res != nil && res.StatusCode == http.StatusNotModified {
84831		if res.Body != nil {
84832			res.Body.Close()
84833		}
84834		return nil, &googleapi.Error{
84835			Code:   res.StatusCode,
84836			Header: res.Header,
84837		}
84838	}
84839	if err != nil {
84840		return nil, err
84841	}
84842	defer googleapi.CloseBody(res)
84843	if err := googleapi.CheckResponse(res); err != nil {
84844		return nil, err
84845	}
84846	ret := &NetworkEndpointGroupList{
84847		ServerResponse: googleapi.ServerResponse{
84848			Header:         res.Header,
84849			HTTPStatusCode: res.StatusCode,
84850		},
84851	}
84852	target := &ret
84853	if err := gensupport.DecodeResponse(target, res); err != nil {
84854		return nil, err
84855	}
84856	return ret, nil
84857	// {
84858	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
84859	//   "httpMethod": "GET",
84860	//   "id": "compute.networkEndpointGroups.list",
84861	//   "parameterOrder": [
84862	//     "project",
84863	//     "zone"
84864	//   ],
84865	//   "parameters": {
84866	//     "filter": {
84867	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
84868	//       "location": "query",
84869	//       "type": "string"
84870	//     },
84871	//     "maxResults": {
84872	//       "default": "500",
84873	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
84874	//       "format": "uint32",
84875	//       "location": "query",
84876	//       "minimum": "0",
84877	//       "type": "integer"
84878	//     },
84879	//     "orderBy": {
84880	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
84881	//       "location": "query",
84882	//       "type": "string"
84883	//     },
84884	//     "pageToken": {
84885	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
84886	//       "location": "query",
84887	//       "type": "string"
84888	//     },
84889	//     "project": {
84890	//       "description": "Project ID for this request.",
84891	//       "location": "path",
84892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84893	//       "required": true,
84894	//       "type": "string"
84895	//     },
84896	//     "zone": {
84897	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
84898	//       "location": "path",
84899	//       "required": true,
84900	//       "type": "string"
84901	//     }
84902	//   },
84903	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
84904	//   "response": {
84905	//     "$ref": "NetworkEndpointGroupList"
84906	//   },
84907	//   "scopes": [
84908	//     "https://www.googleapis.com/auth/cloud-platform",
84909	//     "https://www.googleapis.com/auth/compute",
84910	//     "https://www.googleapis.com/auth/compute.readonly"
84911	//   ]
84912	// }
84913
84914}
84915
84916// Pages invokes f for each page of results.
84917// A non-nil error returned from f will halt the iteration.
84918// The provided context supersedes any context provided to the Context method.
84919func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
84920	c.ctx_ = ctx
84921	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84922	for {
84923		x, err := c.Do()
84924		if err != nil {
84925			return err
84926		}
84927		if err := f(x); err != nil {
84928			return err
84929		}
84930		if x.NextPageToken == "" {
84931			return nil
84932		}
84933		c.PageToken(x.NextPageToken)
84934	}
84935}
84936
84937// method id "compute.networkEndpointGroups.listNetworkEndpoints":
84938
84939type NetworkEndpointGroupsListNetworkEndpointsCall struct {
84940	s                                         *Service
84941	project                                   string
84942	zone                                      string
84943	networkEndpointGroup                      string
84944	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
84945	urlParams_                                gensupport.URLParams
84946	ctx_                                      context.Context
84947	header_                                   http.Header
84948}
84949
84950// ListNetworkEndpoints: Lists the network endpoints in the specified
84951// network endpoint group.
84952func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
84953	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84954	c.project = project
84955	c.zone = zone
84956	c.networkEndpointGroup = networkEndpointGroup
84957	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
84958	return c
84959}
84960
84961// Filter sets the optional parameter "filter": A filter expression that
84962// filters resources listed in the response. The expression must specify
84963// the field name, a comparison operator, and the value that you want to
84964// use for filtering. The value must be a string, a number, or a
84965// boolean. The comparison operator must be either `=`, `!=`, `>`, or
84966// `<`.
84967//
84968// For example, if you are filtering Compute Engine instances, you can
84969// exclude instances named `example-instance` by specifying `name !=
84970// example-instance`.
84971//
84972// You can also filter nested fields. For example, you could specify
84973// `scheduling.automaticRestart = false` to include instances only if
84974// they are not scheduled for automatic restarts. You can use filtering
84975// on nested fields to filter based on resource labels.
84976//
84977// To filter on multiple expressions, provide each separate expression
84978// within parentheses. For example: ``` (scheduling.automaticRestart =
84979// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
84980// is an `AND` expression. However, you can include `AND` and `OR`
84981// expressions explicitly. For example: ``` (cpuPlatform = "Intel
84982// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
84983// (scheduling.automaticRestart = true) ```
84984func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
84985	c.urlParams_.Set("filter", filter)
84986	return c
84987}
84988
84989// MaxResults sets the optional parameter "maxResults": The maximum
84990// number of results per page that should be returned. If the number of
84991// available results is larger than `maxResults`, Compute Engine returns
84992// a `nextPageToken` that can be used to get the next page of results in
84993// subsequent list requests. Acceptable values are `0` to `500`,
84994// inclusive. (Default: `500`)
84995func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
84996	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84997	return c
84998}
84999
85000// OrderBy sets the optional parameter "orderBy": Sorts list results by
85001// a certain order. By default, results are returned in alphanumerical
85002// order based on the resource name.
85003//
85004// You can also sort results in descending order based on the creation
85005// timestamp using `orderBy="creationTimestamp desc". This sorts
85006// results based on the `creationTimestamp` field in reverse
85007// chronological order (newest result first). Use this to sort resources
85008// like operations so that the newest operation is returned
85009// first.
85010//
85011// Currently, only sorting by `name` or `creationTimestamp desc` is
85012// supported.
85013func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
85014	c.urlParams_.Set("orderBy", orderBy)
85015	return c
85016}
85017
85018// PageToken sets the optional parameter "pageToken": Specifies a page
85019// token to use. Set `pageToken` to the `nextPageToken` returned by a
85020// previous list request to get the next page of results.
85021func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
85022	c.urlParams_.Set("pageToken", pageToken)
85023	return c
85024}
85025
85026// Fields allows partial responses to be retrieved. See
85027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85028// for more information.
85029func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
85030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85031	return c
85032}
85033
85034// Context sets the context to be used in this call's Do method. Any
85035// pending HTTP request will be aborted if the provided context is
85036// canceled.
85037func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
85038	c.ctx_ = ctx
85039	return c
85040}
85041
85042// Header returns an http.Header that can be modified by the caller to
85043// add HTTP headers to the request.
85044func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
85045	if c.header_ == nil {
85046		c.header_ = make(http.Header)
85047	}
85048	return c.header_
85049}
85050
85051func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
85052	reqHeaders := make(http.Header)
85053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85054	for k, v := range c.header_ {
85055		reqHeaders[k] = v
85056	}
85057	reqHeaders.Set("User-Agent", c.s.userAgent())
85058	var body io.Reader = nil
85059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
85060	if err != nil {
85061		return nil, err
85062	}
85063	reqHeaders.Set("Content-Type", "application/json")
85064	c.urlParams_.Set("alt", alt)
85065	c.urlParams_.Set("prettyPrint", "false")
85066	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
85067	urls += "?" + c.urlParams_.Encode()
85068	req, err := http.NewRequest("POST", urls, body)
85069	if err != nil {
85070		return nil, err
85071	}
85072	req.Header = reqHeaders
85073	googleapi.Expand(req.URL, map[string]string{
85074		"project":              c.project,
85075		"zone":                 c.zone,
85076		"networkEndpointGroup": c.networkEndpointGroup,
85077	})
85078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85079}
85080
85081// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
85082// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
85083// will be non-nil. Any non-2xx status code is an error. Response
85084// headers are in either
85085// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
85086// (if a response was returned at all) in
85087// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
85088// whether the returned error was because http.StatusNotModified was
85089// returned.
85090func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
85091	gensupport.SetOptions(c.urlParams_, opts...)
85092	res, err := c.doRequest("json")
85093	if res != nil && res.StatusCode == http.StatusNotModified {
85094		if res.Body != nil {
85095			res.Body.Close()
85096		}
85097		return nil, &googleapi.Error{
85098			Code:   res.StatusCode,
85099			Header: res.Header,
85100		}
85101	}
85102	if err != nil {
85103		return nil, err
85104	}
85105	defer googleapi.CloseBody(res)
85106	if err := googleapi.CheckResponse(res); err != nil {
85107		return nil, err
85108	}
85109	ret := &NetworkEndpointGroupsListNetworkEndpoints{
85110		ServerResponse: googleapi.ServerResponse{
85111			Header:         res.Header,
85112			HTTPStatusCode: res.StatusCode,
85113		},
85114	}
85115	target := &ret
85116	if err := gensupport.DecodeResponse(target, res); err != nil {
85117		return nil, err
85118	}
85119	return ret, nil
85120	// {
85121	//   "description": "Lists the network endpoints in the specified network endpoint group.",
85122	//   "httpMethod": "POST",
85123	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
85124	//   "parameterOrder": [
85125	//     "project",
85126	//     "zone",
85127	//     "networkEndpointGroup"
85128	//   ],
85129	//   "parameters": {
85130	//     "filter": {
85131	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
85132	//       "location": "query",
85133	//       "type": "string"
85134	//     },
85135	//     "maxResults": {
85136	//       "default": "500",
85137	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
85138	//       "format": "uint32",
85139	//       "location": "query",
85140	//       "minimum": "0",
85141	//       "type": "integer"
85142	//     },
85143	//     "networkEndpointGroup": {
85144	//       "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.",
85145	//       "location": "path",
85146	//       "required": true,
85147	//       "type": "string"
85148	//     },
85149	//     "orderBy": {
85150	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
85151	//       "location": "query",
85152	//       "type": "string"
85153	//     },
85154	//     "pageToken": {
85155	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
85156	//       "location": "query",
85157	//       "type": "string"
85158	//     },
85159	//     "project": {
85160	//       "description": "Project ID for this request.",
85161	//       "location": "path",
85162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85163	//       "required": true,
85164	//       "type": "string"
85165	//     },
85166	//     "zone": {
85167	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
85168	//       "location": "path",
85169	//       "required": true,
85170	//       "type": "string"
85171	//     }
85172	//   },
85173	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
85174	//   "request": {
85175	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
85176	//   },
85177	//   "response": {
85178	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
85179	//   },
85180	//   "scopes": [
85181	//     "https://www.googleapis.com/auth/cloud-platform",
85182	//     "https://www.googleapis.com/auth/compute",
85183	//     "https://www.googleapis.com/auth/compute.readonly"
85184	//   ]
85185	// }
85186
85187}
85188
85189// Pages invokes f for each page of results.
85190// A non-nil error returned from f will halt the iteration.
85191// The provided context supersedes any context provided to the Context method.
85192func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
85193	c.ctx_ = ctx
85194	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85195	for {
85196		x, err := c.Do()
85197		if err != nil {
85198			return err
85199		}
85200		if err := f(x); err != nil {
85201			return err
85202		}
85203		if x.NextPageToken == "" {
85204			return nil
85205		}
85206		c.PageToken(x.NextPageToken)
85207	}
85208}
85209
85210// method id "compute.networkEndpointGroups.testIamPermissions":
85211
85212type NetworkEndpointGroupsTestIamPermissionsCall struct {
85213	s                      *Service
85214	project                string
85215	zone                   string
85216	resource               string
85217	testpermissionsrequest *TestPermissionsRequest
85218	urlParams_             gensupport.URLParams
85219	ctx_                   context.Context
85220	header_                http.Header
85221}
85222
85223// TestIamPermissions: Returns permissions that a caller has on the
85224// specified resource.
85225func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
85226	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85227	c.project = project
85228	c.zone = zone
85229	c.resource = resource
85230	c.testpermissionsrequest = testpermissionsrequest
85231	return c
85232}
85233
85234// Fields allows partial responses to be retrieved. See
85235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85236// for more information.
85237func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
85238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85239	return c
85240}
85241
85242// Context sets the context to be used in this call's Do method. Any
85243// pending HTTP request will be aborted if the provided context is
85244// canceled.
85245func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
85246	c.ctx_ = ctx
85247	return c
85248}
85249
85250// Header returns an http.Header that can be modified by the caller to
85251// add HTTP headers to the request.
85252func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
85253	if c.header_ == nil {
85254		c.header_ = make(http.Header)
85255	}
85256	return c.header_
85257}
85258
85259func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
85260	reqHeaders := make(http.Header)
85261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85262	for k, v := range c.header_ {
85263		reqHeaders[k] = v
85264	}
85265	reqHeaders.Set("User-Agent", c.s.userAgent())
85266	var body io.Reader = nil
85267	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
85268	if err != nil {
85269		return nil, err
85270	}
85271	reqHeaders.Set("Content-Type", "application/json")
85272	c.urlParams_.Set("alt", alt)
85273	c.urlParams_.Set("prettyPrint", "false")
85274	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
85275	urls += "?" + c.urlParams_.Encode()
85276	req, err := http.NewRequest("POST", urls, body)
85277	if err != nil {
85278		return nil, err
85279	}
85280	req.Header = reqHeaders
85281	googleapi.Expand(req.URL, map[string]string{
85282		"project":  c.project,
85283		"zone":     c.zone,
85284		"resource": c.resource,
85285	})
85286	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85287}
85288
85289// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
85290// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
85291// non-2xx status code is an error. Response headers are in either
85292// *TestPermissionsResponse.ServerResponse.Header or (if a response was
85293// returned at all) in error.(*googleapi.Error).Header. Use
85294// googleapi.IsNotModified to check whether the returned error was
85295// because http.StatusNotModified was returned.
85296func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
85297	gensupport.SetOptions(c.urlParams_, opts...)
85298	res, err := c.doRequest("json")
85299	if res != nil && res.StatusCode == http.StatusNotModified {
85300		if res.Body != nil {
85301			res.Body.Close()
85302		}
85303		return nil, &googleapi.Error{
85304			Code:   res.StatusCode,
85305			Header: res.Header,
85306		}
85307	}
85308	if err != nil {
85309		return nil, err
85310	}
85311	defer googleapi.CloseBody(res)
85312	if err := googleapi.CheckResponse(res); err != nil {
85313		return nil, err
85314	}
85315	ret := &TestPermissionsResponse{
85316		ServerResponse: googleapi.ServerResponse{
85317			Header:         res.Header,
85318			HTTPStatusCode: res.StatusCode,
85319		},
85320	}
85321	target := &ret
85322	if err := gensupport.DecodeResponse(target, res); err != nil {
85323		return nil, err
85324	}
85325	return ret, nil
85326	// {
85327	//   "description": "Returns permissions that a caller has on the specified resource.",
85328	//   "httpMethod": "POST",
85329	//   "id": "compute.networkEndpointGroups.testIamPermissions",
85330	//   "parameterOrder": [
85331	//     "project",
85332	//     "zone",
85333	//     "resource"
85334	//   ],
85335	//   "parameters": {
85336	//     "project": {
85337	//       "description": "Project ID for this request.",
85338	//       "location": "path",
85339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85340	//       "required": true,
85341	//       "type": "string"
85342	//     },
85343	//     "resource": {
85344	//       "description": "Name or id of the resource for this request.",
85345	//       "location": "path",
85346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85347	//       "required": true,
85348	//       "type": "string"
85349	//     },
85350	//     "zone": {
85351	//       "description": "The name of the zone for this request.",
85352	//       "location": "path",
85353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85354	//       "required": true,
85355	//       "type": "string"
85356	//     }
85357	//   },
85358	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
85359	//   "request": {
85360	//     "$ref": "TestPermissionsRequest"
85361	//   },
85362	//   "response": {
85363	//     "$ref": "TestPermissionsResponse"
85364	//   },
85365	//   "scopes": [
85366	//     "https://www.googleapis.com/auth/cloud-platform",
85367	//     "https://www.googleapis.com/auth/compute",
85368	//     "https://www.googleapis.com/auth/compute.readonly"
85369	//   ]
85370	// }
85371
85372}
85373
85374// method id "compute.networks.addPeering":
85375
85376type NetworksAddPeeringCall struct {
85377	s                         *Service
85378	project                   string
85379	network                   string
85380	networksaddpeeringrequest *NetworksAddPeeringRequest
85381	urlParams_                gensupport.URLParams
85382	ctx_                      context.Context
85383	header_                   http.Header
85384}
85385
85386// AddPeering: Adds a peering to the specified network.
85387func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
85388	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85389	c.project = project
85390	c.network = network
85391	c.networksaddpeeringrequest = networksaddpeeringrequest
85392	return c
85393}
85394
85395// RequestId sets the optional parameter "requestId": An optional
85396// request ID to identify requests. Specify a unique request ID so that
85397// if you must retry your request, the server will know to ignore the
85398// request if it has already been completed.
85399//
85400// For example, consider a situation where you make an initial request
85401// and the request times out. If you make the request again with the
85402// same request ID, the server can check if original operation with the
85403// same request ID was received, and if so, will ignore the second
85404// request. This prevents clients from accidentally creating duplicate
85405// commitments.
85406//
85407// The request ID must be a valid UUID with the exception that zero UUID
85408// is not supported (00000000-0000-0000-0000-000000000000).
85409func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
85410	c.urlParams_.Set("requestId", requestId)
85411	return c
85412}
85413
85414// Fields allows partial responses to be retrieved. See
85415// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85416// for more information.
85417func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
85418	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85419	return c
85420}
85421
85422// Context sets the context to be used in this call's Do method. Any
85423// pending HTTP request will be aborted if the provided context is
85424// canceled.
85425func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
85426	c.ctx_ = ctx
85427	return c
85428}
85429
85430// Header returns an http.Header that can be modified by the caller to
85431// add HTTP headers to the request.
85432func (c *NetworksAddPeeringCall) Header() http.Header {
85433	if c.header_ == nil {
85434		c.header_ = make(http.Header)
85435	}
85436	return c.header_
85437}
85438
85439func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
85440	reqHeaders := make(http.Header)
85441	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85442	for k, v := range c.header_ {
85443		reqHeaders[k] = v
85444	}
85445	reqHeaders.Set("User-Agent", c.s.userAgent())
85446	var body io.Reader = nil
85447	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
85448	if err != nil {
85449		return nil, err
85450	}
85451	reqHeaders.Set("Content-Type", "application/json")
85452	c.urlParams_.Set("alt", alt)
85453	c.urlParams_.Set("prettyPrint", "false")
85454	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
85455	urls += "?" + c.urlParams_.Encode()
85456	req, err := http.NewRequest("POST", urls, body)
85457	if err != nil {
85458		return nil, err
85459	}
85460	req.Header = reqHeaders
85461	googleapi.Expand(req.URL, map[string]string{
85462		"project": c.project,
85463		"network": c.network,
85464	})
85465	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85466}
85467
85468// Do executes the "compute.networks.addPeering" call.
85469// Exactly one of *Operation or error will be non-nil. Any non-2xx
85470// status code is an error. Response headers are in either
85471// *Operation.ServerResponse.Header or (if a response was returned at
85472// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85473// to check whether the returned error was because
85474// http.StatusNotModified was returned.
85475func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85476	gensupport.SetOptions(c.urlParams_, opts...)
85477	res, err := c.doRequest("json")
85478	if res != nil && res.StatusCode == http.StatusNotModified {
85479		if res.Body != nil {
85480			res.Body.Close()
85481		}
85482		return nil, &googleapi.Error{
85483			Code:   res.StatusCode,
85484			Header: res.Header,
85485		}
85486	}
85487	if err != nil {
85488		return nil, err
85489	}
85490	defer googleapi.CloseBody(res)
85491	if err := googleapi.CheckResponse(res); err != nil {
85492		return nil, err
85493	}
85494	ret := &Operation{
85495		ServerResponse: googleapi.ServerResponse{
85496			Header:         res.Header,
85497			HTTPStatusCode: res.StatusCode,
85498		},
85499	}
85500	target := &ret
85501	if err := gensupport.DecodeResponse(target, res); err != nil {
85502		return nil, err
85503	}
85504	return ret, nil
85505	// {
85506	//   "description": "Adds a peering to the specified network.",
85507	//   "httpMethod": "POST",
85508	//   "id": "compute.networks.addPeering",
85509	//   "parameterOrder": [
85510	//     "project",
85511	//     "network"
85512	//   ],
85513	//   "parameters": {
85514	//     "network": {
85515	//       "description": "Name of the network resource to add peering to.",
85516	//       "location": "path",
85517	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85518	//       "required": true,
85519	//       "type": "string"
85520	//     },
85521	//     "project": {
85522	//       "description": "Project ID for this request.",
85523	//       "location": "path",
85524	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85525	//       "required": true,
85526	//       "type": "string"
85527	//     },
85528	//     "requestId": {
85529	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85530	//       "location": "query",
85531	//       "type": "string"
85532	//     }
85533	//   },
85534	//   "path": "{project}/global/networks/{network}/addPeering",
85535	//   "request": {
85536	//     "$ref": "NetworksAddPeeringRequest"
85537	//   },
85538	//   "response": {
85539	//     "$ref": "Operation"
85540	//   },
85541	//   "scopes": [
85542	//     "https://www.googleapis.com/auth/cloud-platform",
85543	//     "https://www.googleapis.com/auth/compute"
85544	//   ]
85545	// }
85546
85547}
85548
85549// method id "compute.networks.delete":
85550
85551type NetworksDeleteCall struct {
85552	s          *Service
85553	project    string
85554	network    string
85555	urlParams_ gensupport.URLParams
85556	ctx_       context.Context
85557	header_    http.Header
85558}
85559
85560// Delete: Deletes the specified network.
85561// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
85562func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
85563	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85564	c.project = project
85565	c.network = network
85566	return c
85567}
85568
85569// RequestId sets the optional parameter "requestId": An optional
85570// request ID to identify requests. Specify a unique request ID so that
85571// if you must retry your request, the server will know to ignore the
85572// request if it has already been completed.
85573//
85574// For example, consider a situation where you make an initial request
85575// and the request times out. If you make the request again with the
85576// same request ID, the server can check if original operation with the
85577// same request ID was received, and if so, will ignore the second
85578// request. This prevents clients from accidentally creating duplicate
85579// commitments.
85580//
85581// The request ID must be a valid UUID with the exception that zero UUID
85582// is not supported (00000000-0000-0000-0000-000000000000).
85583func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
85584	c.urlParams_.Set("requestId", requestId)
85585	return c
85586}
85587
85588// Fields allows partial responses to be retrieved. See
85589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85590// for more information.
85591func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
85592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85593	return c
85594}
85595
85596// Context sets the context to be used in this call's Do method. Any
85597// pending HTTP request will be aborted if the provided context is
85598// canceled.
85599func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
85600	c.ctx_ = ctx
85601	return c
85602}
85603
85604// Header returns an http.Header that can be modified by the caller to
85605// add HTTP headers to the request.
85606func (c *NetworksDeleteCall) Header() http.Header {
85607	if c.header_ == nil {
85608		c.header_ = make(http.Header)
85609	}
85610	return c.header_
85611}
85612
85613func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
85614	reqHeaders := make(http.Header)
85615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85616	for k, v := range c.header_ {
85617		reqHeaders[k] = v
85618	}
85619	reqHeaders.Set("User-Agent", c.s.userAgent())
85620	var body io.Reader = nil
85621	c.urlParams_.Set("alt", alt)
85622	c.urlParams_.Set("prettyPrint", "false")
85623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
85624	urls += "?" + c.urlParams_.Encode()
85625	req, err := http.NewRequest("DELETE", urls, body)
85626	if err != nil {
85627		return nil, err
85628	}
85629	req.Header = reqHeaders
85630	googleapi.Expand(req.URL, map[string]string{
85631		"project": c.project,
85632		"network": c.network,
85633	})
85634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85635}
85636
85637// Do executes the "compute.networks.delete" call.
85638// Exactly one of *Operation or error will be non-nil. Any non-2xx
85639// status code is an error. Response headers are in either
85640// *Operation.ServerResponse.Header or (if a response was returned at
85641// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85642// to check whether the returned error was because
85643// http.StatusNotModified was returned.
85644func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85645	gensupport.SetOptions(c.urlParams_, opts...)
85646	res, err := c.doRequest("json")
85647	if res != nil && res.StatusCode == http.StatusNotModified {
85648		if res.Body != nil {
85649			res.Body.Close()
85650		}
85651		return nil, &googleapi.Error{
85652			Code:   res.StatusCode,
85653			Header: res.Header,
85654		}
85655	}
85656	if err != nil {
85657		return nil, err
85658	}
85659	defer googleapi.CloseBody(res)
85660	if err := googleapi.CheckResponse(res); err != nil {
85661		return nil, err
85662	}
85663	ret := &Operation{
85664		ServerResponse: googleapi.ServerResponse{
85665			Header:         res.Header,
85666			HTTPStatusCode: res.StatusCode,
85667		},
85668	}
85669	target := &ret
85670	if err := gensupport.DecodeResponse(target, res); err != nil {
85671		return nil, err
85672	}
85673	return ret, nil
85674	// {
85675	//   "description": "Deletes the specified network.",
85676	//   "httpMethod": "DELETE",
85677	//   "id": "compute.networks.delete",
85678	//   "parameterOrder": [
85679	//     "project",
85680	//     "network"
85681	//   ],
85682	//   "parameters": {
85683	//     "network": {
85684	//       "description": "Name of the network to delete.",
85685	//       "location": "path",
85686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85687	//       "required": true,
85688	//       "type": "string"
85689	//     },
85690	//     "project": {
85691	//       "description": "Project ID for this request.",
85692	//       "location": "path",
85693	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85694	//       "required": true,
85695	//       "type": "string"
85696	//     },
85697	//     "requestId": {
85698	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85699	//       "location": "query",
85700	//       "type": "string"
85701	//     }
85702	//   },
85703	//   "path": "{project}/global/networks/{network}",
85704	//   "response": {
85705	//     "$ref": "Operation"
85706	//   },
85707	//   "scopes": [
85708	//     "https://www.googleapis.com/auth/cloud-platform",
85709	//     "https://www.googleapis.com/auth/compute"
85710	//   ]
85711	// }
85712
85713}
85714
85715// method id "compute.networks.get":
85716
85717type NetworksGetCall struct {
85718	s            *Service
85719	project      string
85720	network      string
85721	urlParams_   gensupport.URLParams
85722	ifNoneMatch_ string
85723	ctx_         context.Context
85724	header_      http.Header
85725}
85726
85727// Get: Returns the specified network. Gets a list of available networks
85728// by making a list() request.
85729// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
85730func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
85731	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85732	c.project = project
85733	c.network = network
85734	return c
85735}
85736
85737// Fields allows partial responses to be retrieved. See
85738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85739// for more information.
85740func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
85741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85742	return c
85743}
85744
85745// IfNoneMatch sets the optional parameter which makes the operation
85746// fail if the object's ETag matches the given value. This is useful for
85747// getting updates only after the object has changed since the last
85748// request. Use googleapi.IsNotModified to check whether the response
85749// error from Do is the result of In-None-Match.
85750func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
85751	c.ifNoneMatch_ = entityTag
85752	return c
85753}
85754
85755// Context sets the context to be used in this call's Do method. Any
85756// pending HTTP request will be aborted if the provided context is
85757// canceled.
85758func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
85759	c.ctx_ = ctx
85760	return c
85761}
85762
85763// Header returns an http.Header that can be modified by the caller to
85764// add HTTP headers to the request.
85765func (c *NetworksGetCall) Header() http.Header {
85766	if c.header_ == nil {
85767		c.header_ = make(http.Header)
85768	}
85769	return c.header_
85770}
85771
85772func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
85773	reqHeaders := make(http.Header)
85774	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85775	for k, v := range c.header_ {
85776		reqHeaders[k] = v
85777	}
85778	reqHeaders.Set("User-Agent", c.s.userAgent())
85779	if c.ifNoneMatch_ != "" {
85780		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85781	}
85782	var body io.Reader = nil
85783	c.urlParams_.Set("alt", alt)
85784	c.urlParams_.Set("prettyPrint", "false")
85785	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
85786	urls += "?" + c.urlParams_.Encode()
85787	req, err := http.NewRequest("GET", urls, body)
85788	if err != nil {
85789		return nil, err
85790	}
85791	req.Header = reqHeaders
85792	googleapi.Expand(req.URL, map[string]string{
85793		"project": c.project,
85794		"network": c.network,
85795	})
85796	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85797}
85798
85799// Do executes the "compute.networks.get" call.
85800// Exactly one of *Network or error will be non-nil. Any non-2xx status
85801// code is an error. Response headers are in either
85802// *Network.ServerResponse.Header or (if a response was returned at all)
85803// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
85804// check whether the returned error was because http.StatusNotModified
85805// was returned.
85806func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
85807	gensupport.SetOptions(c.urlParams_, opts...)
85808	res, err := c.doRequest("json")
85809	if res != nil && res.StatusCode == http.StatusNotModified {
85810		if res.Body != nil {
85811			res.Body.Close()
85812		}
85813		return nil, &googleapi.Error{
85814			Code:   res.StatusCode,
85815			Header: res.Header,
85816		}
85817	}
85818	if err != nil {
85819		return nil, err
85820	}
85821	defer googleapi.CloseBody(res)
85822	if err := googleapi.CheckResponse(res); err != nil {
85823		return nil, err
85824	}
85825	ret := &Network{
85826		ServerResponse: googleapi.ServerResponse{
85827			Header:         res.Header,
85828			HTTPStatusCode: res.StatusCode,
85829		},
85830	}
85831	target := &ret
85832	if err := gensupport.DecodeResponse(target, res); err != nil {
85833		return nil, err
85834	}
85835	return ret, nil
85836	// {
85837	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
85838	//   "httpMethod": "GET",
85839	//   "id": "compute.networks.get",
85840	//   "parameterOrder": [
85841	//     "project",
85842	//     "network"
85843	//   ],
85844	//   "parameters": {
85845	//     "network": {
85846	//       "description": "Name of the network to return.",
85847	//       "location": "path",
85848	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85849	//       "required": true,
85850	//       "type": "string"
85851	//     },
85852	//     "project": {
85853	//       "description": "Project ID for this request.",
85854	//       "location": "path",
85855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85856	//       "required": true,
85857	//       "type": "string"
85858	//     }
85859	//   },
85860	//   "path": "{project}/global/networks/{network}",
85861	//   "response": {
85862	//     "$ref": "Network"
85863	//   },
85864	//   "scopes": [
85865	//     "https://www.googleapis.com/auth/cloud-platform",
85866	//     "https://www.googleapis.com/auth/compute",
85867	//     "https://www.googleapis.com/auth/compute.readonly"
85868	//   ]
85869	// }
85870
85871}
85872
85873// method id "compute.networks.insert":
85874
85875type NetworksInsertCall struct {
85876	s          *Service
85877	project    string
85878	network    *Network
85879	urlParams_ gensupport.URLParams
85880	ctx_       context.Context
85881	header_    http.Header
85882}
85883
85884// Insert: Creates a network in the specified project using the data
85885// included in the request.
85886// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
85887func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
85888	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85889	c.project = project
85890	c.network = network
85891	return c
85892}
85893
85894// RequestId sets the optional parameter "requestId": An optional
85895// request ID to identify requests. Specify a unique request ID so that
85896// if you must retry your request, the server will know to ignore the
85897// request if it has already been completed.
85898//
85899// For example, consider a situation where you make an initial request
85900// and the request times out. If you make the request again with the
85901// same request ID, the server can check if original operation with the
85902// same request ID was received, and if so, will ignore the second
85903// request. This prevents clients from accidentally creating duplicate
85904// commitments.
85905//
85906// The request ID must be a valid UUID with the exception that zero UUID
85907// is not supported (00000000-0000-0000-0000-000000000000).
85908func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
85909	c.urlParams_.Set("requestId", requestId)
85910	return c
85911}
85912
85913// Fields allows partial responses to be retrieved. See
85914// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85915// for more information.
85916func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
85917	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85918	return c
85919}
85920
85921// Context sets the context to be used in this call's Do method. Any
85922// pending HTTP request will be aborted if the provided context is
85923// canceled.
85924func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
85925	c.ctx_ = ctx
85926	return c
85927}
85928
85929// Header returns an http.Header that can be modified by the caller to
85930// add HTTP headers to the request.
85931func (c *NetworksInsertCall) Header() http.Header {
85932	if c.header_ == nil {
85933		c.header_ = make(http.Header)
85934	}
85935	return c.header_
85936}
85937
85938func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
85939	reqHeaders := make(http.Header)
85940	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85941	for k, v := range c.header_ {
85942		reqHeaders[k] = v
85943	}
85944	reqHeaders.Set("User-Agent", c.s.userAgent())
85945	var body io.Reader = nil
85946	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
85947	if err != nil {
85948		return nil, err
85949	}
85950	reqHeaders.Set("Content-Type", "application/json")
85951	c.urlParams_.Set("alt", alt)
85952	c.urlParams_.Set("prettyPrint", "false")
85953	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
85954	urls += "?" + c.urlParams_.Encode()
85955	req, err := http.NewRequest("POST", urls, body)
85956	if err != nil {
85957		return nil, err
85958	}
85959	req.Header = reqHeaders
85960	googleapi.Expand(req.URL, map[string]string{
85961		"project": c.project,
85962	})
85963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85964}
85965
85966// Do executes the "compute.networks.insert" call.
85967// Exactly one of *Operation or error will be non-nil. Any non-2xx
85968// status code is an error. Response headers are in either
85969// *Operation.ServerResponse.Header or (if a response was returned at
85970// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85971// to check whether the returned error was because
85972// http.StatusNotModified was returned.
85973func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85974	gensupport.SetOptions(c.urlParams_, opts...)
85975	res, err := c.doRequest("json")
85976	if res != nil && res.StatusCode == http.StatusNotModified {
85977		if res.Body != nil {
85978			res.Body.Close()
85979		}
85980		return nil, &googleapi.Error{
85981			Code:   res.StatusCode,
85982			Header: res.Header,
85983		}
85984	}
85985	if err != nil {
85986		return nil, err
85987	}
85988	defer googleapi.CloseBody(res)
85989	if err := googleapi.CheckResponse(res); err != nil {
85990		return nil, err
85991	}
85992	ret := &Operation{
85993		ServerResponse: googleapi.ServerResponse{
85994			Header:         res.Header,
85995			HTTPStatusCode: res.StatusCode,
85996		},
85997	}
85998	target := &ret
85999	if err := gensupport.DecodeResponse(target, res); err != nil {
86000		return nil, err
86001	}
86002	return ret, nil
86003	// {
86004	//   "description": "Creates a network in the specified project using the data included in the request.",
86005	//   "httpMethod": "POST",
86006	//   "id": "compute.networks.insert",
86007	//   "parameterOrder": [
86008	//     "project"
86009	//   ],
86010	//   "parameters": {
86011	//     "project": {
86012	//       "description": "Project ID for this request.",
86013	//       "location": "path",
86014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86015	//       "required": true,
86016	//       "type": "string"
86017	//     },
86018	//     "requestId": {
86019	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86020	//       "location": "query",
86021	//       "type": "string"
86022	//     }
86023	//   },
86024	//   "path": "{project}/global/networks",
86025	//   "request": {
86026	//     "$ref": "Network"
86027	//   },
86028	//   "response": {
86029	//     "$ref": "Operation"
86030	//   },
86031	//   "scopes": [
86032	//     "https://www.googleapis.com/auth/cloud-platform",
86033	//     "https://www.googleapis.com/auth/compute"
86034	//   ]
86035	// }
86036
86037}
86038
86039// method id "compute.networks.list":
86040
86041type NetworksListCall struct {
86042	s            *Service
86043	project      string
86044	urlParams_   gensupport.URLParams
86045	ifNoneMatch_ string
86046	ctx_         context.Context
86047	header_      http.Header
86048}
86049
86050// List: Retrieves the list of networks available to the specified
86051// project.
86052// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
86053func (r *NetworksService) List(project string) *NetworksListCall {
86054	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86055	c.project = project
86056	return c
86057}
86058
86059// Filter sets the optional parameter "filter": A filter expression that
86060// filters resources listed in the response. The expression must specify
86061// the field name, a comparison operator, and the value that you want to
86062// use for filtering. The value must be a string, a number, or a
86063// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86064// `<`.
86065//
86066// For example, if you are filtering Compute Engine instances, you can
86067// exclude instances named `example-instance` by specifying `name !=
86068// example-instance`.
86069//
86070// You can also filter nested fields. For example, you could specify
86071// `scheduling.automaticRestart = false` to include instances only if
86072// they are not scheduled for automatic restarts. You can use filtering
86073// on nested fields to filter based on resource labels.
86074//
86075// To filter on multiple expressions, provide each separate expression
86076// within parentheses. For example: ``` (scheduling.automaticRestart =
86077// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
86078// is an `AND` expression. However, you can include `AND` and `OR`
86079// expressions explicitly. For example: ``` (cpuPlatform = "Intel
86080// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
86081// (scheduling.automaticRestart = true) ```
86082func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
86083	c.urlParams_.Set("filter", filter)
86084	return c
86085}
86086
86087// MaxResults sets the optional parameter "maxResults": The maximum
86088// number of results per page that should be returned. If the number of
86089// available results is larger than `maxResults`, Compute Engine returns
86090// a `nextPageToken` that can be used to get the next page of results in
86091// subsequent list requests. Acceptable values are `0` to `500`,
86092// inclusive. (Default: `500`)
86093func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
86094	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86095	return c
86096}
86097
86098// OrderBy sets the optional parameter "orderBy": Sorts list results by
86099// a certain order. By default, results are returned in alphanumerical
86100// order based on the resource name.
86101//
86102// You can also sort results in descending order based on the creation
86103// timestamp using `orderBy="creationTimestamp desc". This sorts
86104// results based on the `creationTimestamp` field in reverse
86105// chronological order (newest result first). Use this to sort resources
86106// like operations so that the newest operation is returned
86107// first.
86108//
86109// Currently, only sorting by `name` or `creationTimestamp desc` is
86110// supported.
86111func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
86112	c.urlParams_.Set("orderBy", orderBy)
86113	return c
86114}
86115
86116// PageToken sets the optional parameter "pageToken": Specifies a page
86117// token to use. Set `pageToken` to the `nextPageToken` returned by a
86118// previous list request to get the next page of results.
86119func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
86120	c.urlParams_.Set("pageToken", pageToken)
86121	return c
86122}
86123
86124// Fields allows partial responses to be retrieved. See
86125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86126// for more information.
86127func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
86128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86129	return c
86130}
86131
86132// IfNoneMatch sets the optional parameter which makes the operation
86133// fail if the object's ETag matches the given value. This is useful for
86134// getting updates only after the object has changed since the last
86135// request. Use googleapi.IsNotModified to check whether the response
86136// error from Do is the result of In-None-Match.
86137func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
86138	c.ifNoneMatch_ = entityTag
86139	return c
86140}
86141
86142// Context sets the context to be used in this call's Do method. Any
86143// pending HTTP request will be aborted if the provided context is
86144// canceled.
86145func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
86146	c.ctx_ = ctx
86147	return c
86148}
86149
86150// Header returns an http.Header that can be modified by the caller to
86151// add HTTP headers to the request.
86152func (c *NetworksListCall) Header() http.Header {
86153	if c.header_ == nil {
86154		c.header_ = make(http.Header)
86155	}
86156	return c.header_
86157}
86158
86159func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
86160	reqHeaders := make(http.Header)
86161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86162	for k, v := range c.header_ {
86163		reqHeaders[k] = v
86164	}
86165	reqHeaders.Set("User-Agent", c.s.userAgent())
86166	if c.ifNoneMatch_ != "" {
86167		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86168	}
86169	var body io.Reader = nil
86170	c.urlParams_.Set("alt", alt)
86171	c.urlParams_.Set("prettyPrint", "false")
86172	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
86173	urls += "?" + c.urlParams_.Encode()
86174	req, err := http.NewRequest("GET", urls, body)
86175	if err != nil {
86176		return nil, err
86177	}
86178	req.Header = reqHeaders
86179	googleapi.Expand(req.URL, map[string]string{
86180		"project": c.project,
86181	})
86182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86183}
86184
86185// Do executes the "compute.networks.list" call.
86186// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
86187// status code is an error. Response headers are in either
86188// *NetworkList.ServerResponse.Header or (if a response was returned at
86189// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86190// to check whether the returned error was because
86191// http.StatusNotModified was returned.
86192func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
86193	gensupport.SetOptions(c.urlParams_, opts...)
86194	res, err := c.doRequest("json")
86195	if res != nil && res.StatusCode == http.StatusNotModified {
86196		if res.Body != nil {
86197			res.Body.Close()
86198		}
86199		return nil, &googleapi.Error{
86200			Code:   res.StatusCode,
86201			Header: res.Header,
86202		}
86203	}
86204	if err != nil {
86205		return nil, err
86206	}
86207	defer googleapi.CloseBody(res)
86208	if err := googleapi.CheckResponse(res); err != nil {
86209		return nil, err
86210	}
86211	ret := &NetworkList{
86212		ServerResponse: googleapi.ServerResponse{
86213			Header:         res.Header,
86214			HTTPStatusCode: res.StatusCode,
86215		},
86216	}
86217	target := &ret
86218	if err := gensupport.DecodeResponse(target, res); err != nil {
86219		return nil, err
86220	}
86221	return ret, nil
86222	// {
86223	//   "description": "Retrieves the list of networks available to the specified project.",
86224	//   "httpMethod": "GET",
86225	//   "id": "compute.networks.list",
86226	//   "parameterOrder": [
86227	//     "project"
86228	//   ],
86229	//   "parameters": {
86230	//     "filter": {
86231	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
86232	//       "location": "query",
86233	//       "type": "string"
86234	//     },
86235	//     "maxResults": {
86236	//       "default": "500",
86237	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
86238	//       "format": "uint32",
86239	//       "location": "query",
86240	//       "minimum": "0",
86241	//       "type": "integer"
86242	//     },
86243	//     "orderBy": {
86244	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
86245	//       "location": "query",
86246	//       "type": "string"
86247	//     },
86248	//     "pageToken": {
86249	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
86250	//       "location": "query",
86251	//       "type": "string"
86252	//     },
86253	//     "project": {
86254	//       "description": "Project ID for this request.",
86255	//       "location": "path",
86256	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86257	//       "required": true,
86258	//       "type": "string"
86259	//     }
86260	//   },
86261	//   "path": "{project}/global/networks",
86262	//   "response": {
86263	//     "$ref": "NetworkList"
86264	//   },
86265	//   "scopes": [
86266	//     "https://www.googleapis.com/auth/cloud-platform",
86267	//     "https://www.googleapis.com/auth/compute",
86268	//     "https://www.googleapis.com/auth/compute.readonly"
86269	//   ]
86270	// }
86271
86272}
86273
86274// Pages invokes f for each page of results.
86275// A non-nil error returned from f will halt the iteration.
86276// The provided context supersedes any context provided to the Context method.
86277func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
86278	c.ctx_ = ctx
86279	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86280	for {
86281		x, err := c.Do()
86282		if err != nil {
86283			return err
86284		}
86285		if err := f(x); err != nil {
86286			return err
86287		}
86288		if x.NextPageToken == "" {
86289			return nil
86290		}
86291		c.PageToken(x.NextPageToken)
86292	}
86293}
86294
86295// method id "compute.networks.listPeeringRoutes":
86296
86297type NetworksListPeeringRoutesCall struct {
86298	s            *Service
86299	project      string
86300	network      string
86301	urlParams_   gensupport.URLParams
86302	ifNoneMatch_ string
86303	ctx_         context.Context
86304	header_      http.Header
86305}
86306
86307// ListPeeringRoutes: Lists the peering routes exchanged over peering
86308// connection.
86309func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
86310	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86311	c.project = project
86312	c.network = network
86313	return c
86314}
86315
86316// Direction sets the optional parameter "direction": The direction of
86317// the exchanged routes.
86318//
86319// Possible values:
86320//   "INCOMING"
86321//   "OUTGOING"
86322func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
86323	c.urlParams_.Set("direction", direction)
86324	return c
86325}
86326
86327// Filter sets the optional parameter "filter": A filter expression that
86328// filters resources listed in the response. The expression must specify
86329// the field name, a comparison operator, and the value that you want to
86330// use for filtering. The value must be a string, a number, or a
86331// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86332// `<`.
86333//
86334// For example, if you are filtering Compute Engine instances, you can
86335// exclude instances named `example-instance` by specifying `name !=
86336// example-instance`.
86337//
86338// You can also filter nested fields. For example, you could specify
86339// `scheduling.automaticRestart = false` to include instances only if
86340// they are not scheduled for automatic restarts. You can use filtering
86341// on nested fields to filter based on resource labels.
86342//
86343// To filter on multiple expressions, provide each separate expression
86344// within parentheses. For example: ``` (scheduling.automaticRestart =
86345// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
86346// is an `AND` expression. However, you can include `AND` and `OR`
86347// expressions explicitly. For example: ``` (cpuPlatform = "Intel
86348// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
86349// (scheduling.automaticRestart = true) ```
86350func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
86351	c.urlParams_.Set("filter", filter)
86352	return c
86353}
86354
86355// MaxResults sets the optional parameter "maxResults": The maximum
86356// number of results per page that should be returned. If the number of
86357// available results is larger than `maxResults`, Compute Engine returns
86358// a `nextPageToken` that can be used to get the next page of results in
86359// subsequent list requests. Acceptable values are `0` to `500`,
86360// inclusive. (Default: `500`)
86361func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
86362	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86363	return c
86364}
86365
86366// OrderBy sets the optional parameter "orderBy": Sorts list results by
86367// a certain order. By default, results are returned in alphanumerical
86368// order based on the resource name.
86369//
86370// You can also sort results in descending order based on the creation
86371// timestamp using `orderBy="creationTimestamp desc". This sorts
86372// results based on the `creationTimestamp` field in reverse
86373// chronological order (newest result first). Use this to sort resources
86374// like operations so that the newest operation is returned
86375// first.
86376//
86377// Currently, only sorting by `name` or `creationTimestamp desc` is
86378// supported.
86379func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
86380	c.urlParams_.Set("orderBy", orderBy)
86381	return c
86382}
86383
86384// PageToken sets the optional parameter "pageToken": Specifies a page
86385// token to use. Set `pageToken` to the `nextPageToken` returned by a
86386// previous list request to get the next page of results.
86387func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
86388	c.urlParams_.Set("pageToken", pageToken)
86389	return c
86390}
86391
86392// PeeringName sets the optional parameter "peeringName": The response
86393// will show routes exchanged over the given peering connection.
86394func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
86395	c.urlParams_.Set("peeringName", peeringName)
86396	return c
86397}
86398
86399// Region sets the optional parameter "region": The region of the
86400// request. The response will include all subnet routes, static routes
86401// and dynamic routes in the region.
86402func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
86403	c.urlParams_.Set("region", region)
86404	return c
86405}
86406
86407// Fields allows partial responses to be retrieved. See
86408// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86409// for more information.
86410func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
86411	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86412	return c
86413}
86414
86415// IfNoneMatch sets the optional parameter which makes the operation
86416// fail if the object's ETag matches the given value. This is useful for
86417// getting updates only after the object has changed since the last
86418// request. Use googleapi.IsNotModified to check whether the response
86419// error from Do is the result of In-None-Match.
86420func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
86421	c.ifNoneMatch_ = entityTag
86422	return c
86423}
86424
86425// Context sets the context to be used in this call's Do method. Any
86426// pending HTTP request will be aborted if the provided context is
86427// canceled.
86428func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
86429	c.ctx_ = ctx
86430	return c
86431}
86432
86433// Header returns an http.Header that can be modified by the caller to
86434// add HTTP headers to the request.
86435func (c *NetworksListPeeringRoutesCall) Header() http.Header {
86436	if c.header_ == nil {
86437		c.header_ = make(http.Header)
86438	}
86439	return c.header_
86440}
86441
86442func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
86443	reqHeaders := make(http.Header)
86444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86445	for k, v := range c.header_ {
86446		reqHeaders[k] = v
86447	}
86448	reqHeaders.Set("User-Agent", c.s.userAgent())
86449	if c.ifNoneMatch_ != "" {
86450		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86451	}
86452	var body io.Reader = nil
86453	c.urlParams_.Set("alt", alt)
86454	c.urlParams_.Set("prettyPrint", "false")
86455	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listPeeringRoutes")
86456	urls += "?" + c.urlParams_.Encode()
86457	req, err := http.NewRequest("GET", urls, body)
86458	if err != nil {
86459		return nil, err
86460	}
86461	req.Header = reqHeaders
86462	googleapi.Expand(req.URL, map[string]string{
86463		"project": c.project,
86464		"network": c.network,
86465	})
86466	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86467}
86468
86469// Do executes the "compute.networks.listPeeringRoutes" call.
86470// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
86471// Any non-2xx status code is an error. Response headers are in either
86472// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
86473// was returned at all) in error.(*googleapi.Error).Header. Use
86474// googleapi.IsNotModified to check whether the returned error was
86475// because http.StatusNotModified was returned.
86476func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
86477	gensupport.SetOptions(c.urlParams_, opts...)
86478	res, err := c.doRequest("json")
86479	if res != nil && res.StatusCode == http.StatusNotModified {
86480		if res.Body != nil {
86481			res.Body.Close()
86482		}
86483		return nil, &googleapi.Error{
86484			Code:   res.StatusCode,
86485			Header: res.Header,
86486		}
86487	}
86488	if err != nil {
86489		return nil, err
86490	}
86491	defer googleapi.CloseBody(res)
86492	if err := googleapi.CheckResponse(res); err != nil {
86493		return nil, err
86494	}
86495	ret := &ExchangedPeeringRoutesList{
86496		ServerResponse: googleapi.ServerResponse{
86497			Header:         res.Header,
86498			HTTPStatusCode: res.StatusCode,
86499		},
86500	}
86501	target := &ret
86502	if err := gensupport.DecodeResponse(target, res); err != nil {
86503		return nil, err
86504	}
86505	return ret, nil
86506	// {
86507	//   "description": "Lists the peering routes exchanged over peering connection.",
86508	//   "httpMethod": "GET",
86509	//   "id": "compute.networks.listPeeringRoutes",
86510	//   "parameterOrder": [
86511	//     "project",
86512	//     "network"
86513	//   ],
86514	//   "parameters": {
86515	//     "direction": {
86516	//       "description": "The direction of the exchanged routes.",
86517	//       "enum": [
86518	//         "INCOMING",
86519	//         "OUTGOING"
86520	//       ],
86521	//       "enumDescriptions": [
86522	//         "",
86523	//         ""
86524	//       ],
86525	//       "location": "query",
86526	//       "type": "string"
86527	//     },
86528	//     "filter": {
86529	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
86530	//       "location": "query",
86531	//       "type": "string"
86532	//     },
86533	//     "maxResults": {
86534	//       "default": "500",
86535	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
86536	//       "format": "uint32",
86537	//       "location": "query",
86538	//       "minimum": "0",
86539	//       "type": "integer"
86540	//     },
86541	//     "network": {
86542	//       "description": "Name of the network for this request.",
86543	//       "location": "path",
86544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86545	//       "required": true,
86546	//       "type": "string"
86547	//     },
86548	//     "orderBy": {
86549	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
86550	//       "location": "query",
86551	//       "type": "string"
86552	//     },
86553	//     "pageToken": {
86554	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
86555	//       "location": "query",
86556	//       "type": "string"
86557	//     },
86558	//     "peeringName": {
86559	//       "description": "The response will show routes exchanged over the given peering connection.",
86560	//       "location": "query",
86561	//       "type": "string"
86562	//     },
86563	//     "project": {
86564	//       "description": "Project ID for this request.",
86565	//       "location": "path",
86566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86567	//       "required": true,
86568	//       "type": "string"
86569	//     },
86570	//     "region": {
86571	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
86572	//       "location": "query",
86573	//       "type": "string"
86574	//     }
86575	//   },
86576	//   "path": "{project}/global/networks/{network}/listPeeringRoutes",
86577	//   "response": {
86578	//     "$ref": "ExchangedPeeringRoutesList"
86579	//   },
86580	//   "scopes": [
86581	//     "https://www.googleapis.com/auth/cloud-platform",
86582	//     "https://www.googleapis.com/auth/compute",
86583	//     "https://www.googleapis.com/auth/compute.readonly"
86584	//   ]
86585	// }
86586
86587}
86588
86589// Pages invokes f for each page of results.
86590// A non-nil error returned from f will halt the iteration.
86591// The provided context supersedes any context provided to the Context method.
86592func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
86593	c.ctx_ = ctx
86594	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86595	for {
86596		x, err := c.Do()
86597		if err != nil {
86598			return err
86599		}
86600		if err := f(x); err != nil {
86601			return err
86602		}
86603		if x.NextPageToken == "" {
86604			return nil
86605		}
86606		c.PageToken(x.NextPageToken)
86607	}
86608}
86609
86610// method id "compute.networks.patch":
86611
86612type NetworksPatchCall struct {
86613	s          *Service
86614	project    string
86615	network    string
86616	network2   *Network
86617	urlParams_ gensupport.URLParams
86618	ctx_       context.Context
86619	header_    http.Header
86620}
86621
86622// Patch: Patches the specified network with the data included in the
86623// request. Only the following fields can be modified:
86624// routingConfig.routingMode.
86625func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
86626	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86627	c.project = project
86628	c.network = network
86629	c.network2 = network2
86630	return c
86631}
86632
86633// RequestId sets the optional parameter "requestId": An optional
86634// request ID to identify requests. Specify a unique request ID so that
86635// if you must retry your request, the server will know to ignore the
86636// request if it has already been completed.
86637//
86638// For example, consider a situation where you make an initial request
86639// and the request times out. If you make the request again with the
86640// same request ID, the server can check if original operation with the
86641// same request ID was received, and if so, will ignore the second
86642// request. This prevents clients from accidentally creating duplicate
86643// commitments.
86644//
86645// The request ID must be a valid UUID with the exception that zero UUID
86646// is not supported (00000000-0000-0000-0000-000000000000).
86647func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
86648	c.urlParams_.Set("requestId", requestId)
86649	return c
86650}
86651
86652// Fields allows partial responses to be retrieved. See
86653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86654// for more information.
86655func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
86656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86657	return c
86658}
86659
86660// Context sets the context to be used in this call's Do method. Any
86661// pending HTTP request will be aborted if the provided context is
86662// canceled.
86663func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
86664	c.ctx_ = ctx
86665	return c
86666}
86667
86668// Header returns an http.Header that can be modified by the caller to
86669// add HTTP headers to the request.
86670func (c *NetworksPatchCall) Header() http.Header {
86671	if c.header_ == nil {
86672		c.header_ = make(http.Header)
86673	}
86674	return c.header_
86675}
86676
86677func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
86678	reqHeaders := make(http.Header)
86679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86680	for k, v := range c.header_ {
86681		reqHeaders[k] = v
86682	}
86683	reqHeaders.Set("User-Agent", c.s.userAgent())
86684	var body io.Reader = nil
86685	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
86686	if err != nil {
86687		return nil, err
86688	}
86689	reqHeaders.Set("Content-Type", "application/json")
86690	c.urlParams_.Set("alt", alt)
86691	c.urlParams_.Set("prettyPrint", "false")
86692	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
86693	urls += "?" + c.urlParams_.Encode()
86694	req, err := http.NewRequest("PATCH", urls, body)
86695	if err != nil {
86696		return nil, err
86697	}
86698	req.Header = reqHeaders
86699	googleapi.Expand(req.URL, map[string]string{
86700		"project": c.project,
86701		"network": c.network,
86702	})
86703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86704}
86705
86706// Do executes the "compute.networks.patch" call.
86707// Exactly one of *Operation or error will be non-nil. Any non-2xx
86708// status code is an error. Response headers are in either
86709// *Operation.ServerResponse.Header or (if a response was returned at
86710// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86711// to check whether the returned error was because
86712// http.StatusNotModified was returned.
86713func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86714	gensupport.SetOptions(c.urlParams_, opts...)
86715	res, err := c.doRequest("json")
86716	if res != nil && res.StatusCode == http.StatusNotModified {
86717		if res.Body != nil {
86718			res.Body.Close()
86719		}
86720		return nil, &googleapi.Error{
86721			Code:   res.StatusCode,
86722			Header: res.Header,
86723		}
86724	}
86725	if err != nil {
86726		return nil, err
86727	}
86728	defer googleapi.CloseBody(res)
86729	if err := googleapi.CheckResponse(res); err != nil {
86730		return nil, err
86731	}
86732	ret := &Operation{
86733		ServerResponse: googleapi.ServerResponse{
86734			Header:         res.Header,
86735			HTTPStatusCode: res.StatusCode,
86736		},
86737	}
86738	target := &ret
86739	if err := gensupport.DecodeResponse(target, res); err != nil {
86740		return nil, err
86741	}
86742	return ret, nil
86743	// {
86744	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
86745	//   "httpMethod": "PATCH",
86746	//   "id": "compute.networks.patch",
86747	//   "parameterOrder": [
86748	//     "project",
86749	//     "network"
86750	//   ],
86751	//   "parameters": {
86752	//     "network": {
86753	//       "description": "Name of the network to update.",
86754	//       "location": "path",
86755	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86756	//       "required": true,
86757	//       "type": "string"
86758	//     },
86759	//     "project": {
86760	//       "description": "Project ID for this request.",
86761	//       "location": "path",
86762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86763	//       "required": true,
86764	//       "type": "string"
86765	//     },
86766	//     "requestId": {
86767	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86768	//       "location": "query",
86769	//       "type": "string"
86770	//     }
86771	//   },
86772	//   "path": "{project}/global/networks/{network}",
86773	//   "request": {
86774	//     "$ref": "Network"
86775	//   },
86776	//   "response": {
86777	//     "$ref": "Operation"
86778	//   },
86779	//   "scopes": [
86780	//     "https://www.googleapis.com/auth/cloud-platform",
86781	//     "https://www.googleapis.com/auth/compute"
86782	//   ]
86783	// }
86784
86785}
86786
86787// method id "compute.networks.removePeering":
86788
86789type NetworksRemovePeeringCall struct {
86790	s                            *Service
86791	project                      string
86792	network                      string
86793	networksremovepeeringrequest *NetworksRemovePeeringRequest
86794	urlParams_                   gensupport.URLParams
86795	ctx_                         context.Context
86796	header_                      http.Header
86797}
86798
86799// RemovePeering: Removes a peering from the specified network.
86800func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
86801	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86802	c.project = project
86803	c.network = network
86804	c.networksremovepeeringrequest = networksremovepeeringrequest
86805	return c
86806}
86807
86808// RequestId sets the optional parameter "requestId": An optional
86809// request ID to identify requests. Specify a unique request ID so that
86810// if you must retry your request, the server will know to ignore the
86811// request if it has already been completed.
86812//
86813// For example, consider a situation where you make an initial request
86814// and the request times out. If you make the request again with the
86815// same request ID, the server can check if original operation with the
86816// same request ID was received, and if so, will ignore the second
86817// request. This prevents clients from accidentally creating duplicate
86818// commitments.
86819//
86820// The request ID must be a valid UUID with the exception that zero UUID
86821// is not supported (00000000-0000-0000-0000-000000000000).
86822func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
86823	c.urlParams_.Set("requestId", requestId)
86824	return c
86825}
86826
86827// Fields allows partial responses to be retrieved. See
86828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86829// for more information.
86830func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
86831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86832	return c
86833}
86834
86835// Context sets the context to be used in this call's Do method. Any
86836// pending HTTP request will be aborted if the provided context is
86837// canceled.
86838func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
86839	c.ctx_ = ctx
86840	return c
86841}
86842
86843// Header returns an http.Header that can be modified by the caller to
86844// add HTTP headers to the request.
86845func (c *NetworksRemovePeeringCall) Header() http.Header {
86846	if c.header_ == nil {
86847		c.header_ = make(http.Header)
86848	}
86849	return c.header_
86850}
86851
86852func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
86853	reqHeaders := make(http.Header)
86854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86855	for k, v := range c.header_ {
86856		reqHeaders[k] = v
86857	}
86858	reqHeaders.Set("User-Agent", c.s.userAgent())
86859	var body io.Reader = nil
86860	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
86861	if err != nil {
86862		return nil, err
86863	}
86864	reqHeaders.Set("Content-Type", "application/json")
86865	c.urlParams_.Set("alt", alt)
86866	c.urlParams_.Set("prettyPrint", "false")
86867	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
86868	urls += "?" + c.urlParams_.Encode()
86869	req, err := http.NewRequest("POST", urls, body)
86870	if err != nil {
86871		return nil, err
86872	}
86873	req.Header = reqHeaders
86874	googleapi.Expand(req.URL, map[string]string{
86875		"project": c.project,
86876		"network": c.network,
86877	})
86878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86879}
86880
86881// Do executes the "compute.networks.removePeering" call.
86882// Exactly one of *Operation or error will be non-nil. Any non-2xx
86883// status code is an error. Response headers are in either
86884// *Operation.ServerResponse.Header or (if a response was returned at
86885// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86886// to check whether the returned error was because
86887// http.StatusNotModified was returned.
86888func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86889	gensupport.SetOptions(c.urlParams_, opts...)
86890	res, err := c.doRequest("json")
86891	if res != nil && res.StatusCode == http.StatusNotModified {
86892		if res.Body != nil {
86893			res.Body.Close()
86894		}
86895		return nil, &googleapi.Error{
86896			Code:   res.StatusCode,
86897			Header: res.Header,
86898		}
86899	}
86900	if err != nil {
86901		return nil, err
86902	}
86903	defer googleapi.CloseBody(res)
86904	if err := googleapi.CheckResponse(res); err != nil {
86905		return nil, err
86906	}
86907	ret := &Operation{
86908		ServerResponse: googleapi.ServerResponse{
86909			Header:         res.Header,
86910			HTTPStatusCode: res.StatusCode,
86911		},
86912	}
86913	target := &ret
86914	if err := gensupport.DecodeResponse(target, res); err != nil {
86915		return nil, err
86916	}
86917	return ret, nil
86918	// {
86919	//   "description": "Removes a peering from the specified network.",
86920	//   "httpMethod": "POST",
86921	//   "id": "compute.networks.removePeering",
86922	//   "parameterOrder": [
86923	//     "project",
86924	//     "network"
86925	//   ],
86926	//   "parameters": {
86927	//     "network": {
86928	//       "description": "Name of the network resource to remove peering from.",
86929	//       "location": "path",
86930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86931	//       "required": true,
86932	//       "type": "string"
86933	//     },
86934	//     "project": {
86935	//       "description": "Project ID for this request.",
86936	//       "location": "path",
86937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86938	//       "required": true,
86939	//       "type": "string"
86940	//     },
86941	//     "requestId": {
86942	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86943	//       "location": "query",
86944	//       "type": "string"
86945	//     }
86946	//   },
86947	//   "path": "{project}/global/networks/{network}/removePeering",
86948	//   "request": {
86949	//     "$ref": "NetworksRemovePeeringRequest"
86950	//   },
86951	//   "response": {
86952	//     "$ref": "Operation"
86953	//   },
86954	//   "scopes": [
86955	//     "https://www.googleapis.com/auth/cloud-platform",
86956	//     "https://www.googleapis.com/auth/compute"
86957	//   ]
86958	// }
86959
86960}
86961
86962// method id "compute.networks.switchToCustomMode":
86963
86964type NetworksSwitchToCustomModeCall struct {
86965	s          *Service
86966	project    string
86967	network    string
86968	urlParams_ gensupport.URLParams
86969	ctx_       context.Context
86970	header_    http.Header
86971}
86972
86973// SwitchToCustomMode: Switches the network mode from auto subnet mode
86974// to custom subnet mode.
86975func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
86976	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86977	c.project = project
86978	c.network = network
86979	return c
86980}
86981
86982// RequestId sets the optional parameter "requestId": An optional
86983// request ID to identify requests. Specify a unique request ID so that
86984// if you must retry your request, the server will know to ignore the
86985// request if it has already been completed.
86986//
86987// For example, consider a situation where you make an initial request
86988// and the request times out. If you make the request again with the
86989// same request ID, the server can check if original operation with the
86990// same request ID was received, and if so, will ignore the second
86991// request. This prevents clients from accidentally creating duplicate
86992// commitments.
86993//
86994// The request ID must be a valid UUID with the exception that zero UUID
86995// is not supported (00000000-0000-0000-0000-000000000000).
86996func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
86997	c.urlParams_.Set("requestId", requestId)
86998	return c
86999}
87000
87001// Fields allows partial responses to be retrieved. See
87002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87003// for more information.
87004func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
87005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87006	return c
87007}
87008
87009// Context sets the context to be used in this call's Do method. Any
87010// pending HTTP request will be aborted if the provided context is
87011// canceled.
87012func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
87013	c.ctx_ = ctx
87014	return c
87015}
87016
87017// Header returns an http.Header that can be modified by the caller to
87018// add HTTP headers to the request.
87019func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
87020	if c.header_ == nil {
87021		c.header_ = make(http.Header)
87022	}
87023	return c.header_
87024}
87025
87026func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
87027	reqHeaders := make(http.Header)
87028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87029	for k, v := range c.header_ {
87030		reqHeaders[k] = v
87031	}
87032	reqHeaders.Set("User-Agent", c.s.userAgent())
87033	var body io.Reader = nil
87034	c.urlParams_.Set("alt", alt)
87035	c.urlParams_.Set("prettyPrint", "false")
87036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
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		"network": c.network,
87046	})
87047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87048}
87049
87050// Do executes the "compute.networks.switchToCustomMode" call.
87051// Exactly one of *Operation or error will be non-nil. Any non-2xx
87052// status code is an error. Response headers are in either
87053// *Operation.ServerResponse.Header or (if a response was returned at
87054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87055// to check whether the returned error was because
87056// http.StatusNotModified was returned.
87057func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87058	gensupport.SetOptions(c.urlParams_, opts...)
87059	res, err := c.doRequest("json")
87060	if res != nil && res.StatusCode == http.StatusNotModified {
87061		if res.Body != nil {
87062			res.Body.Close()
87063		}
87064		return nil, &googleapi.Error{
87065			Code:   res.StatusCode,
87066			Header: res.Header,
87067		}
87068	}
87069	if err != nil {
87070		return nil, err
87071	}
87072	defer googleapi.CloseBody(res)
87073	if err := googleapi.CheckResponse(res); err != nil {
87074		return nil, err
87075	}
87076	ret := &Operation{
87077		ServerResponse: googleapi.ServerResponse{
87078			Header:         res.Header,
87079			HTTPStatusCode: res.StatusCode,
87080		},
87081	}
87082	target := &ret
87083	if err := gensupport.DecodeResponse(target, res); err != nil {
87084		return nil, err
87085	}
87086	return ret, nil
87087	// {
87088	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
87089	//   "httpMethod": "POST",
87090	//   "id": "compute.networks.switchToCustomMode",
87091	//   "parameterOrder": [
87092	//     "project",
87093	//     "network"
87094	//   ],
87095	//   "parameters": {
87096	//     "network": {
87097	//       "description": "Name of the network to be updated.",
87098	//       "location": "path",
87099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87100	//       "required": true,
87101	//       "type": "string"
87102	//     },
87103	//     "project": {
87104	//       "description": "Project ID for this request.",
87105	//       "location": "path",
87106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87107	//       "required": true,
87108	//       "type": "string"
87109	//     },
87110	//     "requestId": {
87111	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87112	//       "location": "query",
87113	//       "type": "string"
87114	//     }
87115	//   },
87116	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
87117	//   "response": {
87118	//     "$ref": "Operation"
87119	//   },
87120	//   "scopes": [
87121	//     "https://www.googleapis.com/auth/cloud-platform",
87122	//     "https://www.googleapis.com/auth/compute"
87123	//   ]
87124	// }
87125
87126}
87127
87128// method id "compute.networks.updatePeering":
87129
87130type NetworksUpdatePeeringCall struct {
87131	s                            *Service
87132	project                      string
87133	network                      string
87134	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
87135	urlParams_                   gensupport.URLParams
87136	ctx_                         context.Context
87137	header_                      http.Header
87138}
87139
87140// UpdatePeering: Updates the specified network peering with the data
87141// included in the request Only the following fields can be modified:
87142// NetworkPeering.export_custom_routes, and
87143// NetworkPeering.import_custom_routes
87144func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
87145	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87146	c.project = project
87147	c.network = network
87148	c.networksupdatepeeringrequest = networksupdatepeeringrequest
87149	return c
87150}
87151
87152// RequestId sets the optional parameter "requestId": An optional
87153// request ID to identify requests. Specify a unique request ID so that
87154// if you must retry your request, the server will know to ignore the
87155// request if it has already been completed.
87156//
87157// For example, consider a situation where you make an initial request
87158// and the request times out. If you make the request again with the
87159// same request ID, the server can check if original operation with the
87160// same request ID was received, and if so, will ignore the second
87161// request. This prevents clients from accidentally creating duplicate
87162// commitments.
87163//
87164// The request ID must be a valid UUID with the exception that zero UUID
87165// is not supported (00000000-0000-0000-0000-000000000000).
87166func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
87167	c.urlParams_.Set("requestId", requestId)
87168	return c
87169}
87170
87171// Fields allows partial responses to be retrieved. See
87172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87173// for more information.
87174func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
87175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87176	return c
87177}
87178
87179// Context sets the context to be used in this call's Do method. Any
87180// pending HTTP request will be aborted if the provided context is
87181// canceled.
87182func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
87183	c.ctx_ = ctx
87184	return c
87185}
87186
87187// Header returns an http.Header that can be modified by the caller to
87188// add HTTP headers to the request.
87189func (c *NetworksUpdatePeeringCall) Header() http.Header {
87190	if c.header_ == nil {
87191		c.header_ = make(http.Header)
87192	}
87193	return c.header_
87194}
87195
87196func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
87197	reqHeaders := make(http.Header)
87198	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87199	for k, v := range c.header_ {
87200		reqHeaders[k] = v
87201	}
87202	reqHeaders.Set("User-Agent", c.s.userAgent())
87203	var body io.Reader = nil
87204	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
87205	if err != nil {
87206		return nil, err
87207	}
87208	reqHeaders.Set("Content-Type", "application/json")
87209	c.urlParams_.Set("alt", alt)
87210	c.urlParams_.Set("prettyPrint", "false")
87211	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/updatePeering")
87212	urls += "?" + c.urlParams_.Encode()
87213	req, err := http.NewRequest("PATCH", urls, body)
87214	if err != nil {
87215		return nil, err
87216	}
87217	req.Header = reqHeaders
87218	googleapi.Expand(req.URL, map[string]string{
87219		"project": c.project,
87220		"network": c.network,
87221	})
87222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87223}
87224
87225// Do executes the "compute.networks.updatePeering" call.
87226// Exactly one of *Operation or error will be non-nil. Any non-2xx
87227// status code is an error. Response headers are in either
87228// *Operation.ServerResponse.Header or (if a response was returned at
87229// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87230// to check whether the returned error was because
87231// http.StatusNotModified was returned.
87232func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87233	gensupport.SetOptions(c.urlParams_, opts...)
87234	res, err := c.doRequest("json")
87235	if res != nil && res.StatusCode == http.StatusNotModified {
87236		if res.Body != nil {
87237			res.Body.Close()
87238		}
87239		return nil, &googleapi.Error{
87240			Code:   res.StatusCode,
87241			Header: res.Header,
87242		}
87243	}
87244	if err != nil {
87245		return nil, err
87246	}
87247	defer googleapi.CloseBody(res)
87248	if err := googleapi.CheckResponse(res); err != nil {
87249		return nil, err
87250	}
87251	ret := &Operation{
87252		ServerResponse: googleapi.ServerResponse{
87253			Header:         res.Header,
87254			HTTPStatusCode: res.StatusCode,
87255		},
87256	}
87257	target := &ret
87258	if err := gensupport.DecodeResponse(target, res); err != nil {
87259		return nil, err
87260	}
87261	return ret, nil
87262	// {
87263	//   "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",
87264	//   "httpMethod": "PATCH",
87265	//   "id": "compute.networks.updatePeering",
87266	//   "parameterOrder": [
87267	//     "project",
87268	//     "network"
87269	//   ],
87270	//   "parameters": {
87271	//     "network": {
87272	//       "description": "Name of the network resource which the updated peering is belonging to.",
87273	//       "location": "path",
87274	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87275	//       "required": true,
87276	//       "type": "string"
87277	//     },
87278	//     "project": {
87279	//       "description": "Project ID for this request.",
87280	//       "location": "path",
87281	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87282	//       "required": true,
87283	//       "type": "string"
87284	//     },
87285	//     "requestId": {
87286	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87287	//       "location": "query",
87288	//       "type": "string"
87289	//     }
87290	//   },
87291	//   "path": "{project}/global/networks/{network}/updatePeering",
87292	//   "request": {
87293	//     "$ref": "NetworksUpdatePeeringRequest"
87294	//   },
87295	//   "response": {
87296	//     "$ref": "Operation"
87297	//   },
87298	//   "scopes": [
87299	//     "https://www.googleapis.com/auth/cloud-platform",
87300	//     "https://www.googleapis.com/auth/compute"
87301	//   ]
87302	// }
87303
87304}
87305
87306// method id "compute.nodeGroups.addNodes":
87307
87308type NodeGroupsAddNodesCall struct {
87309	s                         *Service
87310	project                   string
87311	zone                      string
87312	nodeGroup                 string
87313	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
87314	urlParams_                gensupport.URLParams
87315	ctx_                      context.Context
87316	header_                   http.Header
87317}
87318
87319// AddNodes: Adds specified number of nodes to the node group.
87320func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
87321	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87322	c.project = project
87323	c.zone = zone
87324	c.nodeGroup = nodeGroup
87325	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
87326	return c
87327}
87328
87329// RequestId sets the optional parameter "requestId": An optional
87330// request ID to identify requests. Specify a unique request ID so that
87331// if you must retry your request, the server will know to ignore the
87332// request if it has already been completed.
87333//
87334// For example, consider a situation where you make an initial request
87335// and the request times out. If you make the request again with the
87336// same request ID, the server can check if original operation with the
87337// same request ID was received, and if so, will ignore the second
87338// request. This prevents clients from accidentally creating duplicate
87339// commitments.
87340//
87341// The request ID must be a valid UUID with the exception that zero UUID
87342// is not supported (00000000-0000-0000-0000-000000000000).
87343func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
87344	c.urlParams_.Set("requestId", requestId)
87345	return c
87346}
87347
87348// Fields allows partial responses to be retrieved. See
87349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87350// for more information.
87351func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
87352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87353	return c
87354}
87355
87356// Context sets the context to be used in this call's Do method. Any
87357// pending HTTP request will be aborted if the provided context is
87358// canceled.
87359func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
87360	c.ctx_ = ctx
87361	return c
87362}
87363
87364// Header returns an http.Header that can be modified by the caller to
87365// add HTTP headers to the request.
87366func (c *NodeGroupsAddNodesCall) Header() http.Header {
87367	if c.header_ == nil {
87368		c.header_ = make(http.Header)
87369	}
87370	return c.header_
87371}
87372
87373func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
87374	reqHeaders := make(http.Header)
87375	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87376	for k, v := range c.header_ {
87377		reqHeaders[k] = v
87378	}
87379	reqHeaders.Set("User-Agent", c.s.userAgent())
87380	var body io.Reader = nil
87381	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
87382	if err != nil {
87383		return nil, err
87384	}
87385	reqHeaders.Set("Content-Type", "application/json")
87386	c.urlParams_.Set("alt", alt)
87387	c.urlParams_.Set("prettyPrint", "false")
87388	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
87389	urls += "?" + c.urlParams_.Encode()
87390	req, err := http.NewRequest("POST", urls, body)
87391	if err != nil {
87392		return nil, err
87393	}
87394	req.Header = reqHeaders
87395	googleapi.Expand(req.URL, map[string]string{
87396		"project":   c.project,
87397		"zone":      c.zone,
87398		"nodeGroup": c.nodeGroup,
87399	})
87400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87401}
87402
87403// Do executes the "compute.nodeGroups.addNodes" call.
87404// Exactly one of *Operation or error will be non-nil. Any non-2xx
87405// status code is an error. Response headers are in either
87406// *Operation.ServerResponse.Header or (if a response was returned at
87407// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87408// to check whether the returned error was because
87409// http.StatusNotModified was returned.
87410func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87411	gensupport.SetOptions(c.urlParams_, opts...)
87412	res, err := c.doRequest("json")
87413	if res != nil && res.StatusCode == http.StatusNotModified {
87414		if res.Body != nil {
87415			res.Body.Close()
87416		}
87417		return nil, &googleapi.Error{
87418			Code:   res.StatusCode,
87419			Header: res.Header,
87420		}
87421	}
87422	if err != nil {
87423		return nil, err
87424	}
87425	defer googleapi.CloseBody(res)
87426	if err := googleapi.CheckResponse(res); err != nil {
87427		return nil, err
87428	}
87429	ret := &Operation{
87430		ServerResponse: googleapi.ServerResponse{
87431			Header:         res.Header,
87432			HTTPStatusCode: res.StatusCode,
87433		},
87434	}
87435	target := &ret
87436	if err := gensupport.DecodeResponse(target, res); err != nil {
87437		return nil, err
87438	}
87439	return ret, nil
87440	// {
87441	//   "description": "Adds specified number of nodes to the node group.",
87442	//   "httpMethod": "POST",
87443	//   "id": "compute.nodeGroups.addNodes",
87444	//   "parameterOrder": [
87445	//     "project",
87446	//     "zone",
87447	//     "nodeGroup"
87448	//   ],
87449	//   "parameters": {
87450	//     "nodeGroup": {
87451	//       "description": "Name of the NodeGroup resource.",
87452	//       "location": "path",
87453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87454	//       "required": true,
87455	//       "type": "string"
87456	//     },
87457	//     "project": {
87458	//       "description": "Project ID for this request.",
87459	//       "location": "path",
87460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87461	//       "required": true,
87462	//       "type": "string"
87463	//     },
87464	//     "requestId": {
87465	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87466	//       "location": "query",
87467	//       "type": "string"
87468	//     },
87469	//     "zone": {
87470	//       "description": "The name of the zone for this request.",
87471	//       "location": "path",
87472	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87473	//       "required": true,
87474	//       "type": "string"
87475	//     }
87476	//   },
87477	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
87478	//   "request": {
87479	//     "$ref": "NodeGroupsAddNodesRequest"
87480	//   },
87481	//   "response": {
87482	//     "$ref": "Operation"
87483	//   },
87484	//   "scopes": [
87485	//     "https://www.googleapis.com/auth/cloud-platform",
87486	//     "https://www.googleapis.com/auth/compute"
87487	//   ]
87488	// }
87489
87490}
87491
87492// method id "compute.nodeGroups.aggregatedList":
87493
87494type NodeGroupsAggregatedListCall struct {
87495	s            *Service
87496	project      string
87497	urlParams_   gensupport.URLParams
87498	ifNoneMatch_ string
87499	ctx_         context.Context
87500	header_      http.Header
87501}
87502
87503// AggregatedList: Retrieves an aggregated list of node groups. Note:
87504// use nodeGroups.listNodes for more details about each group.
87505func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
87506	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87507	c.project = project
87508	return c
87509}
87510
87511// Filter sets the optional parameter "filter": A filter expression that
87512// filters resources listed in the response. The expression must specify
87513// the field name, a comparison operator, and the value that you want to
87514// use for filtering. The value must be a string, a number, or a
87515// boolean. The comparison operator must be either `=`, `!=`, `>`, or
87516// `<`.
87517//
87518// For example, if you are filtering Compute Engine instances, you can
87519// exclude instances named `example-instance` by specifying `name !=
87520// example-instance`.
87521//
87522// You can also filter nested fields. For example, you could specify
87523// `scheduling.automaticRestart = false` to include instances only if
87524// they are not scheduled for automatic restarts. You can use filtering
87525// on nested fields to filter based on resource labels.
87526//
87527// To filter on multiple expressions, provide each separate expression
87528// within parentheses. For example: ``` (scheduling.automaticRestart =
87529// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
87530// is an `AND` expression. However, you can include `AND` and `OR`
87531// expressions explicitly. For example: ``` (cpuPlatform = "Intel
87532// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
87533// (scheduling.automaticRestart = true) ```
87534func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
87535	c.urlParams_.Set("filter", filter)
87536	return c
87537}
87538
87539// IncludeAllScopes sets the optional parameter "includeAllScopes":
87540// Indicates whether every visible scope for each scope type (zone,
87541// region, global) should be included in the response. For new resource
87542// types added after this field, the flag has no effect as new resource
87543// types will always include every visible scope for each scope type in
87544// response. For resource types which predate this field, if this flag
87545// is omitted or false, only scopes of the scope types where the
87546// resource type is expected to be found will be included.
87547func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
87548	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
87549	return c
87550}
87551
87552// MaxResults sets the optional parameter "maxResults": The maximum
87553// number of results per page that should be returned. If the number of
87554// available results is larger than `maxResults`, Compute Engine returns
87555// a `nextPageToken` that can be used to get the next page of results in
87556// subsequent list requests. Acceptable values are `0` to `500`,
87557// inclusive. (Default: `500`)
87558func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
87559	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87560	return c
87561}
87562
87563// OrderBy sets the optional parameter "orderBy": Sorts list results by
87564// a certain order. By default, results are returned in alphanumerical
87565// order based on the resource name.
87566//
87567// You can also sort results in descending order based on the creation
87568// timestamp using `orderBy="creationTimestamp desc". This sorts
87569// results based on the `creationTimestamp` field in reverse
87570// chronological order (newest result first). Use this to sort resources
87571// like operations so that the newest operation is returned
87572// first.
87573//
87574// Currently, only sorting by `name` or `creationTimestamp desc` is
87575// supported.
87576func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
87577	c.urlParams_.Set("orderBy", orderBy)
87578	return c
87579}
87580
87581// PageToken sets the optional parameter "pageToken": Specifies a page
87582// token to use. Set `pageToken` to the `nextPageToken` returned by a
87583// previous list request to get the next page of results.
87584func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
87585	c.urlParams_.Set("pageToken", pageToken)
87586	return c
87587}
87588
87589// Fields allows partial responses to be retrieved. See
87590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87591// for more information.
87592func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
87593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87594	return c
87595}
87596
87597// IfNoneMatch sets the optional parameter which makes the operation
87598// fail if the object's ETag matches the given value. This is useful for
87599// getting updates only after the object has changed since the last
87600// request. Use googleapi.IsNotModified to check whether the response
87601// error from Do is the result of In-None-Match.
87602func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
87603	c.ifNoneMatch_ = entityTag
87604	return c
87605}
87606
87607// Context sets the context to be used in this call's Do method. Any
87608// pending HTTP request will be aborted if the provided context is
87609// canceled.
87610func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
87611	c.ctx_ = ctx
87612	return c
87613}
87614
87615// Header returns an http.Header that can be modified by the caller to
87616// add HTTP headers to the request.
87617func (c *NodeGroupsAggregatedListCall) Header() http.Header {
87618	if c.header_ == nil {
87619		c.header_ = make(http.Header)
87620	}
87621	return c.header_
87622}
87623
87624func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
87625	reqHeaders := make(http.Header)
87626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87627	for k, v := range c.header_ {
87628		reqHeaders[k] = v
87629	}
87630	reqHeaders.Set("User-Agent", c.s.userAgent())
87631	if c.ifNoneMatch_ != "" {
87632		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87633	}
87634	var body io.Reader = nil
87635	c.urlParams_.Set("alt", alt)
87636	c.urlParams_.Set("prettyPrint", "false")
87637	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeGroups")
87638	urls += "?" + c.urlParams_.Encode()
87639	req, err := http.NewRequest("GET", urls, body)
87640	if err != nil {
87641		return nil, err
87642	}
87643	req.Header = reqHeaders
87644	googleapi.Expand(req.URL, map[string]string{
87645		"project": c.project,
87646	})
87647	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87648}
87649
87650// Do executes the "compute.nodeGroups.aggregatedList" call.
87651// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
87652// non-2xx status code is an error. Response headers are in either
87653// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
87654// returned at all) in error.(*googleapi.Error).Header. Use
87655// googleapi.IsNotModified to check whether the returned error was
87656// because http.StatusNotModified was returned.
87657func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
87658	gensupport.SetOptions(c.urlParams_, opts...)
87659	res, err := c.doRequest("json")
87660	if res != nil && res.StatusCode == http.StatusNotModified {
87661		if res.Body != nil {
87662			res.Body.Close()
87663		}
87664		return nil, &googleapi.Error{
87665			Code:   res.StatusCode,
87666			Header: res.Header,
87667		}
87668	}
87669	if err != nil {
87670		return nil, err
87671	}
87672	defer googleapi.CloseBody(res)
87673	if err := googleapi.CheckResponse(res); err != nil {
87674		return nil, err
87675	}
87676	ret := &NodeGroupAggregatedList{
87677		ServerResponse: googleapi.ServerResponse{
87678			Header:         res.Header,
87679			HTTPStatusCode: res.StatusCode,
87680		},
87681	}
87682	target := &ret
87683	if err := gensupport.DecodeResponse(target, res); err != nil {
87684		return nil, err
87685	}
87686	return ret, nil
87687	// {
87688	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
87689	//   "httpMethod": "GET",
87690	//   "id": "compute.nodeGroups.aggregatedList",
87691	//   "parameterOrder": [
87692	//     "project"
87693	//   ],
87694	//   "parameters": {
87695	//     "filter": {
87696	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
87697	//       "location": "query",
87698	//       "type": "string"
87699	//     },
87700	//     "includeAllScopes": {
87701	//       "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.",
87702	//       "location": "query",
87703	//       "type": "boolean"
87704	//     },
87705	//     "maxResults": {
87706	//       "default": "500",
87707	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
87708	//       "format": "uint32",
87709	//       "location": "query",
87710	//       "minimum": "0",
87711	//       "type": "integer"
87712	//     },
87713	//     "orderBy": {
87714	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
87715	//       "location": "query",
87716	//       "type": "string"
87717	//     },
87718	//     "pageToken": {
87719	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
87720	//       "location": "query",
87721	//       "type": "string"
87722	//     },
87723	//     "project": {
87724	//       "description": "Project ID for this request.",
87725	//       "location": "path",
87726	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87727	//       "required": true,
87728	//       "type": "string"
87729	//     }
87730	//   },
87731	//   "path": "{project}/aggregated/nodeGroups",
87732	//   "response": {
87733	//     "$ref": "NodeGroupAggregatedList"
87734	//   },
87735	//   "scopes": [
87736	//     "https://www.googleapis.com/auth/cloud-platform",
87737	//     "https://www.googleapis.com/auth/compute",
87738	//     "https://www.googleapis.com/auth/compute.readonly"
87739	//   ]
87740	// }
87741
87742}
87743
87744// Pages invokes f for each page of results.
87745// A non-nil error returned from f will halt the iteration.
87746// The provided context supersedes any context provided to the Context method.
87747func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
87748	c.ctx_ = ctx
87749	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87750	for {
87751		x, err := c.Do()
87752		if err != nil {
87753			return err
87754		}
87755		if err := f(x); err != nil {
87756			return err
87757		}
87758		if x.NextPageToken == "" {
87759			return nil
87760		}
87761		c.PageToken(x.NextPageToken)
87762	}
87763}
87764
87765// method id "compute.nodeGroups.delete":
87766
87767type NodeGroupsDeleteCall struct {
87768	s          *Service
87769	project    string
87770	zone       string
87771	nodeGroup  string
87772	urlParams_ gensupport.URLParams
87773	ctx_       context.Context
87774	header_    http.Header
87775}
87776
87777// Delete: Deletes the specified NodeGroup resource.
87778func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
87779	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87780	c.project = project
87781	c.zone = zone
87782	c.nodeGroup = nodeGroup
87783	return c
87784}
87785
87786// RequestId sets the optional parameter "requestId": An optional
87787// request ID to identify requests. Specify a unique request ID so that
87788// if you must retry your request, the server will know to ignore the
87789// request if it has already been completed.
87790//
87791// For example, consider a situation where you make an initial request
87792// and the request times out. If you make the request again with the
87793// same request ID, the server can check if original operation with the
87794// same request ID was received, and if so, will ignore the second
87795// request. This prevents clients from accidentally creating duplicate
87796// commitments.
87797//
87798// The request ID must be a valid UUID with the exception that zero UUID
87799// is not supported (00000000-0000-0000-0000-000000000000).
87800func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
87801	c.urlParams_.Set("requestId", requestId)
87802	return c
87803}
87804
87805// Fields allows partial responses to be retrieved. See
87806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87807// for more information.
87808func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
87809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87810	return c
87811}
87812
87813// Context sets the context to be used in this call's Do method. Any
87814// pending HTTP request will be aborted if the provided context is
87815// canceled.
87816func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
87817	c.ctx_ = ctx
87818	return c
87819}
87820
87821// Header returns an http.Header that can be modified by the caller to
87822// add HTTP headers to the request.
87823func (c *NodeGroupsDeleteCall) Header() http.Header {
87824	if c.header_ == nil {
87825		c.header_ = make(http.Header)
87826	}
87827	return c.header_
87828}
87829
87830func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
87831	reqHeaders := make(http.Header)
87832	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87833	for k, v := range c.header_ {
87834		reqHeaders[k] = v
87835	}
87836	reqHeaders.Set("User-Agent", c.s.userAgent())
87837	var body io.Reader = nil
87838	c.urlParams_.Set("alt", alt)
87839	c.urlParams_.Set("prettyPrint", "false")
87840	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
87841	urls += "?" + c.urlParams_.Encode()
87842	req, err := http.NewRequest("DELETE", urls, body)
87843	if err != nil {
87844		return nil, err
87845	}
87846	req.Header = reqHeaders
87847	googleapi.Expand(req.URL, map[string]string{
87848		"project":   c.project,
87849		"zone":      c.zone,
87850		"nodeGroup": c.nodeGroup,
87851	})
87852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87853}
87854
87855// Do executes the "compute.nodeGroups.delete" call.
87856// Exactly one of *Operation or error will be non-nil. Any non-2xx
87857// status code is an error. Response headers are in either
87858// *Operation.ServerResponse.Header or (if a response was returned at
87859// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87860// to check whether the returned error was because
87861// http.StatusNotModified was returned.
87862func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87863	gensupport.SetOptions(c.urlParams_, opts...)
87864	res, err := c.doRequest("json")
87865	if res != nil && res.StatusCode == http.StatusNotModified {
87866		if res.Body != nil {
87867			res.Body.Close()
87868		}
87869		return nil, &googleapi.Error{
87870			Code:   res.StatusCode,
87871			Header: res.Header,
87872		}
87873	}
87874	if err != nil {
87875		return nil, err
87876	}
87877	defer googleapi.CloseBody(res)
87878	if err := googleapi.CheckResponse(res); err != nil {
87879		return nil, err
87880	}
87881	ret := &Operation{
87882		ServerResponse: googleapi.ServerResponse{
87883			Header:         res.Header,
87884			HTTPStatusCode: res.StatusCode,
87885		},
87886	}
87887	target := &ret
87888	if err := gensupport.DecodeResponse(target, res); err != nil {
87889		return nil, err
87890	}
87891	return ret, nil
87892	// {
87893	//   "description": "Deletes the specified NodeGroup resource.",
87894	//   "httpMethod": "DELETE",
87895	//   "id": "compute.nodeGroups.delete",
87896	//   "parameterOrder": [
87897	//     "project",
87898	//     "zone",
87899	//     "nodeGroup"
87900	//   ],
87901	//   "parameters": {
87902	//     "nodeGroup": {
87903	//       "description": "Name of the NodeGroup resource to delete.",
87904	//       "location": "path",
87905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87906	//       "required": true,
87907	//       "type": "string"
87908	//     },
87909	//     "project": {
87910	//       "description": "Project ID for this request.",
87911	//       "location": "path",
87912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87913	//       "required": true,
87914	//       "type": "string"
87915	//     },
87916	//     "requestId": {
87917	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87918	//       "location": "query",
87919	//       "type": "string"
87920	//     },
87921	//     "zone": {
87922	//       "description": "The name of the zone for this request.",
87923	//       "location": "path",
87924	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87925	//       "required": true,
87926	//       "type": "string"
87927	//     }
87928	//   },
87929	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
87930	//   "response": {
87931	//     "$ref": "Operation"
87932	//   },
87933	//   "scopes": [
87934	//     "https://www.googleapis.com/auth/cloud-platform",
87935	//     "https://www.googleapis.com/auth/compute"
87936	//   ]
87937	// }
87938
87939}
87940
87941// method id "compute.nodeGroups.deleteNodes":
87942
87943type NodeGroupsDeleteNodesCall struct {
87944	s                            *Service
87945	project                      string
87946	zone                         string
87947	nodeGroup                    string
87948	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
87949	urlParams_                   gensupport.URLParams
87950	ctx_                         context.Context
87951	header_                      http.Header
87952}
87953
87954// DeleteNodes: Deletes specified nodes from the node group.
87955func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
87956	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87957	c.project = project
87958	c.zone = zone
87959	c.nodeGroup = nodeGroup
87960	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
87961	return c
87962}
87963
87964// RequestId sets the optional parameter "requestId": An optional
87965// request ID to identify requests. Specify a unique request ID so that
87966// if you must retry your request, the server will know to ignore the
87967// request if it has already been completed.
87968//
87969// For example, consider a situation where you make an initial request
87970// and the request times out. If you make the request again with the
87971// same request ID, the server can check if original operation with the
87972// same request ID was received, and if so, will ignore the second
87973// request. This prevents clients from accidentally creating duplicate
87974// commitments.
87975//
87976// The request ID must be a valid UUID with the exception that zero UUID
87977// is not supported (00000000-0000-0000-0000-000000000000).
87978func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
87979	c.urlParams_.Set("requestId", requestId)
87980	return c
87981}
87982
87983// Fields allows partial responses to be retrieved. See
87984// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87985// for more information.
87986func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
87987	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87988	return c
87989}
87990
87991// Context sets the context to be used in this call's Do method. Any
87992// pending HTTP request will be aborted if the provided context is
87993// canceled.
87994func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
87995	c.ctx_ = ctx
87996	return c
87997}
87998
87999// Header returns an http.Header that can be modified by the caller to
88000// add HTTP headers to the request.
88001func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
88002	if c.header_ == nil {
88003		c.header_ = make(http.Header)
88004	}
88005	return c.header_
88006}
88007
88008func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
88009	reqHeaders := make(http.Header)
88010	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88011	for k, v := range c.header_ {
88012		reqHeaders[k] = v
88013	}
88014	reqHeaders.Set("User-Agent", c.s.userAgent())
88015	var body io.Reader = nil
88016	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
88017	if err != nil {
88018		return nil, err
88019	}
88020	reqHeaders.Set("Content-Type", "application/json")
88021	c.urlParams_.Set("alt", alt)
88022	c.urlParams_.Set("prettyPrint", "false")
88023	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
88024	urls += "?" + c.urlParams_.Encode()
88025	req, err := http.NewRequest("POST", urls, body)
88026	if err != nil {
88027		return nil, err
88028	}
88029	req.Header = reqHeaders
88030	googleapi.Expand(req.URL, map[string]string{
88031		"project":   c.project,
88032		"zone":      c.zone,
88033		"nodeGroup": c.nodeGroup,
88034	})
88035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88036}
88037
88038// Do executes the "compute.nodeGroups.deleteNodes" call.
88039// Exactly one of *Operation or error will be non-nil. Any non-2xx
88040// status code is an error. Response headers are in either
88041// *Operation.ServerResponse.Header or (if a response was returned at
88042// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88043// to check whether the returned error was because
88044// http.StatusNotModified was returned.
88045func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88046	gensupport.SetOptions(c.urlParams_, opts...)
88047	res, err := c.doRequest("json")
88048	if res != nil && res.StatusCode == http.StatusNotModified {
88049		if res.Body != nil {
88050			res.Body.Close()
88051		}
88052		return nil, &googleapi.Error{
88053			Code:   res.StatusCode,
88054			Header: res.Header,
88055		}
88056	}
88057	if err != nil {
88058		return nil, err
88059	}
88060	defer googleapi.CloseBody(res)
88061	if err := googleapi.CheckResponse(res); err != nil {
88062		return nil, err
88063	}
88064	ret := &Operation{
88065		ServerResponse: googleapi.ServerResponse{
88066			Header:         res.Header,
88067			HTTPStatusCode: res.StatusCode,
88068		},
88069	}
88070	target := &ret
88071	if err := gensupport.DecodeResponse(target, res); err != nil {
88072		return nil, err
88073	}
88074	return ret, nil
88075	// {
88076	//   "description": "Deletes specified nodes from the node group.",
88077	//   "httpMethod": "POST",
88078	//   "id": "compute.nodeGroups.deleteNodes",
88079	//   "parameterOrder": [
88080	//     "project",
88081	//     "zone",
88082	//     "nodeGroup"
88083	//   ],
88084	//   "parameters": {
88085	//     "nodeGroup": {
88086	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
88087	//       "location": "path",
88088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88089	//       "required": true,
88090	//       "type": "string"
88091	//     },
88092	//     "project": {
88093	//       "description": "Project ID for this request.",
88094	//       "location": "path",
88095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88096	//       "required": true,
88097	//       "type": "string"
88098	//     },
88099	//     "requestId": {
88100	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88101	//       "location": "query",
88102	//       "type": "string"
88103	//     },
88104	//     "zone": {
88105	//       "description": "The name of the zone for this request.",
88106	//       "location": "path",
88107	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88108	//       "required": true,
88109	//       "type": "string"
88110	//     }
88111	//   },
88112	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
88113	//   "request": {
88114	//     "$ref": "NodeGroupsDeleteNodesRequest"
88115	//   },
88116	//   "response": {
88117	//     "$ref": "Operation"
88118	//   },
88119	//   "scopes": [
88120	//     "https://www.googleapis.com/auth/cloud-platform",
88121	//     "https://www.googleapis.com/auth/compute"
88122	//   ]
88123	// }
88124
88125}
88126
88127// method id "compute.nodeGroups.get":
88128
88129type NodeGroupsGetCall struct {
88130	s            *Service
88131	project      string
88132	zone         string
88133	nodeGroup    string
88134	urlParams_   gensupport.URLParams
88135	ifNoneMatch_ string
88136	ctx_         context.Context
88137	header_      http.Header
88138}
88139
88140// Get: Returns the specified NodeGroup. Get a list of available
88141// NodeGroups by making a list() request. Note: the "nodes" field should
88142// not be used. Use nodeGroups.listNodes instead.
88143func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
88144	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88145	c.project = project
88146	c.zone = zone
88147	c.nodeGroup = nodeGroup
88148	return c
88149}
88150
88151// Fields allows partial responses to be retrieved. See
88152// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88153// for more information.
88154func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
88155	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88156	return c
88157}
88158
88159// IfNoneMatch sets the optional parameter which makes the operation
88160// fail if the object's ETag matches the given value. This is useful for
88161// getting updates only after the object has changed since the last
88162// request. Use googleapi.IsNotModified to check whether the response
88163// error from Do is the result of In-None-Match.
88164func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
88165	c.ifNoneMatch_ = entityTag
88166	return c
88167}
88168
88169// Context sets the context to be used in this call's Do method. Any
88170// pending HTTP request will be aborted if the provided context is
88171// canceled.
88172func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
88173	c.ctx_ = ctx
88174	return c
88175}
88176
88177// Header returns an http.Header that can be modified by the caller to
88178// add HTTP headers to the request.
88179func (c *NodeGroupsGetCall) Header() http.Header {
88180	if c.header_ == nil {
88181		c.header_ = make(http.Header)
88182	}
88183	return c.header_
88184}
88185
88186func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
88187	reqHeaders := make(http.Header)
88188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88189	for k, v := range c.header_ {
88190		reqHeaders[k] = v
88191	}
88192	reqHeaders.Set("User-Agent", c.s.userAgent())
88193	if c.ifNoneMatch_ != "" {
88194		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88195	}
88196	var body io.Reader = nil
88197	c.urlParams_.Set("alt", alt)
88198	c.urlParams_.Set("prettyPrint", "false")
88199	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
88200	urls += "?" + c.urlParams_.Encode()
88201	req, err := http.NewRequest("GET", urls, body)
88202	if err != nil {
88203		return nil, err
88204	}
88205	req.Header = reqHeaders
88206	googleapi.Expand(req.URL, map[string]string{
88207		"project":   c.project,
88208		"zone":      c.zone,
88209		"nodeGroup": c.nodeGroup,
88210	})
88211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88212}
88213
88214// Do executes the "compute.nodeGroups.get" call.
88215// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
88216// status code is an error. Response headers are in either
88217// *NodeGroup.ServerResponse.Header or (if a response was returned at
88218// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88219// to check whether the returned error was because
88220// http.StatusNotModified was returned.
88221func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
88222	gensupport.SetOptions(c.urlParams_, opts...)
88223	res, err := c.doRequest("json")
88224	if res != nil && res.StatusCode == http.StatusNotModified {
88225		if res.Body != nil {
88226			res.Body.Close()
88227		}
88228		return nil, &googleapi.Error{
88229			Code:   res.StatusCode,
88230			Header: res.Header,
88231		}
88232	}
88233	if err != nil {
88234		return nil, err
88235	}
88236	defer googleapi.CloseBody(res)
88237	if err := googleapi.CheckResponse(res); err != nil {
88238		return nil, err
88239	}
88240	ret := &NodeGroup{
88241		ServerResponse: googleapi.ServerResponse{
88242			Header:         res.Header,
88243			HTTPStatusCode: res.StatusCode,
88244		},
88245	}
88246	target := &ret
88247	if err := gensupport.DecodeResponse(target, res); err != nil {
88248		return nil, err
88249	}
88250	return ret, nil
88251	// {
88252	//   "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.",
88253	//   "httpMethod": "GET",
88254	//   "id": "compute.nodeGroups.get",
88255	//   "parameterOrder": [
88256	//     "project",
88257	//     "zone",
88258	//     "nodeGroup"
88259	//   ],
88260	//   "parameters": {
88261	//     "nodeGroup": {
88262	//       "description": "Name of the node group to return.",
88263	//       "location": "path",
88264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88265	//       "required": true,
88266	//       "type": "string"
88267	//     },
88268	//     "project": {
88269	//       "description": "Project ID for this request.",
88270	//       "location": "path",
88271	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88272	//       "required": true,
88273	//       "type": "string"
88274	//     },
88275	//     "zone": {
88276	//       "description": "The name of the zone for this request.",
88277	//       "location": "path",
88278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88279	//       "required": true,
88280	//       "type": "string"
88281	//     }
88282	//   },
88283	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
88284	//   "response": {
88285	//     "$ref": "NodeGroup"
88286	//   },
88287	//   "scopes": [
88288	//     "https://www.googleapis.com/auth/cloud-platform",
88289	//     "https://www.googleapis.com/auth/compute",
88290	//     "https://www.googleapis.com/auth/compute.readonly"
88291	//   ]
88292	// }
88293
88294}
88295
88296// method id "compute.nodeGroups.getIamPolicy":
88297
88298type NodeGroupsGetIamPolicyCall struct {
88299	s            *Service
88300	project      string
88301	zone         string
88302	resource     string
88303	urlParams_   gensupport.URLParams
88304	ifNoneMatch_ string
88305	ctx_         context.Context
88306	header_      http.Header
88307}
88308
88309// GetIamPolicy: Gets the access control policy for a resource. May be
88310// empty if no such policy or resource exists.
88311func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
88312	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88313	c.project = project
88314	c.zone = zone
88315	c.resource = resource
88316	return c
88317}
88318
88319// Fields allows partial responses to be retrieved. See
88320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88321// for more information.
88322func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
88323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88324	return c
88325}
88326
88327// IfNoneMatch sets the optional parameter which makes the operation
88328// fail if the object's ETag matches the given value. This is useful for
88329// getting updates only after the object has changed since the last
88330// request. Use googleapi.IsNotModified to check whether the response
88331// error from Do is the result of In-None-Match.
88332func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
88333	c.ifNoneMatch_ = entityTag
88334	return c
88335}
88336
88337// Context sets the context to be used in this call's Do method. Any
88338// pending HTTP request will be aborted if the provided context is
88339// canceled.
88340func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
88341	c.ctx_ = ctx
88342	return c
88343}
88344
88345// Header returns an http.Header that can be modified by the caller to
88346// add HTTP headers to the request.
88347func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
88348	if c.header_ == nil {
88349		c.header_ = make(http.Header)
88350	}
88351	return c.header_
88352}
88353
88354func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
88355	reqHeaders := make(http.Header)
88356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88357	for k, v := range c.header_ {
88358		reqHeaders[k] = v
88359	}
88360	reqHeaders.Set("User-Agent", c.s.userAgent())
88361	if c.ifNoneMatch_ != "" {
88362		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88363	}
88364	var body io.Reader = nil
88365	c.urlParams_.Set("alt", alt)
88366	c.urlParams_.Set("prettyPrint", "false")
88367	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
88368	urls += "?" + c.urlParams_.Encode()
88369	req, err := http.NewRequest("GET", urls, body)
88370	if err != nil {
88371		return nil, err
88372	}
88373	req.Header = reqHeaders
88374	googleapi.Expand(req.URL, map[string]string{
88375		"project":  c.project,
88376		"zone":     c.zone,
88377		"resource": c.resource,
88378	})
88379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88380}
88381
88382// Do executes the "compute.nodeGroups.getIamPolicy" call.
88383// Exactly one of *Policy or error will be non-nil. Any non-2xx status
88384// code is an error. Response headers are in either
88385// *Policy.ServerResponse.Header or (if a response was returned at all)
88386// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
88387// check whether the returned error was because http.StatusNotModified
88388// was returned.
88389func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
88390	gensupport.SetOptions(c.urlParams_, opts...)
88391	res, err := c.doRequest("json")
88392	if res != nil && res.StatusCode == http.StatusNotModified {
88393		if res.Body != nil {
88394			res.Body.Close()
88395		}
88396		return nil, &googleapi.Error{
88397			Code:   res.StatusCode,
88398			Header: res.Header,
88399		}
88400	}
88401	if err != nil {
88402		return nil, err
88403	}
88404	defer googleapi.CloseBody(res)
88405	if err := googleapi.CheckResponse(res); err != nil {
88406		return nil, err
88407	}
88408	ret := &Policy{
88409		ServerResponse: googleapi.ServerResponse{
88410			Header:         res.Header,
88411			HTTPStatusCode: res.StatusCode,
88412		},
88413	}
88414	target := &ret
88415	if err := gensupport.DecodeResponse(target, res); err != nil {
88416		return nil, err
88417	}
88418	return ret, nil
88419	// {
88420	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
88421	//   "httpMethod": "GET",
88422	//   "id": "compute.nodeGroups.getIamPolicy",
88423	//   "parameterOrder": [
88424	//     "project",
88425	//     "zone",
88426	//     "resource"
88427	//   ],
88428	//   "parameters": {
88429	//     "project": {
88430	//       "description": "Project ID for this request.",
88431	//       "location": "path",
88432	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88433	//       "required": true,
88434	//       "type": "string"
88435	//     },
88436	//     "resource": {
88437	//       "description": "Name or id of the resource for this request.",
88438	//       "location": "path",
88439	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88440	//       "required": true,
88441	//       "type": "string"
88442	//     },
88443	//     "zone": {
88444	//       "description": "The name of the zone for this request.",
88445	//       "location": "path",
88446	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88447	//       "required": true,
88448	//       "type": "string"
88449	//     }
88450	//   },
88451	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
88452	//   "response": {
88453	//     "$ref": "Policy"
88454	//   },
88455	//   "scopes": [
88456	//     "https://www.googleapis.com/auth/cloud-platform",
88457	//     "https://www.googleapis.com/auth/compute",
88458	//     "https://www.googleapis.com/auth/compute.readonly"
88459	//   ]
88460	// }
88461
88462}
88463
88464// method id "compute.nodeGroups.insert":
88465
88466type NodeGroupsInsertCall struct {
88467	s          *Service
88468	project    string
88469	zone       string
88470	nodegroup  *NodeGroup
88471	urlParams_ gensupport.URLParams
88472	ctx_       context.Context
88473	header_    http.Header
88474}
88475
88476// Insert: Creates a NodeGroup resource in the specified project using
88477// the data included in the request.
88478func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
88479	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88480	c.project = project
88481	c.zone = zone
88482	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
88483	c.nodegroup = nodegroup
88484	return c
88485}
88486
88487// RequestId sets the optional parameter "requestId": An optional
88488// request ID to identify requests. Specify a unique request ID so that
88489// if you must retry your request, the server will know to ignore the
88490// request if it has already been completed.
88491//
88492// For example, consider a situation where you make an initial request
88493// and the request times out. If you make the request again with the
88494// same request ID, the server can check if original operation with the
88495// same request ID was received, and if so, will ignore the second
88496// request. This prevents clients from accidentally creating duplicate
88497// commitments.
88498//
88499// The request ID must be a valid UUID with the exception that zero UUID
88500// is not supported (00000000-0000-0000-0000-000000000000).
88501func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
88502	c.urlParams_.Set("requestId", requestId)
88503	return c
88504}
88505
88506// Fields allows partial responses to be retrieved. See
88507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88508// for more information.
88509func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
88510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88511	return c
88512}
88513
88514// Context sets the context to be used in this call's Do method. Any
88515// pending HTTP request will be aborted if the provided context is
88516// canceled.
88517func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
88518	c.ctx_ = ctx
88519	return c
88520}
88521
88522// Header returns an http.Header that can be modified by the caller to
88523// add HTTP headers to the request.
88524func (c *NodeGroupsInsertCall) Header() http.Header {
88525	if c.header_ == nil {
88526		c.header_ = make(http.Header)
88527	}
88528	return c.header_
88529}
88530
88531func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
88532	reqHeaders := make(http.Header)
88533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88534	for k, v := range c.header_ {
88535		reqHeaders[k] = v
88536	}
88537	reqHeaders.Set("User-Agent", c.s.userAgent())
88538	var body io.Reader = nil
88539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
88540	if err != nil {
88541		return nil, err
88542	}
88543	reqHeaders.Set("Content-Type", "application/json")
88544	c.urlParams_.Set("alt", alt)
88545	c.urlParams_.Set("prettyPrint", "false")
88546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
88547	urls += "?" + c.urlParams_.Encode()
88548	req, err := http.NewRequest("POST", urls, body)
88549	if err != nil {
88550		return nil, err
88551	}
88552	req.Header = reqHeaders
88553	googleapi.Expand(req.URL, map[string]string{
88554		"project": c.project,
88555		"zone":    c.zone,
88556	})
88557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88558}
88559
88560// Do executes the "compute.nodeGroups.insert" call.
88561// Exactly one of *Operation or error will be non-nil. Any non-2xx
88562// status code is an error. Response headers are in either
88563// *Operation.ServerResponse.Header or (if a response was returned at
88564// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88565// to check whether the returned error was because
88566// http.StatusNotModified was returned.
88567func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88568	gensupport.SetOptions(c.urlParams_, opts...)
88569	res, err := c.doRequest("json")
88570	if res != nil && res.StatusCode == http.StatusNotModified {
88571		if res.Body != nil {
88572			res.Body.Close()
88573		}
88574		return nil, &googleapi.Error{
88575			Code:   res.StatusCode,
88576			Header: res.Header,
88577		}
88578	}
88579	if err != nil {
88580		return nil, err
88581	}
88582	defer googleapi.CloseBody(res)
88583	if err := googleapi.CheckResponse(res); err != nil {
88584		return nil, err
88585	}
88586	ret := &Operation{
88587		ServerResponse: googleapi.ServerResponse{
88588			Header:         res.Header,
88589			HTTPStatusCode: res.StatusCode,
88590		},
88591	}
88592	target := &ret
88593	if err := gensupport.DecodeResponse(target, res); err != nil {
88594		return nil, err
88595	}
88596	return ret, nil
88597	// {
88598	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
88599	//   "httpMethod": "POST",
88600	//   "id": "compute.nodeGroups.insert",
88601	//   "parameterOrder": [
88602	//     "project",
88603	//     "zone",
88604	//     "initialNodeCount"
88605	//   ],
88606	//   "parameters": {
88607	//     "initialNodeCount": {
88608	//       "description": "Initial count of nodes in the node group.",
88609	//       "format": "int32",
88610	//       "location": "query",
88611	//       "required": true,
88612	//       "type": "integer"
88613	//     },
88614	//     "project": {
88615	//       "description": "Project ID for this request.",
88616	//       "location": "path",
88617	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88618	//       "required": true,
88619	//       "type": "string"
88620	//     },
88621	//     "requestId": {
88622	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88623	//       "location": "query",
88624	//       "type": "string"
88625	//     },
88626	//     "zone": {
88627	//       "description": "The name of the zone for this request.",
88628	//       "location": "path",
88629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88630	//       "required": true,
88631	//       "type": "string"
88632	//     }
88633	//   },
88634	//   "path": "{project}/zones/{zone}/nodeGroups",
88635	//   "request": {
88636	//     "$ref": "NodeGroup"
88637	//   },
88638	//   "response": {
88639	//     "$ref": "Operation"
88640	//   },
88641	//   "scopes": [
88642	//     "https://www.googleapis.com/auth/cloud-platform",
88643	//     "https://www.googleapis.com/auth/compute"
88644	//   ]
88645	// }
88646
88647}
88648
88649// method id "compute.nodeGroups.list":
88650
88651type NodeGroupsListCall struct {
88652	s            *Service
88653	project      string
88654	zone         string
88655	urlParams_   gensupport.URLParams
88656	ifNoneMatch_ string
88657	ctx_         context.Context
88658	header_      http.Header
88659}
88660
88661// List: Retrieves a list of node groups available to the specified
88662// project. Note: use nodeGroups.listNodes for more details about each
88663// group.
88664func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
88665	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88666	c.project = project
88667	c.zone = zone
88668	return c
88669}
88670
88671// Filter sets the optional parameter "filter": A filter expression that
88672// filters resources listed in the response. The expression must specify
88673// the field name, a comparison operator, and the value that you want to
88674// use for filtering. The value must be a string, a number, or a
88675// boolean. The comparison operator must be either `=`, `!=`, `>`, or
88676// `<`.
88677//
88678// For example, if you are filtering Compute Engine instances, you can
88679// exclude instances named `example-instance` by specifying `name !=
88680// example-instance`.
88681//
88682// You can also filter nested fields. For example, you could specify
88683// `scheduling.automaticRestart = false` to include instances only if
88684// they are not scheduled for automatic restarts. You can use filtering
88685// on nested fields to filter based on resource labels.
88686//
88687// To filter on multiple expressions, provide each separate expression
88688// within parentheses. For example: ``` (scheduling.automaticRestart =
88689// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
88690// is an `AND` expression. However, you can include `AND` and `OR`
88691// expressions explicitly. For example: ``` (cpuPlatform = "Intel
88692// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
88693// (scheduling.automaticRestart = true) ```
88694func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
88695	c.urlParams_.Set("filter", filter)
88696	return c
88697}
88698
88699// MaxResults sets the optional parameter "maxResults": The maximum
88700// number of results per page that should be returned. If the number of
88701// available results is larger than `maxResults`, Compute Engine returns
88702// a `nextPageToken` that can be used to get the next page of results in
88703// subsequent list requests. Acceptable values are `0` to `500`,
88704// inclusive. (Default: `500`)
88705func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
88706	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88707	return c
88708}
88709
88710// OrderBy sets the optional parameter "orderBy": Sorts list results by
88711// a certain order. By default, results are returned in alphanumerical
88712// order based on the resource name.
88713//
88714// You can also sort results in descending order based on the creation
88715// timestamp using `orderBy="creationTimestamp desc". This sorts
88716// results based on the `creationTimestamp` field in reverse
88717// chronological order (newest result first). Use this to sort resources
88718// like operations so that the newest operation is returned
88719// first.
88720//
88721// Currently, only sorting by `name` or `creationTimestamp desc` is
88722// supported.
88723func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
88724	c.urlParams_.Set("orderBy", orderBy)
88725	return c
88726}
88727
88728// PageToken sets the optional parameter "pageToken": Specifies a page
88729// token to use. Set `pageToken` to the `nextPageToken` returned by a
88730// previous list request to get the next page of results.
88731func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
88732	c.urlParams_.Set("pageToken", pageToken)
88733	return c
88734}
88735
88736// Fields allows partial responses to be retrieved. See
88737// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88738// for more information.
88739func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
88740	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88741	return c
88742}
88743
88744// IfNoneMatch sets the optional parameter which makes the operation
88745// fail if the object's ETag matches the given value. This is useful for
88746// getting updates only after the object has changed since the last
88747// request. Use googleapi.IsNotModified to check whether the response
88748// error from Do is the result of In-None-Match.
88749func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
88750	c.ifNoneMatch_ = entityTag
88751	return c
88752}
88753
88754// Context sets the context to be used in this call's Do method. Any
88755// pending HTTP request will be aborted if the provided context is
88756// canceled.
88757func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
88758	c.ctx_ = ctx
88759	return c
88760}
88761
88762// Header returns an http.Header that can be modified by the caller to
88763// add HTTP headers to the request.
88764func (c *NodeGroupsListCall) Header() http.Header {
88765	if c.header_ == nil {
88766		c.header_ = make(http.Header)
88767	}
88768	return c.header_
88769}
88770
88771func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
88772	reqHeaders := make(http.Header)
88773	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88774	for k, v := range c.header_ {
88775		reqHeaders[k] = v
88776	}
88777	reqHeaders.Set("User-Agent", c.s.userAgent())
88778	if c.ifNoneMatch_ != "" {
88779		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88780	}
88781	var body io.Reader = nil
88782	c.urlParams_.Set("alt", alt)
88783	c.urlParams_.Set("prettyPrint", "false")
88784	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
88785	urls += "?" + c.urlParams_.Encode()
88786	req, err := http.NewRequest("GET", urls, body)
88787	if err != nil {
88788		return nil, err
88789	}
88790	req.Header = reqHeaders
88791	googleapi.Expand(req.URL, map[string]string{
88792		"project": c.project,
88793		"zone":    c.zone,
88794	})
88795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88796}
88797
88798// Do executes the "compute.nodeGroups.list" call.
88799// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
88800// status code is an error. Response headers are in either
88801// *NodeGroupList.ServerResponse.Header or (if a response was returned
88802// at all) in error.(*googleapi.Error).Header. Use
88803// googleapi.IsNotModified to check whether the returned error was
88804// because http.StatusNotModified was returned.
88805func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
88806	gensupport.SetOptions(c.urlParams_, opts...)
88807	res, err := c.doRequest("json")
88808	if res != nil && res.StatusCode == http.StatusNotModified {
88809		if res.Body != nil {
88810			res.Body.Close()
88811		}
88812		return nil, &googleapi.Error{
88813			Code:   res.StatusCode,
88814			Header: res.Header,
88815		}
88816	}
88817	if err != nil {
88818		return nil, err
88819	}
88820	defer googleapi.CloseBody(res)
88821	if err := googleapi.CheckResponse(res); err != nil {
88822		return nil, err
88823	}
88824	ret := &NodeGroupList{
88825		ServerResponse: googleapi.ServerResponse{
88826			Header:         res.Header,
88827			HTTPStatusCode: res.StatusCode,
88828		},
88829	}
88830	target := &ret
88831	if err := gensupport.DecodeResponse(target, res); err != nil {
88832		return nil, err
88833	}
88834	return ret, nil
88835	// {
88836	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
88837	//   "httpMethod": "GET",
88838	//   "id": "compute.nodeGroups.list",
88839	//   "parameterOrder": [
88840	//     "project",
88841	//     "zone"
88842	//   ],
88843	//   "parameters": {
88844	//     "filter": {
88845	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
88846	//       "location": "query",
88847	//       "type": "string"
88848	//     },
88849	//     "maxResults": {
88850	//       "default": "500",
88851	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
88852	//       "format": "uint32",
88853	//       "location": "query",
88854	//       "minimum": "0",
88855	//       "type": "integer"
88856	//     },
88857	//     "orderBy": {
88858	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
88859	//       "location": "query",
88860	//       "type": "string"
88861	//     },
88862	//     "pageToken": {
88863	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
88864	//       "location": "query",
88865	//       "type": "string"
88866	//     },
88867	//     "project": {
88868	//       "description": "Project ID for this request.",
88869	//       "location": "path",
88870	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88871	//       "required": true,
88872	//       "type": "string"
88873	//     },
88874	//     "zone": {
88875	//       "description": "The name of the zone for this request.",
88876	//       "location": "path",
88877	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88878	//       "required": true,
88879	//       "type": "string"
88880	//     }
88881	//   },
88882	//   "path": "{project}/zones/{zone}/nodeGroups",
88883	//   "response": {
88884	//     "$ref": "NodeGroupList"
88885	//   },
88886	//   "scopes": [
88887	//     "https://www.googleapis.com/auth/cloud-platform",
88888	//     "https://www.googleapis.com/auth/compute",
88889	//     "https://www.googleapis.com/auth/compute.readonly"
88890	//   ]
88891	// }
88892
88893}
88894
88895// Pages invokes f for each page of results.
88896// A non-nil error returned from f will halt the iteration.
88897// The provided context supersedes any context provided to the Context method.
88898func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
88899	c.ctx_ = ctx
88900	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
88901	for {
88902		x, err := c.Do()
88903		if err != nil {
88904			return err
88905		}
88906		if err := f(x); err != nil {
88907			return err
88908		}
88909		if x.NextPageToken == "" {
88910			return nil
88911		}
88912		c.PageToken(x.NextPageToken)
88913	}
88914}
88915
88916// method id "compute.nodeGroups.listNodes":
88917
88918type NodeGroupsListNodesCall struct {
88919	s          *Service
88920	project    string
88921	zone       string
88922	nodeGroup  string
88923	urlParams_ gensupport.URLParams
88924	ctx_       context.Context
88925	header_    http.Header
88926}
88927
88928// ListNodes: Lists nodes in the node group.
88929func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
88930	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88931	c.project = project
88932	c.zone = zone
88933	c.nodeGroup = nodeGroup
88934	return c
88935}
88936
88937// Filter sets the optional parameter "filter": A filter expression that
88938// filters resources listed in the response. The expression must specify
88939// the field name, a comparison operator, and the value that you want to
88940// use for filtering. The value must be a string, a number, or a
88941// boolean. The comparison operator must be either `=`, `!=`, `>`, or
88942// `<`.
88943//
88944// For example, if you are filtering Compute Engine instances, you can
88945// exclude instances named `example-instance` by specifying `name !=
88946// example-instance`.
88947//
88948// You can also filter nested fields. For example, you could specify
88949// `scheduling.automaticRestart = false` to include instances only if
88950// they are not scheduled for automatic restarts. You can use filtering
88951// on nested fields to filter based on resource labels.
88952//
88953// To filter on multiple expressions, provide each separate expression
88954// within parentheses. For example: ``` (scheduling.automaticRestart =
88955// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
88956// is an `AND` expression. However, you can include `AND` and `OR`
88957// expressions explicitly. For example: ``` (cpuPlatform = "Intel
88958// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
88959// (scheduling.automaticRestart = true) ```
88960func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
88961	c.urlParams_.Set("filter", filter)
88962	return c
88963}
88964
88965// MaxResults sets the optional parameter "maxResults": The maximum
88966// number of results per page that should be returned. If the number of
88967// available results is larger than `maxResults`, Compute Engine returns
88968// a `nextPageToken` that can be used to get the next page of results in
88969// subsequent list requests. Acceptable values are `0` to `500`,
88970// inclusive. (Default: `500`)
88971func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
88972	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88973	return c
88974}
88975
88976// OrderBy sets the optional parameter "orderBy": Sorts list results by
88977// a certain order. By default, results are returned in alphanumerical
88978// order based on the resource name.
88979//
88980// You can also sort results in descending order based on the creation
88981// timestamp using `orderBy="creationTimestamp desc". This sorts
88982// results based on the `creationTimestamp` field in reverse
88983// chronological order (newest result first). Use this to sort resources
88984// like operations so that the newest operation is returned
88985// first.
88986//
88987// Currently, only sorting by `name` or `creationTimestamp desc` is
88988// supported.
88989func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
88990	c.urlParams_.Set("orderBy", orderBy)
88991	return c
88992}
88993
88994// PageToken sets the optional parameter "pageToken": Specifies a page
88995// token to use. Set `pageToken` to the `nextPageToken` returned by a
88996// previous list request to get the next page of results.
88997func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
88998	c.urlParams_.Set("pageToken", pageToken)
88999	return c
89000}
89001
89002// Fields allows partial responses to be retrieved. See
89003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89004// for more information.
89005func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
89006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89007	return c
89008}
89009
89010// Context sets the context to be used in this call's Do method. Any
89011// pending HTTP request will be aborted if the provided context is
89012// canceled.
89013func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
89014	c.ctx_ = ctx
89015	return c
89016}
89017
89018// Header returns an http.Header that can be modified by the caller to
89019// add HTTP headers to the request.
89020func (c *NodeGroupsListNodesCall) Header() http.Header {
89021	if c.header_ == nil {
89022		c.header_ = make(http.Header)
89023	}
89024	return c.header_
89025}
89026
89027func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
89028	reqHeaders := make(http.Header)
89029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89030	for k, v := range c.header_ {
89031		reqHeaders[k] = v
89032	}
89033	reqHeaders.Set("User-Agent", c.s.userAgent())
89034	var body io.Reader = nil
89035	c.urlParams_.Set("alt", alt)
89036	c.urlParams_.Set("prettyPrint", "false")
89037	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
89038	urls += "?" + c.urlParams_.Encode()
89039	req, err := http.NewRequest("POST", urls, body)
89040	if err != nil {
89041		return nil, err
89042	}
89043	req.Header = reqHeaders
89044	googleapi.Expand(req.URL, map[string]string{
89045		"project":   c.project,
89046		"zone":      c.zone,
89047		"nodeGroup": c.nodeGroup,
89048	})
89049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89050}
89051
89052// Do executes the "compute.nodeGroups.listNodes" call.
89053// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
89054// non-2xx status code is an error. Response headers are in either
89055// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
89056// returned at all) in error.(*googleapi.Error).Header. Use
89057// googleapi.IsNotModified to check whether the returned error was
89058// because http.StatusNotModified was returned.
89059func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
89060	gensupport.SetOptions(c.urlParams_, opts...)
89061	res, err := c.doRequest("json")
89062	if res != nil && res.StatusCode == http.StatusNotModified {
89063		if res.Body != nil {
89064			res.Body.Close()
89065		}
89066		return nil, &googleapi.Error{
89067			Code:   res.StatusCode,
89068			Header: res.Header,
89069		}
89070	}
89071	if err != nil {
89072		return nil, err
89073	}
89074	defer googleapi.CloseBody(res)
89075	if err := googleapi.CheckResponse(res); err != nil {
89076		return nil, err
89077	}
89078	ret := &NodeGroupsListNodes{
89079		ServerResponse: googleapi.ServerResponse{
89080			Header:         res.Header,
89081			HTTPStatusCode: res.StatusCode,
89082		},
89083	}
89084	target := &ret
89085	if err := gensupport.DecodeResponse(target, res); err != nil {
89086		return nil, err
89087	}
89088	return ret, nil
89089	// {
89090	//   "description": "Lists nodes in the node group.",
89091	//   "httpMethod": "POST",
89092	//   "id": "compute.nodeGroups.listNodes",
89093	//   "parameterOrder": [
89094	//     "project",
89095	//     "zone",
89096	//     "nodeGroup"
89097	//   ],
89098	//   "parameters": {
89099	//     "filter": {
89100	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
89101	//       "location": "query",
89102	//       "type": "string"
89103	//     },
89104	//     "maxResults": {
89105	//       "default": "500",
89106	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
89107	//       "format": "uint32",
89108	//       "location": "query",
89109	//       "minimum": "0",
89110	//       "type": "integer"
89111	//     },
89112	//     "nodeGroup": {
89113	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
89114	//       "location": "path",
89115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89116	//       "required": true,
89117	//       "type": "string"
89118	//     },
89119	//     "orderBy": {
89120	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
89121	//       "location": "query",
89122	//       "type": "string"
89123	//     },
89124	//     "pageToken": {
89125	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
89126	//       "location": "query",
89127	//       "type": "string"
89128	//     },
89129	//     "project": {
89130	//       "description": "Project ID for this request.",
89131	//       "location": "path",
89132	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89133	//       "required": true,
89134	//       "type": "string"
89135	//     },
89136	//     "zone": {
89137	//       "description": "The name of the zone for this request.",
89138	//       "location": "path",
89139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89140	//       "required": true,
89141	//       "type": "string"
89142	//     }
89143	//   },
89144	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
89145	//   "response": {
89146	//     "$ref": "NodeGroupsListNodes"
89147	//   },
89148	//   "scopes": [
89149	//     "https://www.googleapis.com/auth/cloud-platform",
89150	//     "https://www.googleapis.com/auth/compute",
89151	//     "https://www.googleapis.com/auth/compute.readonly"
89152	//   ]
89153	// }
89154
89155}
89156
89157// Pages invokes f for each page of results.
89158// A non-nil error returned from f will halt the iteration.
89159// The provided context supersedes any context provided to the Context method.
89160func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
89161	c.ctx_ = ctx
89162	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89163	for {
89164		x, err := c.Do()
89165		if err != nil {
89166			return err
89167		}
89168		if err := f(x); err != nil {
89169			return err
89170		}
89171		if x.NextPageToken == "" {
89172			return nil
89173		}
89174		c.PageToken(x.NextPageToken)
89175	}
89176}
89177
89178// method id "compute.nodeGroups.patch":
89179
89180type NodeGroupsPatchCall struct {
89181	s          *Service
89182	project    string
89183	zone       string
89184	nodeGroup  string
89185	nodegroup  *NodeGroup
89186	urlParams_ gensupport.URLParams
89187	ctx_       context.Context
89188	header_    http.Header
89189}
89190
89191// Patch: Updates the specified node group.
89192func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
89193	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89194	c.project = project
89195	c.zone = zone
89196	c.nodeGroup = nodeGroup
89197	c.nodegroup = nodegroup
89198	return c
89199}
89200
89201// RequestId sets the optional parameter "requestId": An optional
89202// request ID to identify requests. Specify a unique request ID so that
89203// if you must retry your request, the server will know to ignore the
89204// request if it has already been completed.
89205//
89206// For example, consider a situation where you make an initial request
89207// and the request times out. If you make the request again with the
89208// same request ID, the server can check if original operation with the
89209// same request ID was received, and if so, will ignore the second
89210// request. This prevents clients from accidentally creating duplicate
89211// commitments.
89212//
89213// The request ID must be a valid UUID with the exception that zero UUID
89214// is not supported (00000000-0000-0000-0000-000000000000).
89215func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
89216	c.urlParams_.Set("requestId", requestId)
89217	return c
89218}
89219
89220// Fields allows partial responses to be retrieved. See
89221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89222// for more information.
89223func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
89224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89225	return c
89226}
89227
89228// Context sets the context to be used in this call's Do method. Any
89229// pending HTTP request will be aborted if the provided context is
89230// canceled.
89231func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
89232	c.ctx_ = ctx
89233	return c
89234}
89235
89236// Header returns an http.Header that can be modified by the caller to
89237// add HTTP headers to the request.
89238func (c *NodeGroupsPatchCall) Header() http.Header {
89239	if c.header_ == nil {
89240		c.header_ = make(http.Header)
89241	}
89242	return c.header_
89243}
89244
89245func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
89246	reqHeaders := make(http.Header)
89247	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89248	for k, v := range c.header_ {
89249		reqHeaders[k] = v
89250	}
89251	reqHeaders.Set("User-Agent", c.s.userAgent())
89252	var body io.Reader = nil
89253	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
89254	if err != nil {
89255		return nil, err
89256	}
89257	reqHeaders.Set("Content-Type", "application/json")
89258	c.urlParams_.Set("alt", alt)
89259	c.urlParams_.Set("prettyPrint", "false")
89260	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
89261	urls += "?" + c.urlParams_.Encode()
89262	req, err := http.NewRequest("PATCH", urls, body)
89263	if err != nil {
89264		return nil, err
89265	}
89266	req.Header = reqHeaders
89267	googleapi.Expand(req.URL, map[string]string{
89268		"project":   c.project,
89269		"zone":      c.zone,
89270		"nodeGroup": c.nodeGroup,
89271	})
89272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89273}
89274
89275// Do executes the "compute.nodeGroups.patch" call.
89276// Exactly one of *Operation or error will be non-nil. Any non-2xx
89277// status code is an error. Response headers are in either
89278// *Operation.ServerResponse.Header or (if a response was returned at
89279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89280// to check whether the returned error was because
89281// http.StatusNotModified was returned.
89282func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89283	gensupport.SetOptions(c.urlParams_, opts...)
89284	res, err := c.doRequest("json")
89285	if res != nil && res.StatusCode == http.StatusNotModified {
89286		if res.Body != nil {
89287			res.Body.Close()
89288		}
89289		return nil, &googleapi.Error{
89290			Code:   res.StatusCode,
89291			Header: res.Header,
89292		}
89293	}
89294	if err != nil {
89295		return nil, err
89296	}
89297	defer googleapi.CloseBody(res)
89298	if err := googleapi.CheckResponse(res); err != nil {
89299		return nil, err
89300	}
89301	ret := &Operation{
89302		ServerResponse: googleapi.ServerResponse{
89303			Header:         res.Header,
89304			HTTPStatusCode: res.StatusCode,
89305		},
89306	}
89307	target := &ret
89308	if err := gensupport.DecodeResponse(target, res); err != nil {
89309		return nil, err
89310	}
89311	return ret, nil
89312	// {
89313	//   "description": "Updates the specified node group.",
89314	//   "httpMethod": "PATCH",
89315	//   "id": "compute.nodeGroups.patch",
89316	//   "parameterOrder": [
89317	//     "project",
89318	//     "zone",
89319	//     "nodeGroup"
89320	//   ],
89321	//   "parameters": {
89322	//     "nodeGroup": {
89323	//       "description": "Name of the NodeGroup resource to update.",
89324	//       "location": "path",
89325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89326	//       "required": true,
89327	//       "type": "string"
89328	//     },
89329	//     "project": {
89330	//       "description": "Project ID for this request.",
89331	//       "location": "path",
89332	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89333	//       "required": true,
89334	//       "type": "string"
89335	//     },
89336	//     "requestId": {
89337	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89338	//       "location": "query",
89339	//       "type": "string"
89340	//     },
89341	//     "zone": {
89342	//       "description": "The name of the zone for this request.",
89343	//       "location": "path",
89344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89345	//       "required": true,
89346	//       "type": "string"
89347	//     }
89348	//   },
89349	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
89350	//   "request": {
89351	//     "$ref": "NodeGroup"
89352	//   },
89353	//   "response": {
89354	//     "$ref": "Operation"
89355	//   },
89356	//   "scopes": [
89357	//     "https://www.googleapis.com/auth/cloud-platform",
89358	//     "https://www.googleapis.com/auth/compute"
89359	//   ]
89360	// }
89361
89362}
89363
89364// method id "compute.nodeGroups.setIamPolicy":
89365
89366type NodeGroupsSetIamPolicyCall struct {
89367	s                    *Service
89368	project              string
89369	zone                 string
89370	resource             string
89371	zonesetpolicyrequest *ZoneSetPolicyRequest
89372	urlParams_           gensupport.URLParams
89373	ctx_                 context.Context
89374	header_              http.Header
89375}
89376
89377// SetIamPolicy: Sets the access control policy on the specified
89378// resource. Replaces any existing policy.
89379func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
89380	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89381	c.project = project
89382	c.zone = zone
89383	c.resource = resource
89384	c.zonesetpolicyrequest = zonesetpolicyrequest
89385	return c
89386}
89387
89388// Fields allows partial responses to be retrieved. See
89389// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89390// for more information.
89391func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
89392	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89393	return c
89394}
89395
89396// Context sets the context to be used in this call's Do method. Any
89397// pending HTTP request will be aborted if the provided context is
89398// canceled.
89399func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
89400	c.ctx_ = ctx
89401	return c
89402}
89403
89404// Header returns an http.Header that can be modified by the caller to
89405// add HTTP headers to the request.
89406func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
89407	if c.header_ == nil {
89408		c.header_ = make(http.Header)
89409	}
89410	return c.header_
89411}
89412
89413func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
89414	reqHeaders := make(http.Header)
89415	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89416	for k, v := range c.header_ {
89417		reqHeaders[k] = v
89418	}
89419	reqHeaders.Set("User-Agent", c.s.userAgent())
89420	var body io.Reader = nil
89421	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
89422	if err != nil {
89423		return nil, err
89424	}
89425	reqHeaders.Set("Content-Type", "application/json")
89426	c.urlParams_.Set("alt", alt)
89427	c.urlParams_.Set("prettyPrint", "false")
89428	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
89429	urls += "?" + c.urlParams_.Encode()
89430	req, err := http.NewRequest("POST", urls, body)
89431	if err != nil {
89432		return nil, err
89433	}
89434	req.Header = reqHeaders
89435	googleapi.Expand(req.URL, map[string]string{
89436		"project":  c.project,
89437		"zone":     c.zone,
89438		"resource": c.resource,
89439	})
89440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89441}
89442
89443// Do executes the "compute.nodeGroups.setIamPolicy" call.
89444// Exactly one of *Policy or error will be non-nil. Any non-2xx status
89445// code is an error. Response headers are in either
89446// *Policy.ServerResponse.Header or (if a response was returned at all)
89447// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
89448// check whether the returned error was because http.StatusNotModified
89449// was returned.
89450func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
89451	gensupport.SetOptions(c.urlParams_, opts...)
89452	res, err := c.doRequest("json")
89453	if res != nil && res.StatusCode == http.StatusNotModified {
89454		if res.Body != nil {
89455			res.Body.Close()
89456		}
89457		return nil, &googleapi.Error{
89458			Code:   res.StatusCode,
89459			Header: res.Header,
89460		}
89461	}
89462	if err != nil {
89463		return nil, err
89464	}
89465	defer googleapi.CloseBody(res)
89466	if err := googleapi.CheckResponse(res); err != nil {
89467		return nil, err
89468	}
89469	ret := &Policy{
89470		ServerResponse: googleapi.ServerResponse{
89471			Header:         res.Header,
89472			HTTPStatusCode: res.StatusCode,
89473		},
89474	}
89475	target := &ret
89476	if err := gensupport.DecodeResponse(target, res); err != nil {
89477		return nil, err
89478	}
89479	return ret, nil
89480	// {
89481	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
89482	//   "httpMethod": "POST",
89483	//   "id": "compute.nodeGroups.setIamPolicy",
89484	//   "parameterOrder": [
89485	//     "project",
89486	//     "zone",
89487	//     "resource"
89488	//   ],
89489	//   "parameters": {
89490	//     "project": {
89491	//       "description": "Project ID for this request.",
89492	//       "location": "path",
89493	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89494	//       "required": true,
89495	//       "type": "string"
89496	//     },
89497	//     "resource": {
89498	//       "description": "Name or id of the resource for this request.",
89499	//       "location": "path",
89500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89501	//       "required": true,
89502	//       "type": "string"
89503	//     },
89504	//     "zone": {
89505	//       "description": "The name of the zone for this request.",
89506	//       "location": "path",
89507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89508	//       "required": true,
89509	//       "type": "string"
89510	//     }
89511	//   },
89512	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
89513	//   "request": {
89514	//     "$ref": "ZoneSetPolicyRequest"
89515	//   },
89516	//   "response": {
89517	//     "$ref": "Policy"
89518	//   },
89519	//   "scopes": [
89520	//     "https://www.googleapis.com/auth/cloud-platform",
89521	//     "https://www.googleapis.com/auth/compute"
89522	//   ]
89523	// }
89524
89525}
89526
89527// method id "compute.nodeGroups.setNodeTemplate":
89528
89529type NodeGroupsSetNodeTemplateCall struct {
89530	s                                *Service
89531	project                          string
89532	zone                             string
89533	nodeGroup                        string
89534	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
89535	urlParams_                       gensupport.URLParams
89536	ctx_                             context.Context
89537	header_                          http.Header
89538}
89539
89540// SetNodeTemplate: Updates the node template of the node group.
89541func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
89542	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89543	c.project = project
89544	c.zone = zone
89545	c.nodeGroup = nodeGroup
89546	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
89547	return c
89548}
89549
89550// RequestId sets the optional parameter "requestId": An optional
89551// request ID to identify requests. Specify a unique request ID so that
89552// if you must retry your request, the server will know to ignore the
89553// request if it has already been completed.
89554//
89555// For example, consider a situation where you make an initial request
89556// and the request times out. If you make the request again with the
89557// same request ID, the server can check if original operation with the
89558// same request ID was received, and if so, will ignore the second
89559// request. This prevents clients from accidentally creating duplicate
89560// commitments.
89561//
89562// The request ID must be a valid UUID with the exception that zero UUID
89563// is not supported (00000000-0000-0000-0000-000000000000).
89564func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
89565	c.urlParams_.Set("requestId", requestId)
89566	return c
89567}
89568
89569// Fields allows partial responses to be retrieved. See
89570// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89571// for more information.
89572func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
89573	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89574	return c
89575}
89576
89577// Context sets the context to be used in this call's Do method. Any
89578// pending HTTP request will be aborted if the provided context is
89579// canceled.
89580func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
89581	c.ctx_ = ctx
89582	return c
89583}
89584
89585// Header returns an http.Header that can be modified by the caller to
89586// add HTTP headers to the request.
89587func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
89588	if c.header_ == nil {
89589		c.header_ = make(http.Header)
89590	}
89591	return c.header_
89592}
89593
89594func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
89595	reqHeaders := make(http.Header)
89596	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89597	for k, v := range c.header_ {
89598		reqHeaders[k] = v
89599	}
89600	reqHeaders.Set("User-Agent", c.s.userAgent())
89601	var body io.Reader = nil
89602	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
89603	if err != nil {
89604		return nil, err
89605	}
89606	reqHeaders.Set("Content-Type", "application/json")
89607	c.urlParams_.Set("alt", alt)
89608	c.urlParams_.Set("prettyPrint", "false")
89609	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
89610	urls += "?" + c.urlParams_.Encode()
89611	req, err := http.NewRequest("POST", urls, body)
89612	if err != nil {
89613		return nil, err
89614	}
89615	req.Header = reqHeaders
89616	googleapi.Expand(req.URL, map[string]string{
89617		"project":   c.project,
89618		"zone":      c.zone,
89619		"nodeGroup": c.nodeGroup,
89620	})
89621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89622}
89623
89624// Do executes the "compute.nodeGroups.setNodeTemplate" call.
89625// Exactly one of *Operation or error will be non-nil. Any non-2xx
89626// status code is an error. Response headers are in either
89627// *Operation.ServerResponse.Header or (if a response was returned at
89628// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89629// to check whether the returned error was because
89630// http.StatusNotModified was returned.
89631func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89632	gensupport.SetOptions(c.urlParams_, opts...)
89633	res, err := c.doRequest("json")
89634	if res != nil && res.StatusCode == http.StatusNotModified {
89635		if res.Body != nil {
89636			res.Body.Close()
89637		}
89638		return nil, &googleapi.Error{
89639			Code:   res.StatusCode,
89640			Header: res.Header,
89641		}
89642	}
89643	if err != nil {
89644		return nil, err
89645	}
89646	defer googleapi.CloseBody(res)
89647	if err := googleapi.CheckResponse(res); err != nil {
89648		return nil, err
89649	}
89650	ret := &Operation{
89651		ServerResponse: googleapi.ServerResponse{
89652			Header:         res.Header,
89653			HTTPStatusCode: res.StatusCode,
89654		},
89655	}
89656	target := &ret
89657	if err := gensupport.DecodeResponse(target, res); err != nil {
89658		return nil, err
89659	}
89660	return ret, nil
89661	// {
89662	//   "description": "Updates the node template of the node group.",
89663	//   "httpMethod": "POST",
89664	//   "id": "compute.nodeGroups.setNodeTemplate",
89665	//   "parameterOrder": [
89666	//     "project",
89667	//     "zone",
89668	//     "nodeGroup"
89669	//   ],
89670	//   "parameters": {
89671	//     "nodeGroup": {
89672	//       "description": "Name of the NodeGroup resource to update.",
89673	//       "location": "path",
89674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89675	//       "required": true,
89676	//       "type": "string"
89677	//     },
89678	//     "project": {
89679	//       "description": "Project ID for this request.",
89680	//       "location": "path",
89681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89682	//       "required": true,
89683	//       "type": "string"
89684	//     },
89685	//     "requestId": {
89686	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89687	//       "location": "query",
89688	//       "type": "string"
89689	//     },
89690	//     "zone": {
89691	//       "description": "The name of the zone for this request.",
89692	//       "location": "path",
89693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89694	//       "required": true,
89695	//       "type": "string"
89696	//     }
89697	//   },
89698	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
89699	//   "request": {
89700	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
89701	//   },
89702	//   "response": {
89703	//     "$ref": "Operation"
89704	//   },
89705	//   "scopes": [
89706	//     "https://www.googleapis.com/auth/cloud-platform",
89707	//     "https://www.googleapis.com/auth/compute"
89708	//   ]
89709	// }
89710
89711}
89712
89713// method id "compute.nodeGroups.testIamPermissions":
89714
89715type NodeGroupsTestIamPermissionsCall struct {
89716	s                      *Service
89717	project                string
89718	zone                   string
89719	resource               string
89720	testpermissionsrequest *TestPermissionsRequest
89721	urlParams_             gensupport.URLParams
89722	ctx_                   context.Context
89723	header_                http.Header
89724}
89725
89726// TestIamPermissions: Returns permissions that a caller has on the
89727// specified resource.
89728func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
89729	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89730	c.project = project
89731	c.zone = zone
89732	c.resource = resource
89733	c.testpermissionsrequest = testpermissionsrequest
89734	return c
89735}
89736
89737// Fields allows partial responses to be retrieved. See
89738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89739// for more information.
89740func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
89741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89742	return c
89743}
89744
89745// Context sets the context to be used in this call's Do method. Any
89746// pending HTTP request will be aborted if the provided context is
89747// canceled.
89748func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
89749	c.ctx_ = ctx
89750	return c
89751}
89752
89753// Header returns an http.Header that can be modified by the caller to
89754// add HTTP headers to the request.
89755func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
89756	if c.header_ == nil {
89757		c.header_ = make(http.Header)
89758	}
89759	return c.header_
89760}
89761
89762func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
89763	reqHeaders := make(http.Header)
89764	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89765	for k, v := range c.header_ {
89766		reqHeaders[k] = v
89767	}
89768	reqHeaders.Set("User-Agent", c.s.userAgent())
89769	var body io.Reader = nil
89770	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
89771	if err != nil {
89772		return nil, err
89773	}
89774	reqHeaders.Set("Content-Type", "application/json")
89775	c.urlParams_.Set("alt", alt)
89776	c.urlParams_.Set("prettyPrint", "false")
89777	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
89778	urls += "?" + c.urlParams_.Encode()
89779	req, err := http.NewRequest("POST", urls, body)
89780	if err != nil {
89781		return nil, err
89782	}
89783	req.Header = reqHeaders
89784	googleapi.Expand(req.URL, map[string]string{
89785		"project":  c.project,
89786		"zone":     c.zone,
89787		"resource": c.resource,
89788	})
89789	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89790}
89791
89792// Do executes the "compute.nodeGroups.testIamPermissions" call.
89793// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
89794// non-2xx status code is an error. Response headers are in either
89795// *TestPermissionsResponse.ServerResponse.Header or (if a response was
89796// returned at all) in error.(*googleapi.Error).Header. Use
89797// googleapi.IsNotModified to check whether the returned error was
89798// because http.StatusNotModified was returned.
89799func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
89800	gensupport.SetOptions(c.urlParams_, opts...)
89801	res, err := c.doRequest("json")
89802	if res != nil && res.StatusCode == http.StatusNotModified {
89803		if res.Body != nil {
89804			res.Body.Close()
89805		}
89806		return nil, &googleapi.Error{
89807			Code:   res.StatusCode,
89808			Header: res.Header,
89809		}
89810	}
89811	if err != nil {
89812		return nil, err
89813	}
89814	defer googleapi.CloseBody(res)
89815	if err := googleapi.CheckResponse(res); err != nil {
89816		return nil, err
89817	}
89818	ret := &TestPermissionsResponse{
89819		ServerResponse: googleapi.ServerResponse{
89820			Header:         res.Header,
89821			HTTPStatusCode: res.StatusCode,
89822		},
89823	}
89824	target := &ret
89825	if err := gensupport.DecodeResponse(target, res); err != nil {
89826		return nil, err
89827	}
89828	return ret, nil
89829	// {
89830	//   "description": "Returns permissions that a caller has on the specified resource.",
89831	//   "httpMethod": "POST",
89832	//   "id": "compute.nodeGroups.testIamPermissions",
89833	//   "parameterOrder": [
89834	//     "project",
89835	//     "zone",
89836	//     "resource"
89837	//   ],
89838	//   "parameters": {
89839	//     "project": {
89840	//       "description": "Project ID for this request.",
89841	//       "location": "path",
89842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89843	//       "required": true,
89844	//       "type": "string"
89845	//     },
89846	//     "resource": {
89847	//       "description": "Name or id of the resource for this request.",
89848	//       "location": "path",
89849	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89850	//       "required": true,
89851	//       "type": "string"
89852	//     },
89853	//     "zone": {
89854	//       "description": "The name of the zone for this request.",
89855	//       "location": "path",
89856	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89857	//       "required": true,
89858	//       "type": "string"
89859	//     }
89860	//   },
89861	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
89862	//   "request": {
89863	//     "$ref": "TestPermissionsRequest"
89864	//   },
89865	//   "response": {
89866	//     "$ref": "TestPermissionsResponse"
89867	//   },
89868	//   "scopes": [
89869	//     "https://www.googleapis.com/auth/cloud-platform",
89870	//     "https://www.googleapis.com/auth/compute",
89871	//     "https://www.googleapis.com/auth/compute.readonly"
89872	//   ]
89873	// }
89874
89875}
89876
89877// method id "compute.nodeTemplates.aggregatedList":
89878
89879type NodeTemplatesAggregatedListCall struct {
89880	s            *Service
89881	project      string
89882	urlParams_   gensupport.URLParams
89883	ifNoneMatch_ string
89884	ctx_         context.Context
89885	header_      http.Header
89886}
89887
89888// AggregatedList: Retrieves an aggregated list of node templates.
89889func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
89890	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89891	c.project = project
89892	return c
89893}
89894
89895// Filter sets the optional parameter "filter": A filter expression that
89896// filters resources listed in the response. The expression must specify
89897// the field name, a comparison operator, and the value that you want to
89898// use for filtering. The value must be a string, a number, or a
89899// boolean. The comparison operator must be either `=`, `!=`, `>`, or
89900// `<`.
89901//
89902// For example, if you are filtering Compute Engine instances, you can
89903// exclude instances named `example-instance` by specifying `name !=
89904// example-instance`.
89905//
89906// You can also filter nested fields. For example, you could specify
89907// `scheduling.automaticRestart = false` to include instances only if
89908// they are not scheduled for automatic restarts. You can use filtering
89909// on nested fields to filter based on resource labels.
89910//
89911// To filter on multiple expressions, provide each separate expression
89912// within parentheses. For example: ``` (scheduling.automaticRestart =
89913// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
89914// is an `AND` expression. However, you can include `AND` and `OR`
89915// expressions explicitly. For example: ``` (cpuPlatform = "Intel
89916// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
89917// (scheduling.automaticRestart = true) ```
89918func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
89919	c.urlParams_.Set("filter", filter)
89920	return c
89921}
89922
89923// IncludeAllScopes sets the optional parameter "includeAllScopes":
89924// Indicates whether every visible scope for each scope type (zone,
89925// region, global) should be included in the response. For new resource
89926// types added after this field, the flag has no effect as new resource
89927// types will always include every visible scope for each scope type in
89928// response. For resource types which predate this field, if this flag
89929// is omitted or false, only scopes of the scope types where the
89930// resource type is expected to be found will be included.
89931func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
89932	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
89933	return c
89934}
89935
89936// MaxResults sets the optional parameter "maxResults": The maximum
89937// number of results per page that should be returned. If the number of
89938// available results is larger than `maxResults`, Compute Engine returns
89939// a `nextPageToken` that can be used to get the next page of results in
89940// subsequent list requests. Acceptable values are `0` to `500`,
89941// inclusive. (Default: `500`)
89942func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
89943	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
89944	return c
89945}
89946
89947// OrderBy sets the optional parameter "orderBy": Sorts list results by
89948// a certain order. By default, results are returned in alphanumerical
89949// order based on the resource name.
89950//
89951// You can also sort results in descending order based on the creation
89952// timestamp using `orderBy="creationTimestamp desc". This sorts
89953// results based on the `creationTimestamp` field in reverse
89954// chronological order (newest result first). Use this to sort resources
89955// like operations so that the newest operation is returned
89956// first.
89957//
89958// Currently, only sorting by `name` or `creationTimestamp desc` is
89959// supported.
89960func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
89961	c.urlParams_.Set("orderBy", orderBy)
89962	return c
89963}
89964
89965// PageToken sets the optional parameter "pageToken": Specifies a page
89966// token to use. Set `pageToken` to the `nextPageToken` returned by a
89967// previous list request to get the next page of results.
89968func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
89969	c.urlParams_.Set("pageToken", pageToken)
89970	return c
89971}
89972
89973// Fields allows partial responses to be retrieved. See
89974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89975// for more information.
89976func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
89977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89978	return c
89979}
89980
89981// IfNoneMatch sets the optional parameter which makes the operation
89982// fail if the object's ETag matches the given value. This is useful for
89983// getting updates only after the object has changed since the last
89984// request. Use googleapi.IsNotModified to check whether the response
89985// error from Do is the result of In-None-Match.
89986func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
89987	c.ifNoneMatch_ = entityTag
89988	return c
89989}
89990
89991// Context sets the context to be used in this call's Do method. Any
89992// pending HTTP request will be aborted if the provided context is
89993// canceled.
89994func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
89995	c.ctx_ = ctx
89996	return c
89997}
89998
89999// Header returns an http.Header that can be modified by the caller to
90000// add HTTP headers to the request.
90001func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
90002	if c.header_ == nil {
90003		c.header_ = make(http.Header)
90004	}
90005	return c.header_
90006}
90007
90008func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
90009	reqHeaders := make(http.Header)
90010	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90011	for k, v := range c.header_ {
90012		reqHeaders[k] = v
90013	}
90014	reqHeaders.Set("User-Agent", c.s.userAgent())
90015	if c.ifNoneMatch_ != "" {
90016		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90017	}
90018	var body io.Reader = nil
90019	c.urlParams_.Set("alt", alt)
90020	c.urlParams_.Set("prettyPrint", "false")
90021	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTemplates")
90022	urls += "?" + c.urlParams_.Encode()
90023	req, err := http.NewRequest("GET", urls, body)
90024	if err != nil {
90025		return nil, err
90026	}
90027	req.Header = reqHeaders
90028	googleapi.Expand(req.URL, map[string]string{
90029		"project": c.project,
90030	})
90031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90032}
90033
90034// Do executes the "compute.nodeTemplates.aggregatedList" call.
90035// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
90036// Any non-2xx status code is an error. Response headers are in either
90037// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
90038// was returned at all) in error.(*googleapi.Error).Header. Use
90039// googleapi.IsNotModified to check whether the returned error was
90040// because http.StatusNotModified was returned.
90041func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
90042	gensupport.SetOptions(c.urlParams_, opts...)
90043	res, err := c.doRequest("json")
90044	if res != nil && res.StatusCode == http.StatusNotModified {
90045		if res.Body != nil {
90046			res.Body.Close()
90047		}
90048		return nil, &googleapi.Error{
90049			Code:   res.StatusCode,
90050			Header: res.Header,
90051		}
90052	}
90053	if err != nil {
90054		return nil, err
90055	}
90056	defer googleapi.CloseBody(res)
90057	if err := googleapi.CheckResponse(res); err != nil {
90058		return nil, err
90059	}
90060	ret := &NodeTemplateAggregatedList{
90061		ServerResponse: googleapi.ServerResponse{
90062			Header:         res.Header,
90063			HTTPStatusCode: res.StatusCode,
90064		},
90065	}
90066	target := &ret
90067	if err := gensupport.DecodeResponse(target, res); err != nil {
90068		return nil, err
90069	}
90070	return ret, nil
90071	// {
90072	//   "description": "Retrieves an aggregated list of node templates.",
90073	//   "httpMethod": "GET",
90074	//   "id": "compute.nodeTemplates.aggregatedList",
90075	//   "parameterOrder": [
90076	//     "project"
90077	//   ],
90078	//   "parameters": {
90079	//     "filter": {
90080	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
90081	//       "location": "query",
90082	//       "type": "string"
90083	//     },
90084	//     "includeAllScopes": {
90085	//       "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.",
90086	//       "location": "query",
90087	//       "type": "boolean"
90088	//     },
90089	//     "maxResults": {
90090	//       "default": "500",
90091	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
90092	//       "format": "uint32",
90093	//       "location": "query",
90094	//       "minimum": "0",
90095	//       "type": "integer"
90096	//     },
90097	//     "orderBy": {
90098	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
90099	//       "location": "query",
90100	//       "type": "string"
90101	//     },
90102	//     "pageToken": {
90103	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
90104	//       "location": "query",
90105	//       "type": "string"
90106	//     },
90107	//     "project": {
90108	//       "description": "Project ID for this request.",
90109	//       "location": "path",
90110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90111	//       "required": true,
90112	//       "type": "string"
90113	//     }
90114	//   },
90115	//   "path": "{project}/aggregated/nodeTemplates",
90116	//   "response": {
90117	//     "$ref": "NodeTemplateAggregatedList"
90118	//   },
90119	//   "scopes": [
90120	//     "https://www.googleapis.com/auth/cloud-platform",
90121	//     "https://www.googleapis.com/auth/compute",
90122	//     "https://www.googleapis.com/auth/compute.readonly"
90123	//   ]
90124	// }
90125
90126}
90127
90128// Pages invokes f for each page of results.
90129// A non-nil error returned from f will halt the iteration.
90130// The provided context supersedes any context provided to the Context method.
90131func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
90132	c.ctx_ = ctx
90133	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90134	for {
90135		x, err := c.Do()
90136		if err != nil {
90137			return err
90138		}
90139		if err := f(x); err != nil {
90140			return err
90141		}
90142		if x.NextPageToken == "" {
90143			return nil
90144		}
90145		c.PageToken(x.NextPageToken)
90146	}
90147}
90148
90149// method id "compute.nodeTemplates.delete":
90150
90151type NodeTemplatesDeleteCall struct {
90152	s            *Service
90153	project      string
90154	region       string
90155	nodeTemplate string
90156	urlParams_   gensupport.URLParams
90157	ctx_         context.Context
90158	header_      http.Header
90159}
90160
90161// Delete: Deletes the specified NodeTemplate resource.
90162func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
90163	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90164	c.project = project
90165	c.region = region
90166	c.nodeTemplate = nodeTemplate
90167	return c
90168}
90169
90170// RequestId sets the optional parameter "requestId": An optional
90171// request ID to identify requests. Specify a unique request ID so that
90172// if you must retry your request, the server will know to ignore the
90173// request if it has already been completed.
90174//
90175// For example, consider a situation where you make an initial request
90176// and the request times out. If you make the request again with the
90177// same request ID, the server can check if original operation with the
90178// same request ID was received, and if so, will ignore the second
90179// request. This prevents clients from accidentally creating duplicate
90180// commitments.
90181//
90182// The request ID must be a valid UUID with the exception that zero UUID
90183// is not supported (00000000-0000-0000-0000-000000000000).
90184func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
90185	c.urlParams_.Set("requestId", requestId)
90186	return c
90187}
90188
90189// Fields allows partial responses to be retrieved. See
90190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90191// for more information.
90192func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
90193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90194	return c
90195}
90196
90197// Context sets the context to be used in this call's Do method. Any
90198// pending HTTP request will be aborted if the provided context is
90199// canceled.
90200func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
90201	c.ctx_ = ctx
90202	return c
90203}
90204
90205// Header returns an http.Header that can be modified by the caller to
90206// add HTTP headers to the request.
90207func (c *NodeTemplatesDeleteCall) Header() http.Header {
90208	if c.header_ == nil {
90209		c.header_ = make(http.Header)
90210	}
90211	return c.header_
90212}
90213
90214func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
90215	reqHeaders := make(http.Header)
90216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90217	for k, v := range c.header_ {
90218		reqHeaders[k] = v
90219	}
90220	reqHeaders.Set("User-Agent", c.s.userAgent())
90221	var body io.Reader = nil
90222	c.urlParams_.Set("alt", alt)
90223	c.urlParams_.Set("prettyPrint", "false")
90224	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
90225	urls += "?" + c.urlParams_.Encode()
90226	req, err := http.NewRequest("DELETE", urls, body)
90227	if err != nil {
90228		return nil, err
90229	}
90230	req.Header = reqHeaders
90231	googleapi.Expand(req.URL, map[string]string{
90232		"project":      c.project,
90233		"region":       c.region,
90234		"nodeTemplate": c.nodeTemplate,
90235	})
90236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90237}
90238
90239// Do executes the "compute.nodeTemplates.delete" call.
90240// Exactly one of *Operation or error will be non-nil. Any non-2xx
90241// status code is an error. Response headers are in either
90242// *Operation.ServerResponse.Header or (if a response was returned at
90243// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90244// to check whether the returned error was because
90245// http.StatusNotModified was returned.
90246func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90247	gensupport.SetOptions(c.urlParams_, opts...)
90248	res, err := c.doRequest("json")
90249	if res != nil && res.StatusCode == http.StatusNotModified {
90250		if res.Body != nil {
90251			res.Body.Close()
90252		}
90253		return nil, &googleapi.Error{
90254			Code:   res.StatusCode,
90255			Header: res.Header,
90256		}
90257	}
90258	if err != nil {
90259		return nil, err
90260	}
90261	defer googleapi.CloseBody(res)
90262	if err := googleapi.CheckResponse(res); err != nil {
90263		return nil, err
90264	}
90265	ret := &Operation{
90266		ServerResponse: googleapi.ServerResponse{
90267			Header:         res.Header,
90268			HTTPStatusCode: res.StatusCode,
90269		},
90270	}
90271	target := &ret
90272	if err := gensupport.DecodeResponse(target, res); err != nil {
90273		return nil, err
90274	}
90275	return ret, nil
90276	// {
90277	//   "description": "Deletes the specified NodeTemplate resource.",
90278	//   "httpMethod": "DELETE",
90279	//   "id": "compute.nodeTemplates.delete",
90280	//   "parameterOrder": [
90281	//     "project",
90282	//     "region",
90283	//     "nodeTemplate"
90284	//   ],
90285	//   "parameters": {
90286	//     "nodeTemplate": {
90287	//       "description": "Name of the NodeTemplate resource to delete.",
90288	//       "location": "path",
90289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90290	//       "required": true,
90291	//       "type": "string"
90292	//     },
90293	//     "project": {
90294	//       "description": "Project ID for this request.",
90295	//       "location": "path",
90296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90297	//       "required": true,
90298	//       "type": "string"
90299	//     },
90300	//     "region": {
90301	//       "description": "The name of the region for this request.",
90302	//       "location": "path",
90303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90304	//       "required": true,
90305	//       "type": "string"
90306	//     },
90307	//     "requestId": {
90308	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90309	//       "location": "query",
90310	//       "type": "string"
90311	//     }
90312	//   },
90313	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
90314	//   "response": {
90315	//     "$ref": "Operation"
90316	//   },
90317	//   "scopes": [
90318	//     "https://www.googleapis.com/auth/cloud-platform",
90319	//     "https://www.googleapis.com/auth/compute"
90320	//   ]
90321	// }
90322
90323}
90324
90325// method id "compute.nodeTemplates.get":
90326
90327type NodeTemplatesGetCall struct {
90328	s            *Service
90329	project      string
90330	region       string
90331	nodeTemplate string
90332	urlParams_   gensupport.URLParams
90333	ifNoneMatch_ string
90334	ctx_         context.Context
90335	header_      http.Header
90336}
90337
90338// Get: Returns the specified node template. Gets a list of available
90339// node templates by making a list() request.
90340func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
90341	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90342	c.project = project
90343	c.region = region
90344	c.nodeTemplate = nodeTemplate
90345	return c
90346}
90347
90348// Fields allows partial responses to be retrieved. See
90349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90350// for more information.
90351func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
90352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90353	return c
90354}
90355
90356// IfNoneMatch sets the optional parameter which makes the operation
90357// fail if the object's ETag matches the given value. This is useful for
90358// getting updates only after the object has changed since the last
90359// request. Use googleapi.IsNotModified to check whether the response
90360// error from Do is the result of In-None-Match.
90361func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
90362	c.ifNoneMatch_ = entityTag
90363	return c
90364}
90365
90366// Context sets the context to be used in this call's Do method. Any
90367// pending HTTP request will be aborted if the provided context is
90368// canceled.
90369func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
90370	c.ctx_ = ctx
90371	return c
90372}
90373
90374// Header returns an http.Header that can be modified by the caller to
90375// add HTTP headers to the request.
90376func (c *NodeTemplatesGetCall) Header() http.Header {
90377	if c.header_ == nil {
90378		c.header_ = make(http.Header)
90379	}
90380	return c.header_
90381}
90382
90383func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
90384	reqHeaders := make(http.Header)
90385	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90386	for k, v := range c.header_ {
90387		reqHeaders[k] = v
90388	}
90389	reqHeaders.Set("User-Agent", c.s.userAgent())
90390	if c.ifNoneMatch_ != "" {
90391		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90392	}
90393	var body io.Reader = nil
90394	c.urlParams_.Set("alt", alt)
90395	c.urlParams_.Set("prettyPrint", "false")
90396	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
90397	urls += "?" + c.urlParams_.Encode()
90398	req, err := http.NewRequest("GET", urls, body)
90399	if err != nil {
90400		return nil, err
90401	}
90402	req.Header = reqHeaders
90403	googleapi.Expand(req.URL, map[string]string{
90404		"project":      c.project,
90405		"region":       c.region,
90406		"nodeTemplate": c.nodeTemplate,
90407	})
90408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90409}
90410
90411// Do executes the "compute.nodeTemplates.get" call.
90412// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
90413// status code is an error. Response headers are in either
90414// *NodeTemplate.ServerResponse.Header or (if a response was returned at
90415// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90416// to check whether the returned error was because
90417// http.StatusNotModified was returned.
90418func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
90419	gensupport.SetOptions(c.urlParams_, opts...)
90420	res, err := c.doRequest("json")
90421	if res != nil && res.StatusCode == http.StatusNotModified {
90422		if res.Body != nil {
90423			res.Body.Close()
90424		}
90425		return nil, &googleapi.Error{
90426			Code:   res.StatusCode,
90427			Header: res.Header,
90428		}
90429	}
90430	if err != nil {
90431		return nil, err
90432	}
90433	defer googleapi.CloseBody(res)
90434	if err := googleapi.CheckResponse(res); err != nil {
90435		return nil, err
90436	}
90437	ret := &NodeTemplate{
90438		ServerResponse: googleapi.ServerResponse{
90439			Header:         res.Header,
90440			HTTPStatusCode: res.StatusCode,
90441		},
90442	}
90443	target := &ret
90444	if err := gensupport.DecodeResponse(target, res); err != nil {
90445		return nil, err
90446	}
90447	return ret, nil
90448	// {
90449	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
90450	//   "httpMethod": "GET",
90451	//   "id": "compute.nodeTemplates.get",
90452	//   "parameterOrder": [
90453	//     "project",
90454	//     "region",
90455	//     "nodeTemplate"
90456	//   ],
90457	//   "parameters": {
90458	//     "nodeTemplate": {
90459	//       "description": "Name of the node template to return.",
90460	//       "location": "path",
90461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90462	//       "required": true,
90463	//       "type": "string"
90464	//     },
90465	//     "project": {
90466	//       "description": "Project ID for this request.",
90467	//       "location": "path",
90468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90469	//       "required": true,
90470	//       "type": "string"
90471	//     },
90472	//     "region": {
90473	//       "description": "The name of the region for this request.",
90474	//       "location": "path",
90475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90476	//       "required": true,
90477	//       "type": "string"
90478	//     }
90479	//   },
90480	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
90481	//   "response": {
90482	//     "$ref": "NodeTemplate"
90483	//   },
90484	//   "scopes": [
90485	//     "https://www.googleapis.com/auth/cloud-platform",
90486	//     "https://www.googleapis.com/auth/compute",
90487	//     "https://www.googleapis.com/auth/compute.readonly"
90488	//   ]
90489	// }
90490
90491}
90492
90493// method id "compute.nodeTemplates.getIamPolicy":
90494
90495type NodeTemplatesGetIamPolicyCall struct {
90496	s            *Service
90497	project      string
90498	region       string
90499	resource     string
90500	urlParams_   gensupport.URLParams
90501	ifNoneMatch_ string
90502	ctx_         context.Context
90503	header_      http.Header
90504}
90505
90506// GetIamPolicy: Gets the access control policy for a resource. May be
90507// empty if no such policy or resource exists.
90508func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
90509	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90510	c.project = project
90511	c.region = region
90512	c.resource = resource
90513	return c
90514}
90515
90516// Fields allows partial responses to be retrieved. See
90517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90518// for more information.
90519func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
90520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90521	return c
90522}
90523
90524// IfNoneMatch sets the optional parameter which makes the operation
90525// fail if the object's ETag matches the given value. This is useful for
90526// getting updates only after the object has changed since the last
90527// request. Use googleapi.IsNotModified to check whether the response
90528// error from Do is the result of In-None-Match.
90529func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
90530	c.ifNoneMatch_ = entityTag
90531	return c
90532}
90533
90534// Context sets the context to be used in this call's Do method. Any
90535// pending HTTP request will be aborted if the provided context is
90536// canceled.
90537func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
90538	c.ctx_ = ctx
90539	return c
90540}
90541
90542// Header returns an http.Header that can be modified by the caller to
90543// add HTTP headers to the request.
90544func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
90545	if c.header_ == nil {
90546		c.header_ = make(http.Header)
90547	}
90548	return c.header_
90549}
90550
90551func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
90552	reqHeaders := make(http.Header)
90553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90554	for k, v := range c.header_ {
90555		reqHeaders[k] = v
90556	}
90557	reqHeaders.Set("User-Agent", c.s.userAgent())
90558	if c.ifNoneMatch_ != "" {
90559		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90560	}
90561	var body io.Reader = nil
90562	c.urlParams_.Set("alt", alt)
90563	c.urlParams_.Set("prettyPrint", "false")
90564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
90565	urls += "?" + c.urlParams_.Encode()
90566	req, err := http.NewRequest("GET", urls, body)
90567	if err != nil {
90568		return nil, err
90569	}
90570	req.Header = reqHeaders
90571	googleapi.Expand(req.URL, map[string]string{
90572		"project":  c.project,
90573		"region":   c.region,
90574		"resource": c.resource,
90575	})
90576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90577}
90578
90579// Do executes the "compute.nodeTemplates.getIamPolicy" call.
90580// Exactly one of *Policy or error will be non-nil. Any non-2xx status
90581// code is an error. Response headers are in either
90582// *Policy.ServerResponse.Header or (if a response was returned at all)
90583// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
90584// check whether the returned error was because http.StatusNotModified
90585// was returned.
90586func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
90587	gensupport.SetOptions(c.urlParams_, opts...)
90588	res, err := c.doRequest("json")
90589	if res != nil && res.StatusCode == http.StatusNotModified {
90590		if res.Body != nil {
90591			res.Body.Close()
90592		}
90593		return nil, &googleapi.Error{
90594			Code:   res.StatusCode,
90595			Header: res.Header,
90596		}
90597	}
90598	if err != nil {
90599		return nil, err
90600	}
90601	defer googleapi.CloseBody(res)
90602	if err := googleapi.CheckResponse(res); err != nil {
90603		return nil, err
90604	}
90605	ret := &Policy{
90606		ServerResponse: googleapi.ServerResponse{
90607			Header:         res.Header,
90608			HTTPStatusCode: res.StatusCode,
90609		},
90610	}
90611	target := &ret
90612	if err := gensupport.DecodeResponse(target, res); err != nil {
90613		return nil, err
90614	}
90615	return ret, nil
90616	// {
90617	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
90618	//   "httpMethod": "GET",
90619	//   "id": "compute.nodeTemplates.getIamPolicy",
90620	//   "parameterOrder": [
90621	//     "project",
90622	//     "region",
90623	//     "resource"
90624	//   ],
90625	//   "parameters": {
90626	//     "project": {
90627	//       "description": "Project ID for this request.",
90628	//       "location": "path",
90629	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90630	//       "required": true,
90631	//       "type": "string"
90632	//     },
90633	//     "region": {
90634	//       "description": "The name of the region for this request.",
90635	//       "location": "path",
90636	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90637	//       "required": true,
90638	//       "type": "string"
90639	//     },
90640	//     "resource": {
90641	//       "description": "Name or id of the resource for this request.",
90642	//       "location": "path",
90643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90644	//       "required": true,
90645	//       "type": "string"
90646	//     }
90647	//   },
90648	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
90649	//   "response": {
90650	//     "$ref": "Policy"
90651	//   },
90652	//   "scopes": [
90653	//     "https://www.googleapis.com/auth/cloud-platform",
90654	//     "https://www.googleapis.com/auth/compute",
90655	//     "https://www.googleapis.com/auth/compute.readonly"
90656	//   ]
90657	// }
90658
90659}
90660
90661// method id "compute.nodeTemplates.insert":
90662
90663type NodeTemplatesInsertCall struct {
90664	s            *Service
90665	project      string
90666	region       string
90667	nodetemplate *NodeTemplate
90668	urlParams_   gensupport.URLParams
90669	ctx_         context.Context
90670	header_      http.Header
90671}
90672
90673// Insert: Creates a NodeTemplate resource in the specified project
90674// using the data included in the request.
90675func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
90676	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90677	c.project = project
90678	c.region = region
90679	c.nodetemplate = nodetemplate
90680	return c
90681}
90682
90683// RequestId sets the optional parameter "requestId": An optional
90684// request ID to identify requests. Specify a unique request ID so that
90685// if you must retry your request, the server will know to ignore the
90686// request if it has already been completed.
90687//
90688// For example, consider a situation where you make an initial request
90689// and the request times out. If you make the request again with the
90690// same request ID, the server can check if original operation with the
90691// same request ID was received, and if so, will ignore the second
90692// request. This prevents clients from accidentally creating duplicate
90693// commitments.
90694//
90695// The request ID must be a valid UUID with the exception that zero UUID
90696// is not supported (00000000-0000-0000-0000-000000000000).
90697func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
90698	c.urlParams_.Set("requestId", requestId)
90699	return c
90700}
90701
90702// Fields allows partial responses to be retrieved. See
90703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90704// for more information.
90705func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
90706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90707	return c
90708}
90709
90710// Context sets the context to be used in this call's Do method. Any
90711// pending HTTP request will be aborted if the provided context is
90712// canceled.
90713func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
90714	c.ctx_ = ctx
90715	return c
90716}
90717
90718// Header returns an http.Header that can be modified by the caller to
90719// add HTTP headers to the request.
90720func (c *NodeTemplatesInsertCall) Header() http.Header {
90721	if c.header_ == nil {
90722		c.header_ = make(http.Header)
90723	}
90724	return c.header_
90725}
90726
90727func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
90728	reqHeaders := make(http.Header)
90729	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90730	for k, v := range c.header_ {
90731		reqHeaders[k] = v
90732	}
90733	reqHeaders.Set("User-Agent", c.s.userAgent())
90734	var body io.Reader = nil
90735	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
90736	if err != nil {
90737		return nil, err
90738	}
90739	reqHeaders.Set("Content-Type", "application/json")
90740	c.urlParams_.Set("alt", alt)
90741	c.urlParams_.Set("prettyPrint", "false")
90742	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
90743	urls += "?" + c.urlParams_.Encode()
90744	req, err := http.NewRequest("POST", urls, body)
90745	if err != nil {
90746		return nil, err
90747	}
90748	req.Header = reqHeaders
90749	googleapi.Expand(req.URL, map[string]string{
90750		"project": c.project,
90751		"region":  c.region,
90752	})
90753	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90754}
90755
90756// Do executes the "compute.nodeTemplates.insert" call.
90757// Exactly one of *Operation or error will be non-nil. Any non-2xx
90758// status code is an error. Response headers are in either
90759// *Operation.ServerResponse.Header or (if a response was returned at
90760// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90761// to check whether the returned error was because
90762// http.StatusNotModified was returned.
90763func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90764	gensupport.SetOptions(c.urlParams_, opts...)
90765	res, err := c.doRequest("json")
90766	if res != nil && res.StatusCode == http.StatusNotModified {
90767		if res.Body != nil {
90768			res.Body.Close()
90769		}
90770		return nil, &googleapi.Error{
90771			Code:   res.StatusCode,
90772			Header: res.Header,
90773		}
90774	}
90775	if err != nil {
90776		return nil, err
90777	}
90778	defer googleapi.CloseBody(res)
90779	if err := googleapi.CheckResponse(res); err != nil {
90780		return nil, err
90781	}
90782	ret := &Operation{
90783		ServerResponse: googleapi.ServerResponse{
90784			Header:         res.Header,
90785			HTTPStatusCode: res.StatusCode,
90786		},
90787	}
90788	target := &ret
90789	if err := gensupport.DecodeResponse(target, res); err != nil {
90790		return nil, err
90791	}
90792	return ret, nil
90793	// {
90794	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
90795	//   "httpMethod": "POST",
90796	//   "id": "compute.nodeTemplates.insert",
90797	//   "parameterOrder": [
90798	//     "project",
90799	//     "region"
90800	//   ],
90801	//   "parameters": {
90802	//     "project": {
90803	//       "description": "Project ID for this request.",
90804	//       "location": "path",
90805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90806	//       "required": true,
90807	//       "type": "string"
90808	//     },
90809	//     "region": {
90810	//       "description": "The name of the region for this request.",
90811	//       "location": "path",
90812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90813	//       "required": true,
90814	//       "type": "string"
90815	//     },
90816	//     "requestId": {
90817	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90818	//       "location": "query",
90819	//       "type": "string"
90820	//     }
90821	//   },
90822	//   "path": "{project}/regions/{region}/nodeTemplates",
90823	//   "request": {
90824	//     "$ref": "NodeTemplate"
90825	//   },
90826	//   "response": {
90827	//     "$ref": "Operation"
90828	//   },
90829	//   "scopes": [
90830	//     "https://www.googleapis.com/auth/cloud-platform",
90831	//     "https://www.googleapis.com/auth/compute"
90832	//   ]
90833	// }
90834
90835}
90836
90837// method id "compute.nodeTemplates.list":
90838
90839type NodeTemplatesListCall struct {
90840	s            *Service
90841	project      string
90842	region       string
90843	urlParams_   gensupport.URLParams
90844	ifNoneMatch_ string
90845	ctx_         context.Context
90846	header_      http.Header
90847}
90848
90849// List: Retrieves a list of node templates available to the specified
90850// project.
90851func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
90852	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90853	c.project = project
90854	c.region = region
90855	return c
90856}
90857
90858// Filter sets the optional parameter "filter": A filter expression that
90859// filters resources listed in the response. The expression must specify
90860// the field name, a comparison operator, and the value that you want to
90861// use for filtering. The value must be a string, a number, or a
90862// boolean. The comparison operator must be either `=`, `!=`, `>`, or
90863// `<`.
90864//
90865// For example, if you are filtering Compute Engine instances, you can
90866// exclude instances named `example-instance` by specifying `name !=
90867// example-instance`.
90868//
90869// You can also filter nested fields. For example, you could specify
90870// `scheduling.automaticRestart = false` to include instances only if
90871// they are not scheduled for automatic restarts. You can use filtering
90872// on nested fields to filter based on resource labels.
90873//
90874// To filter on multiple expressions, provide each separate expression
90875// within parentheses. For example: ``` (scheduling.automaticRestart =
90876// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
90877// is an `AND` expression. However, you can include `AND` and `OR`
90878// expressions explicitly. For example: ``` (cpuPlatform = "Intel
90879// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
90880// (scheduling.automaticRestart = true) ```
90881func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
90882	c.urlParams_.Set("filter", filter)
90883	return c
90884}
90885
90886// MaxResults sets the optional parameter "maxResults": The maximum
90887// number of results per page that should be returned. If the number of
90888// available results is larger than `maxResults`, Compute Engine returns
90889// a `nextPageToken` that can be used to get the next page of results in
90890// subsequent list requests. Acceptable values are `0` to `500`,
90891// inclusive. (Default: `500`)
90892func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
90893	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90894	return c
90895}
90896
90897// OrderBy sets the optional parameter "orderBy": Sorts list results by
90898// a certain order. By default, results are returned in alphanumerical
90899// order based on the resource name.
90900//
90901// You can also sort results in descending order based on the creation
90902// timestamp using `orderBy="creationTimestamp desc". This sorts
90903// results based on the `creationTimestamp` field in reverse
90904// chronological order (newest result first). Use this to sort resources
90905// like operations so that the newest operation is returned
90906// first.
90907//
90908// Currently, only sorting by `name` or `creationTimestamp desc` is
90909// supported.
90910func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
90911	c.urlParams_.Set("orderBy", orderBy)
90912	return c
90913}
90914
90915// PageToken sets the optional parameter "pageToken": Specifies a page
90916// token to use. Set `pageToken` to the `nextPageToken` returned by a
90917// previous list request to get the next page of results.
90918func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
90919	c.urlParams_.Set("pageToken", pageToken)
90920	return c
90921}
90922
90923// Fields allows partial responses to be retrieved. See
90924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90925// for more information.
90926func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
90927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90928	return c
90929}
90930
90931// IfNoneMatch sets the optional parameter which makes the operation
90932// fail if the object's ETag matches the given value. This is useful for
90933// getting updates only after the object has changed since the last
90934// request. Use googleapi.IsNotModified to check whether the response
90935// error from Do is the result of In-None-Match.
90936func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
90937	c.ifNoneMatch_ = entityTag
90938	return c
90939}
90940
90941// Context sets the context to be used in this call's Do method. Any
90942// pending HTTP request will be aborted if the provided context is
90943// canceled.
90944func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
90945	c.ctx_ = ctx
90946	return c
90947}
90948
90949// Header returns an http.Header that can be modified by the caller to
90950// add HTTP headers to the request.
90951func (c *NodeTemplatesListCall) Header() http.Header {
90952	if c.header_ == nil {
90953		c.header_ = make(http.Header)
90954	}
90955	return c.header_
90956}
90957
90958func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
90959	reqHeaders := make(http.Header)
90960	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90961	for k, v := range c.header_ {
90962		reqHeaders[k] = v
90963	}
90964	reqHeaders.Set("User-Agent", c.s.userAgent())
90965	if c.ifNoneMatch_ != "" {
90966		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90967	}
90968	var body io.Reader = nil
90969	c.urlParams_.Set("alt", alt)
90970	c.urlParams_.Set("prettyPrint", "false")
90971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
90972	urls += "?" + c.urlParams_.Encode()
90973	req, err := http.NewRequest("GET", urls, body)
90974	if err != nil {
90975		return nil, err
90976	}
90977	req.Header = reqHeaders
90978	googleapi.Expand(req.URL, map[string]string{
90979		"project": c.project,
90980		"region":  c.region,
90981	})
90982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90983}
90984
90985// Do executes the "compute.nodeTemplates.list" call.
90986// Exactly one of *NodeTemplateList or error will be non-nil. Any
90987// non-2xx status code is an error. Response headers are in either
90988// *NodeTemplateList.ServerResponse.Header or (if a response was
90989// returned at all) in error.(*googleapi.Error).Header. Use
90990// googleapi.IsNotModified to check whether the returned error was
90991// because http.StatusNotModified was returned.
90992func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
90993	gensupport.SetOptions(c.urlParams_, opts...)
90994	res, err := c.doRequest("json")
90995	if res != nil && res.StatusCode == http.StatusNotModified {
90996		if res.Body != nil {
90997			res.Body.Close()
90998		}
90999		return nil, &googleapi.Error{
91000			Code:   res.StatusCode,
91001			Header: res.Header,
91002		}
91003	}
91004	if err != nil {
91005		return nil, err
91006	}
91007	defer googleapi.CloseBody(res)
91008	if err := googleapi.CheckResponse(res); err != nil {
91009		return nil, err
91010	}
91011	ret := &NodeTemplateList{
91012		ServerResponse: googleapi.ServerResponse{
91013			Header:         res.Header,
91014			HTTPStatusCode: res.StatusCode,
91015		},
91016	}
91017	target := &ret
91018	if err := gensupport.DecodeResponse(target, res); err != nil {
91019		return nil, err
91020	}
91021	return ret, nil
91022	// {
91023	//   "description": "Retrieves a list of node templates available to the specified project.",
91024	//   "httpMethod": "GET",
91025	//   "id": "compute.nodeTemplates.list",
91026	//   "parameterOrder": [
91027	//     "project",
91028	//     "region"
91029	//   ],
91030	//   "parameters": {
91031	//     "filter": {
91032	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
91033	//       "location": "query",
91034	//       "type": "string"
91035	//     },
91036	//     "maxResults": {
91037	//       "default": "500",
91038	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
91039	//       "format": "uint32",
91040	//       "location": "query",
91041	//       "minimum": "0",
91042	//       "type": "integer"
91043	//     },
91044	//     "orderBy": {
91045	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
91046	//       "location": "query",
91047	//       "type": "string"
91048	//     },
91049	//     "pageToken": {
91050	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
91051	//       "location": "query",
91052	//       "type": "string"
91053	//     },
91054	//     "project": {
91055	//       "description": "Project ID for this request.",
91056	//       "location": "path",
91057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91058	//       "required": true,
91059	//       "type": "string"
91060	//     },
91061	//     "region": {
91062	//       "description": "The name of the region for this request.",
91063	//       "location": "path",
91064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91065	//       "required": true,
91066	//       "type": "string"
91067	//     }
91068	//   },
91069	//   "path": "{project}/regions/{region}/nodeTemplates",
91070	//   "response": {
91071	//     "$ref": "NodeTemplateList"
91072	//   },
91073	//   "scopes": [
91074	//     "https://www.googleapis.com/auth/cloud-platform",
91075	//     "https://www.googleapis.com/auth/compute",
91076	//     "https://www.googleapis.com/auth/compute.readonly"
91077	//   ]
91078	// }
91079
91080}
91081
91082// Pages invokes f for each page of results.
91083// A non-nil error returned from f will halt the iteration.
91084// The provided context supersedes any context provided to the Context method.
91085func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
91086	c.ctx_ = ctx
91087	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91088	for {
91089		x, err := c.Do()
91090		if err != nil {
91091			return err
91092		}
91093		if err := f(x); err != nil {
91094			return err
91095		}
91096		if x.NextPageToken == "" {
91097			return nil
91098		}
91099		c.PageToken(x.NextPageToken)
91100	}
91101}
91102
91103// method id "compute.nodeTemplates.setIamPolicy":
91104
91105type NodeTemplatesSetIamPolicyCall struct {
91106	s                      *Service
91107	project                string
91108	region                 string
91109	resource               string
91110	regionsetpolicyrequest *RegionSetPolicyRequest
91111	urlParams_             gensupport.URLParams
91112	ctx_                   context.Context
91113	header_                http.Header
91114}
91115
91116// SetIamPolicy: Sets the access control policy on the specified
91117// resource. Replaces any existing policy.
91118func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
91119	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91120	c.project = project
91121	c.region = region
91122	c.resource = resource
91123	c.regionsetpolicyrequest = regionsetpolicyrequest
91124	return c
91125}
91126
91127// Fields allows partial responses to be retrieved. See
91128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91129// for more information.
91130func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
91131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91132	return c
91133}
91134
91135// Context sets the context to be used in this call's Do method. Any
91136// pending HTTP request will be aborted if the provided context is
91137// canceled.
91138func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
91139	c.ctx_ = ctx
91140	return c
91141}
91142
91143// Header returns an http.Header that can be modified by the caller to
91144// add HTTP headers to the request.
91145func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
91146	if c.header_ == nil {
91147		c.header_ = make(http.Header)
91148	}
91149	return c.header_
91150}
91151
91152func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
91153	reqHeaders := make(http.Header)
91154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91155	for k, v := range c.header_ {
91156		reqHeaders[k] = v
91157	}
91158	reqHeaders.Set("User-Agent", c.s.userAgent())
91159	var body io.Reader = nil
91160	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
91161	if err != nil {
91162		return nil, err
91163	}
91164	reqHeaders.Set("Content-Type", "application/json")
91165	c.urlParams_.Set("alt", alt)
91166	c.urlParams_.Set("prettyPrint", "false")
91167	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
91168	urls += "?" + c.urlParams_.Encode()
91169	req, err := http.NewRequest("POST", urls, body)
91170	if err != nil {
91171		return nil, err
91172	}
91173	req.Header = reqHeaders
91174	googleapi.Expand(req.URL, map[string]string{
91175		"project":  c.project,
91176		"region":   c.region,
91177		"resource": c.resource,
91178	})
91179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91180}
91181
91182// Do executes the "compute.nodeTemplates.setIamPolicy" call.
91183// Exactly one of *Policy or error will be non-nil. Any non-2xx status
91184// code is an error. Response headers are in either
91185// *Policy.ServerResponse.Header or (if a response was returned at all)
91186// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
91187// check whether the returned error was because http.StatusNotModified
91188// was returned.
91189func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
91190	gensupport.SetOptions(c.urlParams_, opts...)
91191	res, err := c.doRequest("json")
91192	if res != nil && res.StatusCode == http.StatusNotModified {
91193		if res.Body != nil {
91194			res.Body.Close()
91195		}
91196		return nil, &googleapi.Error{
91197			Code:   res.StatusCode,
91198			Header: res.Header,
91199		}
91200	}
91201	if err != nil {
91202		return nil, err
91203	}
91204	defer googleapi.CloseBody(res)
91205	if err := googleapi.CheckResponse(res); err != nil {
91206		return nil, err
91207	}
91208	ret := &Policy{
91209		ServerResponse: googleapi.ServerResponse{
91210			Header:         res.Header,
91211			HTTPStatusCode: res.StatusCode,
91212		},
91213	}
91214	target := &ret
91215	if err := gensupport.DecodeResponse(target, res); err != nil {
91216		return nil, err
91217	}
91218	return ret, nil
91219	// {
91220	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
91221	//   "httpMethod": "POST",
91222	//   "id": "compute.nodeTemplates.setIamPolicy",
91223	//   "parameterOrder": [
91224	//     "project",
91225	//     "region",
91226	//     "resource"
91227	//   ],
91228	//   "parameters": {
91229	//     "project": {
91230	//       "description": "Project ID for this request.",
91231	//       "location": "path",
91232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91233	//       "required": true,
91234	//       "type": "string"
91235	//     },
91236	//     "region": {
91237	//       "description": "The name of the region for this request.",
91238	//       "location": "path",
91239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91240	//       "required": true,
91241	//       "type": "string"
91242	//     },
91243	//     "resource": {
91244	//       "description": "Name or id of the resource for this request.",
91245	//       "location": "path",
91246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91247	//       "required": true,
91248	//       "type": "string"
91249	//     }
91250	//   },
91251	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
91252	//   "request": {
91253	//     "$ref": "RegionSetPolicyRequest"
91254	//   },
91255	//   "response": {
91256	//     "$ref": "Policy"
91257	//   },
91258	//   "scopes": [
91259	//     "https://www.googleapis.com/auth/cloud-platform",
91260	//     "https://www.googleapis.com/auth/compute"
91261	//   ]
91262	// }
91263
91264}
91265
91266// method id "compute.nodeTemplates.testIamPermissions":
91267
91268type NodeTemplatesTestIamPermissionsCall struct {
91269	s                      *Service
91270	project                string
91271	region                 string
91272	resource               string
91273	testpermissionsrequest *TestPermissionsRequest
91274	urlParams_             gensupport.URLParams
91275	ctx_                   context.Context
91276	header_                http.Header
91277}
91278
91279// TestIamPermissions: Returns permissions that a caller has on the
91280// specified resource.
91281func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
91282	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91283	c.project = project
91284	c.region = region
91285	c.resource = resource
91286	c.testpermissionsrequest = testpermissionsrequest
91287	return c
91288}
91289
91290// Fields allows partial responses to be retrieved. See
91291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91292// for more information.
91293func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
91294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91295	return c
91296}
91297
91298// Context sets the context to be used in this call's Do method. Any
91299// pending HTTP request will be aborted if the provided context is
91300// canceled.
91301func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
91302	c.ctx_ = ctx
91303	return c
91304}
91305
91306// Header returns an http.Header that can be modified by the caller to
91307// add HTTP headers to the request.
91308func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
91309	if c.header_ == nil {
91310		c.header_ = make(http.Header)
91311	}
91312	return c.header_
91313}
91314
91315func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
91316	reqHeaders := make(http.Header)
91317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91318	for k, v := range c.header_ {
91319		reqHeaders[k] = v
91320	}
91321	reqHeaders.Set("User-Agent", c.s.userAgent())
91322	var body io.Reader = nil
91323	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
91324	if err != nil {
91325		return nil, err
91326	}
91327	reqHeaders.Set("Content-Type", "application/json")
91328	c.urlParams_.Set("alt", alt)
91329	c.urlParams_.Set("prettyPrint", "false")
91330	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
91331	urls += "?" + c.urlParams_.Encode()
91332	req, err := http.NewRequest("POST", urls, body)
91333	if err != nil {
91334		return nil, err
91335	}
91336	req.Header = reqHeaders
91337	googleapi.Expand(req.URL, map[string]string{
91338		"project":  c.project,
91339		"region":   c.region,
91340		"resource": c.resource,
91341	})
91342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91343}
91344
91345// Do executes the "compute.nodeTemplates.testIamPermissions" call.
91346// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
91347// non-2xx status code is an error. Response headers are in either
91348// *TestPermissionsResponse.ServerResponse.Header or (if a response was
91349// returned at all) in error.(*googleapi.Error).Header. Use
91350// googleapi.IsNotModified to check whether the returned error was
91351// because http.StatusNotModified was returned.
91352func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
91353	gensupport.SetOptions(c.urlParams_, opts...)
91354	res, err := c.doRequest("json")
91355	if res != nil && res.StatusCode == http.StatusNotModified {
91356		if res.Body != nil {
91357			res.Body.Close()
91358		}
91359		return nil, &googleapi.Error{
91360			Code:   res.StatusCode,
91361			Header: res.Header,
91362		}
91363	}
91364	if err != nil {
91365		return nil, err
91366	}
91367	defer googleapi.CloseBody(res)
91368	if err := googleapi.CheckResponse(res); err != nil {
91369		return nil, err
91370	}
91371	ret := &TestPermissionsResponse{
91372		ServerResponse: googleapi.ServerResponse{
91373			Header:         res.Header,
91374			HTTPStatusCode: res.StatusCode,
91375		},
91376	}
91377	target := &ret
91378	if err := gensupport.DecodeResponse(target, res); err != nil {
91379		return nil, err
91380	}
91381	return ret, nil
91382	// {
91383	//   "description": "Returns permissions that a caller has on the specified resource.",
91384	//   "httpMethod": "POST",
91385	//   "id": "compute.nodeTemplates.testIamPermissions",
91386	//   "parameterOrder": [
91387	//     "project",
91388	//     "region",
91389	//     "resource"
91390	//   ],
91391	//   "parameters": {
91392	//     "project": {
91393	//       "description": "Project ID for this request.",
91394	//       "location": "path",
91395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91396	//       "required": true,
91397	//       "type": "string"
91398	//     },
91399	//     "region": {
91400	//       "description": "The name of the region for this request.",
91401	//       "location": "path",
91402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91403	//       "required": true,
91404	//       "type": "string"
91405	//     },
91406	//     "resource": {
91407	//       "description": "Name or id of the resource for this request.",
91408	//       "location": "path",
91409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91410	//       "required": true,
91411	//       "type": "string"
91412	//     }
91413	//   },
91414	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
91415	//   "request": {
91416	//     "$ref": "TestPermissionsRequest"
91417	//   },
91418	//   "response": {
91419	//     "$ref": "TestPermissionsResponse"
91420	//   },
91421	//   "scopes": [
91422	//     "https://www.googleapis.com/auth/cloud-platform",
91423	//     "https://www.googleapis.com/auth/compute",
91424	//     "https://www.googleapis.com/auth/compute.readonly"
91425	//   ]
91426	// }
91427
91428}
91429
91430// method id "compute.nodeTypes.aggregatedList":
91431
91432type NodeTypesAggregatedListCall struct {
91433	s            *Service
91434	project      string
91435	urlParams_   gensupport.URLParams
91436	ifNoneMatch_ string
91437	ctx_         context.Context
91438	header_      http.Header
91439}
91440
91441// AggregatedList: Retrieves an aggregated list of node types.
91442func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
91443	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91444	c.project = project
91445	return c
91446}
91447
91448// Filter sets the optional parameter "filter": A filter expression that
91449// filters resources listed in the response. The expression must specify
91450// the field name, a comparison operator, and the value that you want to
91451// use for filtering. The value must be a string, a number, or a
91452// boolean. The comparison operator must be either `=`, `!=`, `>`, or
91453// `<`.
91454//
91455// For example, if you are filtering Compute Engine instances, you can
91456// exclude instances named `example-instance` by specifying `name !=
91457// example-instance`.
91458//
91459// You can also filter nested fields. For example, you could specify
91460// `scheduling.automaticRestart = false` to include instances only if
91461// they are not scheduled for automatic restarts. You can use filtering
91462// on nested fields to filter based on resource labels.
91463//
91464// To filter on multiple expressions, provide each separate expression
91465// within parentheses. For example: ``` (scheduling.automaticRestart =
91466// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
91467// is an `AND` expression. However, you can include `AND` and `OR`
91468// expressions explicitly. For example: ``` (cpuPlatform = "Intel
91469// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
91470// (scheduling.automaticRestart = true) ```
91471func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
91472	c.urlParams_.Set("filter", filter)
91473	return c
91474}
91475
91476// IncludeAllScopes sets the optional parameter "includeAllScopes":
91477// Indicates whether every visible scope for each scope type (zone,
91478// region, global) should be included in the response. For new resource
91479// types added after this field, the flag has no effect as new resource
91480// types will always include every visible scope for each scope type in
91481// response. For resource types which predate this field, if this flag
91482// is omitted or false, only scopes of the scope types where the
91483// resource type is expected to be found will be included.
91484func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
91485	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
91486	return c
91487}
91488
91489// MaxResults sets the optional parameter "maxResults": The maximum
91490// number of results per page that should be returned. If the number of
91491// available results is larger than `maxResults`, Compute Engine returns
91492// a `nextPageToken` that can be used to get the next page of results in
91493// subsequent list requests. Acceptable values are `0` to `500`,
91494// inclusive. (Default: `500`)
91495func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
91496	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91497	return c
91498}
91499
91500// OrderBy sets the optional parameter "orderBy": Sorts list results by
91501// a certain order. By default, results are returned in alphanumerical
91502// order based on the resource name.
91503//
91504// You can also sort results in descending order based on the creation
91505// timestamp using `orderBy="creationTimestamp desc". This sorts
91506// results based on the `creationTimestamp` field in reverse
91507// chronological order (newest result first). Use this to sort resources
91508// like operations so that the newest operation is returned
91509// first.
91510//
91511// Currently, only sorting by `name` or `creationTimestamp desc` is
91512// supported.
91513func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
91514	c.urlParams_.Set("orderBy", orderBy)
91515	return c
91516}
91517
91518// PageToken sets the optional parameter "pageToken": Specifies a page
91519// token to use. Set `pageToken` to the `nextPageToken` returned by a
91520// previous list request to get the next page of results.
91521func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
91522	c.urlParams_.Set("pageToken", pageToken)
91523	return c
91524}
91525
91526// Fields allows partial responses to be retrieved. See
91527// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91528// for more information.
91529func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
91530	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91531	return c
91532}
91533
91534// IfNoneMatch sets the optional parameter which makes the operation
91535// fail if the object's ETag matches the given value. This is useful for
91536// getting updates only after the object has changed since the last
91537// request. Use googleapi.IsNotModified to check whether the response
91538// error from Do is the result of In-None-Match.
91539func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
91540	c.ifNoneMatch_ = entityTag
91541	return c
91542}
91543
91544// Context sets the context to be used in this call's Do method. Any
91545// pending HTTP request will be aborted if the provided context is
91546// canceled.
91547func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
91548	c.ctx_ = ctx
91549	return c
91550}
91551
91552// Header returns an http.Header that can be modified by the caller to
91553// add HTTP headers to the request.
91554func (c *NodeTypesAggregatedListCall) Header() http.Header {
91555	if c.header_ == nil {
91556		c.header_ = make(http.Header)
91557	}
91558	return c.header_
91559}
91560
91561func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
91562	reqHeaders := make(http.Header)
91563	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91564	for k, v := range c.header_ {
91565		reqHeaders[k] = v
91566	}
91567	reqHeaders.Set("User-Agent", c.s.userAgent())
91568	if c.ifNoneMatch_ != "" {
91569		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91570	}
91571	var body io.Reader = nil
91572	c.urlParams_.Set("alt", alt)
91573	c.urlParams_.Set("prettyPrint", "false")
91574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTypes")
91575	urls += "?" + c.urlParams_.Encode()
91576	req, err := http.NewRequest("GET", urls, body)
91577	if err != nil {
91578		return nil, err
91579	}
91580	req.Header = reqHeaders
91581	googleapi.Expand(req.URL, map[string]string{
91582		"project": c.project,
91583	})
91584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91585}
91586
91587// Do executes the "compute.nodeTypes.aggregatedList" call.
91588// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
91589// non-2xx status code is an error. Response headers are in either
91590// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
91591// returned at all) in error.(*googleapi.Error).Header. Use
91592// googleapi.IsNotModified to check whether the returned error was
91593// because http.StatusNotModified was returned.
91594func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
91595	gensupport.SetOptions(c.urlParams_, opts...)
91596	res, err := c.doRequest("json")
91597	if res != nil && res.StatusCode == http.StatusNotModified {
91598		if res.Body != nil {
91599			res.Body.Close()
91600		}
91601		return nil, &googleapi.Error{
91602			Code:   res.StatusCode,
91603			Header: res.Header,
91604		}
91605	}
91606	if err != nil {
91607		return nil, err
91608	}
91609	defer googleapi.CloseBody(res)
91610	if err := googleapi.CheckResponse(res); err != nil {
91611		return nil, err
91612	}
91613	ret := &NodeTypeAggregatedList{
91614		ServerResponse: googleapi.ServerResponse{
91615			Header:         res.Header,
91616			HTTPStatusCode: res.StatusCode,
91617		},
91618	}
91619	target := &ret
91620	if err := gensupport.DecodeResponse(target, res); err != nil {
91621		return nil, err
91622	}
91623	return ret, nil
91624	// {
91625	//   "description": "Retrieves an aggregated list of node types.",
91626	//   "httpMethod": "GET",
91627	//   "id": "compute.nodeTypes.aggregatedList",
91628	//   "parameterOrder": [
91629	//     "project"
91630	//   ],
91631	//   "parameters": {
91632	//     "filter": {
91633	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
91634	//       "location": "query",
91635	//       "type": "string"
91636	//     },
91637	//     "includeAllScopes": {
91638	//       "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.",
91639	//       "location": "query",
91640	//       "type": "boolean"
91641	//     },
91642	//     "maxResults": {
91643	//       "default": "500",
91644	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
91645	//       "format": "uint32",
91646	//       "location": "query",
91647	//       "minimum": "0",
91648	//       "type": "integer"
91649	//     },
91650	//     "orderBy": {
91651	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
91652	//       "location": "query",
91653	//       "type": "string"
91654	//     },
91655	//     "pageToken": {
91656	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
91657	//       "location": "query",
91658	//       "type": "string"
91659	//     },
91660	//     "project": {
91661	//       "description": "Project ID for this request.",
91662	//       "location": "path",
91663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91664	//       "required": true,
91665	//       "type": "string"
91666	//     }
91667	//   },
91668	//   "path": "{project}/aggregated/nodeTypes",
91669	//   "response": {
91670	//     "$ref": "NodeTypeAggregatedList"
91671	//   },
91672	//   "scopes": [
91673	//     "https://www.googleapis.com/auth/cloud-platform",
91674	//     "https://www.googleapis.com/auth/compute",
91675	//     "https://www.googleapis.com/auth/compute.readonly"
91676	//   ]
91677	// }
91678
91679}
91680
91681// Pages invokes f for each page of results.
91682// A non-nil error returned from f will halt the iteration.
91683// The provided context supersedes any context provided to the Context method.
91684func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
91685	c.ctx_ = ctx
91686	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91687	for {
91688		x, err := c.Do()
91689		if err != nil {
91690			return err
91691		}
91692		if err := f(x); err != nil {
91693			return err
91694		}
91695		if x.NextPageToken == "" {
91696			return nil
91697		}
91698		c.PageToken(x.NextPageToken)
91699	}
91700}
91701
91702// method id "compute.nodeTypes.get":
91703
91704type NodeTypesGetCall struct {
91705	s            *Service
91706	project      string
91707	zone         string
91708	nodeType     string
91709	urlParams_   gensupport.URLParams
91710	ifNoneMatch_ string
91711	ctx_         context.Context
91712	header_      http.Header
91713}
91714
91715// Get: Returns the specified node type. Gets a list of available node
91716// types by making a list() request.
91717func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
91718	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91719	c.project = project
91720	c.zone = zone
91721	c.nodeType = nodeType
91722	return c
91723}
91724
91725// Fields allows partial responses to be retrieved. See
91726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91727// for more information.
91728func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
91729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91730	return c
91731}
91732
91733// IfNoneMatch sets the optional parameter which makes the operation
91734// fail if the object's ETag matches the given value. This is useful for
91735// getting updates only after the object has changed since the last
91736// request. Use googleapi.IsNotModified to check whether the response
91737// error from Do is the result of In-None-Match.
91738func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
91739	c.ifNoneMatch_ = entityTag
91740	return c
91741}
91742
91743// Context sets the context to be used in this call's Do method. Any
91744// pending HTTP request will be aborted if the provided context is
91745// canceled.
91746func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
91747	c.ctx_ = ctx
91748	return c
91749}
91750
91751// Header returns an http.Header that can be modified by the caller to
91752// add HTTP headers to the request.
91753func (c *NodeTypesGetCall) Header() http.Header {
91754	if c.header_ == nil {
91755		c.header_ = make(http.Header)
91756	}
91757	return c.header_
91758}
91759
91760func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
91761	reqHeaders := make(http.Header)
91762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91763	for k, v := range c.header_ {
91764		reqHeaders[k] = v
91765	}
91766	reqHeaders.Set("User-Agent", c.s.userAgent())
91767	if c.ifNoneMatch_ != "" {
91768		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91769	}
91770	var body io.Reader = nil
91771	c.urlParams_.Set("alt", alt)
91772	c.urlParams_.Set("prettyPrint", "false")
91773	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes/{nodeType}")
91774	urls += "?" + c.urlParams_.Encode()
91775	req, err := http.NewRequest("GET", urls, body)
91776	if err != nil {
91777		return nil, err
91778	}
91779	req.Header = reqHeaders
91780	googleapi.Expand(req.URL, map[string]string{
91781		"project":  c.project,
91782		"zone":     c.zone,
91783		"nodeType": c.nodeType,
91784	})
91785	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91786}
91787
91788// Do executes the "compute.nodeTypes.get" call.
91789// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
91790// code is an error. Response headers are in either
91791// *NodeType.ServerResponse.Header or (if a response was returned at
91792// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91793// to check whether the returned error was because
91794// http.StatusNotModified was returned.
91795func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
91796	gensupport.SetOptions(c.urlParams_, opts...)
91797	res, err := c.doRequest("json")
91798	if res != nil && res.StatusCode == http.StatusNotModified {
91799		if res.Body != nil {
91800			res.Body.Close()
91801		}
91802		return nil, &googleapi.Error{
91803			Code:   res.StatusCode,
91804			Header: res.Header,
91805		}
91806	}
91807	if err != nil {
91808		return nil, err
91809	}
91810	defer googleapi.CloseBody(res)
91811	if err := googleapi.CheckResponse(res); err != nil {
91812		return nil, err
91813	}
91814	ret := &NodeType{
91815		ServerResponse: googleapi.ServerResponse{
91816			Header:         res.Header,
91817			HTTPStatusCode: res.StatusCode,
91818		},
91819	}
91820	target := &ret
91821	if err := gensupport.DecodeResponse(target, res); err != nil {
91822		return nil, err
91823	}
91824	return ret, nil
91825	// {
91826	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
91827	//   "httpMethod": "GET",
91828	//   "id": "compute.nodeTypes.get",
91829	//   "parameterOrder": [
91830	//     "project",
91831	//     "zone",
91832	//     "nodeType"
91833	//   ],
91834	//   "parameters": {
91835	//     "nodeType": {
91836	//       "description": "Name of the node type to return.",
91837	//       "location": "path",
91838	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91839	//       "required": true,
91840	//       "type": "string"
91841	//     },
91842	//     "project": {
91843	//       "description": "Project ID for this request.",
91844	//       "location": "path",
91845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91846	//       "required": true,
91847	//       "type": "string"
91848	//     },
91849	//     "zone": {
91850	//       "description": "The name of the zone for this request.",
91851	//       "location": "path",
91852	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91853	//       "required": true,
91854	//       "type": "string"
91855	//     }
91856	//   },
91857	//   "path": "{project}/zones/{zone}/nodeTypes/{nodeType}",
91858	//   "response": {
91859	//     "$ref": "NodeType"
91860	//   },
91861	//   "scopes": [
91862	//     "https://www.googleapis.com/auth/cloud-platform",
91863	//     "https://www.googleapis.com/auth/compute",
91864	//     "https://www.googleapis.com/auth/compute.readonly"
91865	//   ]
91866	// }
91867
91868}
91869
91870// method id "compute.nodeTypes.list":
91871
91872type NodeTypesListCall struct {
91873	s            *Service
91874	project      string
91875	zone         string
91876	urlParams_   gensupport.URLParams
91877	ifNoneMatch_ string
91878	ctx_         context.Context
91879	header_      http.Header
91880}
91881
91882// List: Retrieves a list of node types available to the specified
91883// project.
91884func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
91885	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91886	c.project = project
91887	c.zone = zone
91888	return c
91889}
91890
91891// Filter sets the optional parameter "filter": A filter expression that
91892// filters resources listed in the response. The expression must specify
91893// the field name, a comparison operator, and the value that you want to
91894// use for filtering. The value must be a string, a number, or a
91895// boolean. The comparison operator must be either `=`, `!=`, `>`, or
91896// `<`.
91897//
91898// For example, if you are filtering Compute Engine instances, you can
91899// exclude instances named `example-instance` by specifying `name !=
91900// example-instance`.
91901//
91902// You can also filter nested fields. For example, you could specify
91903// `scheduling.automaticRestart = false` to include instances only if
91904// they are not scheduled for automatic restarts. You can use filtering
91905// on nested fields to filter based on resource labels.
91906//
91907// To filter on multiple expressions, provide each separate expression
91908// within parentheses. For example: ``` (scheduling.automaticRestart =
91909// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
91910// is an `AND` expression. However, you can include `AND` and `OR`
91911// expressions explicitly. For example: ``` (cpuPlatform = "Intel
91912// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
91913// (scheduling.automaticRestart = true) ```
91914func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
91915	c.urlParams_.Set("filter", filter)
91916	return c
91917}
91918
91919// MaxResults sets the optional parameter "maxResults": The maximum
91920// number of results per page that should be returned. If the number of
91921// available results is larger than `maxResults`, Compute Engine returns
91922// a `nextPageToken` that can be used to get the next page of results in
91923// subsequent list requests. Acceptable values are `0` to `500`,
91924// inclusive. (Default: `500`)
91925func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
91926	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91927	return c
91928}
91929
91930// OrderBy sets the optional parameter "orderBy": Sorts list results by
91931// a certain order. By default, results are returned in alphanumerical
91932// order based on the resource name.
91933//
91934// You can also sort results in descending order based on the creation
91935// timestamp using `orderBy="creationTimestamp desc". This sorts
91936// results based on the `creationTimestamp` field in reverse
91937// chronological order (newest result first). Use this to sort resources
91938// like operations so that the newest operation is returned
91939// first.
91940//
91941// Currently, only sorting by `name` or `creationTimestamp desc` is
91942// supported.
91943func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
91944	c.urlParams_.Set("orderBy", orderBy)
91945	return c
91946}
91947
91948// PageToken sets the optional parameter "pageToken": Specifies a page
91949// token to use. Set `pageToken` to the `nextPageToken` returned by a
91950// previous list request to get the next page of results.
91951func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
91952	c.urlParams_.Set("pageToken", pageToken)
91953	return c
91954}
91955
91956// Fields allows partial responses to be retrieved. See
91957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91958// for more information.
91959func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
91960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91961	return c
91962}
91963
91964// IfNoneMatch sets the optional parameter which makes the operation
91965// fail if the object's ETag matches the given value. This is useful for
91966// getting updates only after the object has changed since the last
91967// request. Use googleapi.IsNotModified to check whether the response
91968// error from Do is the result of In-None-Match.
91969func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
91970	c.ifNoneMatch_ = entityTag
91971	return c
91972}
91973
91974// Context sets the context to be used in this call's Do method. Any
91975// pending HTTP request will be aborted if the provided context is
91976// canceled.
91977func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
91978	c.ctx_ = ctx
91979	return c
91980}
91981
91982// Header returns an http.Header that can be modified by the caller to
91983// add HTTP headers to the request.
91984func (c *NodeTypesListCall) Header() http.Header {
91985	if c.header_ == nil {
91986		c.header_ = make(http.Header)
91987	}
91988	return c.header_
91989}
91990
91991func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
91992	reqHeaders := make(http.Header)
91993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91994	for k, v := range c.header_ {
91995		reqHeaders[k] = v
91996	}
91997	reqHeaders.Set("User-Agent", c.s.userAgent())
91998	if c.ifNoneMatch_ != "" {
91999		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92000	}
92001	var body io.Reader = nil
92002	c.urlParams_.Set("alt", alt)
92003	c.urlParams_.Set("prettyPrint", "false")
92004	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes")
92005	urls += "?" + c.urlParams_.Encode()
92006	req, err := http.NewRequest("GET", urls, body)
92007	if err != nil {
92008		return nil, err
92009	}
92010	req.Header = reqHeaders
92011	googleapi.Expand(req.URL, map[string]string{
92012		"project": c.project,
92013		"zone":    c.zone,
92014	})
92015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92016}
92017
92018// Do executes the "compute.nodeTypes.list" call.
92019// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
92020// status code is an error. Response headers are in either
92021// *NodeTypeList.ServerResponse.Header or (if a response was returned at
92022// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92023// to check whether the returned error was because
92024// http.StatusNotModified was returned.
92025func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
92026	gensupport.SetOptions(c.urlParams_, opts...)
92027	res, err := c.doRequest("json")
92028	if res != nil && res.StatusCode == http.StatusNotModified {
92029		if res.Body != nil {
92030			res.Body.Close()
92031		}
92032		return nil, &googleapi.Error{
92033			Code:   res.StatusCode,
92034			Header: res.Header,
92035		}
92036	}
92037	if err != nil {
92038		return nil, err
92039	}
92040	defer googleapi.CloseBody(res)
92041	if err := googleapi.CheckResponse(res); err != nil {
92042		return nil, err
92043	}
92044	ret := &NodeTypeList{
92045		ServerResponse: googleapi.ServerResponse{
92046			Header:         res.Header,
92047			HTTPStatusCode: res.StatusCode,
92048		},
92049	}
92050	target := &ret
92051	if err := gensupport.DecodeResponse(target, res); err != nil {
92052		return nil, err
92053	}
92054	return ret, nil
92055	// {
92056	//   "description": "Retrieves a list of node types available to the specified project.",
92057	//   "httpMethod": "GET",
92058	//   "id": "compute.nodeTypes.list",
92059	//   "parameterOrder": [
92060	//     "project",
92061	//     "zone"
92062	//   ],
92063	//   "parameters": {
92064	//     "filter": {
92065	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
92066	//       "location": "query",
92067	//       "type": "string"
92068	//     },
92069	//     "maxResults": {
92070	//       "default": "500",
92071	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
92072	//       "format": "uint32",
92073	//       "location": "query",
92074	//       "minimum": "0",
92075	//       "type": "integer"
92076	//     },
92077	//     "orderBy": {
92078	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
92079	//       "location": "query",
92080	//       "type": "string"
92081	//     },
92082	//     "pageToken": {
92083	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
92084	//       "location": "query",
92085	//       "type": "string"
92086	//     },
92087	//     "project": {
92088	//       "description": "Project ID for this request.",
92089	//       "location": "path",
92090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92091	//       "required": true,
92092	//       "type": "string"
92093	//     },
92094	//     "zone": {
92095	//       "description": "The name of the zone for this request.",
92096	//       "location": "path",
92097	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92098	//       "required": true,
92099	//       "type": "string"
92100	//     }
92101	//   },
92102	//   "path": "{project}/zones/{zone}/nodeTypes",
92103	//   "response": {
92104	//     "$ref": "NodeTypeList"
92105	//   },
92106	//   "scopes": [
92107	//     "https://www.googleapis.com/auth/cloud-platform",
92108	//     "https://www.googleapis.com/auth/compute",
92109	//     "https://www.googleapis.com/auth/compute.readonly"
92110	//   ]
92111	// }
92112
92113}
92114
92115// Pages invokes f for each page of results.
92116// A non-nil error returned from f will halt the iteration.
92117// The provided context supersedes any context provided to the Context method.
92118func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
92119	c.ctx_ = ctx
92120	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92121	for {
92122		x, err := c.Do()
92123		if err != nil {
92124			return err
92125		}
92126		if err := f(x); err != nil {
92127			return err
92128		}
92129		if x.NextPageToken == "" {
92130			return nil
92131		}
92132		c.PageToken(x.NextPageToken)
92133	}
92134}
92135
92136// method id "compute.packetMirrorings.aggregatedList":
92137
92138type PacketMirroringsAggregatedListCall struct {
92139	s            *Service
92140	project      string
92141	urlParams_   gensupport.URLParams
92142	ifNoneMatch_ string
92143	ctx_         context.Context
92144	header_      http.Header
92145}
92146
92147// AggregatedList: Retrieves an aggregated list of packetMirrorings.
92148func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
92149	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92150	c.project = project
92151	return c
92152}
92153
92154// Filter sets the optional parameter "filter": A filter expression that
92155// filters resources listed in the response. The expression must specify
92156// the field name, a comparison operator, and the value that you want to
92157// use for filtering. The value must be a string, a number, or a
92158// boolean. The comparison operator must be either `=`, `!=`, `>`, or
92159// `<`.
92160//
92161// For example, if you are filtering Compute Engine instances, you can
92162// exclude instances named `example-instance` by specifying `name !=
92163// example-instance`.
92164//
92165// You can also filter nested fields. For example, you could specify
92166// `scheduling.automaticRestart = false` to include instances only if
92167// they are not scheduled for automatic restarts. You can use filtering
92168// on nested fields to filter based on resource labels.
92169//
92170// To filter on multiple expressions, provide each separate expression
92171// within parentheses. For example: ``` (scheduling.automaticRestart =
92172// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
92173// is an `AND` expression. However, you can include `AND` and `OR`
92174// expressions explicitly. For example: ``` (cpuPlatform = "Intel
92175// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
92176// (scheduling.automaticRestart = true) ```
92177func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
92178	c.urlParams_.Set("filter", filter)
92179	return c
92180}
92181
92182// IncludeAllScopes sets the optional parameter "includeAllScopes":
92183// Indicates whether every visible scope for each scope type (zone,
92184// region, global) should be included in the response. For new resource
92185// types added after this field, the flag has no effect as new resource
92186// types will always include every visible scope for each scope type in
92187// response. For resource types which predate this field, if this flag
92188// is omitted or false, only scopes of the scope types where the
92189// resource type is expected to be found will be included.
92190func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
92191	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
92192	return c
92193}
92194
92195// MaxResults sets the optional parameter "maxResults": The maximum
92196// number of results per page that should be returned. If the number of
92197// available results is larger than `maxResults`, Compute Engine returns
92198// a `nextPageToken` that can be used to get the next page of results in
92199// subsequent list requests. Acceptable values are `0` to `500`,
92200// inclusive. (Default: `500`)
92201func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
92202	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92203	return c
92204}
92205
92206// OrderBy sets the optional parameter "orderBy": Sorts list results by
92207// a certain order. By default, results are returned in alphanumerical
92208// order based on the resource name.
92209//
92210// You can also sort results in descending order based on the creation
92211// timestamp using `orderBy="creationTimestamp desc". This sorts
92212// results based on the `creationTimestamp` field in reverse
92213// chronological order (newest result first). Use this to sort resources
92214// like operations so that the newest operation is returned
92215// first.
92216//
92217// Currently, only sorting by `name` or `creationTimestamp desc` is
92218// supported.
92219func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
92220	c.urlParams_.Set("orderBy", orderBy)
92221	return c
92222}
92223
92224// PageToken sets the optional parameter "pageToken": Specifies a page
92225// token to use. Set `pageToken` to the `nextPageToken` returned by a
92226// previous list request to get the next page of results.
92227func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
92228	c.urlParams_.Set("pageToken", pageToken)
92229	return c
92230}
92231
92232// Fields allows partial responses to be retrieved. See
92233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92234// for more information.
92235func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
92236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92237	return c
92238}
92239
92240// IfNoneMatch sets the optional parameter which makes the operation
92241// fail if the object's ETag matches the given value. This is useful for
92242// getting updates only after the object has changed since the last
92243// request. Use googleapi.IsNotModified to check whether the response
92244// error from Do is the result of In-None-Match.
92245func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
92246	c.ifNoneMatch_ = entityTag
92247	return c
92248}
92249
92250// Context sets the context to be used in this call's Do method. Any
92251// pending HTTP request will be aborted if the provided context is
92252// canceled.
92253func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
92254	c.ctx_ = ctx
92255	return c
92256}
92257
92258// Header returns an http.Header that can be modified by the caller to
92259// add HTTP headers to the request.
92260func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
92261	if c.header_ == nil {
92262		c.header_ = make(http.Header)
92263	}
92264	return c.header_
92265}
92266
92267func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
92268	reqHeaders := make(http.Header)
92269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92270	for k, v := range c.header_ {
92271		reqHeaders[k] = v
92272	}
92273	reqHeaders.Set("User-Agent", c.s.userAgent())
92274	if c.ifNoneMatch_ != "" {
92275		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92276	}
92277	var body io.Reader = nil
92278	c.urlParams_.Set("alt", alt)
92279	c.urlParams_.Set("prettyPrint", "false")
92280	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/packetMirrorings")
92281	urls += "?" + c.urlParams_.Encode()
92282	req, err := http.NewRequest("GET", urls, body)
92283	if err != nil {
92284		return nil, err
92285	}
92286	req.Header = reqHeaders
92287	googleapi.Expand(req.URL, map[string]string{
92288		"project": c.project,
92289	})
92290	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92291}
92292
92293// Do executes the "compute.packetMirrorings.aggregatedList" call.
92294// Exactly one of *PacketMirroringAggregatedList or error will be
92295// non-nil. Any non-2xx status code is an error. Response headers are in
92296// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
92297// response was returned at all) in error.(*googleapi.Error).Header. Use
92298// googleapi.IsNotModified to check whether the returned error was
92299// because http.StatusNotModified was returned.
92300func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
92301	gensupport.SetOptions(c.urlParams_, opts...)
92302	res, err := c.doRequest("json")
92303	if res != nil && res.StatusCode == http.StatusNotModified {
92304		if res.Body != nil {
92305			res.Body.Close()
92306		}
92307		return nil, &googleapi.Error{
92308			Code:   res.StatusCode,
92309			Header: res.Header,
92310		}
92311	}
92312	if err != nil {
92313		return nil, err
92314	}
92315	defer googleapi.CloseBody(res)
92316	if err := googleapi.CheckResponse(res); err != nil {
92317		return nil, err
92318	}
92319	ret := &PacketMirroringAggregatedList{
92320		ServerResponse: googleapi.ServerResponse{
92321			Header:         res.Header,
92322			HTTPStatusCode: res.StatusCode,
92323		},
92324	}
92325	target := &ret
92326	if err := gensupport.DecodeResponse(target, res); err != nil {
92327		return nil, err
92328	}
92329	return ret, nil
92330	// {
92331	//   "description": "Retrieves an aggregated list of packetMirrorings.",
92332	//   "httpMethod": "GET",
92333	//   "id": "compute.packetMirrorings.aggregatedList",
92334	//   "parameterOrder": [
92335	//     "project"
92336	//   ],
92337	//   "parameters": {
92338	//     "filter": {
92339	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
92340	//       "location": "query",
92341	//       "type": "string"
92342	//     },
92343	//     "includeAllScopes": {
92344	//       "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.",
92345	//       "location": "query",
92346	//       "type": "boolean"
92347	//     },
92348	//     "maxResults": {
92349	//       "default": "500",
92350	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
92351	//       "format": "uint32",
92352	//       "location": "query",
92353	//       "minimum": "0",
92354	//       "type": "integer"
92355	//     },
92356	//     "orderBy": {
92357	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
92358	//       "location": "query",
92359	//       "type": "string"
92360	//     },
92361	//     "pageToken": {
92362	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
92363	//       "location": "query",
92364	//       "type": "string"
92365	//     },
92366	//     "project": {
92367	//       "description": "Project ID for this request.",
92368	//       "location": "path",
92369	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92370	//       "required": true,
92371	//       "type": "string"
92372	//     }
92373	//   },
92374	//   "path": "{project}/aggregated/packetMirrorings",
92375	//   "response": {
92376	//     "$ref": "PacketMirroringAggregatedList"
92377	//   },
92378	//   "scopes": [
92379	//     "https://www.googleapis.com/auth/cloud-platform",
92380	//     "https://www.googleapis.com/auth/compute",
92381	//     "https://www.googleapis.com/auth/compute.readonly"
92382	//   ]
92383	// }
92384
92385}
92386
92387// Pages invokes f for each page of results.
92388// A non-nil error returned from f will halt the iteration.
92389// The provided context supersedes any context provided to the Context method.
92390func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
92391	c.ctx_ = ctx
92392	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92393	for {
92394		x, err := c.Do()
92395		if err != nil {
92396			return err
92397		}
92398		if err := f(x); err != nil {
92399			return err
92400		}
92401		if x.NextPageToken == "" {
92402			return nil
92403		}
92404		c.PageToken(x.NextPageToken)
92405	}
92406}
92407
92408// method id "compute.packetMirrorings.delete":
92409
92410type PacketMirroringsDeleteCall struct {
92411	s               *Service
92412	project         string
92413	region          string
92414	packetMirroring string
92415	urlParams_      gensupport.URLParams
92416	ctx_            context.Context
92417	header_         http.Header
92418}
92419
92420// Delete: Deletes the specified PacketMirroring resource.
92421func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
92422	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92423	c.project = project
92424	c.region = region
92425	c.packetMirroring = packetMirroring
92426	return c
92427}
92428
92429// RequestId sets the optional parameter "requestId": An optional
92430// request ID to identify requests. Specify a unique request ID so that
92431// if you must retry your request, the server will know to ignore the
92432// request if it has already been completed.
92433//
92434// For example, consider a situation where you make an initial request
92435// and the request times out. If you make the request again with the
92436// same request ID, the server can check if original operation with the
92437// same request ID was received, and if so, will ignore the second
92438// request. This prevents clients from accidentally creating duplicate
92439// commitments.
92440//
92441// The request ID must be a valid UUID with the exception that zero UUID
92442// is not supported (00000000-0000-0000-0000-000000000000).
92443func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
92444	c.urlParams_.Set("requestId", requestId)
92445	return c
92446}
92447
92448// Fields allows partial responses to be retrieved. See
92449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92450// for more information.
92451func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
92452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92453	return c
92454}
92455
92456// Context sets the context to be used in this call's Do method. Any
92457// pending HTTP request will be aborted if the provided context is
92458// canceled.
92459func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
92460	c.ctx_ = ctx
92461	return c
92462}
92463
92464// Header returns an http.Header that can be modified by the caller to
92465// add HTTP headers to the request.
92466func (c *PacketMirroringsDeleteCall) Header() http.Header {
92467	if c.header_ == nil {
92468		c.header_ = make(http.Header)
92469	}
92470	return c.header_
92471}
92472
92473func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
92474	reqHeaders := make(http.Header)
92475	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92476	for k, v := range c.header_ {
92477		reqHeaders[k] = v
92478	}
92479	reqHeaders.Set("User-Agent", c.s.userAgent())
92480	var body io.Reader = nil
92481	c.urlParams_.Set("alt", alt)
92482	c.urlParams_.Set("prettyPrint", "false")
92483	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
92484	urls += "?" + c.urlParams_.Encode()
92485	req, err := http.NewRequest("DELETE", urls, body)
92486	if err != nil {
92487		return nil, err
92488	}
92489	req.Header = reqHeaders
92490	googleapi.Expand(req.URL, map[string]string{
92491		"project":         c.project,
92492		"region":          c.region,
92493		"packetMirroring": c.packetMirroring,
92494	})
92495	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92496}
92497
92498// Do executes the "compute.packetMirrorings.delete" call.
92499// Exactly one of *Operation or error will be non-nil. Any non-2xx
92500// status code is an error. Response headers are in either
92501// *Operation.ServerResponse.Header or (if a response was returned at
92502// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92503// to check whether the returned error was because
92504// http.StatusNotModified was returned.
92505func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92506	gensupport.SetOptions(c.urlParams_, opts...)
92507	res, err := c.doRequest("json")
92508	if res != nil && res.StatusCode == http.StatusNotModified {
92509		if res.Body != nil {
92510			res.Body.Close()
92511		}
92512		return nil, &googleapi.Error{
92513			Code:   res.StatusCode,
92514			Header: res.Header,
92515		}
92516	}
92517	if err != nil {
92518		return nil, err
92519	}
92520	defer googleapi.CloseBody(res)
92521	if err := googleapi.CheckResponse(res); err != nil {
92522		return nil, err
92523	}
92524	ret := &Operation{
92525		ServerResponse: googleapi.ServerResponse{
92526			Header:         res.Header,
92527			HTTPStatusCode: res.StatusCode,
92528		},
92529	}
92530	target := &ret
92531	if err := gensupport.DecodeResponse(target, res); err != nil {
92532		return nil, err
92533	}
92534	return ret, nil
92535	// {
92536	//   "description": "Deletes the specified PacketMirroring resource.",
92537	//   "httpMethod": "DELETE",
92538	//   "id": "compute.packetMirrorings.delete",
92539	//   "parameterOrder": [
92540	//     "project",
92541	//     "region",
92542	//     "packetMirroring"
92543	//   ],
92544	//   "parameters": {
92545	//     "packetMirroring": {
92546	//       "description": "Name of the PacketMirroring resource to delete.",
92547	//       "location": "path",
92548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92549	//       "required": true,
92550	//       "type": "string"
92551	//     },
92552	//     "project": {
92553	//       "description": "Project ID for this request.",
92554	//       "location": "path",
92555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92556	//       "required": true,
92557	//       "type": "string"
92558	//     },
92559	//     "region": {
92560	//       "description": "Name of the region for this request.",
92561	//       "location": "path",
92562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92563	//       "required": true,
92564	//       "type": "string"
92565	//     },
92566	//     "requestId": {
92567	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92568	//       "location": "query",
92569	//       "type": "string"
92570	//     }
92571	//   },
92572	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
92573	//   "response": {
92574	//     "$ref": "Operation"
92575	//   },
92576	//   "scopes": [
92577	//     "https://www.googleapis.com/auth/cloud-platform",
92578	//     "https://www.googleapis.com/auth/compute"
92579	//   ]
92580	// }
92581
92582}
92583
92584// method id "compute.packetMirrorings.get":
92585
92586type PacketMirroringsGetCall struct {
92587	s               *Service
92588	project         string
92589	region          string
92590	packetMirroring string
92591	urlParams_      gensupport.URLParams
92592	ifNoneMatch_    string
92593	ctx_            context.Context
92594	header_         http.Header
92595}
92596
92597// Get: Returns the specified PacketMirroring resource.
92598func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
92599	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92600	c.project = project
92601	c.region = region
92602	c.packetMirroring = packetMirroring
92603	return c
92604}
92605
92606// Fields allows partial responses to be retrieved. See
92607// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92608// for more information.
92609func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
92610	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92611	return c
92612}
92613
92614// IfNoneMatch sets the optional parameter which makes the operation
92615// fail if the object's ETag matches the given value. This is useful for
92616// getting updates only after the object has changed since the last
92617// request. Use googleapi.IsNotModified to check whether the response
92618// error from Do is the result of In-None-Match.
92619func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
92620	c.ifNoneMatch_ = entityTag
92621	return c
92622}
92623
92624// Context sets the context to be used in this call's Do method. Any
92625// pending HTTP request will be aborted if the provided context is
92626// canceled.
92627func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
92628	c.ctx_ = ctx
92629	return c
92630}
92631
92632// Header returns an http.Header that can be modified by the caller to
92633// add HTTP headers to the request.
92634func (c *PacketMirroringsGetCall) Header() http.Header {
92635	if c.header_ == nil {
92636		c.header_ = make(http.Header)
92637	}
92638	return c.header_
92639}
92640
92641func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
92642	reqHeaders := make(http.Header)
92643	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92644	for k, v := range c.header_ {
92645		reqHeaders[k] = v
92646	}
92647	reqHeaders.Set("User-Agent", c.s.userAgent())
92648	if c.ifNoneMatch_ != "" {
92649		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92650	}
92651	var body io.Reader = nil
92652	c.urlParams_.Set("alt", alt)
92653	c.urlParams_.Set("prettyPrint", "false")
92654	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
92655	urls += "?" + c.urlParams_.Encode()
92656	req, err := http.NewRequest("GET", urls, body)
92657	if err != nil {
92658		return nil, err
92659	}
92660	req.Header = reqHeaders
92661	googleapi.Expand(req.URL, map[string]string{
92662		"project":         c.project,
92663		"region":          c.region,
92664		"packetMirroring": c.packetMirroring,
92665	})
92666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92667}
92668
92669// Do executes the "compute.packetMirrorings.get" call.
92670// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
92671// status code is an error. Response headers are in either
92672// *PacketMirroring.ServerResponse.Header or (if a response was returned
92673// at all) in error.(*googleapi.Error).Header. Use
92674// googleapi.IsNotModified to check whether the returned error was
92675// because http.StatusNotModified was returned.
92676func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
92677	gensupport.SetOptions(c.urlParams_, opts...)
92678	res, err := c.doRequest("json")
92679	if res != nil && res.StatusCode == http.StatusNotModified {
92680		if res.Body != nil {
92681			res.Body.Close()
92682		}
92683		return nil, &googleapi.Error{
92684			Code:   res.StatusCode,
92685			Header: res.Header,
92686		}
92687	}
92688	if err != nil {
92689		return nil, err
92690	}
92691	defer googleapi.CloseBody(res)
92692	if err := googleapi.CheckResponse(res); err != nil {
92693		return nil, err
92694	}
92695	ret := &PacketMirroring{
92696		ServerResponse: googleapi.ServerResponse{
92697			Header:         res.Header,
92698			HTTPStatusCode: res.StatusCode,
92699		},
92700	}
92701	target := &ret
92702	if err := gensupport.DecodeResponse(target, res); err != nil {
92703		return nil, err
92704	}
92705	return ret, nil
92706	// {
92707	//   "description": "Returns the specified PacketMirroring resource.",
92708	//   "httpMethod": "GET",
92709	//   "id": "compute.packetMirrorings.get",
92710	//   "parameterOrder": [
92711	//     "project",
92712	//     "region",
92713	//     "packetMirroring"
92714	//   ],
92715	//   "parameters": {
92716	//     "packetMirroring": {
92717	//       "description": "Name of the PacketMirroring resource to return.",
92718	//       "location": "path",
92719	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92720	//       "required": true,
92721	//       "type": "string"
92722	//     },
92723	//     "project": {
92724	//       "description": "Project ID for this request.",
92725	//       "location": "path",
92726	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92727	//       "required": true,
92728	//       "type": "string"
92729	//     },
92730	//     "region": {
92731	//       "description": "Name of the region for this request.",
92732	//       "location": "path",
92733	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92734	//       "required": true,
92735	//       "type": "string"
92736	//     }
92737	//   },
92738	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
92739	//   "response": {
92740	//     "$ref": "PacketMirroring"
92741	//   },
92742	//   "scopes": [
92743	//     "https://www.googleapis.com/auth/cloud-platform",
92744	//     "https://www.googleapis.com/auth/compute",
92745	//     "https://www.googleapis.com/auth/compute.readonly"
92746	//   ]
92747	// }
92748
92749}
92750
92751// method id "compute.packetMirrorings.insert":
92752
92753type PacketMirroringsInsertCall struct {
92754	s               *Service
92755	project         string
92756	region          string
92757	packetmirroring *PacketMirroring
92758	urlParams_      gensupport.URLParams
92759	ctx_            context.Context
92760	header_         http.Header
92761}
92762
92763// Insert: Creates a PacketMirroring resource in the specified project
92764// and region using the data included in the request.
92765func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
92766	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92767	c.project = project
92768	c.region = region
92769	c.packetmirroring = packetmirroring
92770	return c
92771}
92772
92773// RequestId sets the optional parameter "requestId": An optional
92774// request ID to identify requests. Specify a unique request ID so that
92775// if you must retry your request, the server will know to ignore the
92776// request if it has already been completed.
92777//
92778// For example, consider a situation where you make an initial request
92779// and the request times out. If you make the request again with the
92780// same request ID, the server can check if original operation with the
92781// same request ID was received, and if so, will ignore the second
92782// request. This prevents clients from accidentally creating duplicate
92783// commitments.
92784//
92785// The request ID must be a valid UUID with the exception that zero UUID
92786// is not supported (00000000-0000-0000-0000-000000000000).
92787func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
92788	c.urlParams_.Set("requestId", requestId)
92789	return c
92790}
92791
92792// Fields allows partial responses to be retrieved. See
92793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92794// for more information.
92795func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
92796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92797	return c
92798}
92799
92800// Context sets the context to be used in this call's Do method. Any
92801// pending HTTP request will be aborted if the provided context is
92802// canceled.
92803func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
92804	c.ctx_ = ctx
92805	return c
92806}
92807
92808// Header returns an http.Header that can be modified by the caller to
92809// add HTTP headers to the request.
92810func (c *PacketMirroringsInsertCall) Header() http.Header {
92811	if c.header_ == nil {
92812		c.header_ = make(http.Header)
92813	}
92814	return c.header_
92815}
92816
92817func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
92818	reqHeaders := make(http.Header)
92819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92820	for k, v := range c.header_ {
92821		reqHeaders[k] = v
92822	}
92823	reqHeaders.Set("User-Agent", c.s.userAgent())
92824	var body io.Reader = nil
92825	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
92826	if err != nil {
92827		return nil, err
92828	}
92829	reqHeaders.Set("Content-Type", "application/json")
92830	c.urlParams_.Set("alt", alt)
92831	c.urlParams_.Set("prettyPrint", "false")
92832	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
92833	urls += "?" + c.urlParams_.Encode()
92834	req, err := http.NewRequest("POST", urls, body)
92835	if err != nil {
92836		return nil, err
92837	}
92838	req.Header = reqHeaders
92839	googleapi.Expand(req.URL, map[string]string{
92840		"project": c.project,
92841		"region":  c.region,
92842	})
92843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92844}
92845
92846// Do executes the "compute.packetMirrorings.insert" call.
92847// Exactly one of *Operation or error will be non-nil. Any non-2xx
92848// status code is an error. Response headers are in either
92849// *Operation.ServerResponse.Header or (if a response was returned at
92850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92851// to check whether the returned error was because
92852// http.StatusNotModified was returned.
92853func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92854	gensupport.SetOptions(c.urlParams_, opts...)
92855	res, err := c.doRequest("json")
92856	if res != nil && res.StatusCode == http.StatusNotModified {
92857		if res.Body != nil {
92858			res.Body.Close()
92859		}
92860		return nil, &googleapi.Error{
92861			Code:   res.StatusCode,
92862			Header: res.Header,
92863		}
92864	}
92865	if err != nil {
92866		return nil, err
92867	}
92868	defer googleapi.CloseBody(res)
92869	if err := googleapi.CheckResponse(res); err != nil {
92870		return nil, err
92871	}
92872	ret := &Operation{
92873		ServerResponse: googleapi.ServerResponse{
92874			Header:         res.Header,
92875			HTTPStatusCode: res.StatusCode,
92876		},
92877	}
92878	target := &ret
92879	if err := gensupport.DecodeResponse(target, res); err != nil {
92880		return nil, err
92881	}
92882	return ret, nil
92883	// {
92884	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
92885	//   "httpMethod": "POST",
92886	//   "id": "compute.packetMirrorings.insert",
92887	//   "parameterOrder": [
92888	//     "project",
92889	//     "region"
92890	//   ],
92891	//   "parameters": {
92892	//     "project": {
92893	//       "description": "Project ID for this request.",
92894	//       "location": "path",
92895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92896	//       "required": true,
92897	//       "type": "string"
92898	//     },
92899	//     "region": {
92900	//       "description": "Name of the region for this request.",
92901	//       "location": "path",
92902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92903	//       "required": true,
92904	//       "type": "string"
92905	//     },
92906	//     "requestId": {
92907	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92908	//       "location": "query",
92909	//       "type": "string"
92910	//     }
92911	//   },
92912	//   "path": "{project}/regions/{region}/packetMirrorings",
92913	//   "request": {
92914	//     "$ref": "PacketMirroring"
92915	//   },
92916	//   "response": {
92917	//     "$ref": "Operation"
92918	//   },
92919	//   "scopes": [
92920	//     "https://www.googleapis.com/auth/cloud-platform",
92921	//     "https://www.googleapis.com/auth/compute"
92922	//   ]
92923	// }
92924
92925}
92926
92927// method id "compute.packetMirrorings.list":
92928
92929type PacketMirroringsListCall struct {
92930	s            *Service
92931	project      string
92932	region       string
92933	urlParams_   gensupport.URLParams
92934	ifNoneMatch_ string
92935	ctx_         context.Context
92936	header_      http.Header
92937}
92938
92939// List: Retrieves a list of PacketMirroring resources available to the
92940// specified project and region.
92941func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
92942	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92943	c.project = project
92944	c.region = region
92945	return c
92946}
92947
92948// Filter sets the optional parameter "filter": A filter expression that
92949// filters resources listed in the response. The expression must specify
92950// the field name, a comparison operator, and the value that you want to
92951// use for filtering. The value must be a string, a number, or a
92952// boolean. The comparison operator must be either `=`, `!=`, `>`, or
92953// `<`.
92954//
92955// For example, if you are filtering Compute Engine instances, you can
92956// exclude instances named `example-instance` by specifying `name !=
92957// example-instance`.
92958//
92959// You can also filter nested fields. For example, you could specify
92960// `scheduling.automaticRestart = false` to include instances only if
92961// they are not scheduled for automatic restarts. You can use filtering
92962// on nested fields to filter based on resource labels.
92963//
92964// To filter on multiple expressions, provide each separate expression
92965// within parentheses. For example: ``` (scheduling.automaticRestart =
92966// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
92967// is an `AND` expression. However, you can include `AND` and `OR`
92968// expressions explicitly. For example: ``` (cpuPlatform = "Intel
92969// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
92970// (scheduling.automaticRestart = true) ```
92971func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
92972	c.urlParams_.Set("filter", filter)
92973	return c
92974}
92975
92976// MaxResults sets the optional parameter "maxResults": The maximum
92977// number of results per page that should be returned. If the number of
92978// available results is larger than `maxResults`, Compute Engine returns
92979// a `nextPageToken` that can be used to get the next page of results in
92980// subsequent list requests. Acceptable values are `0` to `500`,
92981// inclusive. (Default: `500`)
92982func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
92983	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92984	return c
92985}
92986
92987// OrderBy sets the optional parameter "orderBy": Sorts list results by
92988// a certain order. By default, results are returned in alphanumerical
92989// order based on the resource name.
92990//
92991// You can also sort results in descending order based on the creation
92992// timestamp using `orderBy="creationTimestamp desc". This sorts
92993// results based on the `creationTimestamp` field in reverse
92994// chronological order (newest result first). Use this to sort resources
92995// like operations so that the newest operation is returned
92996// first.
92997//
92998// Currently, only sorting by `name` or `creationTimestamp desc` is
92999// supported.
93000func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
93001	c.urlParams_.Set("orderBy", orderBy)
93002	return c
93003}
93004
93005// PageToken sets the optional parameter "pageToken": Specifies a page
93006// token to use. Set `pageToken` to the `nextPageToken` returned by a
93007// previous list request to get the next page of results.
93008func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
93009	c.urlParams_.Set("pageToken", pageToken)
93010	return c
93011}
93012
93013// Fields allows partial responses to be retrieved. See
93014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93015// for more information.
93016func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
93017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93018	return c
93019}
93020
93021// IfNoneMatch sets the optional parameter which makes the operation
93022// fail if the object's ETag matches the given value. This is useful for
93023// getting updates only after the object has changed since the last
93024// request. Use googleapi.IsNotModified to check whether the response
93025// error from Do is the result of In-None-Match.
93026func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
93027	c.ifNoneMatch_ = entityTag
93028	return c
93029}
93030
93031// Context sets the context to be used in this call's Do method. Any
93032// pending HTTP request will be aborted if the provided context is
93033// canceled.
93034func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
93035	c.ctx_ = ctx
93036	return c
93037}
93038
93039// Header returns an http.Header that can be modified by the caller to
93040// add HTTP headers to the request.
93041func (c *PacketMirroringsListCall) Header() http.Header {
93042	if c.header_ == nil {
93043		c.header_ = make(http.Header)
93044	}
93045	return c.header_
93046}
93047
93048func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
93049	reqHeaders := make(http.Header)
93050	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93051	for k, v := range c.header_ {
93052		reqHeaders[k] = v
93053	}
93054	reqHeaders.Set("User-Agent", c.s.userAgent())
93055	if c.ifNoneMatch_ != "" {
93056		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93057	}
93058	var body io.Reader = nil
93059	c.urlParams_.Set("alt", alt)
93060	c.urlParams_.Set("prettyPrint", "false")
93061	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
93062	urls += "?" + c.urlParams_.Encode()
93063	req, err := http.NewRequest("GET", urls, body)
93064	if err != nil {
93065		return nil, err
93066	}
93067	req.Header = reqHeaders
93068	googleapi.Expand(req.URL, map[string]string{
93069		"project": c.project,
93070		"region":  c.region,
93071	})
93072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93073}
93074
93075// Do executes the "compute.packetMirrorings.list" call.
93076// Exactly one of *PacketMirroringList or error will be non-nil. Any
93077// non-2xx status code is an error. Response headers are in either
93078// *PacketMirroringList.ServerResponse.Header or (if a response was
93079// returned at all) in error.(*googleapi.Error).Header. Use
93080// googleapi.IsNotModified to check whether the returned error was
93081// because http.StatusNotModified was returned.
93082func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
93083	gensupport.SetOptions(c.urlParams_, opts...)
93084	res, err := c.doRequest("json")
93085	if res != nil && res.StatusCode == http.StatusNotModified {
93086		if res.Body != nil {
93087			res.Body.Close()
93088		}
93089		return nil, &googleapi.Error{
93090			Code:   res.StatusCode,
93091			Header: res.Header,
93092		}
93093	}
93094	if err != nil {
93095		return nil, err
93096	}
93097	defer googleapi.CloseBody(res)
93098	if err := googleapi.CheckResponse(res); err != nil {
93099		return nil, err
93100	}
93101	ret := &PacketMirroringList{
93102		ServerResponse: googleapi.ServerResponse{
93103			Header:         res.Header,
93104			HTTPStatusCode: res.StatusCode,
93105		},
93106	}
93107	target := &ret
93108	if err := gensupport.DecodeResponse(target, res); err != nil {
93109		return nil, err
93110	}
93111	return ret, nil
93112	// {
93113	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
93114	//   "httpMethod": "GET",
93115	//   "id": "compute.packetMirrorings.list",
93116	//   "parameterOrder": [
93117	//     "project",
93118	//     "region"
93119	//   ],
93120	//   "parameters": {
93121	//     "filter": {
93122	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
93123	//       "location": "query",
93124	//       "type": "string"
93125	//     },
93126	//     "maxResults": {
93127	//       "default": "500",
93128	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
93129	//       "format": "uint32",
93130	//       "location": "query",
93131	//       "minimum": "0",
93132	//       "type": "integer"
93133	//     },
93134	//     "orderBy": {
93135	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
93136	//       "location": "query",
93137	//       "type": "string"
93138	//     },
93139	//     "pageToken": {
93140	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
93141	//       "location": "query",
93142	//       "type": "string"
93143	//     },
93144	//     "project": {
93145	//       "description": "Project ID for this request.",
93146	//       "location": "path",
93147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93148	//       "required": true,
93149	//       "type": "string"
93150	//     },
93151	//     "region": {
93152	//       "description": "Name of the region for this request.",
93153	//       "location": "path",
93154	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93155	//       "required": true,
93156	//       "type": "string"
93157	//     }
93158	//   },
93159	//   "path": "{project}/regions/{region}/packetMirrorings",
93160	//   "response": {
93161	//     "$ref": "PacketMirroringList"
93162	//   },
93163	//   "scopes": [
93164	//     "https://www.googleapis.com/auth/cloud-platform",
93165	//     "https://www.googleapis.com/auth/compute",
93166	//     "https://www.googleapis.com/auth/compute.readonly"
93167	//   ]
93168	// }
93169
93170}
93171
93172// Pages invokes f for each page of results.
93173// A non-nil error returned from f will halt the iteration.
93174// The provided context supersedes any context provided to the Context method.
93175func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
93176	c.ctx_ = ctx
93177	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
93178	for {
93179		x, err := c.Do()
93180		if err != nil {
93181			return err
93182		}
93183		if err := f(x); err != nil {
93184			return err
93185		}
93186		if x.NextPageToken == "" {
93187			return nil
93188		}
93189		c.PageToken(x.NextPageToken)
93190	}
93191}
93192
93193// method id "compute.packetMirrorings.patch":
93194
93195type PacketMirroringsPatchCall struct {
93196	s               *Service
93197	project         string
93198	region          string
93199	packetMirroring string
93200	packetmirroring *PacketMirroring
93201	urlParams_      gensupport.URLParams
93202	ctx_            context.Context
93203	header_         http.Header
93204}
93205
93206// Patch: Patches the specified PacketMirroring resource with the data
93207// included in the request. This method supports PATCH semantics and
93208// uses JSON merge patch format and processing rules.
93209func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
93210	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93211	c.project = project
93212	c.region = region
93213	c.packetMirroring = packetMirroring
93214	c.packetmirroring = packetmirroring
93215	return c
93216}
93217
93218// RequestId sets the optional parameter "requestId": An optional
93219// request ID to identify requests. Specify a unique request ID so that
93220// if you must retry your request, the server will know to ignore the
93221// request if it has already been completed.
93222//
93223// For example, consider a situation where you make an initial request
93224// and the request times out. If you make the request again with the
93225// same request ID, the server can check if original operation with the
93226// same request ID was received, and if so, will ignore the second
93227// request. This prevents clients from accidentally creating duplicate
93228// commitments.
93229//
93230// The request ID must be a valid UUID with the exception that zero UUID
93231// is not supported (00000000-0000-0000-0000-000000000000).
93232func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
93233	c.urlParams_.Set("requestId", requestId)
93234	return c
93235}
93236
93237// Fields allows partial responses to be retrieved. See
93238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93239// for more information.
93240func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
93241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93242	return c
93243}
93244
93245// Context sets the context to be used in this call's Do method. Any
93246// pending HTTP request will be aborted if the provided context is
93247// canceled.
93248func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
93249	c.ctx_ = ctx
93250	return c
93251}
93252
93253// Header returns an http.Header that can be modified by the caller to
93254// add HTTP headers to the request.
93255func (c *PacketMirroringsPatchCall) Header() http.Header {
93256	if c.header_ == nil {
93257		c.header_ = make(http.Header)
93258	}
93259	return c.header_
93260}
93261
93262func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
93263	reqHeaders := make(http.Header)
93264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93265	for k, v := range c.header_ {
93266		reqHeaders[k] = v
93267	}
93268	reqHeaders.Set("User-Agent", c.s.userAgent())
93269	var body io.Reader = nil
93270	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
93271	if err != nil {
93272		return nil, err
93273	}
93274	reqHeaders.Set("Content-Type", "application/json")
93275	c.urlParams_.Set("alt", alt)
93276	c.urlParams_.Set("prettyPrint", "false")
93277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
93278	urls += "?" + c.urlParams_.Encode()
93279	req, err := http.NewRequest("PATCH", urls, body)
93280	if err != nil {
93281		return nil, err
93282	}
93283	req.Header = reqHeaders
93284	googleapi.Expand(req.URL, map[string]string{
93285		"project":         c.project,
93286		"region":          c.region,
93287		"packetMirroring": c.packetMirroring,
93288	})
93289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93290}
93291
93292// Do executes the "compute.packetMirrorings.patch" call.
93293// Exactly one of *Operation or error will be non-nil. Any non-2xx
93294// status code is an error. Response headers are in either
93295// *Operation.ServerResponse.Header or (if a response was returned at
93296// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93297// to check whether the returned error was because
93298// http.StatusNotModified was returned.
93299func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93300	gensupport.SetOptions(c.urlParams_, opts...)
93301	res, err := c.doRequest("json")
93302	if res != nil && res.StatusCode == http.StatusNotModified {
93303		if res.Body != nil {
93304			res.Body.Close()
93305		}
93306		return nil, &googleapi.Error{
93307			Code:   res.StatusCode,
93308			Header: res.Header,
93309		}
93310	}
93311	if err != nil {
93312		return nil, err
93313	}
93314	defer googleapi.CloseBody(res)
93315	if err := googleapi.CheckResponse(res); err != nil {
93316		return nil, err
93317	}
93318	ret := &Operation{
93319		ServerResponse: googleapi.ServerResponse{
93320			Header:         res.Header,
93321			HTTPStatusCode: res.StatusCode,
93322		},
93323	}
93324	target := &ret
93325	if err := gensupport.DecodeResponse(target, res); err != nil {
93326		return nil, err
93327	}
93328	return ret, nil
93329	// {
93330	//   "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.",
93331	//   "httpMethod": "PATCH",
93332	//   "id": "compute.packetMirrorings.patch",
93333	//   "parameterOrder": [
93334	//     "project",
93335	//     "region",
93336	//     "packetMirroring"
93337	//   ],
93338	//   "parameters": {
93339	//     "packetMirroring": {
93340	//       "description": "Name of the PacketMirroring resource to patch.",
93341	//       "location": "path",
93342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93343	//       "required": true,
93344	//       "type": "string"
93345	//     },
93346	//     "project": {
93347	//       "description": "Project ID for this request.",
93348	//       "location": "path",
93349	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93350	//       "required": true,
93351	//       "type": "string"
93352	//     },
93353	//     "region": {
93354	//       "description": "Name of the region for this request.",
93355	//       "location": "path",
93356	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93357	//       "required": true,
93358	//       "type": "string"
93359	//     },
93360	//     "requestId": {
93361	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93362	//       "location": "query",
93363	//       "type": "string"
93364	//     }
93365	//   },
93366	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
93367	//   "request": {
93368	//     "$ref": "PacketMirroring"
93369	//   },
93370	//   "response": {
93371	//     "$ref": "Operation"
93372	//   },
93373	//   "scopes": [
93374	//     "https://www.googleapis.com/auth/cloud-platform",
93375	//     "https://www.googleapis.com/auth/compute"
93376	//   ]
93377	// }
93378
93379}
93380
93381// method id "compute.packetMirrorings.testIamPermissions":
93382
93383type PacketMirroringsTestIamPermissionsCall struct {
93384	s                      *Service
93385	project                string
93386	region                 string
93387	resource               string
93388	testpermissionsrequest *TestPermissionsRequest
93389	urlParams_             gensupport.URLParams
93390	ctx_                   context.Context
93391	header_                http.Header
93392}
93393
93394// TestIamPermissions: Returns permissions that a caller has on the
93395// specified resource.
93396func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
93397	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93398	c.project = project
93399	c.region = region
93400	c.resource = resource
93401	c.testpermissionsrequest = testpermissionsrequest
93402	return c
93403}
93404
93405// Fields allows partial responses to be retrieved. See
93406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93407// for more information.
93408func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
93409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93410	return c
93411}
93412
93413// Context sets the context to be used in this call's Do method. Any
93414// pending HTTP request will be aborted if the provided context is
93415// canceled.
93416func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
93417	c.ctx_ = ctx
93418	return c
93419}
93420
93421// Header returns an http.Header that can be modified by the caller to
93422// add HTTP headers to the request.
93423func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
93424	if c.header_ == nil {
93425		c.header_ = make(http.Header)
93426	}
93427	return c.header_
93428}
93429
93430func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
93431	reqHeaders := make(http.Header)
93432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93433	for k, v := range c.header_ {
93434		reqHeaders[k] = v
93435	}
93436	reqHeaders.Set("User-Agent", c.s.userAgent())
93437	var body io.Reader = nil
93438	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
93439	if err != nil {
93440		return nil, err
93441	}
93442	reqHeaders.Set("Content-Type", "application/json")
93443	c.urlParams_.Set("alt", alt)
93444	c.urlParams_.Set("prettyPrint", "false")
93445	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
93446	urls += "?" + c.urlParams_.Encode()
93447	req, err := http.NewRequest("POST", urls, body)
93448	if err != nil {
93449		return nil, err
93450	}
93451	req.Header = reqHeaders
93452	googleapi.Expand(req.URL, map[string]string{
93453		"project":  c.project,
93454		"region":   c.region,
93455		"resource": c.resource,
93456	})
93457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93458}
93459
93460// Do executes the "compute.packetMirrorings.testIamPermissions" call.
93461// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
93462// non-2xx status code is an error. Response headers are in either
93463// *TestPermissionsResponse.ServerResponse.Header or (if a response was
93464// returned at all) in error.(*googleapi.Error).Header. Use
93465// googleapi.IsNotModified to check whether the returned error was
93466// because http.StatusNotModified was returned.
93467func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
93468	gensupport.SetOptions(c.urlParams_, opts...)
93469	res, err := c.doRequest("json")
93470	if res != nil && res.StatusCode == http.StatusNotModified {
93471		if res.Body != nil {
93472			res.Body.Close()
93473		}
93474		return nil, &googleapi.Error{
93475			Code:   res.StatusCode,
93476			Header: res.Header,
93477		}
93478	}
93479	if err != nil {
93480		return nil, err
93481	}
93482	defer googleapi.CloseBody(res)
93483	if err := googleapi.CheckResponse(res); err != nil {
93484		return nil, err
93485	}
93486	ret := &TestPermissionsResponse{
93487		ServerResponse: googleapi.ServerResponse{
93488			Header:         res.Header,
93489			HTTPStatusCode: res.StatusCode,
93490		},
93491	}
93492	target := &ret
93493	if err := gensupport.DecodeResponse(target, res); err != nil {
93494		return nil, err
93495	}
93496	return ret, nil
93497	// {
93498	//   "description": "Returns permissions that a caller has on the specified resource.",
93499	//   "httpMethod": "POST",
93500	//   "id": "compute.packetMirrorings.testIamPermissions",
93501	//   "parameterOrder": [
93502	//     "project",
93503	//     "region",
93504	//     "resource"
93505	//   ],
93506	//   "parameters": {
93507	//     "project": {
93508	//       "description": "Project ID for this request.",
93509	//       "location": "path",
93510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93511	//       "required": true,
93512	//       "type": "string"
93513	//     },
93514	//     "region": {
93515	//       "description": "The name of the region for this request.",
93516	//       "location": "path",
93517	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93518	//       "required": true,
93519	//       "type": "string"
93520	//     },
93521	//     "resource": {
93522	//       "description": "Name or id of the resource for this request.",
93523	//       "location": "path",
93524	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93525	//       "required": true,
93526	//       "type": "string"
93527	//     }
93528	//   },
93529	//   "path": "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
93530	//   "request": {
93531	//     "$ref": "TestPermissionsRequest"
93532	//   },
93533	//   "response": {
93534	//     "$ref": "TestPermissionsResponse"
93535	//   },
93536	//   "scopes": [
93537	//     "https://www.googleapis.com/auth/cloud-platform",
93538	//     "https://www.googleapis.com/auth/compute",
93539	//     "https://www.googleapis.com/auth/compute.readonly"
93540	//   ]
93541	// }
93542
93543}
93544
93545// method id "compute.projects.disableXpnHost":
93546
93547type ProjectsDisableXpnHostCall struct {
93548	s          *Service
93549	project    string
93550	urlParams_ gensupport.URLParams
93551	ctx_       context.Context
93552	header_    http.Header
93553}
93554
93555// DisableXpnHost: Disable this project as a shared VPC host project.
93556func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
93557	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93558	c.project = project
93559	return c
93560}
93561
93562// RequestId sets the optional parameter "requestId": An optional
93563// request ID to identify requests. Specify a unique request ID so that
93564// if you must retry your request, the server will know to ignore the
93565// request if it has already been completed.
93566//
93567// For example, consider a situation where you make an initial request
93568// and the request times out. If you make the request again with the
93569// same request ID, the server can check if original operation with the
93570// same request ID was received, and if so, will ignore the second
93571// request. This prevents clients from accidentally creating duplicate
93572// commitments.
93573//
93574// The request ID must be a valid UUID with the exception that zero UUID
93575// is not supported (00000000-0000-0000-0000-000000000000).
93576func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
93577	c.urlParams_.Set("requestId", requestId)
93578	return c
93579}
93580
93581// Fields allows partial responses to be retrieved. See
93582// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93583// for more information.
93584func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
93585	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93586	return c
93587}
93588
93589// Context sets the context to be used in this call's Do method. Any
93590// pending HTTP request will be aborted if the provided context is
93591// canceled.
93592func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
93593	c.ctx_ = ctx
93594	return c
93595}
93596
93597// Header returns an http.Header that can be modified by the caller to
93598// add HTTP headers to the request.
93599func (c *ProjectsDisableXpnHostCall) Header() http.Header {
93600	if c.header_ == nil {
93601		c.header_ = make(http.Header)
93602	}
93603	return c.header_
93604}
93605
93606func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
93607	reqHeaders := make(http.Header)
93608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93609	for k, v := range c.header_ {
93610		reqHeaders[k] = v
93611	}
93612	reqHeaders.Set("User-Agent", c.s.userAgent())
93613	var body io.Reader = nil
93614	c.urlParams_.Set("alt", alt)
93615	c.urlParams_.Set("prettyPrint", "false")
93616	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
93617	urls += "?" + c.urlParams_.Encode()
93618	req, err := http.NewRequest("POST", urls, body)
93619	if err != nil {
93620		return nil, err
93621	}
93622	req.Header = reqHeaders
93623	googleapi.Expand(req.URL, map[string]string{
93624		"project": c.project,
93625	})
93626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93627}
93628
93629// Do executes the "compute.projects.disableXpnHost" call.
93630// Exactly one of *Operation or error will be non-nil. Any non-2xx
93631// status code is an error. Response headers are in either
93632// *Operation.ServerResponse.Header or (if a response was returned at
93633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93634// to check whether the returned error was because
93635// http.StatusNotModified was returned.
93636func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93637	gensupport.SetOptions(c.urlParams_, opts...)
93638	res, err := c.doRequest("json")
93639	if res != nil && res.StatusCode == http.StatusNotModified {
93640		if res.Body != nil {
93641			res.Body.Close()
93642		}
93643		return nil, &googleapi.Error{
93644			Code:   res.StatusCode,
93645			Header: res.Header,
93646		}
93647	}
93648	if err != nil {
93649		return nil, err
93650	}
93651	defer googleapi.CloseBody(res)
93652	if err := googleapi.CheckResponse(res); err != nil {
93653		return nil, err
93654	}
93655	ret := &Operation{
93656		ServerResponse: googleapi.ServerResponse{
93657			Header:         res.Header,
93658			HTTPStatusCode: res.StatusCode,
93659		},
93660	}
93661	target := &ret
93662	if err := gensupport.DecodeResponse(target, res); err != nil {
93663		return nil, err
93664	}
93665	return ret, nil
93666	// {
93667	//   "description": "Disable this project as a shared VPC host project.",
93668	//   "httpMethod": "POST",
93669	//   "id": "compute.projects.disableXpnHost",
93670	//   "parameterOrder": [
93671	//     "project"
93672	//   ],
93673	//   "parameters": {
93674	//     "project": {
93675	//       "description": "Project ID for this request.",
93676	//       "location": "path",
93677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93678	//       "required": true,
93679	//       "type": "string"
93680	//     },
93681	//     "requestId": {
93682	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93683	//       "location": "query",
93684	//       "type": "string"
93685	//     }
93686	//   },
93687	//   "path": "{project}/disableXpnHost",
93688	//   "response": {
93689	//     "$ref": "Operation"
93690	//   },
93691	//   "scopes": [
93692	//     "https://www.googleapis.com/auth/cloud-platform",
93693	//     "https://www.googleapis.com/auth/compute"
93694	//   ]
93695	// }
93696
93697}
93698
93699// method id "compute.projects.disableXpnResource":
93700
93701type ProjectsDisableXpnResourceCall struct {
93702	s                                 *Service
93703	project                           string
93704	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
93705	urlParams_                        gensupport.URLParams
93706	ctx_                              context.Context
93707	header_                           http.Header
93708}
93709
93710// DisableXpnResource: Disable a service resource (also known as service
93711// project) associated with this host project.
93712func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
93713	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93714	c.project = project
93715	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
93716	return c
93717}
93718
93719// RequestId sets the optional parameter "requestId": An optional
93720// request ID to identify requests. Specify a unique request ID so that
93721// if you must retry your request, the server will know to ignore the
93722// request if it has already been completed.
93723//
93724// For example, consider a situation where you make an initial request
93725// and the request times out. If you make the request again with the
93726// same request ID, the server can check if original operation with the
93727// same request ID was received, and if so, will ignore the second
93728// request. This prevents clients from accidentally creating duplicate
93729// commitments.
93730//
93731// The request ID must be a valid UUID with the exception that zero UUID
93732// is not supported (00000000-0000-0000-0000-000000000000).
93733func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
93734	c.urlParams_.Set("requestId", requestId)
93735	return c
93736}
93737
93738// Fields allows partial responses to be retrieved. See
93739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93740// for more information.
93741func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
93742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93743	return c
93744}
93745
93746// Context sets the context to be used in this call's Do method. Any
93747// pending HTTP request will be aborted if the provided context is
93748// canceled.
93749func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
93750	c.ctx_ = ctx
93751	return c
93752}
93753
93754// Header returns an http.Header that can be modified by the caller to
93755// add HTTP headers to the request.
93756func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
93757	if c.header_ == nil {
93758		c.header_ = make(http.Header)
93759	}
93760	return c.header_
93761}
93762
93763func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
93764	reqHeaders := make(http.Header)
93765	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93766	for k, v := range c.header_ {
93767		reqHeaders[k] = v
93768	}
93769	reqHeaders.Set("User-Agent", c.s.userAgent())
93770	var body io.Reader = nil
93771	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
93772	if err != nil {
93773		return nil, err
93774	}
93775	reqHeaders.Set("Content-Type", "application/json")
93776	c.urlParams_.Set("alt", alt)
93777	c.urlParams_.Set("prettyPrint", "false")
93778	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
93779	urls += "?" + c.urlParams_.Encode()
93780	req, err := http.NewRequest("POST", urls, body)
93781	if err != nil {
93782		return nil, err
93783	}
93784	req.Header = reqHeaders
93785	googleapi.Expand(req.URL, map[string]string{
93786		"project": c.project,
93787	})
93788	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93789}
93790
93791// Do executes the "compute.projects.disableXpnResource" call.
93792// Exactly one of *Operation or error will be non-nil. Any non-2xx
93793// status code is an error. Response headers are in either
93794// *Operation.ServerResponse.Header or (if a response was returned at
93795// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93796// to check whether the returned error was because
93797// http.StatusNotModified was returned.
93798func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93799	gensupport.SetOptions(c.urlParams_, opts...)
93800	res, err := c.doRequest("json")
93801	if res != nil && res.StatusCode == http.StatusNotModified {
93802		if res.Body != nil {
93803			res.Body.Close()
93804		}
93805		return nil, &googleapi.Error{
93806			Code:   res.StatusCode,
93807			Header: res.Header,
93808		}
93809	}
93810	if err != nil {
93811		return nil, err
93812	}
93813	defer googleapi.CloseBody(res)
93814	if err := googleapi.CheckResponse(res); err != nil {
93815		return nil, err
93816	}
93817	ret := &Operation{
93818		ServerResponse: googleapi.ServerResponse{
93819			Header:         res.Header,
93820			HTTPStatusCode: res.StatusCode,
93821		},
93822	}
93823	target := &ret
93824	if err := gensupport.DecodeResponse(target, res); err != nil {
93825		return nil, err
93826	}
93827	return ret, nil
93828	// {
93829	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
93830	//   "httpMethod": "POST",
93831	//   "id": "compute.projects.disableXpnResource",
93832	//   "parameterOrder": [
93833	//     "project"
93834	//   ],
93835	//   "parameters": {
93836	//     "project": {
93837	//       "description": "Project ID for this request.",
93838	//       "location": "path",
93839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93840	//       "required": true,
93841	//       "type": "string"
93842	//     },
93843	//     "requestId": {
93844	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93845	//       "location": "query",
93846	//       "type": "string"
93847	//     }
93848	//   },
93849	//   "path": "{project}/disableXpnResource",
93850	//   "request": {
93851	//     "$ref": "ProjectsDisableXpnResourceRequest"
93852	//   },
93853	//   "response": {
93854	//     "$ref": "Operation"
93855	//   },
93856	//   "scopes": [
93857	//     "https://www.googleapis.com/auth/cloud-platform",
93858	//     "https://www.googleapis.com/auth/compute"
93859	//   ]
93860	// }
93861
93862}
93863
93864// method id "compute.projects.enableXpnHost":
93865
93866type ProjectsEnableXpnHostCall struct {
93867	s          *Service
93868	project    string
93869	urlParams_ gensupport.URLParams
93870	ctx_       context.Context
93871	header_    http.Header
93872}
93873
93874// EnableXpnHost: Enable this project as a shared VPC host project.
93875func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
93876	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93877	c.project = project
93878	return c
93879}
93880
93881// RequestId sets the optional parameter "requestId": An optional
93882// request ID to identify requests. Specify a unique request ID so that
93883// if you must retry your request, the server will know to ignore the
93884// request if it has already been completed.
93885//
93886// For example, consider a situation where you make an initial request
93887// and the request times out. If you make the request again with the
93888// same request ID, the server can check if original operation with the
93889// same request ID was received, and if so, will ignore the second
93890// request. This prevents clients from accidentally creating duplicate
93891// commitments.
93892//
93893// The request ID must be a valid UUID with the exception that zero UUID
93894// is not supported (00000000-0000-0000-0000-000000000000).
93895func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
93896	c.urlParams_.Set("requestId", requestId)
93897	return c
93898}
93899
93900// Fields allows partial responses to be retrieved. See
93901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93902// for more information.
93903func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
93904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93905	return c
93906}
93907
93908// Context sets the context to be used in this call's Do method. Any
93909// pending HTTP request will be aborted if the provided context is
93910// canceled.
93911func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
93912	c.ctx_ = ctx
93913	return c
93914}
93915
93916// Header returns an http.Header that can be modified by the caller to
93917// add HTTP headers to the request.
93918func (c *ProjectsEnableXpnHostCall) Header() http.Header {
93919	if c.header_ == nil {
93920		c.header_ = make(http.Header)
93921	}
93922	return c.header_
93923}
93924
93925func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
93926	reqHeaders := make(http.Header)
93927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93928	for k, v := range c.header_ {
93929		reqHeaders[k] = v
93930	}
93931	reqHeaders.Set("User-Agent", c.s.userAgent())
93932	var body io.Reader = nil
93933	c.urlParams_.Set("alt", alt)
93934	c.urlParams_.Set("prettyPrint", "false")
93935	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
93936	urls += "?" + c.urlParams_.Encode()
93937	req, err := http.NewRequest("POST", urls, body)
93938	if err != nil {
93939		return nil, err
93940	}
93941	req.Header = reqHeaders
93942	googleapi.Expand(req.URL, map[string]string{
93943		"project": c.project,
93944	})
93945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93946}
93947
93948// Do executes the "compute.projects.enableXpnHost" call.
93949// Exactly one of *Operation or error will be non-nil. Any non-2xx
93950// status code is an error. Response headers are in either
93951// *Operation.ServerResponse.Header or (if a response was returned at
93952// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93953// to check whether the returned error was because
93954// http.StatusNotModified was returned.
93955func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93956	gensupport.SetOptions(c.urlParams_, opts...)
93957	res, err := c.doRequest("json")
93958	if res != nil && res.StatusCode == http.StatusNotModified {
93959		if res.Body != nil {
93960			res.Body.Close()
93961		}
93962		return nil, &googleapi.Error{
93963			Code:   res.StatusCode,
93964			Header: res.Header,
93965		}
93966	}
93967	if err != nil {
93968		return nil, err
93969	}
93970	defer googleapi.CloseBody(res)
93971	if err := googleapi.CheckResponse(res); err != nil {
93972		return nil, err
93973	}
93974	ret := &Operation{
93975		ServerResponse: googleapi.ServerResponse{
93976			Header:         res.Header,
93977			HTTPStatusCode: res.StatusCode,
93978		},
93979	}
93980	target := &ret
93981	if err := gensupport.DecodeResponse(target, res); err != nil {
93982		return nil, err
93983	}
93984	return ret, nil
93985	// {
93986	//   "description": "Enable this project as a shared VPC host project.",
93987	//   "httpMethod": "POST",
93988	//   "id": "compute.projects.enableXpnHost",
93989	//   "parameterOrder": [
93990	//     "project"
93991	//   ],
93992	//   "parameters": {
93993	//     "project": {
93994	//       "description": "Project ID for this request.",
93995	//       "location": "path",
93996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93997	//       "required": true,
93998	//       "type": "string"
93999	//     },
94000	//     "requestId": {
94001	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94002	//       "location": "query",
94003	//       "type": "string"
94004	//     }
94005	//   },
94006	//   "path": "{project}/enableXpnHost",
94007	//   "response": {
94008	//     "$ref": "Operation"
94009	//   },
94010	//   "scopes": [
94011	//     "https://www.googleapis.com/auth/cloud-platform",
94012	//     "https://www.googleapis.com/auth/compute"
94013	//   ]
94014	// }
94015
94016}
94017
94018// method id "compute.projects.enableXpnResource":
94019
94020type ProjectsEnableXpnResourceCall struct {
94021	s                                *Service
94022	project                          string
94023	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
94024	urlParams_                       gensupport.URLParams
94025	ctx_                             context.Context
94026	header_                          http.Header
94027}
94028
94029// EnableXpnResource: Enable service resource (a.k.a service project)
94030// for a host project, so that subnets in the host project can be used
94031// by instances in the service project.
94032func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
94033	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94034	c.project = project
94035	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
94036	return c
94037}
94038
94039// RequestId sets the optional parameter "requestId": An optional
94040// request ID to identify requests. Specify a unique request ID so that
94041// if you must retry your request, the server will know to ignore the
94042// request if it has already been completed.
94043//
94044// For example, consider a situation where you make an initial request
94045// and the request times out. If you make the request again with the
94046// same request ID, the server can check if original operation with the
94047// same request ID was received, and if so, will ignore the second
94048// request. This prevents clients from accidentally creating duplicate
94049// commitments.
94050//
94051// The request ID must be a valid UUID with the exception that zero UUID
94052// is not supported (00000000-0000-0000-0000-000000000000).
94053func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
94054	c.urlParams_.Set("requestId", requestId)
94055	return c
94056}
94057
94058// Fields allows partial responses to be retrieved. See
94059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94060// for more information.
94061func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
94062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94063	return c
94064}
94065
94066// Context sets the context to be used in this call's Do method. Any
94067// pending HTTP request will be aborted if the provided context is
94068// canceled.
94069func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
94070	c.ctx_ = ctx
94071	return c
94072}
94073
94074// Header returns an http.Header that can be modified by the caller to
94075// add HTTP headers to the request.
94076func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
94077	if c.header_ == nil {
94078		c.header_ = make(http.Header)
94079	}
94080	return c.header_
94081}
94082
94083func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
94084	reqHeaders := make(http.Header)
94085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94086	for k, v := range c.header_ {
94087		reqHeaders[k] = v
94088	}
94089	reqHeaders.Set("User-Agent", c.s.userAgent())
94090	var body io.Reader = nil
94091	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
94092	if err != nil {
94093		return nil, err
94094	}
94095	reqHeaders.Set("Content-Type", "application/json")
94096	c.urlParams_.Set("alt", alt)
94097	c.urlParams_.Set("prettyPrint", "false")
94098	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
94099	urls += "?" + c.urlParams_.Encode()
94100	req, err := http.NewRequest("POST", urls, body)
94101	if err != nil {
94102		return nil, err
94103	}
94104	req.Header = reqHeaders
94105	googleapi.Expand(req.URL, map[string]string{
94106		"project": c.project,
94107	})
94108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94109}
94110
94111// Do executes the "compute.projects.enableXpnResource" call.
94112// Exactly one of *Operation or error will be non-nil. Any non-2xx
94113// status code is an error. Response headers are in either
94114// *Operation.ServerResponse.Header or (if a response was returned at
94115// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94116// to check whether the returned error was because
94117// http.StatusNotModified was returned.
94118func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94119	gensupport.SetOptions(c.urlParams_, opts...)
94120	res, err := c.doRequest("json")
94121	if res != nil && res.StatusCode == http.StatusNotModified {
94122		if res.Body != nil {
94123			res.Body.Close()
94124		}
94125		return nil, &googleapi.Error{
94126			Code:   res.StatusCode,
94127			Header: res.Header,
94128		}
94129	}
94130	if err != nil {
94131		return nil, err
94132	}
94133	defer googleapi.CloseBody(res)
94134	if err := googleapi.CheckResponse(res); err != nil {
94135		return nil, err
94136	}
94137	ret := &Operation{
94138		ServerResponse: googleapi.ServerResponse{
94139			Header:         res.Header,
94140			HTTPStatusCode: res.StatusCode,
94141		},
94142	}
94143	target := &ret
94144	if err := gensupport.DecodeResponse(target, res); err != nil {
94145		return nil, err
94146	}
94147	return ret, nil
94148	// {
94149	//   "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.",
94150	//   "httpMethod": "POST",
94151	//   "id": "compute.projects.enableXpnResource",
94152	//   "parameterOrder": [
94153	//     "project"
94154	//   ],
94155	//   "parameters": {
94156	//     "project": {
94157	//       "description": "Project ID for this request.",
94158	//       "location": "path",
94159	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94160	//       "required": true,
94161	//       "type": "string"
94162	//     },
94163	//     "requestId": {
94164	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94165	//       "location": "query",
94166	//       "type": "string"
94167	//     }
94168	//   },
94169	//   "path": "{project}/enableXpnResource",
94170	//   "request": {
94171	//     "$ref": "ProjectsEnableXpnResourceRequest"
94172	//   },
94173	//   "response": {
94174	//     "$ref": "Operation"
94175	//   },
94176	//   "scopes": [
94177	//     "https://www.googleapis.com/auth/cloud-platform",
94178	//     "https://www.googleapis.com/auth/compute"
94179	//   ]
94180	// }
94181
94182}
94183
94184// method id "compute.projects.get":
94185
94186type ProjectsGetCall struct {
94187	s            *Service
94188	project      string
94189	urlParams_   gensupport.URLParams
94190	ifNoneMatch_ string
94191	ctx_         context.Context
94192	header_      http.Header
94193}
94194
94195// Get: Returns the specified Project resource.
94196// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
94197func (r *ProjectsService) Get(project string) *ProjectsGetCall {
94198	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94199	c.project = project
94200	return c
94201}
94202
94203// Fields allows partial responses to be retrieved. See
94204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94205// for more information.
94206func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
94207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94208	return c
94209}
94210
94211// IfNoneMatch sets the optional parameter which makes the operation
94212// fail if the object's ETag matches the given value. This is useful for
94213// getting updates only after the object has changed since the last
94214// request. Use googleapi.IsNotModified to check whether the response
94215// error from Do is the result of In-None-Match.
94216func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
94217	c.ifNoneMatch_ = entityTag
94218	return c
94219}
94220
94221// Context sets the context to be used in this call's Do method. Any
94222// pending HTTP request will be aborted if the provided context is
94223// canceled.
94224func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
94225	c.ctx_ = ctx
94226	return c
94227}
94228
94229// Header returns an http.Header that can be modified by the caller to
94230// add HTTP headers to the request.
94231func (c *ProjectsGetCall) Header() http.Header {
94232	if c.header_ == nil {
94233		c.header_ = make(http.Header)
94234	}
94235	return c.header_
94236}
94237
94238func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
94239	reqHeaders := make(http.Header)
94240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94241	for k, v := range c.header_ {
94242		reqHeaders[k] = v
94243	}
94244	reqHeaders.Set("User-Agent", c.s.userAgent())
94245	if c.ifNoneMatch_ != "" {
94246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94247	}
94248	var body io.Reader = nil
94249	c.urlParams_.Set("alt", alt)
94250	c.urlParams_.Set("prettyPrint", "false")
94251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
94252	urls += "?" + c.urlParams_.Encode()
94253	req, err := http.NewRequest("GET", urls, body)
94254	if err != nil {
94255		return nil, err
94256	}
94257	req.Header = reqHeaders
94258	googleapi.Expand(req.URL, map[string]string{
94259		"project": c.project,
94260	})
94261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94262}
94263
94264// Do executes the "compute.projects.get" call.
94265// Exactly one of *Project or error will be non-nil. Any non-2xx status
94266// code is an error. Response headers are in either
94267// *Project.ServerResponse.Header or (if a response was returned at all)
94268// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
94269// check whether the returned error was because http.StatusNotModified
94270// was returned.
94271func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
94272	gensupport.SetOptions(c.urlParams_, opts...)
94273	res, err := c.doRequest("json")
94274	if res != nil && res.StatusCode == http.StatusNotModified {
94275		if res.Body != nil {
94276			res.Body.Close()
94277		}
94278		return nil, &googleapi.Error{
94279			Code:   res.StatusCode,
94280			Header: res.Header,
94281		}
94282	}
94283	if err != nil {
94284		return nil, err
94285	}
94286	defer googleapi.CloseBody(res)
94287	if err := googleapi.CheckResponse(res); err != nil {
94288		return nil, err
94289	}
94290	ret := &Project{
94291		ServerResponse: googleapi.ServerResponse{
94292			Header:         res.Header,
94293			HTTPStatusCode: res.StatusCode,
94294		},
94295	}
94296	target := &ret
94297	if err := gensupport.DecodeResponse(target, res); err != nil {
94298		return nil, err
94299	}
94300	return ret, nil
94301	// {
94302	//   "description": "Returns the specified Project resource.",
94303	//   "httpMethod": "GET",
94304	//   "id": "compute.projects.get",
94305	//   "parameterOrder": [
94306	//     "project"
94307	//   ],
94308	//   "parameters": {
94309	//     "project": {
94310	//       "description": "Project ID for this request.",
94311	//       "location": "path",
94312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94313	//       "required": true,
94314	//       "type": "string"
94315	//     }
94316	//   },
94317	//   "path": "{project}",
94318	//   "response": {
94319	//     "$ref": "Project"
94320	//   },
94321	//   "scopes": [
94322	//     "https://www.googleapis.com/auth/cloud-platform",
94323	//     "https://www.googleapis.com/auth/compute",
94324	//     "https://www.googleapis.com/auth/compute.readonly"
94325	//   ]
94326	// }
94327
94328}
94329
94330// method id "compute.projects.getXpnHost":
94331
94332type ProjectsGetXpnHostCall struct {
94333	s            *Service
94334	project      string
94335	urlParams_   gensupport.URLParams
94336	ifNoneMatch_ string
94337	ctx_         context.Context
94338	header_      http.Header
94339}
94340
94341// GetXpnHost: Gets the shared VPC host project that this project links
94342// to. May be empty if no link exists.
94343func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
94344	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94345	c.project = project
94346	return c
94347}
94348
94349// Fields allows partial responses to be retrieved. See
94350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94351// for more information.
94352func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
94353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94354	return c
94355}
94356
94357// IfNoneMatch sets the optional parameter which makes the operation
94358// fail if the object's ETag matches the given value. This is useful for
94359// getting updates only after the object has changed since the last
94360// request. Use googleapi.IsNotModified to check whether the response
94361// error from Do is the result of In-None-Match.
94362func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
94363	c.ifNoneMatch_ = entityTag
94364	return c
94365}
94366
94367// Context sets the context to be used in this call's Do method. Any
94368// pending HTTP request will be aborted if the provided context is
94369// canceled.
94370func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
94371	c.ctx_ = ctx
94372	return c
94373}
94374
94375// Header returns an http.Header that can be modified by the caller to
94376// add HTTP headers to the request.
94377func (c *ProjectsGetXpnHostCall) Header() http.Header {
94378	if c.header_ == nil {
94379		c.header_ = make(http.Header)
94380	}
94381	return c.header_
94382}
94383
94384func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
94385	reqHeaders := make(http.Header)
94386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94387	for k, v := range c.header_ {
94388		reqHeaders[k] = v
94389	}
94390	reqHeaders.Set("User-Agent", c.s.userAgent())
94391	if c.ifNoneMatch_ != "" {
94392		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94393	}
94394	var body io.Reader = nil
94395	c.urlParams_.Set("alt", alt)
94396	c.urlParams_.Set("prettyPrint", "false")
94397	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
94398	urls += "?" + c.urlParams_.Encode()
94399	req, err := http.NewRequest("GET", urls, body)
94400	if err != nil {
94401		return nil, err
94402	}
94403	req.Header = reqHeaders
94404	googleapi.Expand(req.URL, map[string]string{
94405		"project": c.project,
94406	})
94407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94408}
94409
94410// Do executes the "compute.projects.getXpnHost" call.
94411// Exactly one of *Project or error will be non-nil. Any non-2xx status
94412// code is an error. Response headers are in either
94413// *Project.ServerResponse.Header or (if a response was returned at all)
94414// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
94415// check whether the returned error was because http.StatusNotModified
94416// was returned.
94417func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
94418	gensupport.SetOptions(c.urlParams_, opts...)
94419	res, err := c.doRequest("json")
94420	if res != nil && res.StatusCode == http.StatusNotModified {
94421		if res.Body != nil {
94422			res.Body.Close()
94423		}
94424		return nil, &googleapi.Error{
94425			Code:   res.StatusCode,
94426			Header: res.Header,
94427		}
94428	}
94429	if err != nil {
94430		return nil, err
94431	}
94432	defer googleapi.CloseBody(res)
94433	if err := googleapi.CheckResponse(res); err != nil {
94434		return nil, err
94435	}
94436	ret := &Project{
94437		ServerResponse: googleapi.ServerResponse{
94438			Header:         res.Header,
94439			HTTPStatusCode: res.StatusCode,
94440		},
94441	}
94442	target := &ret
94443	if err := gensupport.DecodeResponse(target, res); err != nil {
94444		return nil, err
94445	}
94446	return ret, nil
94447	// {
94448	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
94449	//   "httpMethod": "GET",
94450	//   "id": "compute.projects.getXpnHost",
94451	//   "parameterOrder": [
94452	//     "project"
94453	//   ],
94454	//   "parameters": {
94455	//     "project": {
94456	//       "description": "Project ID for this request.",
94457	//       "location": "path",
94458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94459	//       "required": true,
94460	//       "type": "string"
94461	//     }
94462	//   },
94463	//   "path": "{project}/getXpnHost",
94464	//   "response": {
94465	//     "$ref": "Project"
94466	//   },
94467	//   "scopes": [
94468	//     "https://www.googleapis.com/auth/cloud-platform",
94469	//     "https://www.googleapis.com/auth/compute"
94470	//   ]
94471	// }
94472
94473}
94474
94475// method id "compute.projects.getXpnResources":
94476
94477type ProjectsGetXpnResourcesCall struct {
94478	s            *Service
94479	project      string
94480	urlParams_   gensupport.URLParams
94481	ifNoneMatch_ string
94482	ctx_         context.Context
94483	header_      http.Header
94484}
94485
94486// GetXpnResources: Gets service resources (a.k.a service project)
94487// associated with this host project.
94488func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
94489	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94490	c.project = project
94491	return c
94492}
94493
94494// Filter sets the optional parameter "filter": A filter expression that
94495// filters resources listed in the response. The expression must specify
94496// the field name, a comparison operator, and the value that you want to
94497// use for filtering. The value must be a string, a number, or a
94498// boolean. The comparison operator must be either `=`, `!=`, `>`, or
94499// `<`.
94500//
94501// For example, if you are filtering Compute Engine instances, you can
94502// exclude instances named `example-instance` by specifying `name !=
94503// example-instance`.
94504//
94505// You can also filter nested fields. For example, you could specify
94506// `scheduling.automaticRestart = false` to include instances only if
94507// they are not scheduled for automatic restarts. You can use filtering
94508// on nested fields to filter based on resource labels.
94509//
94510// To filter on multiple expressions, provide each separate expression
94511// within parentheses. For example: ``` (scheduling.automaticRestart =
94512// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
94513// is an `AND` expression. However, you can include `AND` and `OR`
94514// expressions explicitly. For example: ``` (cpuPlatform = "Intel
94515// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
94516// (scheduling.automaticRestart = true) ```
94517func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
94518	c.urlParams_.Set("filter", filter)
94519	return c
94520}
94521
94522// MaxResults sets the optional parameter "maxResults": The maximum
94523// number of results per page that should be returned. If the number of
94524// available results is larger than `maxResults`, Compute Engine returns
94525// a `nextPageToken` that can be used to get the next page of results in
94526// subsequent list requests. Acceptable values are `0` to `500`,
94527// inclusive. (Default: `500`)
94528func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
94529	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94530	return c
94531}
94532
94533// OrderBy sets the optional parameter "orderBy": Sorts list results by
94534// a certain order. By default, results are returned in alphanumerical
94535// order based on the resource name.
94536//
94537// You can also sort results in descending order based on the creation
94538// timestamp using `orderBy="creationTimestamp desc". This sorts
94539// results based on the `creationTimestamp` field in reverse
94540// chronological order (newest result first). Use this to sort resources
94541// like operations so that the newest operation is returned
94542// first.
94543//
94544// Currently, only sorting by `name` or `creationTimestamp desc` is
94545// supported.
94546func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
94547	c.urlParams_.Set("orderBy", orderBy)
94548	return c
94549}
94550
94551// PageToken sets the optional parameter "pageToken": Specifies a page
94552// token to use. Set `pageToken` to the `nextPageToken` returned by a
94553// previous list request to get the next page of results.
94554func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
94555	c.urlParams_.Set("pageToken", pageToken)
94556	return c
94557}
94558
94559// Fields allows partial responses to be retrieved. See
94560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94561// for more information.
94562func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
94563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94564	return c
94565}
94566
94567// IfNoneMatch sets the optional parameter which makes the operation
94568// fail if the object's ETag matches the given value. This is useful for
94569// getting updates only after the object has changed since the last
94570// request. Use googleapi.IsNotModified to check whether the response
94571// error from Do is the result of In-None-Match.
94572func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
94573	c.ifNoneMatch_ = entityTag
94574	return c
94575}
94576
94577// Context sets the context to be used in this call's Do method. Any
94578// pending HTTP request will be aborted if the provided context is
94579// canceled.
94580func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
94581	c.ctx_ = ctx
94582	return c
94583}
94584
94585// Header returns an http.Header that can be modified by the caller to
94586// add HTTP headers to the request.
94587func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
94588	if c.header_ == nil {
94589		c.header_ = make(http.Header)
94590	}
94591	return c.header_
94592}
94593
94594func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
94595	reqHeaders := make(http.Header)
94596	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94597	for k, v := range c.header_ {
94598		reqHeaders[k] = v
94599	}
94600	reqHeaders.Set("User-Agent", c.s.userAgent())
94601	if c.ifNoneMatch_ != "" {
94602		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94603	}
94604	var body io.Reader = nil
94605	c.urlParams_.Set("alt", alt)
94606	c.urlParams_.Set("prettyPrint", "false")
94607	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
94608	urls += "?" + c.urlParams_.Encode()
94609	req, err := http.NewRequest("GET", urls, body)
94610	if err != nil {
94611		return nil, err
94612	}
94613	req.Header = reqHeaders
94614	googleapi.Expand(req.URL, map[string]string{
94615		"project": c.project,
94616	})
94617	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94618}
94619
94620// Do executes the "compute.projects.getXpnResources" call.
94621// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
94622// non-2xx status code is an error. Response headers are in either
94623// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
94624// returned at all) in error.(*googleapi.Error).Header. Use
94625// googleapi.IsNotModified to check whether the returned error was
94626// because http.StatusNotModified was returned.
94627func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
94628	gensupport.SetOptions(c.urlParams_, opts...)
94629	res, err := c.doRequest("json")
94630	if res != nil && res.StatusCode == http.StatusNotModified {
94631		if res.Body != nil {
94632			res.Body.Close()
94633		}
94634		return nil, &googleapi.Error{
94635			Code:   res.StatusCode,
94636			Header: res.Header,
94637		}
94638	}
94639	if err != nil {
94640		return nil, err
94641	}
94642	defer googleapi.CloseBody(res)
94643	if err := googleapi.CheckResponse(res); err != nil {
94644		return nil, err
94645	}
94646	ret := &ProjectsGetXpnResources{
94647		ServerResponse: googleapi.ServerResponse{
94648			Header:         res.Header,
94649			HTTPStatusCode: res.StatusCode,
94650		},
94651	}
94652	target := &ret
94653	if err := gensupport.DecodeResponse(target, res); err != nil {
94654		return nil, err
94655	}
94656	return ret, nil
94657	// {
94658	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
94659	//   "httpMethod": "GET",
94660	//   "id": "compute.projects.getXpnResources",
94661	//   "parameterOrder": [
94662	//     "project"
94663	//   ],
94664	//   "parameters": {
94665	//     "filter": {
94666	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
94667	//       "location": "query",
94668	//       "type": "string"
94669	//     },
94670	//     "maxResults": {
94671	//       "default": "500",
94672	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
94673	//       "format": "uint32",
94674	//       "location": "query",
94675	//       "minimum": "0",
94676	//       "type": "integer"
94677	//     },
94678	//     "orderBy": {
94679	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
94680	//       "location": "query",
94681	//       "type": "string"
94682	//     },
94683	//     "pageToken": {
94684	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
94685	//       "location": "query",
94686	//       "type": "string"
94687	//     },
94688	//     "project": {
94689	//       "description": "Project ID for this request.",
94690	//       "location": "path",
94691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94692	//       "required": true,
94693	//       "type": "string"
94694	//     }
94695	//   },
94696	//   "path": "{project}/getXpnResources",
94697	//   "response": {
94698	//     "$ref": "ProjectsGetXpnResources"
94699	//   },
94700	//   "scopes": [
94701	//     "https://www.googleapis.com/auth/cloud-platform",
94702	//     "https://www.googleapis.com/auth/compute"
94703	//   ]
94704	// }
94705
94706}
94707
94708// Pages invokes f for each page of results.
94709// A non-nil error returned from f will halt the iteration.
94710// The provided context supersedes any context provided to the Context method.
94711func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
94712	c.ctx_ = ctx
94713	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94714	for {
94715		x, err := c.Do()
94716		if err != nil {
94717			return err
94718		}
94719		if err := f(x); err != nil {
94720			return err
94721		}
94722		if x.NextPageToken == "" {
94723			return nil
94724		}
94725		c.PageToken(x.NextPageToken)
94726	}
94727}
94728
94729// method id "compute.projects.listXpnHosts":
94730
94731type ProjectsListXpnHostsCall struct {
94732	s                           *Service
94733	project                     string
94734	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
94735	urlParams_                  gensupport.URLParams
94736	ctx_                        context.Context
94737	header_                     http.Header
94738}
94739
94740// ListXpnHosts: Lists all shared VPC host projects visible to the user
94741// in an organization.
94742func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
94743	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94744	c.project = project
94745	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
94746	return c
94747}
94748
94749// Filter sets the optional parameter "filter": A filter expression that
94750// filters resources listed in the response. The expression must specify
94751// the field name, a comparison operator, and the value that you want to
94752// use for filtering. The value must be a string, a number, or a
94753// boolean. The comparison operator must be either `=`, `!=`, `>`, or
94754// `<`.
94755//
94756// For example, if you are filtering Compute Engine instances, you can
94757// exclude instances named `example-instance` by specifying `name !=
94758// example-instance`.
94759//
94760// You can also filter nested fields. For example, you could specify
94761// `scheduling.automaticRestart = false` to include instances only if
94762// they are not scheduled for automatic restarts. You can use filtering
94763// on nested fields to filter based on resource labels.
94764//
94765// To filter on multiple expressions, provide each separate expression
94766// within parentheses. For example: ``` (scheduling.automaticRestart =
94767// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
94768// is an `AND` expression. However, you can include `AND` and `OR`
94769// expressions explicitly. For example: ``` (cpuPlatform = "Intel
94770// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
94771// (scheduling.automaticRestart = true) ```
94772func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
94773	c.urlParams_.Set("filter", filter)
94774	return c
94775}
94776
94777// MaxResults sets the optional parameter "maxResults": The maximum
94778// number of results per page that should be returned. If the number of
94779// available results is larger than `maxResults`, Compute Engine returns
94780// a `nextPageToken` that can be used to get the next page of results in
94781// subsequent list requests. Acceptable values are `0` to `500`,
94782// inclusive. (Default: `500`)
94783func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
94784	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94785	return c
94786}
94787
94788// OrderBy sets the optional parameter "orderBy": Sorts list results by
94789// a certain order. By default, results are returned in alphanumerical
94790// order based on the resource name.
94791//
94792// You can also sort results in descending order based on the creation
94793// timestamp using `orderBy="creationTimestamp desc". This sorts
94794// results based on the `creationTimestamp` field in reverse
94795// chronological order (newest result first). Use this to sort resources
94796// like operations so that the newest operation is returned
94797// first.
94798//
94799// Currently, only sorting by `name` or `creationTimestamp desc` is
94800// supported.
94801func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
94802	c.urlParams_.Set("orderBy", orderBy)
94803	return c
94804}
94805
94806// PageToken sets the optional parameter "pageToken": Specifies a page
94807// token to use. Set `pageToken` to the `nextPageToken` returned by a
94808// previous list request to get the next page of results.
94809func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
94810	c.urlParams_.Set("pageToken", pageToken)
94811	return c
94812}
94813
94814// Fields allows partial responses to be retrieved. See
94815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94816// for more information.
94817func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
94818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94819	return c
94820}
94821
94822// Context sets the context to be used in this call's Do method. Any
94823// pending HTTP request will be aborted if the provided context is
94824// canceled.
94825func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
94826	c.ctx_ = ctx
94827	return c
94828}
94829
94830// Header returns an http.Header that can be modified by the caller to
94831// add HTTP headers to the request.
94832func (c *ProjectsListXpnHostsCall) Header() http.Header {
94833	if c.header_ == nil {
94834		c.header_ = make(http.Header)
94835	}
94836	return c.header_
94837}
94838
94839func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
94840	reqHeaders := make(http.Header)
94841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94842	for k, v := range c.header_ {
94843		reqHeaders[k] = v
94844	}
94845	reqHeaders.Set("User-Agent", c.s.userAgent())
94846	var body io.Reader = nil
94847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
94848	if err != nil {
94849		return nil, err
94850	}
94851	reqHeaders.Set("Content-Type", "application/json")
94852	c.urlParams_.Set("alt", alt)
94853	c.urlParams_.Set("prettyPrint", "false")
94854	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
94855	urls += "?" + c.urlParams_.Encode()
94856	req, err := http.NewRequest("POST", urls, body)
94857	if err != nil {
94858		return nil, err
94859	}
94860	req.Header = reqHeaders
94861	googleapi.Expand(req.URL, map[string]string{
94862		"project": c.project,
94863	})
94864	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94865}
94866
94867// Do executes the "compute.projects.listXpnHosts" call.
94868// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
94869// status code is an error. Response headers are in either
94870// *XpnHostList.ServerResponse.Header or (if a response was returned at
94871// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94872// to check whether the returned error was because
94873// http.StatusNotModified was returned.
94874func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
94875	gensupport.SetOptions(c.urlParams_, opts...)
94876	res, err := c.doRequest("json")
94877	if res != nil && res.StatusCode == http.StatusNotModified {
94878		if res.Body != nil {
94879			res.Body.Close()
94880		}
94881		return nil, &googleapi.Error{
94882			Code:   res.StatusCode,
94883			Header: res.Header,
94884		}
94885	}
94886	if err != nil {
94887		return nil, err
94888	}
94889	defer googleapi.CloseBody(res)
94890	if err := googleapi.CheckResponse(res); err != nil {
94891		return nil, err
94892	}
94893	ret := &XpnHostList{
94894		ServerResponse: googleapi.ServerResponse{
94895			Header:         res.Header,
94896			HTTPStatusCode: res.StatusCode,
94897		},
94898	}
94899	target := &ret
94900	if err := gensupport.DecodeResponse(target, res); err != nil {
94901		return nil, err
94902	}
94903	return ret, nil
94904	// {
94905	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
94906	//   "httpMethod": "POST",
94907	//   "id": "compute.projects.listXpnHosts",
94908	//   "parameterOrder": [
94909	//     "project"
94910	//   ],
94911	//   "parameters": {
94912	//     "filter": {
94913	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
94914	//       "location": "query",
94915	//       "type": "string"
94916	//     },
94917	//     "maxResults": {
94918	//       "default": "500",
94919	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
94920	//       "format": "uint32",
94921	//       "location": "query",
94922	//       "minimum": "0",
94923	//       "type": "integer"
94924	//     },
94925	//     "orderBy": {
94926	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
94927	//       "location": "query",
94928	//       "type": "string"
94929	//     },
94930	//     "pageToken": {
94931	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
94932	//       "location": "query",
94933	//       "type": "string"
94934	//     },
94935	//     "project": {
94936	//       "description": "Project ID for this request.",
94937	//       "location": "path",
94938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94939	//       "required": true,
94940	//       "type": "string"
94941	//     }
94942	//   },
94943	//   "path": "{project}/listXpnHosts",
94944	//   "request": {
94945	//     "$ref": "ProjectsListXpnHostsRequest"
94946	//   },
94947	//   "response": {
94948	//     "$ref": "XpnHostList"
94949	//   },
94950	//   "scopes": [
94951	//     "https://www.googleapis.com/auth/cloud-platform",
94952	//     "https://www.googleapis.com/auth/compute"
94953	//   ]
94954	// }
94955
94956}
94957
94958// Pages invokes f for each page of results.
94959// A non-nil error returned from f will halt the iteration.
94960// The provided context supersedes any context provided to the Context method.
94961func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
94962	c.ctx_ = ctx
94963	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94964	for {
94965		x, err := c.Do()
94966		if err != nil {
94967			return err
94968		}
94969		if err := f(x); err != nil {
94970			return err
94971		}
94972		if x.NextPageToken == "" {
94973			return nil
94974		}
94975		c.PageToken(x.NextPageToken)
94976	}
94977}
94978
94979// method id "compute.projects.moveDisk":
94980
94981type ProjectsMoveDiskCall struct {
94982	s               *Service
94983	project         string
94984	diskmoverequest *DiskMoveRequest
94985	urlParams_      gensupport.URLParams
94986	ctx_            context.Context
94987	header_         http.Header
94988}
94989
94990// MoveDisk: Moves a persistent disk from one zone to another.
94991func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
94992	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94993	c.project = project
94994	c.diskmoverequest = diskmoverequest
94995	return c
94996}
94997
94998// RequestId sets the optional parameter "requestId": An optional
94999// request ID to identify requests. Specify a unique request ID so that
95000// if you must retry your request, the server will know to ignore the
95001// request if it has already been completed.
95002//
95003// For example, consider a situation where you make an initial request
95004// and the request times out. If you make the request again with the
95005// same request ID, the server can check if original operation with the
95006// same request ID was received, and if so, will ignore the second
95007// request. This prevents clients from accidentally creating duplicate
95008// commitments.
95009//
95010// The request ID must be a valid UUID with the exception that zero UUID
95011// is not supported (00000000-0000-0000-0000-000000000000).
95012func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
95013	c.urlParams_.Set("requestId", requestId)
95014	return c
95015}
95016
95017// Fields allows partial responses to be retrieved. See
95018// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95019// for more information.
95020func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
95021	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95022	return c
95023}
95024
95025// Context sets the context to be used in this call's Do method. Any
95026// pending HTTP request will be aborted if the provided context is
95027// canceled.
95028func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
95029	c.ctx_ = ctx
95030	return c
95031}
95032
95033// Header returns an http.Header that can be modified by the caller to
95034// add HTTP headers to the request.
95035func (c *ProjectsMoveDiskCall) Header() http.Header {
95036	if c.header_ == nil {
95037		c.header_ = make(http.Header)
95038	}
95039	return c.header_
95040}
95041
95042func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
95043	reqHeaders := make(http.Header)
95044	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95045	for k, v := range c.header_ {
95046		reqHeaders[k] = v
95047	}
95048	reqHeaders.Set("User-Agent", c.s.userAgent())
95049	var body io.Reader = nil
95050	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
95051	if err != nil {
95052		return nil, err
95053	}
95054	reqHeaders.Set("Content-Type", "application/json")
95055	c.urlParams_.Set("alt", alt)
95056	c.urlParams_.Set("prettyPrint", "false")
95057	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
95058	urls += "?" + c.urlParams_.Encode()
95059	req, err := http.NewRequest("POST", urls, body)
95060	if err != nil {
95061		return nil, err
95062	}
95063	req.Header = reqHeaders
95064	googleapi.Expand(req.URL, map[string]string{
95065		"project": c.project,
95066	})
95067	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95068}
95069
95070// Do executes the "compute.projects.moveDisk" call.
95071// Exactly one of *Operation or error will be non-nil. Any non-2xx
95072// status code is an error. Response headers are in either
95073// *Operation.ServerResponse.Header or (if a response was returned at
95074// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95075// to check whether the returned error was because
95076// http.StatusNotModified was returned.
95077func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95078	gensupport.SetOptions(c.urlParams_, opts...)
95079	res, err := c.doRequest("json")
95080	if res != nil && res.StatusCode == http.StatusNotModified {
95081		if res.Body != nil {
95082			res.Body.Close()
95083		}
95084		return nil, &googleapi.Error{
95085			Code:   res.StatusCode,
95086			Header: res.Header,
95087		}
95088	}
95089	if err != nil {
95090		return nil, err
95091	}
95092	defer googleapi.CloseBody(res)
95093	if err := googleapi.CheckResponse(res); err != nil {
95094		return nil, err
95095	}
95096	ret := &Operation{
95097		ServerResponse: googleapi.ServerResponse{
95098			Header:         res.Header,
95099			HTTPStatusCode: res.StatusCode,
95100		},
95101	}
95102	target := &ret
95103	if err := gensupport.DecodeResponse(target, res); err != nil {
95104		return nil, err
95105	}
95106	return ret, nil
95107	// {
95108	//   "description": "Moves a persistent disk from one zone to another.",
95109	//   "httpMethod": "POST",
95110	//   "id": "compute.projects.moveDisk",
95111	//   "parameterOrder": [
95112	//     "project"
95113	//   ],
95114	//   "parameters": {
95115	//     "project": {
95116	//       "description": "Project ID for this request.",
95117	//       "location": "path",
95118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95119	//       "required": true,
95120	//       "type": "string"
95121	//     },
95122	//     "requestId": {
95123	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95124	//       "location": "query",
95125	//       "type": "string"
95126	//     }
95127	//   },
95128	//   "path": "{project}/moveDisk",
95129	//   "request": {
95130	//     "$ref": "DiskMoveRequest"
95131	//   },
95132	//   "response": {
95133	//     "$ref": "Operation"
95134	//   },
95135	//   "scopes": [
95136	//     "https://www.googleapis.com/auth/cloud-platform",
95137	//     "https://www.googleapis.com/auth/compute"
95138	//   ]
95139	// }
95140
95141}
95142
95143// method id "compute.projects.moveInstance":
95144
95145type ProjectsMoveInstanceCall struct {
95146	s                   *Service
95147	project             string
95148	instancemoverequest *InstanceMoveRequest
95149	urlParams_          gensupport.URLParams
95150	ctx_                context.Context
95151	header_             http.Header
95152}
95153
95154// MoveInstance: Moves an instance and its attached persistent disks
95155// from one zone to another.
95156func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
95157	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95158	c.project = project
95159	c.instancemoverequest = instancemoverequest
95160	return c
95161}
95162
95163// RequestId sets the optional parameter "requestId": An optional
95164// request ID to identify requests. Specify a unique request ID so that
95165// if you must retry your request, the server will know to ignore the
95166// request if it has already been completed.
95167//
95168// For example, consider a situation where you make an initial request
95169// and the request times out. If you make the request again with the
95170// same request ID, the server can check if original operation with the
95171// same request ID was received, and if so, will ignore the second
95172// request. This prevents clients from accidentally creating duplicate
95173// commitments.
95174//
95175// The request ID must be a valid UUID with the exception that zero UUID
95176// is not supported (00000000-0000-0000-0000-000000000000).
95177func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
95178	c.urlParams_.Set("requestId", requestId)
95179	return c
95180}
95181
95182// Fields allows partial responses to be retrieved. See
95183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95184// for more information.
95185func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
95186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95187	return c
95188}
95189
95190// Context sets the context to be used in this call's Do method. Any
95191// pending HTTP request will be aborted if the provided context is
95192// canceled.
95193func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
95194	c.ctx_ = ctx
95195	return c
95196}
95197
95198// Header returns an http.Header that can be modified by the caller to
95199// add HTTP headers to the request.
95200func (c *ProjectsMoveInstanceCall) Header() http.Header {
95201	if c.header_ == nil {
95202		c.header_ = make(http.Header)
95203	}
95204	return c.header_
95205}
95206
95207func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
95208	reqHeaders := make(http.Header)
95209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95210	for k, v := range c.header_ {
95211		reqHeaders[k] = v
95212	}
95213	reqHeaders.Set("User-Agent", c.s.userAgent())
95214	var body io.Reader = nil
95215	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
95216	if err != nil {
95217		return nil, err
95218	}
95219	reqHeaders.Set("Content-Type", "application/json")
95220	c.urlParams_.Set("alt", alt)
95221	c.urlParams_.Set("prettyPrint", "false")
95222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
95223	urls += "?" + c.urlParams_.Encode()
95224	req, err := http.NewRequest("POST", urls, body)
95225	if err != nil {
95226		return nil, err
95227	}
95228	req.Header = reqHeaders
95229	googleapi.Expand(req.URL, map[string]string{
95230		"project": c.project,
95231	})
95232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95233}
95234
95235// Do executes the "compute.projects.moveInstance" call.
95236// Exactly one of *Operation or error will be non-nil. Any non-2xx
95237// status code is an error. Response headers are in either
95238// *Operation.ServerResponse.Header or (if a response was returned at
95239// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95240// to check whether the returned error was because
95241// http.StatusNotModified was returned.
95242func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95243	gensupport.SetOptions(c.urlParams_, opts...)
95244	res, err := c.doRequest("json")
95245	if res != nil && res.StatusCode == http.StatusNotModified {
95246		if res.Body != nil {
95247			res.Body.Close()
95248		}
95249		return nil, &googleapi.Error{
95250			Code:   res.StatusCode,
95251			Header: res.Header,
95252		}
95253	}
95254	if err != nil {
95255		return nil, err
95256	}
95257	defer googleapi.CloseBody(res)
95258	if err := googleapi.CheckResponse(res); err != nil {
95259		return nil, err
95260	}
95261	ret := &Operation{
95262		ServerResponse: googleapi.ServerResponse{
95263			Header:         res.Header,
95264			HTTPStatusCode: res.StatusCode,
95265		},
95266	}
95267	target := &ret
95268	if err := gensupport.DecodeResponse(target, res); err != nil {
95269		return nil, err
95270	}
95271	return ret, nil
95272	// {
95273	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
95274	//   "httpMethod": "POST",
95275	//   "id": "compute.projects.moveInstance",
95276	//   "parameterOrder": [
95277	//     "project"
95278	//   ],
95279	//   "parameters": {
95280	//     "project": {
95281	//       "description": "Project ID for this request.",
95282	//       "location": "path",
95283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95284	//       "required": true,
95285	//       "type": "string"
95286	//     },
95287	//     "requestId": {
95288	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95289	//       "location": "query",
95290	//       "type": "string"
95291	//     }
95292	//   },
95293	//   "path": "{project}/moveInstance",
95294	//   "request": {
95295	//     "$ref": "InstanceMoveRequest"
95296	//   },
95297	//   "response": {
95298	//     "$ref": "Operation"
95299	//   },
95300	//   "scopes": [
95301	//     "https://www.googleapis.com/auth/cloud-platform",
95302	//     "https://www.googleapis.com/auth/compute"
95303	//   ]
95304	// }
95305
95306}
95307
95308// method id "compute.projects.setCommonInstanceMetadata":
95309
95310type ProjectsSetCommonInstanceMetadataCall struct {
95311	s          *Service
95312	project    string
95313	metadata   *Metadata
95314	urlParams_ gensupport.URLParams
95315	ctx_       context.Context
95316	header_    http.Header
95317}
95318
95319// SetCommonInstanceMetadata: Sets metadata common to all instances
95320// within the specified project using the data included in the request.
95321// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
95322func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
95323	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95324	c.project = project
95325	c.metadata = metadata
95326	return c
95327}
95328
95329// RequestId sets the optional parameter "requestId": An optional
95330// request ID to identify requests. Specify a unique request ID so that
95331// if you must retry your request, the server will know to ignore the
95332// request if it has already been completed.
95333//
95334// For example, consider a situation where you make an initial request
95335// and the request times out. If you make the request again with the
95336// same request ID, the server can check if original operation with the
95337// same request ID was received, and if so, will ignore the second
95338// request. This prevents clients from accidentally creating duplicate
95339// commitments.
95340//
95341// The request ID must be a valid UUID with the exception that zero UUID
95342// is not supported (00000000-0000-0000-0000-000000000000).
95343func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
95344	c.urlParams_.Set("requestId", requestId)
95345	return c
95346}
95347
95348// Fields allows partial responses to be retrieved. See
95349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95350// for more information.
95351func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
95352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95353	return c
95354}
95355
95356// Context sets the context to be used in this call's Do method. Any
95357// pending HTTP request will be aborted if the provided context is
95358// canceled.
95359func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
95360	c.ctx_ = ctx
95361	return c
95362}
95363
95364// Header returns an http.Header that can be modified by the caller to
95365// add HTTP headers to the request.
95366func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
95367	if c.header_ == nil {
95368		c.header_ = make(http.Header)
95369	}
95370	return c.header_
95371}
95372
95373func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
95374	reqHeaders := make(http.Header)
95375	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95376	for k, v := range c.header_ {
95377		reqHeaders[k] = v
95378	}
95379	reqHeaders.Set("User-Agent", c.s.userAgent())
95380	var body io.Reader = nil
95381	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
95382	if err != nil {
95383		return nil, err
95384	}
95385	reqHeaders.Set("Content-Type", "application/json")
95386	c.urlParams_.Set("alt", alt)
95387	c.urlParams_.Set("prettyPrint", "false")
95388	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
95389	urls += "?" + c.urlParams_.Encode()
95390	req, err := http.NewRequest("POST", urls, body)
95391	if err != nil {
95392		return nil, err
95393	}
95394	req.Header = reqHeaders
95395	googleapi.Expand(req.URL, map[string]string{
95396		"project": c.project,
95397	})
95398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95399}
95400
95401// Do executes the "compute.projects.setCommonInstanceMetadata" call.
95402// Exactly one of *Operation or error will be non-nil. Any non-2xx
95403// status code is an error. Response headers are in either
95404// *Operation.ServerResponse.Header or (if a response was returned at
95405// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95406// to check whether the returned error was because
95407// http.StatusNotModified was returned.
95408func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95409	gensupport.SetOptions(c.urlParams_, opts...)
95410	res, err := c.doRequest("json")
95411	if res != nil && res.StatusCode == http.StatusNotModified {
95412		if res.Body != nil {
95413			res.Body.Close()
95414		}
95415		return nil, &googleapi.Error{
95416			Code:   res.StatusCode,
95417			Header: res.Header,
95418		}
95419	}
95420	if err != nil {
95421		return nil, err
95422	}
95423	defer googleapi.CloseBody(res)
95424	if err := googleapi.CheckResponse(res); err != nil {
95425		return nil, err
95426	}
95427	ret := &Operation{
95428		ServerResponse: googleapi.ServerResponse{
95429			Header:         res.Header,
95430			HTTPStatusCode: res.StatusCode,
95431		},
95432	}
95433	target := &ret
95434	if err := gensupport.DecodeResponse(target, res); err != nil {
95435		return nil, err
95436	}
95437	return ret, nil
95438	// {
95439	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
95440	//   "httpMethod": "POST",
95441	//   "id": "compute.projects.setCommonInstanceMetadata",
95442	//   "parameterOrder": [
95443	//     "project"
95444	//   ],
95445	//   "parameters": {
95446	//     "project": {
95447	//       "description": "Project ID for this request.",
95448	//       "location": "path",
95449	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95450	//       "required": true,
95451	//       "type": "string"
95452	//     },
95453	//     "requestId": {
95454	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95455	//       "location": "query",
95456	//       "type": "string"
95457	//     }
95458	//   },
95459	//   "path": "{project}/setCommonInstanceMetadata",
95460	//   "request": {
95461	//     "$ref": "Metadata"
95462	//   },
95463	//   "response": {
95464	//     "$ref": "Operation"
95465	//   },
95466	//   "scopes": [
95467	//     "https://www.googleapis.com/auth/cloud-platform",
95468	//     "https://www.googleapis.com/auth/compute"
95469	//   ]
95470	// }
95471
95472}
95473
95474// method id "compute.projects.setDefaultNetworkTier":
95475
95476type ProjectsSetDefaultNetworkTierCall struct {
95477	s                                    *Service
95478	project                              string
95479	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
95480	urlParams_                           gensupport.URLParams
95481	ctx_                                 context.Context
95482	header_                              http.Header
95483}
95484
95485// SetDefaultNetworkTier: Sets the default network tier of the project.
95486// The default network tier is used when an
95487// address/forwardingRule/instance is created without specifying the
95488// network tier field.
95489func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
95490	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95491	c.project = project
95492	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
95493	return c
95494}
95495
95496// RequestId sets the optional parameter "requestId": An optional
95497// request ID to identify requests. Specify a unique request ID so that
95498// if you must retry your request, the server will know to ignore the
95499// request if it has already been completed.
95500//
95501// For example, consider a situation where you make an initial request
95502// and the request times out. If you make the request again with the
95503// same request ID, the server can check if original operation with the
95504// same request ID was received, and if so, will ignore the second
95505// request. This prevents clients from accidentally creating duplicate
95506// commitments.
95507//
95508// The request ID must be a valid UUID with the exception that zero UUID
95509// is not supported (00000000-0000-0000-0000-000000000000).
95510func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
95511	c.urlParams_.Set("requestId", requestId)
95512	return c
95513}
95514
95515// Fields allows partial responses to be retrieved. See
95516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95517// for more information.
95518func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
95519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95520	return c
95521}
95522
95523// Context sets the context to be used in this call's Do method. Any
95524// pending HTTP request will be aborted if the provided context is
95525// canceled.
95526func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
95527	c.ctx_ = ctx
95528	return c
95529}
95530
95531// Header returns an http.Header that can be modified by the caller to
95532// add HTTP headers to the request.
95533func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
95534	if c.header_ == nil {
95535		c.header_ = make(http.Header)
95536	}
95537	return c.header_
95538}
95539
95540func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
95541	reqHeaders := make(http.Header)
95542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95543	for k, v := range c.header_ {
95544		reqHeaders[k] = v
95545	}
95546	reqHeaders.Set("User-Agent", c.s.userAgent())
95547	var body io.Reader = nil
95548	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
95549	if err != nil {
95550		return nil, err
95551	}
95552	reqHeaders.Set("Content-Type", "application/json")
95553	c.urlParams_.Set("alt", alt)
95554	c.urlParams_.Set("prettyPrint", "false")
95555	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultNetworkTier")
95556	urls += "?" + c.urlParams_.Encode()
95557	req, err := http.NewRequest("POST", urls, body)
95558	if err != nil {
95559		return nil, err
95560	}
95561	req.Header = reqHeaders
95562	googleapi.Expand(req.URL, map[string]string{
95563		"project": c.project,
95564	})
95565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95566}
95567
95568// Do executes the "compute.projects.setDefaultNetworkTier" call.
95569// Exactly one of *Operation or error will be non-nil. Any non-2xx
95570// status code is an error. Response headers are in either
95571// *Operation.ServerResponse.Header or (if a response was returned at
95572// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95573// to check whether the returned error was because
95574// http.StatusNotModified was returned.
95575func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95576	gensupport.SetOptions(c.urlParams_, opts...)
95577	res, err := c.doRequest("json")
95578	if res != nil && res.StatusCode == http.StatusNotModified {
95579		if res.Body != nil {
95580			res.Body.Close()
95581		}
95582		return nil, &googleapi.Error{
95583			Code:   res.StatusCode,
95584			Header: res.Header,
95585		}
95586	}
95587	if err != nil {
95588		return nil, err
95589	}
95590	defer googleapi.CloseBody(res)
95591	if err := googleapi.CheckResponse(res); err != nil {
95592		return nil, err
95593	}
95594	ret := &Operation{
95595		ServerResponse: googleapi.ServerResponse{
95596			Header:         res.Header,
95597			HTTPStatusCode: res.StatusCode,
95598		},
95599	}
95600	target := &ret
95601	if err := gensupport.DecodeResponse(target, res); err != nil {
95602		return nil, err
95603	}
95604	return ret, nil
95605	// {
95606	//   "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.",
95607	//   "httpMethod": "POST",
95608	//   "id": "compute.projects.setDefaultNetworkTier",
95609	//   "parameterOrder": [
95610	//     "project"
95611	//   ],
95612	//   "parameters": {
95613	//     "project": {
95614	//       "description": "Project ID for this request.",
95615	//       "location": "path",
95616	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95617	//       "required": true,
95618	//       "type": "string"
95619	//     },
95620	//     "requestId": {
95621	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95622	//       "location": "query",
95623	//       "type": "string"
95624	//     }
95625	//   },
95626	//   "path": "{project}/setDefaultNetworkTier",
95627	//   "request": {
95628	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
95629	//   },
95630	//   "response": {
95631	//     "$ref": "Operation"
95632	//   },
95633	//   "scopes": [
95634	//     "https://www.googleapis.com/auth/cloud-platform",
95635	//     "https://www.googleapis.com/auth/compute"
95636	//   ]
95637	// }
95638
95639}
95640
95641// method id "compute.projects.setUsageExportBucket":
95642
95643type ProjectsSetUsageExportBucketCall struct {
95644	s                   *Service
95645	project             string
95646	usageexportlocation *UsageExportLocation
95647	urlParams_          gensupport.URLParams
95648	ctx_                context.Context
95649	header_             http.Header
95650}
95651
95652// SetUsageExportBucket: Enables the usage export feature and sets the
95653// usage export bucket where reports are stored. If you provide an empty
95654// request body using this method, the usage export feature will be
95655// disabled.
95656// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
95657func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
95658	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95659	c.project = project
95660	c.usageexportlocation = usageexportlocation
95661	return c
95662}
95663
95664// RequestId sets the optional parameter "requestId": An optional
95665// request ID to identify requests. Specify a unique request ID so that
95666// if you must retry your request, the server will know to ignore the
95667// request if it has already been completed.
95668//
95669// For example, consider a situation where you make an initial request
95670// and the request times out. If you make the request again with the
95671// same request ID, the server can check if original operation with the
95672// same request ID was received, and if so, will ignore the second
95673// request. This prevents clients from accidentally creating duplicate
95674// commitments.
95675//
95676// The request ID must be a valid UUID with the exception that zero UUID
95677// is not supported (00000000-0000-0000-0000-000000000000).
95678func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
95679	c.urlParams_.Set("requestId", requestId)
95680	return c
95681}
95682
95683// Fields allows partial responses to be retrieved. See
95684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95685// for more information.
95686func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
95687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95688	return c
95689}
95690
95691// Context sets the context to be used in this call's Do method. Any
95692// pending HTTP request will be aborted if the provided context is
95693// canceled.
95694func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
95695	c.ctx_ = ctx
95696	return c
95697}
95698
95699// Header returns an http.Header that can be modified by the caller to
95700// add HTTP headers to the request.
95701func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
95702	if c.header_ == nil {
95703		c.header_ = make(http.Header)
95704	}
95705	return c.header_
95706}
95707
95708func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
95709	reqHeaders := make(http.Header)
95710	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95711	for k, v := range c.header_ {
95712		reqHeaders[k] = v
95713	}
95714	reqHeaders.Set("User-Agent", c.s.userAgent())
95715	var body io.Reader = nil
95716	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
95717	if err != nil {
95718		return nil, err
95719	}
95720	reqHeaders.Set("Content-Type", "application/json")
95721	c.urlParams_.Set("alt", alt)
95722	c.urlParams_.Set("prettyPrint", "false")
95723	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
95724	urls += "?" + c.urlParams_.Encode()
95725	req, err := http.NewRequest("POST", urls, body)
95726	if err != nil {
95727		return nil, err
95728	}
95729	req.Header = reqHeaders
95730	googleapi.Expand(req.URL, map[string]string{
95731		"project": c.project,
95732	})
95733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95734}
95735
95736// Do executes the "compute.projects.setUsageExportBucket" call.
95737// Exactly one of *Operation or error will be non-nil. Any non-2xx
95738// status code is an error. Response headers are in either
95739// *Operation.ServerResponse.Header or (if a response was returned at
95740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95741// to check whether the returned error was because
95742// http.StatusNotModified was returned.
95743func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95744	gensupport.SetOptions(c.urlParams_, opts...)
95745	res, err := c.doRequest("json")
95746	if res != nil && res.StatusCode == http.StatusNotModified {
95747		if res.Body != nil {
95748			res.Body.Close()
95749		}
95750		return nil, &googleapi.Error{
95751			Code:   res.StatusCode,
95752			Header: res.Header,
95753		}
95754	}
95755	if err != nil {
95756		return nil, err
95757	}
95758	defer googleapi.CloseBody(res)
95759	if err := googleapi.CheckResponse(res); err != nil {
95760		return nil, err
95761	}
95762	ret := &Operation{
95763		ServerResponse: googleapi.ServerResponse{
95764			Header:         res.Header,
95765			HTTPStatusCode: res.StatusCode,
95766		},
95767	}
95768	target := &ret
95769	if err := gensupport.DecodeResponse(target, res); err != nil {
95770		return nil, err
95771	}
95772	return ret, nil
95773	// {
95774	//   "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.",
95775	//   "httpMethod": "POST",
95776	//   "id": "compute.projects.setUsageExportBucket",
95777	//   "parameterOrder": [
95778	//     "project"
95779	//   ],
95780	//   "parameters": {
95781	//     "project": {
95782	//       "description": "Project ID for this request.",
95783	//       "location": "path",
95784	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95785	//       "required": true,
95786	//       "type": "string"
95787	//     },
95788	//     "requestId": {
95789	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95790	//       "location": "query",
95791	//       "type": "string"
95792	//     }
95793	//   },
95794	//   "path": "{project}/setUsageExportBucket",
95795	//   "request": {
95796	//     "$ref": "UsageExportLocation"
95797	//   },
95798	//   "response": {
95799	//     "$ref": "Operation"
95800	//   },
95801	//   "scopes": [
95802	//     "https://www.googleapis.com/auth/cloud-platform",
95803	//     "https://www.googleapis.com/auth/compute",
95804	//     "https://www.googleapis.com/auth/devstorage.full_control",
95805	//     "https://www.googleapis.com/auth/devstorage.read_only",
95806	//     "https://www.googleapis.com/auth/devstorage.read_write"
95807	//   ]
95808	// }
95809
95810}
95811
95812// method id "compute.regionAutoscalers.delete":
95813
95814type RegionAutoscalersDeleteCall struct {
95815	s          *Service
95816	project    string
95817	region     string
95818	autoscaler string
95819	urlParams_ gensupport.URLParams
95820	ctx_       context.Context
95821	header_    http.Header
95822}
95823
95824// Delete: Deletes the specified autoscaler.
95825func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
95826	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95827	c.project = project
95828	c.region = region
95829	c.autoscaler = autoscaler
95830	return c
95831}
95832
95833// RequestId sets the optional parameter "requestId": An optional
95834// request ID to identify requests. Specify a unique request ID so that
95835// if you must retry your request, the server will know to ignore the
95836// request if it has already been completed.
95837//
95838// For example, consider a situation where you make an initial request
95839// and the request times out. If you make the request again with the
95840// same request ID, the server can check if original operation with the
95841// same request ID was received, and if so, will ignore the second
95842// request. This prevents clients from accidentally creating duplicate
95843// commitments.
95844//
95845// The request ID must be a valid UUID with the exception that zero UUID
95846// is not supported (00000000-0000-0000-0000-000000000000).
95847func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
95848	c.urlParams_.Set("requestId", requestId)
95849	return c
95850}
95851
95852// Fields allows partial responses to be retrieved. See
95853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95854// for more information.
95855func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
95856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95857	return c
95858}
95859
95860// Context sets the context to be used in this call's Do method. Any
95861// pending HTTP request will be aborted if the provided context is
95862// canceled.
95863func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
95864	c.ctx_ = ctx
95865	return c
95866}
95867
95868// Header returns an http.Header that can be modified by the caller to
95869// add HTTP headers to the request.
95870func (c *RegionAutoscalersDeleteCall) Header() http.Header {
95871	if c.header_ == nil {
95872		c.header_ = make(http.Header)
95873	}
95874	return c.header_
95875}
95876
95877func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
95878	reqHeaders := make(http.Header)
95879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95880	for k, v := range c.header_ {
95881		reqHeaders[k] = v
95882	}
95883	reqHeaders.Set("User-Agent", c.s.userAgent())
95884	var body io.Reader = nil
95885	c.urlParams_.Set("alt", alt)
95886	c.urlParams_.Set("prettyPrint", "false")
95887	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
95888	urls += "?" + c.urlParams_.Encode()
95889	req, err := http.NewRequest("DELETE", urls, body)
95890	if err != nil {
95891		return nil, err
95892	}
95893	req.Header = reqHeaders
95894	googleapi.Expand(req.URL, map[string]string{
95895		"project":    c.project,
95896		"region":     c.region,
95897		"autoscaler": c.autoscaler,
95898	})
95899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95900}
95901
95902// Do executes the "compute.regionAutoscalers.delete" call.
95903// Exactly one of *Operation or error will be non-nil. Any non-2xx
95904// status code is an error. Response headers are in either
95905// *Operation.ServerResponse.Header or (if a response was returned at
95906// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95907// to check whether the returned error was because
95908// http.StatusNotModified was returned.
95909func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95910	gensupport.SetOptions(c.urlParams_, opts...)
95911	res, err := c.doRequest("json")
95912	if res != nil && res.StatusCode == http.StatusNotModified {
95913		if res.Body != nil {
95914			res.Body.Close()
95915		}
95916		return nil, &googleapi.Error{
95917			Code:   res.StatusCode,
95918			Header: res.Header,
95919		}
95920	}
95921	if err != nil {
95922		return nil, err
95923	}
95924	defer googleapi.CloseBody(res)
95925	if err := googleapi.CheckResponse(res); err != nil {
95926		return nil, err
95927	}
95928	ret := &Operation{
95929		ServerResponse: googleapi.ServerResponse{
95930			Header:         res.Header,
95931			HTTPStatusCode: res.StatusCode,
95932		},
95933	}
95934	target := &ret
95935	if err := gensupport.DecodeResponse(target, res); err != nil {
95936		return nil, err
95937	}
95938	return ret, nil
95939	// {
95940	//   "description": "Deletes the specified autoscaler.",
95941	//   "httpMethod": "DELETE",
95942	//   "id": "compute.regionAutoscalers.delete",
95943	//   "parameterOrder": [
95944	//     "project",
95945	//     "region",
95946	//     "autoscaler"
95947	//   ],
95948	//   "parameters": {
95949	//     "autoscaler": {
95950	//       "description": "Name of the autoscaler to delete.",
95951	//       "location": "path",
95952	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95953	//       "required": true,
95954	//       "type": "string"
95955	//     },
95956	//     "project": {
95957	//       "description": "Project ID for this request.",
95958	//       "location": "path",
95959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95960	//       "required": true,
95961	//       "type": "string"
95962	//     },
95963	//     "region": {
95964	//       "description": "Name of the region scoping this request.",
95965	//       "location": "path",
95966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95967	//       "required": true,
95968	//       "type": "string"
95969	//     },
95970	//     "requestId": {
95971	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95972	//       "location": "query",
95973	//       "type": "string"
95974	//     }
95975	//   },
95976	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
95977	//   "response": {
95978	//     "$ref": "Operation"
95979	//   },
95980	//   "scopes": [
95981	//     "https://www.googleapis.com/auth/cloud-platform",
95982	//     "https://www.googleapis.com/auth/compute"
95983	//   ]
95984	// }
95985
95986}
95987
95988// method id "compute.regionAutoscalers.get":
95989
95990type RegionAutoscalersGetCall struct {
95991	s            *Service
95992	project      string
95993	region       string
95994	autoscaler   string
95995	urlParams_   gensupport.URLParams
95996	ifNoneMatch_ string
95997	ctx_         context.Context
95998	header_      http.Header
95999}
96000
96001// Get: Returns the specified autoscaler.
96002func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
96003	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96004	c.project = project
96005	c.region = region
96006	c.autoscaler = autoscaler
96007	return c
96008}
96009
96010// Fields allows partial responses to be retrieved. See
96011// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96012// for more information.
96013func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
96014	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96015	return c
96016}
96017
96018// IfNoneMatch sets the optional parameter which makes the operation
96019// fail if the object's ETag matches the given value. This is useful for
96020// getting updates only after the object has changed since the last
96021// request. Use googleapi.IsNotModified to check whether the response
96022// error from Do is the result of In-None-Match.
96023func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
96024	c.ifNoneMatch_ = entityTag
96025	return c
96026}
96027
96028// Context sets the context to be used in this call's Do method. Any
96029// pending HTTP request will be aborted if the provided context is
96030// canceled.
96031func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
96032	c.ctx_ = ctx
96033	return c
96034}
96035
96036// Header returns an http.Header that can be modified by the caller to
96037// add HTTP headers to the request.
96038func (c *RegionAutoscalersGetCall) Header() http.Header {
96039	if c.header_ == nil {
96040		c.header_ = make(http.Header)
96041	}
96042	return c.header_
96043}
96044
96045func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
96046	reqHeaders := make(http.Header)
96047	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96048	for k, v := range c.header_ {
96049		reqHeaders[k] = v
96050	}
96051	reqHeaders.Set("User-Agent", c.s.userAgent())
96052	if c.ifNoneMatch_ != "" {
96053		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96054	}
96055	var body io.Reader = nil
96056	c.urlParams_.Set("alt", alt)
96057	c.urlParams_.Set("prettyPrint", "false")
96058	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
96059	urls += "?" + c.urlParams_.Encode()
96060	req, err := http.NewRequest("GET", urls, body)
96061	if err != nil {
96062		return nil, err
96063	}
96064	req.Header = reqHeaders
96065	googleapi.Expand(req.URL, map[string]string{
96066		"project":    c.project,
96067		"region":     c.region,
96068		"autoscaler": c.autoscaler,
96069	})
96070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96071}
96072
96073// Do executes the "compute.regionAutoscalers.get" call.
96074// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
96075// status code is an error. Response headers are in either
96076// *Autoscaler.ServerResponse.Header or (if a response was returned at
96077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96078// to check whether the returned error was because
96079// http.StatusNotModified was returned.
96080func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
96081	gensupport.SetOptions(c.urlParams_, opts...)
96082	res, err := c.doRequest("json")
96083	if res != nil && res.StatusCode == http.StatusNotModified {
96084		if res.Body != nil {
96085			res.Body.Close()
96086		}
96087		return nil, &googleapi.Error{
96088			Code:   res.StatusCode,
96089			Header: res.Header,
96090		}
96091	}
96092	if err != nil {
96093		return nil, err
96094	}
96095	defer googleapi.CloseBody(res)
96096	if err := googleapi.CheckResponse(res); err != nil {
96097		return nil, err
96098	}
96099	ret := &Autoscaler{
96100		ServerResponse: googleapi.ServerResponse{
96101			Header:         res.Header,
96102			HTTPStatusCode: res.StatusCode,
96103		},
96104	}
96105	target := &ret
96106	if err := gensupport.DecodeResponse(target, res); err != nil {
96107		return nil, err
96108	}
96109	return ret, nil
96110	// {
96111	//   "description": "Returns the specified autoscaler.",
96112	//   "httpMethod": "GET",
96113	//   "id": "compute.regionAutoscalers.get",
96114	//   "parameterOrder": [
96115	//     "project",
96116	//     "region",
96117	//     "autoscaler"
96118	//   ],
96119	//   "parameters": {
96120	//     "autoscaler": {
96121	//       "description": "Name of the autoscaler to return.",
96122	//       "location": "path",
96123	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96124	//       "required": true,
96125	//       "type": "string"
96126	//     },
96127	//     "project": {
96128	//       "description": "Project ID for this request.",
96129	//       "location": "path",
96130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96131	//       "required": true,
96132	//       "type": "string"
96133	//     },
96134	//     "region": {
96135	//       "description": "Name of the region scoping this request.",
96136	//       "location": "path",
96137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96138	//       "required": true,
96139	//       "type": "string"
96140	//     }
96141	//   },
96142	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
96143	//   "response": {
96144	//     "$ref": "Autoscaler"
96145	//   },
96146	//   "scopes": [
96147	//     "https://www.googleapis.com/auth/cloud-platform",
96148	//     "https://www.googleapis.com/auth/compute",
96149	//     "https://www.googleapis.com/auth/compute.readonly"
96150	//   ]
96151	// }
96152
96153}
96154
96155// method id "compute.regionAutoscalers.insert":
96156
96157type RegionAutoscalersInsertCall struct {
96158	s          *Service
96159	project    string
96160	region     string
96161	autoscaler *Autoscaler
96162	urlParams_ gensupport.URLParams
96163	ctx_       context.Context
96164	header_    http.Header
96165}
96166
96167// Insert: Creates an autoscaler in the specified project using the data
96168// included in the request.
96169func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
96170	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96171	c.project = project
96172	c.region = region
96173	c.autoscaler = autoscaler
96174	return c
96175}
96176
96177// RequestId sets the optional parameter "requestId": An optional
96178// request ID to identify requests. Specify a unique request ID so that
96179// if you must retry your request, the server will know to ignore the
96180// request if it has already been completed.
96181//
96182// For example, consider a situation where you make an initial request
96183// and the request times out. If you make the request again with the
96184// same request ID, the server can check if original operation with the
96185// same request ID was received, and if so, will ignore the second
96186// request. This prevents clients from accidentally creating duplicate
96187// commitments.
96188//
96189// The request ID must be a valid UUID with the exception that zero UUID
96190// is not supported (00000000-0000-0000-0000-000000000000).
96191func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
96192	c.urlParams_.Set("requestId", requestId)
96193	return c
96194}
96195
96196// Fields allows partial responses to be retrieved. See
96197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96198// for more information.
96199func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
96200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96201	return c
96202}
96203
96204// Context sets the context to be used in this call's Do method. Any
96205// pending HTTP request will be aborted if the provided context is
96206// canceled.
96207func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
96208	c.ctx_ = ctx
96209	return c
96210}
96211
96212// Header returns an http.Header that can be modified by the caller to
96213// add HTTP headers to the request.
96214func (c *RegionAutoscalersInsertCall) Header() http.Header {
96215	if c.header_ == nil {
96216		c.header_ = make(http.Header)
96217	}
96218	return c.header_
96219}
96220
96221func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
96222	reqHeaders := make(http.Header)
96223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96224	for k, v := range c.header_ {
96225		reqHeaders[k] = v
96226	}
96227	reqHeaders.Set("User-Agent", c.s.userAgent())
96228	var body io.Reader = nil
96229	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
96230	if err != nil {
96231		return nil, err
96232	}
96233	reqHeaders.Set("Content-Type", "application/json")
96234	c.urlParams_.Set("alt", alt)
96235	c.urlParams_.Set("prettyPrint", "false")
96236	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
96237	urls += "?" + c.urlParams_.Encode()
96238	req, err := http.NewRequest("POST", urls, body)
96239	if err != nil {
96240		return nil, err
96241	}
96242	req.Header = reqHeaders
96243	googleapi.Expand(req.URL, map[string]string{
96244		"project": c.project,
96245		"region":  c.region,
96246	})
96247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96248}
96249
96250// Do executes the "compute.regionAutoscalers.insert" call.
96251// Exactly one of *Operation or error will be non-nil. Any non-2xx
96252// status code is an error. Response headers are in either
96253// *Operation.ServerResponse.Header or (if a response was returned at
96254// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96255// to check whether the returned error was because
96256// http.StatusNotModified was returned.
96257func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96258	gensupport.SetOptions(c.urlParams_, opts...)
96259	res, err := c.doRequest("json")
96260	if res != nil && res.StatusCode == http.StatusNotModified {
96261		if res.Body != nil {
96262			res.Body.Close()
96263		}
96264		return nil, &googleapi.Error{
96265			Code:   res.StatusCode,
96266			Header: res.Header,
96267		}
96268	}
96269	if err != nil {
96270		return nil, err
96271	}
96272	defer googleapi.CloseBody(res)
96273	if err := googleapi.CheckResponse(res); err != nil {
96274		return nil, err
96275	}
96276	ret := &Operation{
96277		ServerResponse: googleapi.ServerResponse{
96278			Header:         res.Header,
96279			HTTPStatusCode: res.StatusCode,
96280		},
96281	}
96282	target := &ret
96283	if err := gensupport.DecodeResponse(target, res); err != nil {
96284		return nil, err
96285	}
96286	return ret, nil
96287	// {
96288	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
96289	//   "httpMethod": "POST",
96290	//   "id": "compute.regionAutoscalers.insert",
96291	//   "parameterOrder": [
96292	//     "project",
96293	//     "region"
96294	//   ],
96295	//   "parameters": {
96296	//     "project": {
96297	//       "description": "Project ID for this request.",
96298	//       "location": "path",
96299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96300	//       "required": true,
96301	//       "type": "string"
96302	//     },
96303	//     "region": {
96304	//       "description": "Name of the region scoping this request.",
96305	//       "location": "path",
96306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96307	//       "required": true,
96308	//       "type": "string"
96309	//     },
96310	//     "requestId": {
96311	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96312	//       "location": "query",
96313	//       "type": "string"
96314	//     }
96315	//   },
96316	//   "path": "{project}/regions/{region}/autoscalers",
96317	//   "request": {
96318	//     "$ref": "Autoscaler"
96319	//   },
96320	//   "response": {
96321	//     "$ref": "Operation"
96322	//   },
96323	//   "scopes": [
96324	//     "https://www.googleapis.com/auth/cloud-platform",
96325	//     "https://www.googleapis.com/auth/compute"
96326	//   ]
96327	// }
96328
96329}
96330
96331// method id "compute.regionAutoscalers.list":
96332
96333type RegionAutoscalersListCall struct {
96334	s            *Service
96335	project      string
96336	region       string
96337	urlParams_   gensupport.URLParams
96338	ifNoneMatch_ string
96339	ctx_         context.Context
96340	header_      http.Header
96341}
96342
96343// List: Retrieves a list of autoscalers contained within the specified
96344// region.
96345func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
96346	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96347	c.project = project
96348	c.region = region
96349	return c
96350}
96351
96352// Filter sets the optional parameter "filter": A filter expression that
96353// filters resources listed in the response. The expression must specify
96354// the field name, a comparison operator, and the value that you want to
96355// use for filtering. The value must be a string, a number, or a
96356// boolean. The comparison operator must be either `=`, `!=`, `>`, or
96357// `<`.
96358//
96359// For example, if you are filtering Compute Engine instances, you can
96360// exclude instances named `example-instance` by specifying `name !=
96361// example-instance`.
96362//
96363// You can also filter nested fields. For example, you could specify
96364// `scheduling.automaticRestart = false` to include instances only if
96365// they are not scheduled for automatic restarts. You can use filtering
96366// on nested fields to filter based on resource labels.
96367//
96368// To filter on multiple expressions, provide each separate expression
96369// within parentheses. For example: ``` (scheduling.automaticRestart =
96370// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
96371// is an `AND` expression. However, you can include `AND` and `OR`
96372// expressions explicitly. For example: ``` (cpuPlatform = "Intel
96373// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
96374// (scheduling.automaticRestart = true) ```
96375func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
96376	c.urlParams_.Set("filter", filter)
96377	return c
96378}
96379
96380// MaxResults sets the optional parameter "maxResults": The maximum
96381// number of results per page that should be returned. If the number of
96382// available results is larger than `maxResults`, Compute Engine returns
96383// a `nextPageToken` that can be used to get the next page of results in
96384// subsequent list requests. Acceptable values are `0` to `500`,
96385// inclusive. (Default: `500`)
96386func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
96387	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96388	return c
96389}
96390
96391// OrderBy sets the optional parameter "orderBy": Sorts list results by
96392// a certain order. By default, results are returned in alphanumerical
96393// order based on the resource name.
96394//
96395// You can also sort results in descending order based on the creation
96396// timestamp using `orderBy="creationTimestamp desc". This sorts
96397// results based on the `creationTimestamp` field in reverse
96398// chronological order (newest result first). Use this to sort resources
96399// like operations so that the newest operation is returned
96400// first.
96401//
96402// Currently, only sorting by `name` or `creationTimestamp desc` is
96403// supported.
96404func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
96405	c.urlParams_.Set("orderBy", orderBy)
96406	return c
96407}
96408
96409// PageToken sets the optional parameter "pageToken": Specifies a page
96410// token to use. Set `pageToken` to the `nextPageToken` returned by a
96411// previous list request to get the next page of results.
96412func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
96413	c.urlParams_.Set("pageToken", pageToken)
96414	return c
96415}
96416
96417// Fields allows partial responses to be retrieved. See
96418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96419// for more information.
96420func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
96421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96422	return c
96423}
96424
96425// IfNoneMatch sets the optional parameter which makes the operation
96426// fail if the object's ETag matches the given value. This is useful for
96427// getting updates only after the object has changed since the last
96428// request. Use googleapi.IsNotModified to check whether the response
96429// error from Do is the result of In-None-Match.
96430func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
96431	c.ifNoneMatch_ = entityTag
96432	return c
96433}
96434
96435// Context sets the context to be used in this call's Do method. Any
96436// pending HTTP request will be aborted if the provided context is
96437// canceled.
96438func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
96439	c.ctx_ = ctx
96440	return c
96441}
96442
96443// Header returns an http.Header that can be modified by the caller to
96444// add HTTP headers to the request.
96445func (c *RegionAutoscalersListCall) Header() http.Header {
96446	if c.header_ == nil {
96447		c.header_ = make(http.Header)
96448	}
96449	return c.header_
96450}
96451
96452func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
96453	reqHeaders := make(http.Header)
96454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96455	for k, v := range c.header_ {
96456		reqHeaders[k] = v
96457	}
96458	reqHeaders.Set("User-Agent", c.s.userAgent())
96459	if c.ifNoneMatch_ != "" {
96460		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96461	}
96462	var body io.Reader = nil
96463	c.urlParams_.Set("alt", alt)
96464	c.urlParams_.Set("prettyPrint", "false")
96465	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
96466	urls += "?" + c.urlParams_.Encode()
96467	req, err := http.NewRequest("GET", urls, body)
96468	if err != nil {
96469		return nil, err
96470	}
96471	req.Header = reqHeaders
96472	googleapi.Expand(req.URL, map[string]string{
96473		"project": c.project,
96474		"region":  c.region,
96475	})
96476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96477}
96478
96479// Do executes the "compute.regionAutoscalers.list" call.
96480// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
96481// non-2xx status code is an error. Response headers are in either
96482// *RegionAutoscalerList.ServerResponse.Header or (if a response was
96483// returned at all) in error.(*googleapi.Error).Header. Use
96484// googleapi.IsNotModified to check whether the returned error was
96485// because http.StatusNotModified was returned.
96486func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
96487	gensupport.SetOptions(c.urlParams_, opts...)
96488	res, err := c.doRequest("json")
96489	if res != nil && res.StatusCode == http.StatusNotModified {
96490		if res.Body != nil {
96491			res.Body.Close()
96492		}
96493		return nil, &googleapi.Error{
96494			Code:   res.StatusCode,
96495			Header: res.Header,
96496		}
96497	}
96498	if err != nil {
96499		return nil, err
96500	}
96501	defer googleapi.CloseBody(res)
96502	if err := googleapi.CheckResponse(res); err != nil {
96503		return nil, err
96504	}
96505	ret := &RegionAutoscalerList{
96506		ServerResponse: googleapi.ServerResponse{
96507			Header:         res.Header,
96508			HTTPStatusCode: res.StatusCode,
96509		},
96510	}
96511	target := &ret
96512	if err := gensupport.DecodeResponse(target, res); err != nil {
96513		return nil, err
96514	}
96515	return ret, nil
96516	// {
96517	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
96518	//   "httpMethod": "GET",
96519	//   "id": "compute.regionAutoscalers.list",
96520	//   "parameterOrder": [
96521	//     "project",
96522	//     "region"
96523	//   ],
96524	//   "parameters": {
96525	//     "filter": {
96526	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
96527	//       "location": "query",
96528	//       "type": "string"
96529	//     },
96530	//     "maxResults": {
96531	//       "default": "500",
96532	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96533	//       "format": "uint32",
96534	//       "location": "query",
96535	//       "minimum": "0",
96536	//       "type": "integer"
96537	//     },
96538	//     "orderBy": {
96539	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
96540	//       "location": "query",
96541	//       "type": "string"
96542	//     },
96543	//     "pageToken": {
96544	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96545	//       "location": "query",
96546	//       "type": "string"
96547	//     },
96548	//     "project": {
96549	//       "description": "Project ID for this request.",
96550	//       "location": "path",
96551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96552	//       "required": true,
96553	//       "type": "string"
96554	//     },
96555	//     "region": {
96556	//       "description": "Name of the region scoping this request.",
96557	//       "location": "path",
96558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96559	//       "required": true,
96560	//       "type": "string"
96561	//     }
96562	//   },
96563	//   "path": "{project}/regions/{region}/autoscalers",
96564	//   "response": {
96565	//     "$ref": "RegionAutoscalerList"
96566	//   },
96567	//   "scopes": [
96568	//     "https://www.googleapis.com/auth/cloud-platform",
96569	//     "https://www.googleapis.com/auth/compute",
96570	//     "https://www.googleapis.com/auth/compute.readonly"
96571	//   ]
96572	// }
96573
96574}
96575
96576// Pages invokes f for each page of results.
96577// A non-nil error returned from f will halt the iteration.
96578// The provided context supersedes any context provided to the Context method.
96579func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
96580	c.ctx_ = ctx
96581	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96582	for {
96583		x, err := c.Do()
96584		if err != nil {
96585			return err
96586		}
96587		if err := f(x); err != nil {
96588			return err
96589		}
96590		if x.NextPageToken == "" {
96591			return nil
96592		}
96593		c.PageToken(x.NextPageToken)
96594	}
96595}
96596
96597// method id "compute.regionAutoscalers.patch":
96598
96599type RegionAutoscalersPatchCall struct {
96600	s          *Service
96601	project    string
96602	region     string
96603	autoscaler *Autoscaler
96604	urlParams_ gensupport.URLParams
96605	ctx_       context.Context
96606	header_    http.Header
96607}
96608
96609// Patch: Updates an autoscaler in the specified project using the data
96610// included in the request. This method supports PATCH semantics and
96611// uses the JSON merge patch format and processing rules.
96612func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
96613	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96614	c.project = project
96615	c.region = region
96616	c.autoscaler = autoscaler
96617	return c
96618}
96619
96620// Autoscaler sets the optional parameter "autoscaler": Name of the
96621// autoscaler to patch.
96622func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
96623	c.urlParams_.Set("autoscaler", autoscaler)
96624	return c
96625}
96626
96627// RequestId sets the optional parameter "requestId": An optional
96628// request ID to identify requests. Specify a unique request ID so that
96629// if you must retry your request, the server will know to ignore the
96630// request if it has already been completed.
96631//
96632// For example, consider a situation where you make an initial request
96633// and the request times out. If you make the request again with the
96634// same request ID, the server can check if original operation with the
96635// same request ID was received, and if so, will ignore the second
96636// request. This prevents clients from accidentally creating duplicate
96637// commitments.
96638//
96639// The request ID must be a valid UUID with the exception that zero UUID
96640// is not supported (00000000-0000-0000-0000-000000000000).
96641func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
96642	c.urlParams_.Set("requestId", requestId)
96643	return c
96644}
96645
96646// Fields allows partial responses to be retrieved. See
96647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96648// for more information.
96649func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
96650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96651	return c
96652}
96653
96654// Context sets the context to be used in this call's Do method. Any
96655// pending HTTP request will be aborted if the provided context is
96656// canceled.
96657func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
96658	c.ctx_ = ctx
96659	return c
96660}
96661
96662// Header returns an http.Header that can be modified by the caller to
96663// add HTTP headers to the request.
96664func (c *RegionAutoscalersPatchCall) Header() http.Header {
96665	if c.header_ == nil {
96666		c.header_ = make(http.Header)
96667	}
96668	return c.header_
96669}
96670
96671func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
96672	reqHeaders := make(http.Header)
96673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96674	for k, v := range c.header_ {
96675		reqHeaders[k] = v
96676	}
96677	reqHeaders.Set("User-Agent", c.s.userAgent())
96678	var body io.Reader = nil
96679	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
96680	if err != nil {
96681		return nil, err
96682	}
96683	reqHeaders.Set("Content-Type", "application/json")
96684	c.urlParams_.Set("alt", alt)
96685	c.urlParams_.Set("prettyPrint", "false")
96686	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
96687	urls += "?" + c.urlParams_.Encode()
96688	req, err := http.NewRequest("PATCH", urls, body)
96689	if err != nil {
96690		return nil, err
96691	}
96692	req.Header = reqHeaders
96693	googleapi.Expand(req.URL, map[string]string{
96694		"project": c.project,
96695		"region":  c.region,
96696	})
96697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96698}
96699
96700// Do executes the "compute.regionAutoscalers.patch" call.
96701// Exactly one of *Operation or error will be non-nil. Any non-2xx
96702// status code is an error. Response headers are in either
96703// *Operation.ServerResponse.Header or (if a response was returned at
96704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96705// to check whether the returned error was because
96706// http.StatusNotModified was returned.
96707func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96708	gensupport.SetOptions(c.urlParams_, opts...)
96709	res, err := c.doRequest("json")
96710	if res != nil && res.StatusCode == http.StatusNotModified {
96711		if res.Body != nil {
96712			res.Body.Close()
96713		}
96714		return nil, &googleapi.Error{
96715			Code:   res.StatusCode,
96716			Header: res.Header,
96717		}
96718	}
96719	if err != nil {
96720		return nil, err
96721	}
96722	defer googleapi.CloseBody(res)
96723	if err := googleapi.CheckResponse(res); err != nil {
96724		return nil, err
96725	}
96726	ret := &Operation{
96727		ServerResponse: googleapi.ServerResponse{
96728			Header:         res.Header,
96729			HTTPStatusCode: res.StatusCode,
96730		},
96731	}
96732	target := &ret
96733	if err := gensupport.DecodeResponse(target, res); err != nil {
96734		return nil, err
96735	}
96736	return ret, nil
96737	// {
96738	//   "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.",
96739	//   "httpMethod": "PATCH",
96740	//   "id": "compute.regionAutoscalers.patch",
96741	//   "parameterOrder": [
96742	//     "project",
96743	//     "region"
96744	//   ],
96745	//   "parameters": {
96746	//     "autoscaler": {
96747	//       "description": "Name of the autoscaler to patch.",
96748	//       "location": "query",
96749	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96750	//       "type": "string"
96751	//     },
96752	//     "project": {
96753	//       "description": "Project ID for this request.",
96754	//       "location": "path",
96755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96756	//       "required": true,
96757	//       "type": "string"
96758	//     },
96759	//     "region": {
96760	//       "description": "Name of the region scoping this request.",
96761	//       "location": "path",
96762	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96763	//       "required": true,
96764	//       "type": "string"
96765	//     },
96766	//     "requestId": {
96767	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96768	//       "location": "query",
96769	//       "type": "string"
96770	//     }
96771	//   },
96772	//   "path": "{project}/regions/{region}/autoscalers",
96773	//   "request": {
96774	//     "$ref": "Autoscaler"
96775	//   },
96776	//   "response": {
96777	//     "$ref": "Operation"
96778	//   },
96779	//   "scopes": [
96780	//     "https://www.googleapis.com/auth/cloud-platform",
96781	//     "https://www.googleapis.com/auth/compute"
96782	//   ]
96783	// }
96784
96785}
96786
96787// method id "compute.regionAutoscalers.update":
96788
96789type RegionAutoscalersUpdateCall struct {
96790	s          *Service
96791	project    string
96792	region     string
96793	autoscaler *Autoscaler
96794	urlParams_ gensupport.URLParams
96795	ctx_       context.Context
96796	header_    http.Header
96797}
96798
96799// Update: Updates an autoscaler in the specified project using the data
96800// included in the request.
96801func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
96802	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96803	c.project = project
96804	c.region = region
96805	c.autoscaler = autoscaler
96806	return c
96807}
96808
96809// Autoscaler sets the optional parameter "autoscaler": Name of the
96810// autoscaler to update.
96811func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
96812	c.urlParams_.Set("autoscaler", autoscaler)
96813	return c
96814}
96815
96816// RequestId sets the optional parameter "requestId": An optional
96817// request ID to identify requests. Specify a unique request ID so that
96818// if you must retry your request, the server will know to ignore the
96819// request if it has already been completed.
96820//
96821// For example, consider a situation where you make an initial request
96822// and the request times out. If you make the request again with the
96823// same request ID, the server can check if original operation with the
96824// same request ID was received, and if so, will ignore the second
96825// request. This prevents clients from accidentally creating duplicate
96826// commitments.
96827//
96828// The request ID must be a valid UUID with the exception that zero UUID
96829// is not supported (00000000-0000-0000-0000-000000000000).
96830func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
96831	c.urlParams_.Set("requestId", requestId)
96832	return c
96833}
96834
96835// Fields allows partial responses to be retrieved. See
96836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96837// for more information.
96838func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
96839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96840	return c
96841}
96842
96843// Context sets the context to be used in this call's Do method. Any
96844// pending HTTP request will be aborted if the provided context is
96845// canceled.
96846func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
96847	c.ctx_ = ctx
96848	return c
96849}
96850
96851// Header returns an http.Header that can be modified by the caller to
96852// add HTTP headers to the request.
96853func (c *RegionAutoscalersUpdateCall) Header() http.Header {
96854	if c.header_ == nil {
96855		c.header_ = make(http.Header)
96856	}
96857	return c.header_
96858}
96859
96860func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
96861	reqHeaders := make(http.Header)
96862	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96863	for k, v := range c.header_ {
96864		reqHeaders[k] = v
96865	}
96866	reqHeaders.Set("User-Agent", c.s.userAgent())
96867	var body io.Reader = nil
96868	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
96869	if err != nil {
96870		return nil, err
96871	}
96872	reqHeaders.Set("Content-Type", "application/json")
96873	c.urlParams_.Set("alt", alt)
96874	c.urlParams_.Set("prettyPrint", "false")
96875	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
96876	urls += "?" + c.urlParams_.Encode()
96877	req, err := http.NewRequest("PUT", urls, body)
96878	if err != nil {
96879		return nil, err
96880	}
96881	req.Header = reqHeaders
96882	googleapi.Expand(req.URL, map[string]string{
96883		"project": c.project,
96884		"region":  c.region,
96885	})
96886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96887}
96888
96889// Do executes the "compute.regionAutoscalers.update" call.
96890// Exactly one of *Operation or error will be non-nil. Any non-2xx
96891// status code is an error. Response headers are in either
96892// *Operation.ServerResponse.Header or (if a response was returned at
96893// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96894// to check whether the returned error was because
96895// http.StatusNotModified was returned.
96896func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96897	gensupport.SetOptions(c.urlParams_, opts...)
96898	res, err := c.doRequest("json")
96899	if res != nil && res.StatusCode == http.StatusNotModified {
96900		if res.Body != nil {
96901			res.Body.Close()
96902		}
96903		return nil, &googleapi.Error{
96904			Code:   res.StatusCode,
96905			Header: res.Header,
96906		}
96907	}
96908	if err != nil {
96909		return nil, err
96910	}
96911	defer googleapi.CloseBody(res)
96912	if err := googleapi.CheckResponse(res); err != nil {
96913		return nil, err
96914	}
96915	ret := &Operation{
96916		ServerResponse: googleapi.ServerResponse{
96917			Header:         res.Header,
96918			HTTPStatusCode: res.StatusCode,
96919		},
96920	}
96921	target := &ret
96922	if err := gensupport.DecodeResponse(target, res); err != nil {
96923		return nil, err
96924	}
96925	return ret, nil
96926	// {
96927	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
96928	//   "httpMethod": "PUT",
96929	//   "id": "compute.regionAutoscalers.update",
96930	//   "parameterOrder": [
96931	//     "project",
96932	//     "region"
96933	//   ],
96934	//   "parameters": {
96935	//     "autoscaler": {
96936	//       "description": "Name of the autoscaler to update.",
96937	//       "location": "query",
96938	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96939	//       "type": "string"
96940	//     },
96941	//     "project": {
96942	//       "description": "Project ID for this request.",
96943	//       "location": "path",
96944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96945	//       "required": true,
96946	//       "type": "string"
96947	//     },
96948	//     "region": {
96949	//       "description": "Name of the region scoping this request.",
96950	//       "location": "path",
96951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96952	//       "required": true,
96953	//       "type": "string"
96954	//     },
96955	//     "requestId": {
96956	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96957	//       "location": "query",
96958	//       "type": "string"
96959	//     }
96960	//   },
96961	//   "path": "{project}/regions/{region}/autoscalers",
96962	//   "request": {
96963	//     "$ref": "Autoscaler"
96964	//   },
96965	//   "response": {
96966	//     "$ref": "Operation"
96967	//   },
96968	//   "scopes": [
96969	//     "https://www.googleapis.com/auth/cloud-platform",
96970	//     "https://www.googleapis.com/auth/compute"
96971	//   ]
96972	// }
96973
96974}
96975
96976// method id "compute.regionBackendServices.delete":
96977
96978type RegionBackendServicesDeleteCall struct {
96979	s              *Service
96980	project        string
96981	region         string
96982	backendService string
96983	urlParams_     gensupport.URLParams
96984	ctx_           context.Context
96985	header_        http.Header
96986}
96987
96988// Delete: Deletes the specified regional BackendService resource.
96989func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
96990	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96991	c.project = project
96992	c.region = region
96993	c.backendService = backendService
96994	return c
96995}
96996
96997// RequestId sets the optional parameter "requestId": An optional
96998// request ID to identify requests. Specify a unique request ID so that
96999// if you must retry your request, the server will know to ignore the
97000// request if it has already been completed.
97001//
97002// For example, consider a situation where you make an initial request
97003// and the request times out. If you make the request again with the
97004// same request ID, the server can check if original operation with the
97005// same request ID was received, and if so, will ignore the second
97006// request. This prevents clients from accidentally creating duplicate
97007// commitments.
97008//
97009// The request ID must be a valid UUID with the exception that zero UUID
97010// is not supported (00000000-0000-0000-0000-000000000000).
97011func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
97012	c.urlParams_.Set("requestId", requestId)
97013	return c
97014}
97015
97016// Fields allows partial responses to be retrieved. See
97017// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97018// for more information.
97019func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
97020	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97021	return c
97022}
97023
97024// Context sets the context to be used in this call's Do method. Any
97025// pending HTTP request will be aborted if the provided context is
97026// canceled.
97027func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
97028	c.ctx_ = ctx
97029	return c
97030}
97031
97032// Header returns an http.Header that can be modified by the caller to
97033// add HTTP headers to the request.
97034func (c *RegionBackendServicesDeleteCall) Header() http.Header {
97035	if c.header_ == nil {
97036		c.header_ = make(http.Header)
97037	}
97038	return c.header_
97039}
97040
97041func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
97042	reqHeaders := make(http.Header)
97043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97044	for k, v := range c.header_ {
97045		reqHeaders[k] = v
97046	}
97047	reqHeaders.Set("User-Agent", c.s.userAgent())
97048	var body io.Reader = nil
97049	c.urlParams_.Set("alt", alt)
97050	c.urlParams_.Set("prettyPrint", "false")
97051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
97052	urls += "?" + c.urlParams_.Encode()
97053	req, err := http.NewRequest("DELETE", urls, body)
97054	if err != nil {
97055		return nil, err
97056	}
97057	req.Header = reqHeaders
97058	googleapi.Expand(req.URL, map[string]string{
97059		"project":        c.project,
97060		"region":         c.region,
97061		"backendService": c.backendService,
97062	})
97063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97064}
97065
97066// Do executes the "compute.regionBackendServices.delete" call.
97067// Exactly one of *Operation or error will be non-nil. Any non-2xx
97068// status code is an error. Response headers are in either
97069// *Operation.ServerResponse.Header or (if a response was returned at
97070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97071// to check whether the returned error was because
97072// http.StatusNotModified was returned.
97073func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97074	gensupport.SetOptions(c.urlParams_, opts...)
97075	res, err := c.doRequest("json")
97076	if res != nil && res.StatusCode == http.StatusNotModified {
97077		if res.Body != nil {
97078			res.Body.Close()
97079		}
97080		return nil, &googleapi.Error{
97081			Code:   res.StatusCode,
97082			Header: res.Header,
97083		}
97084	}
97085	if err != nil {
97086		return nil, err
97087	}
97088	defer googleapi.CloseBody(res)
97089	if err := googleapi.CheckResponse(res); err != nil {
97090		return nil, err
97091	}
97092	ret := &Operation{
97093		ServerResponse: googleapi.ServerResponse{
97094			Header:         res.Header,
97095			HTTPStatusCode: res.StatusCode,
97096		},
97097	}
97098	target := &ret
97099	if err := gensupport.DecodeResponse(target, res); err != nil {
97100		return nil, err
97101	}
97102	return ret, nil
97103	// {
97104	//   "description": "Deletes the specified regional BackendService resource.",
97105	//   "httpMethod": "DELETE",
97106	//   "id": "compute.regionBackendServices.delete",
97107	//   "parameterOrder": [
97108	//     "project",
97109	//     "region",
97110	//     "backendService"
97111	//   ],
97112	//   "parameters": {
97113	//     "backendService": {
97114	//       "description": "Name of the BackendService resource to delete.",
97115	//       "location": "path",
97116	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97117	//       "required": true,
97118	//       "type": "string"
97119	//     },
97120	//     "project": {
97121	//       "description": "Project ID for this request.",
97122	//       "location": "path",
97123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97124	//       "required": true,
97125	//       "type": "string"
97126	//     },
97127	//     "region": {
97128	//       "description": "Name of the region scoping this request.",
97129	//       "location": "path",
97130	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97131	//       "required": true,
97132	//       "type": "string"
97133	//     },
97134	//     "requestId": {
97135	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97136	//       "location": "query",
97137	//       "type": "string"
97138	//     }
97139	//   },
97140	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
97141	//   "response": {
97142	//     "$ref": "Operation"
97143	//   },
97144	//   "scopes": [
97145	//     "https://www.googleapis.com/auth/cloud-platform",
97146	//     "https://www.googleapis.com/auth/compute"
97147	//   ]
97148	// }
97149
97150}
97151
97152// method id "compute.regionBackendServices.get":
97153
97154type RegionBackendServicesGetCall struct {
97155	s              *Service
97156	project        string
97157	region         string
97158	backendService string
97159	urlParams_     gensupport.URLParams
97160	ifNoneMatch_   string
97161	ctx_           context.Context
97162	header_        http.Header
97163}
97164
97165// Get: Returns the specified regional BackendService resource.
97166func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
97167	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97168	c.project = project
97169	c.region = region
97170	c.backendService = backendService
97171	return c
97172}
97173
97174// Fields allows partial responses to be retrieved. See
97175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97176// for more information.
97177func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
97178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97179	return c
97180}
97181
97182// IfNoneMatch sets the optional parameter which makes the operation
97183// fail if the object's ETag matches the given value. This is useful for
97184// getting updates only after the object has changed since the last
97185// request. Use googleapi.IsNotModified to check whether the response
97186// error from Do is the result of In-None-Match.
97187func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
97188	c.ifNoneMatch_ = entityTag
97189	return c
97190}
97191
97192// Context sets the context to be used in this call's Do method. Any
97193// pending HTTP request will be aborted if the provided context is
97194// canceled.
97195func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
97196	c.ctx_ = ctx
97197	return c
97198}
97199
97200// Header returns an http.Header that can be modified by the caller to
97201// add HTTP headers to the request.
97202func (c *RegionBackendServicesGetCall) Header() http.Header {
97203	if c.header_ == nil {
97204		c.header_ = make(http.Header)
97205	}
97206	return c.header_
97207}
97208
97209func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
97210	reqHeaders := make(http.Header)
97211	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97212	for k, v := range c.header_ {
97213		reqHeaders[k] = v
97214	}
97215	reqHeaders.Set("User-Agent", c.s.userAgent())
97216	if c.ifNoneMatch_ != "" {
97217		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97218	}
97219	var body io.Reader = nil
97220	c.urlParams_.Set("alt", alt)
97221	c.urlParams_.Set("prettyPrint", "false")
97222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
97223	urls += "?" + c.urlParams_.Encode()
97224	req, err := http.NewRequest("GET", urls, body)
97225	if err != nil {
97226		return nil, err
97227	}
97228	req.Header = reqHeaders
97229	googleapi.Expand(req.URL, map[string]string{
97230		"project":        c.project,
97231		"region":         c.region,
97232		"backendService": c.backendService,
97233	})
97234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97235}
97236
97237// Do executes the "compute.regionBackendServices.get" call.
97238// Exactly one of *BackendService or error will be non-nil. Any non-2xx
97239// status code is an error. Response headers are in either
97240// *BackendService.ServerResponse.Header or (if a response was returned
97241// at all) in error.(*googleapi.Error).Header. Use
97242// googleapi.IsNotModified to check whether the returned error was
97243// because http.StatusNotModified was returned.
97244func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
97245	gensupport.SetOptions(c.urlParams_, opts...)
97246	res, err := c.doRequest("json")
97247	if res != nil && res.StatusCode == http.StatusNotModified {
97248		if res.Body != nil {
97249			res.Body.Close()
97250		}
97251		return nil, &googleapi.Error{
97252			Code:   res.StatusCode,
97253			Header: res.Header,
97254		}
97255	}
97256	if err != nil {
97257		return nil, err
97258	}
97259	defer googleapi.CloseBody(res)
97260	if err := googleapi.CheckResponse(res); err != nil {
97261		return nil, err
97262	}
97263	ret := &BackendService{
97264		ServerResponse: googleapi.ServerResponse{
97265			Header:         res.Header,
97266			HTTPStatusCode: res.StatusCode,
97267		},
97268	}
97269	target := &ret
97270	if err := gensupport.DecodeResponse(target, res); err != nil {
97271		return nil, err
97272	}
97273	return ret, nil
97274	// {
97275	//   "description": "Returns the specified regional BackendService resource.",
97276	//   "httpMethod": "GET",
97277	//   "id": "compute.regionBackendServices.get",
97278	//   "parameterOrder": [
97279	//     "project",
97280	//     "region",
97281	//     "backendService"
97282	//   ],
97283	//   "parameters": {
97284	//     "backendService": {
97285	//       "description": "Name of the BackendService resource to return.",
97286	//       "location": "path",
97287	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97288	//       "required": true,
97289	//       "type": "string"
97290	//     },
97291	//     "project": {
97292	//       "description": "Project ID for this request.",
97293	//       "location": "path",
97294	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97295	//       "required": true,
97296	//       "type": "string"
97297	//     },
97298	//     "region": {
97299	//       "description": "Name of the region scoping this request.",
97300	//       "location": "path",
97301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97302	//       "required": true,
97303	//       "type": "string"
97304	//     }
97305	//   },
97306	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
97307	//   "response": {
97308	//     "$ref": "BackendService"
97309	//   },
97310	//   "scopes": [
97311	//     "https://www.googleapis.com/auth/cloud-platform",
97312	//     "https://www.googleapis.com/auth/compute",
97313	//     "https://www.googleapis.com/auth/compute.readonly"
97314	//   ]
97315	// }
97316
97317}
97318
97319// method id "compute.regionBackendServices.getHealth":
97320
97321type RegionBackendServicesGetHealthCall struct {
97322	s                      *Service
97323	project                string
97324	region                 string
97325	backendService         string
97326	resourcegroupreference *ResourceGroupReference
97327	urlParams_             gensupport.URLParams
97328	ctx_                   context.Context
97329	header_                http.Header
97330}
97331
97332// GetHealth: Gets the most recent health check results for this
97333// regional BackendService.
97334func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
97335	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97336	c.project = project
97337	c.region = region
97338	c.backendService = backendService
97339	c.resourcegroupreference = resourcegroupreference
97340	return c
97341}
97342
97343// Fields allows partial responses to be retrieved. See
97344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97345// for more information.
97346func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
97347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97348	return c
97349}
97350
97351// Context sets the context to be used in this call's Do method. Any
97352// pending HTTP request will be aborted if the provided context is
97353// canceled.
97354func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
97355	c.ctx_ = ctx
97356	return c
97357}
97358
97359// Header returns an http.Header that can be modified by the caller to
97360// add HTTP headers to the request.
97361func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
97362	if c.header_ == nil {
97363		c.header_ = make(http.Header)
97364	}
97365	return c.header_
97366}
97367
97368func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
97369	reqHeaders := make(http.Header)
97370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97371	for k, v := range c.header_ {
97372		reqHeaders[k] = v
97373	}
97374	reqHeaders.Set("User-Agent", c.s.userAgent())
97375	var body io.Reader = nil
97376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
97377	if err != nil {
97378		return nil, err
97379	}
97380	reqHeaders.Set("Content-Type", "application/json")
97381	c.urlParams_.Set("alt", alt)
97382	c.urlParams_.Set("prettyPrint", "false")
97383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
97384	urls += "?" + c.urlParams_.Encode()
97385	req, err := http.NewRequest("POST", urls, body)
97386	if err != nil {
97387		return nil, err
97388	}
97389	req.Header = reqHeaders
97390	googleapi.Expand(req.URL, map[string]string{
97391		"project":        c.project,
97392		"region":         c.region,
97393		"backendService": c.backendService,
97394	})
97395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97396}
97397
97398// Do executes the "compute.regionBackendServices.getHealth" call.
97399// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
97400// Any non-2xx status code is an error. Response headers are in either
97401// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
97402// was returned at all) in error.(*googleapi.Error).Header. Use
97403// googleapi.IsNotModified to check whether the returned error was
97404// because http.StatusNotModified was returned.
97405func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
97406	gensupport.SetOptions(c.urlParams_, opts...)
97407	res, err := c.doRequest("json")
97408	if res != nil && res.StatusCode == http.StatusNotModified {
97409		if res.Body != nil {
97410			res.Body.Close()
97411		}
97412		return nil, &googleapi.Error{
97413			Code:   res.StatusCode,
97414			Header: res.Header,
97415		}
97416	}
97417	if err != nil {
97418		return nil, err
97419	}
97420	defer googleapi.CloseBody(res)
97421	if err := googleapi.CheckResponse(res); err != nil {
97422		return nil, err
97423	}
97424	ret := &BackendServiceGroupHealth{
97425		ServerResponse: googleapi.ServerResponse{
97426			Header:         res.Header,
97427			HTTPStatusCode: res.StatusCode,
97428		},
97429	}
97430	target := &ret
97431	if err := gensupport.DecodeResponse(target, res); err != nil {
97432		return nil, err
97433	}
97434	return ret, nil
97435	// {
97436	//   "description": "Gets the most recent health check results for this regional BackendService.",
97437	//   "httpMethod": "POST",
97438	//   "id": "compute.regionBackendServices.getHealth",
97439	//   "parameterOrder": [
97440	//     "project",
97441	//     "region",
97442	//     "backendService"
97443	//   ],
97444	//   "parameters": {
97445	//     "backendService": {
97446	//       "description": "Name of the BackendService resource for which to get health.",
97447	//       "location": "path",
97448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97449	//       "required": true,
97450	//       "type": "string"
97451	//     },
97452	//     "project": {
97453	//       "location": "path",
97454	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97455	//       "required": true,
97456	//       "type": "string"
97457	//     },
97458	//     "region": {
97459	//       "description": "Name of the region scoping this request.",
97460	//       "location": "path",
97461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97462	//       "required": true,
97463	//       "type": "string"
97464	//     }
97465	//   },
97466	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
97467	//   "request": {
97468	//     "$ref": "ResourceGroupReference"
97469	//   },
97470	//   "response": {
97471	//     "$ref": "BackendServiceGroupHealth"
97472	//   },
97473	//   "scopes": [
97474	//     "https://www.googleapis.com/auth/cloud-platform",
97475	//     "https://www.googleapis.com/auth/compute",
97476	//     "https://www.googleapis.com/auth/compute.readonly"
97477	//   ]
97478	// }
97479
97480}
97481
97482// method id "compute.regionBackendServices.insert":
97483
97484type RegionBackendServicesInsertCall struct {
97485	s              *Service
97486	project        string
97487	region         string
97488	backendservice *BackendService
97489	urlParams_     gensupport.URLParams
97490	ctx_           context.Context
97491	header_        http.Header
97492}
97493
97494// Insert: Creates a regional BackendService resource in the specified
97495// project using the data included in the request. For more information,
97496// see  Backend services overview.
97497func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
97498	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97499	c.project = project
97500	c.region = region
97501	c.backendservice = backendservice
97502	return c
97503}
97504
97505// RequestId sets the optional parameter "requestId": An optional
97506// request ID to identify requests. Specify a unique request ID so that
97507// if you must retry your request, the server will know to ignore the
97508// request if it has already been completed.
97509//
97510// For example, consider a situation where you make an initial request
97511// and the request times out. If you make the request again with the
97512// same request ID, the server can check if original operation with the
97513// same request ID was received, and if so, will ignore the second
97514// request. This prevents clients from accidentally creating duplicate
97515// commitments.
97516//
97517// The request ID must be a valid UUID with the exception that zero UUID
97518// is not supported (00000000-0000-0000-0000-000000000000).
97519func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
97520	c.urlParams_.Set("requestId", requestId)
97521	return c
97522}
97523
97524// Fields allows partial responses to be retrieved. See
97525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97526// for more information.
97527func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
97528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97529	return c
97530}
97531
97532// Context sets the context to be used in this call's Do method. Any
97533// pending HTTP request will be aborted if the provided context is
97534// canceled.
97535func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
97536	c.ctx_ = ctx
97537	return c
97538}
97539
97540// Header returns an http.Header that can be modified by the caller to
97541// add HTTP headers to the request.
97542func (c *RegionBackendServicesInsertCall) Header() http.Header {
97543	if c.header_ == nil {
97544		c.header_ = make(http.Header)
97545	}
97546	return c.header_
97547}
97548
97549func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
97550	reqHeaders := make(http.Header)
97551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97552	for k, v := range c.header_ {
97553		reqHeaders[k] = v
97554	}
97555	reqHeaders.Set("User-Agent", c.s.userAgent())
97556	var body io.Reader = nil
97557	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
97558	if err != nil {
97559		return nil, err
97560	}
97561	reqHeaders.Set("Content-Type", "application/json")
97562	c.urlParams_.Set("alt", alt)
97563	c.urlParams_.Set("prettyPrint", "false")
97564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
97565	urls += "?" + c.urlParams_.Encode()
97566	req, err := http.NewRequest("POST", urls, body)
97567	if err != nil {
97568		return nil, err
97569	}
97570	req.Header = reqHeaders
97571	googleapi.Expand(req.URL, map[string]string{
97572		"project": c.project,
97573		"region":  c.region,
97574	})
97575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97576}
97577
97578// Do executes the "compute.regionBackendServices.insert" call.
97579// Exactly one of *Operation or error will be non-nil. Any non-2xx
97580// status code is an error. Response headers are in either
97581// *Operation.ServerResponse.Header or (if a response was returned at
97582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97583// to check whether the returned error was because
97584// http.StatusNotModified was returned.
97585func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97586	gensupport.SetOptions(c.urlParams_, opts...)
97587	res, err := c.doRequest("json")
97588	if res != nil && res.StatusCode == http.StatusNotModified {
97589		if res.Body != nil {
97590			res.Body.Close()
97591		}
97592		return nil, &googleapi.Error{
97593			Code:   res.StatusCode,
97594			Header: res.Header,
97595		}
97596	}
97597	if err != nil {
97598		return nil, err
97599	}
97600	defer googleapi.CloseBody(res)
97601	if err := googleapi.CheckResponse(res); err != nil {
97602		return nil, err
97603	}
97604	ret := &Operation{
97605		ServerResponse: googleapi.ServerResponse{
97606			Header:         res.Header,
97607			HTTPStatusCode: res.StatusCode,
97608		},
97609	}
97610	target := &ret
97611	if err := gensupport.DecodeResponse(target, res); err != nil {
97612		return nil, err
97613	}
97614	return ret, nil
97615	// {
97616	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
97617	//   "httpMethod": "POST",
97618	//   "id": "compute.regionBackendServices.insert",
97619	//   "parameterOrder": [
97620	//     "project",
97621	//     "region"
97622	//   ],
97623	//   "parameters": {
97624	//     "project": {
97625	//       "description": "Project ID for this request.",
97626	//       "location": "path",
97627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97628	//       "required": true,
97629	//       "type": "string"
97630	//     },
97631	//     "region": {
97632	//       "description": "Name of the region scoping this request.",
97633	//       "location": "path",
97634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97635	//       "required": true,
97636	//       "type": "string"
97637	//     },
97638	//     "requestId": {
97639	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97640	//       "location": "query",
97641	//       "type": "string"
97642	//     }
97643	//   },
97644	//   "path": "{project}/regions/{region}/backendServices",
97645	//   "request": {
97646	//     "$ref": "BackendService"
97647	//   },
97648	//   "response": {
97649	//     "$ref": "Operation"
97650	//   },
97651	//   "scopes": [
97652	//     "https://www.googleapis.com/auth/cloud-platform",
97653	//     "https://www.googleapis.com/auth/compute"
97654	//   ]
97655	// }
97656
97657}
97658
97659// method id "compute.regionBackendServices.list":
97660
97661type RegionBackendServicesListCall struct {
97662	s            *Service
97663	project      string
97664	region       string
97665	urlParams_   gensupport.URLParams
97666	ifNoneMatch_ string
97667	ctx_         context.Context
97668	header_      http.Header
97669}
97670
97671// List: Retrieves the list of regional BackendService resources
97672// available to the specified project in the given region.
97673func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
97674	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97675	c.project = project
97676	c.region = region
97677	return c
97678}
97679
97680// Filter sets the optional parameter "filter": A filter expression that
97681// filters resources listed in the response. The expression must specify
97682// the field name, a comparison operator, and the value that you want to
97683// use for filtering. The value must be a string, a number, or a
97684// boolean. The comparison operator must be either `=`, `!=`, `>`, or
97685// `<`.
97686//
97687// For example, if you are filtering Compute Engine instances, you can
97688// exclude instances named `example-instance` by specifying `name !=
97689// example-instance`.
97690//
97691// You can also filter nested fields. For example, you could specify
97692// `scheduling.automaticRestart = false` to include instances only if
97693// they are not scheduled for automatic restarts. You can use filtering
97694// on nested fields to filter based on resource labels.
97695//
97696// To filter on multiple expressions, provide each separate expression
97697// within parentheses. For example: ``` (scheduling.automaticRestart =
97698// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
97699// is an `AND` expression. However, you can include `AND` and `OR`
97700// expressions explicitly. For example: ``` (cpuPlatform = "Intel
97701// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
97702// (scheduling.automaticRestart = true) ```
97703func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
97704	c.urlParams_.Set("filter", filter)
97705	return c
97706}
97707
97708// MaxResults sets the optional parameter "maxResults": The maximum
97709// number of results per page that should be returned. If the number of
97710// available results is larger than `maxResults`, Compute Engine returns
97711// a `nextPageToken` that can be used to get the next page of results in
97712// subsequent list requests. Acceptable values are `0` to `500`,
97713// inclusive. (Default: `500`)
97714func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
97715	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97716	return c
97717}
97718
97719// OrderBy sets the optional parameter "orderBy": Sorts list results by
97720// a certain order. By default, results are returned in alphanumerical
97721// order based on the resource name.
97722//
97723// You can also sort results in descending order based on the creation
97724// timestamp using `orderBy="creationTimestamp desc". This sorts
97725// results based on the `creationTimestamp` field in reverse
97726// chronological order (newest result first). Use this to sort resources
97727// like operations so that the newest operation is returned
97728// first.
97729//
97730// Currently, only sorting by `name` or `creationTimestamp desc` is
97731// supported.
97732func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
97733	c.urlParams_.Set("orderBy", orderBy)
97734	return c
97735}
97736
97737// PageToken sets the optional parameter "pageToken": Specifies a page
97738// token to use. Set `pageToken` to the `nextPageToken` returned by a
97739// previous list request to get the next page of results.
97740func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
97741	c.urlParams_.Set("pageToken", pageToken)
97742	return c
97743}
97744
97745// Fields allows partial responses to be retrieved. See
97746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97747// for more information.
97748func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
97749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97750	return c
97751}
97752
97753// IfNoneMatch sets the optional parameter which makes the operation
97754// fail if the object's ETag matches the given value. This is useful for
97755// getting updates only after the object has changed since the last
97756// request. Use googleapi.IsNotModified to check whether the response
97757// error from Do is the result of In-None-Match.
97758func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
97759	c.ifNoneMatch_ = entityTag
97760	return c
97761}
97762
97763// Context sets the context to be used in this call's Do method. Any
97764// pending HTTP request will be aborted if the provided context is
97765// canceled.
97766func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
97767	c.ctx_ = ctx
97768	return c
97769}
97770
97771// Header returns an http.Header that can be modified by the caller to
97772// add HTTP headers to the request.
97773func (c *RegionBackendServicesListCall) Header() http.Header {
97774	if c.header_ == nil {
97775		c.header_ = make(http.Header)
97776	}
97777	return c.header_
97778}
97779
97780func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
97781	reqHeaders := make(http.Header)
97782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97783	for k, v := range c.header_ {
97784		reqHeaders[k] = v
97785	}
97786	reqHeaders.Set("User-Agent", c.s.userAgent())
97787	if c.ifNoneMatch_ != "" {
97788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97789	}
97790	var body io.Reader = nil
97791	c.urlParams_.Set("alt", alt)
97792	c.urlParams_.Set("prettyPrint", "false")
97793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
97794	urls += "?" + c.urlParams_.Encode()
97795	req, err := http.NewRequest("GET", urls, body)
97796	if err != nil {
97797		return nil, err
97798	}
97799	req.Header = reqHeaders
97800	googleapi.Expand(req.URL, map[string]string{
97801		"project": c.project,
97802		"region":  c.region,
97803	})
97804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97805}
97806
97807// Do executes the "compute.regionBackendServices.list" call.
97808// Exactly one of *BackendServiceList or error will be non-nil. Any
97809// non-2xx status code is an error. Response headers are in either
97810// *BackendServiceList.ServerResponse.Header or (if a response was
97811// returned at all) in error.(*googleapi.Error).Header. Use
97812// googleapi.IsNotModified to check whether the returned error was
97813// because http.StatusNotModified was returned.
97814func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
97815	gensupport.SetOptions(c.urlParams_, opts...)
97816	res, err := c.doRequest("json")
97817	if res != nil && res.StatusCode == http.StatusNotModified {
97818		if res.Body != nil {
97819			res.Body.Close()
97820		}
97821		return nil, &googleapi.Error{
97822			Code:   res.StatusCode,
97823			Header: res.Header,
97824		}
97825	}
97826	if err != nil {
97827		return nil, err
97828	}
97829	defer googleapi.CloseBody(res)
97830	if err := googleapi.CheckResponse(res); err != nil {
97831		return nil, err
97832	}
97833	ret := &BackendServiceList{
97834		ServerResponse: googleapi.ServerResponse{
97835			Header:         res.Header,
97836			HTTPStatusCode: res.StatusCode,
97837		},
97838	}
97839	target := &ret
97840	if err := gensupport.DecodeResponse(target, res); err != nil {
97841		return nil, err
97842	}
97843	return ret, nil
97844	// {
97845	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
97846	//   "httpMethod": "GET",
97847	//   "id": "compute.regionBackendServices.list",
97848	//   "parameterOrder": [
97849	//     "project",
97850	//     "region"
97851	//   ],
97852	//   "parameters": {
97853	//     "filter": {
97854	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
97855	//       "location": "query",
97856	//       "type": "string"
97857	//     },
97858	//     "maxResults": {
97859	//       "default": "500",
97860	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
97861	//       "format": "uint32",
97862	//       "location": "query",
97863	//       "minimum": "0",
97864	//       "type": "integer"
97865	//     },
97866	//     "orderBy": {
97867	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
97868	//       "location": "query",
97869	//       "type": "string"
97870	//     },
97871	//     "pageToken": {
97872	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
97873	//       "location": "query",
97874	//       "type": "string"
97875	//     },
97876	//     "project": {
97877	//       "description": "Project ID for this request.",
97878	//       "location": "path",
97879	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97880	//       "required": true,
97881	//       "type": "string"
97882	//     },
97883	//     "region": {
97884	//       "description": "Name of the region scoping this request.",
97885	//       "location": "path",
97886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97887	//       "required": true,
97888	//       "type": "string"
97889	//     }
97890	//   },
97891	//   "path": "{project}/regions/{region}/backendServices",
97892	//   "response": {
97893	//     "$ref": "BackendServiceList"
97894	//   },
97895	//   "scopes": [
97896	//     "https://www.googleapis.com/auth/cloud-platform",
97897	//     "https://www.googleapis.com/auth/compute",
97898	//     "https://www.googleapis.com/auth/compute.readonly"
97899	//   ]
97900	// }
97901
97902}
97903
97904// Pages invokes f for each page of results.
97905// A non-nil error returned from f will halt the iteration.
97906// The provided context supersedes any context provided to the Context method.
97907func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
97908	c.ctx_ = ctx
97909	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97910	for {
97911		x, err := c.Do()
97912		if err != nil {
97913			return err
97914		}
97915		if err := f(x); err != nil {
97916			return err
97917		}
97918		if x.NextPageToken == "" {
97919			return nil
97920		}
97921		c.PageToken(x.NextPageToken)
97922	}
97923}
97924
97925// method id "compute.regionBackendServices.patch":
97926
97927type RegionBackendServicesPatchCall struct {
97928	s              *Service
97929	project        string
97930	region         string
97931	backendService string
97932	backendservice *BackendService
97933	urlParams_     gensupport.URLParams
97934	ctx_           context.Context
97935	header_        http.Header
97936}
97937
97938// Patch: Updates the specified regional BackendService resource with
97939// the data included in the request. For more information, see
97940// Understanding backend services This method supports PATCH semantics
97941// and uses the JSON merge patch format and processing rules.
97942func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
97943	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97944	c.project = project
97945	c.region = region
97946	c.backendService = backendService
97947	c.backendservice = backendservice
97948	return c
97949}
97950
97951// RequestId sets the optional parameter "requestId": An optional
97952// request ID to identify requests. Specify a unique request ID so that
97953// if you must retry your request, the server will know to ignore the
97954// request if it has already been completed.
97955//
97956// For example, consider a situation where you make an initial request
97957// and the request times out. If you make the request again with the
97958// same request ID, the server can check if original operation with the
97959// same request ID was received, and if so, will ignore the second
97960// request. This prevents clients from accidentally creating duplicate
97961// commitments.
97962//
97963// The request ID must be a valid UUID with the exception that zero UUID
97964// is not supported (00000000-0000-0000-0000-000000000000).
97965func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
97966	c.urlParams_.Set("requestId", requestId)
97967	return c
97968}
97969
97970// Fields allows partial responses to be retrieved. See
97971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97972// for more information.
97973func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
97974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97975	return c
97976}
97977
97978// Context sets the context to be used in this call's Do method. Any
97979// pending HTTP request will be aborted if the provided context is
97980// canceled.
97981func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
97982	c.ctx_ = ctx
97983	return c
97984}
97985
97986// Header returns an http.Header that can be modified by the caller to
97987// add HTTP headers to the request.
97988func (c *RegionBackendServicesPatchCall) Header() http.Header {
97989	if c.header_ == nil {
97990		c.header_ = make(http.Header)
97991	}
97992	return c.header_
97993}
97994
97995func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
97996	reqHeaders := make(http.Header)
97997	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97998	for k, v := range c.header_ {
97999		reqHeaders[k] = v
98000	}
98001	reqHeaders.Set("User-Agent", c.s.userAgent())
98002	var body io.Reader = nil
98003	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
98004	if err != nil {
98005		return nil, err
98006	}
98007	reqHeaders.Set("Content-Type", "application/json")
98008	c.urlParams_.Set("alt", alt)
98009	c.urlParams_.Set("prettyPrint", "false")
98010	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
98011	urls += "?" + c.urlParams_.Encode()
98012	req, err := http.NewRequest("PATCH", urls, body)
98013	if err != nil {
98014		return nil, err
98015	}
98016	req.Header = reqHeaders
98017	googleapi.Expand(req.URL, map[string]string{
98018		"project":        c.project,
98019		"region":         c.region,
98020		"backendService": c.backendService,
98021	})
98022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98023}
98024
98025// Do executes the "compute.regionBackendServices.patch" call.
98026// Exactly one of *Operation or error will be non-nil. Any non-2xx
98027// status code is an error. Response headers are in either
98028// *Operation.ServerResponse.Header or (if a response was returned at
98029// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98030// to check whether the returned error was because
98031// http.StatusNotModified was returned.
98032func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98033	gensupport.SetOptions(c.urlParams_, opts...)
98034	res, err := c.doRequest("json")
98035	if res != nil && res.StatusCode == http.StatusNotModified {
98036		if res.Body != nil {
98037			res.Body.Close()
98038		}
98039		return nil, &googleapi.Error{
98040			Code:   res.StatusCode,
98041			Header: res.Header,
98042		}
98043	}
98044	if err != nil {
98045		return nil, err
98046	}
98047	defer googleapi.CloseBody(res)
98048	if err := googleapi.CheckResponse(res); err != nil {
98049		return nil, err
98050	}
98051	ret := &Operation{
98052		ServerResponse: googleapi.ServerResponse{
98053			Header:         res.Header,
98054			HTTPStatusCode: res.StatusCode,
98055		},
98056	}
98057	target := &ret
98058	if err := gensupport.DecodeResponse(target, res); err != nil {
98059		return nil, err
98060	}
98061	return ret, nil
98062	// {
98063	//   "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.",
98064	//   "httpMethod": "PATCH",
98065	//   "id": "compute.regionBackendServices.patch",
98066	//   "parameterOrder": [
98067	//     "project",
98068	//     "region",
98069	//     "backendService"
98070	//   ],
98071	//   "parameters": {
98072	//     "backendService": {
98073	//       "description": "Name of the BackendService resource to patch.",
98074	//       "location": "path",
98075	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98076	//       "required": true,
98077	//       "type": "string"
98078	//     },
98079	//     "project": {
98080	//       "description": "Project ID for this request.",
98081	//       "location": "path",
98082	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98083	//       "required": true,
98084	//       "type": "string"
98085	//     },
98086	//     "region": {
98087	//       "description": "Name of the region scoping this request.",
98088	//       "location": "path",
98089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98090	//       "required": true,
98091	//       "type": "string"
98092	//     },
98093	//     "requestId": {
98094	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98095	//       "location": "query",
98096	//       "type": "string"
98097	//     }
98098	//   },
98099	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
98100	//   "request": {
98101	//     "$ref": "BackendService"
98102	//   },
98103	//   "response": {
98104	//     "$ref": "Operation"
98105	//   },
98106	//   "scopes": [
98107	//     "https://www.googleapis.com/auth/cloud-platform",
98108	//     "https://www.googleapis.com/auth/compute"
98109	//   ]
98110	// }
98111
98112}
98113
98114// method id "compute.regionBackendServices.update":
98115
98116type RegionBackendServicesUpdateCall struct {
98117	s              *Service
98118	project        string
98119	region         string
98120	backendService string
98121	backendservice *BackendService
98122	urlParams_     gensupport.URLParams
98123	ctx_           context.Context
98124	header_        http.Header
98125}
98126
98127// Update: Updates the specified regional BackendService resource with
98128// the data included in the request. For more information, see  Backend
98129// services overview.
98130func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
98131	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98132	c.project = project
98133	c.region = region
98134	c.backendService = backendService
98135	c.backendservice = backendservice
98136	return c
98137}
98138
98139// RequestId sets the optional parameter "requestId": An optional
98140// request ID to identify requests. Specify a unique request ID so that
98141// if you must retry your request, the server will know to ignore the
98142// request if it has already been completed.
98143//
98144// For example, consider a situation where you make an initial request
98145// and the request times out. If you make the request again with the
98146// same request ID, the server can check if original operation with the
98147// same request ID was received, and if so, will ignore the second
98148// request. This prevents clients from accidentally creating duplicate
98149// commitments.
98150//
98151// The request ID must be a valid UUID with the exception that zero UUID
98152// is not supported (00000000-0000-0000-0000-000000000000).
98153func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
98154	c.urlParams_.Set("requestId", requestId)
98155	return c
98156}
98157
98158// Fields allows partial responses to be retrieved. See
98159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98160// for more information.
98161func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
98162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98163	return c
98164}
98165
98166// Context sets the context to be used in this call's Do method. Any
98167// pending HTTP request will be aborted if the provided context is
98168// canceled.
98169func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
98170	c.ctx_ = ctx
98171	return c
98172}
98173
98174// Header returns an http.Header that can be modified by the caller to
98175// add HTTP headers to the request.
98176func (c *RegionBackendServicesUpdateCall) Header() http.Header {
98177	if c.header_ == nil {
98178		c.header_ = make(http.Header)
98179	}
98180	return c.header_
98181}
98182
98183func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
98184	reqHeaders := make(http.Header)
98185	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98186	for k, v := range c.header_ {
98187		reqHeaders[k] = v
98188	}
98189	reqHeaders.Set("User-Agent", c.s.userAgent())
98190	var body io.Reader = nil
98191	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
98192	if err != nil {
98193		return nil, err
98194	}
98195	reqHeaders.Set("Content-Type", "application/json")
98196	c.urlParams_.Set("alt", alt)
98197	c.urlParams_.Set("prettyPrint", "false")
98198	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
98199	urls += "?" + c.urlParams_.Encode()
98200	req, err := http.NewRequest("PUT", urls, body)
98201	if err != nil {
98202		return nil, err
98203	}
98204	req.Header = reqHeaders
98205	googleapi.Expand(req.URL, map[string]string{
98206		"project":        c.project,
98207		"region":         c.region,
98208		"backendService": c.backendService,
98209	})
98210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98211}
98212
98213// Do executes the "compute.regionBackendServices.update" call.
98214// Exactly one of *Operation or error will be non-nil. Any non-2xx
98215// status code is an error. Response headers are in either
98216// *Operation.ServerResponse.Header or (if a response was returned at
98217// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98218// to check whether the returned error was because
98219// http.StatusNotModified was returned.
98220func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98221	gensupport.SetOptions(c.urlParams_, opts...)
98222	res, err := c.doRequest("json")
98223	if res != nil && res.StatusCode == http.StatusNotModified {
98224		if res.Body != nil {
98225			res.Body.Close()
98226		}
98227		return nil, &googleapi.Error{
98228			Code:   res.StatusCode,
98229			Header: res.Header,
98230		}
98231	}
98232	if err != nil {
98233		return nil, err
98234	}
98235	defer googleapi.CloseBody(res)
98236	if err := googleapi.CheckResponse(res); err != nil {
98237		return nil, err
98238	}
98239	ret := &Operation{
98240		ServerResponse: googleapi.ServerResponse{
98241			Header:         res.Header,
98242			HTTPStatusCode: res.StatusCode,
98243		},
98244	}
98245	target := &ret
98246	if err := gensupport.DecodeResponse(target, res); err != nil {
98247		return nil, err
98248	}
98249	return ret, nil
98250	// {
98251	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see  Backend services overview.",
98252	//   "httpMethod": "PUT",
98253	//   "id": "compute.regionBackendServices.update",
98254	//   "parameterOrder": [
98255	//     "project",
98256	//     "region",
98257	//     "backendService"
98258	//   ],
98259	//   "parameters": {
98260	//     "backendService": {
98261	//       "description": "Name of the BackendService resource to update.",
98262	//       "location": "path",
98263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98264	//       "required": true,
98265	//       "type": "string"
98266	//     },
98267	//     "project": {
98268	//       "description": "Project ID for this request.",
98269	//       "location": "path",
98270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98271	//       "required": true,
98272	//       "type": "string"
98273	//     },
98274	//     "region": {
98275	//       "description": "Name of the region scoping this request.",
98276	//       "location": "path",
98277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98278	//       "required": true,
98279	//       "type": "string"
98280	//     },
98281	//     "requestId": {
98282	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98283	//       "location": "query",
98284	//       "type": "string"
98285	//     }
98286	//   },
98287	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
98288	//   "request": {
98289	//     "$ref": "BackendService"
98290	//   },
98291	//   "response": {
98292	//     "$ref": "Operation"
98293	//   },
98294	//   "scopes": [
98295	//     "https://www.googleapis.com/auth/cloud-platform",
98296	//     "https://www.googleapis.com/auth/compute"
98297	//   ]
98298	// }
98299
98300}
98301
98302// method id "compute.regionCommitments.aggregatedList":
98303
98304type RegionCommitmentsAggregatedListCall struct {
98305	s            *Service
98306	project      string
98307	urlParams_   gensupport.URLParams
98308	ifNoneMatch_ string
98309	ctx_         context.Context
98310	header_      http.Header
98311}
98312
98313// AggregatedList: Retrieves an aggregated list of commitments.
98314func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
98315	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98316	c.project = project
98317	return c
98318}
98319
98320// Filter sets the optional parameter "filter": A filter expression that
98321// filters resources listed in the response. The expression must specify
98322// the field name, a comparison operator, and the value that you want to
98323// use for filtering. The value must be a string, a number, or a
98324// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98325// `<`.
98326//
98327// For example, if you are filtering Compute Engine instances, you can
98328// exclude instances named `example-instance` by specifying `name !=
98329// example-instance`.
98330//
98331// You can also filter nested fields. For example, you could specify
98332// `scheduling.automaticRestart = false` to include instances only if
98333// they are not scheduled for automatic restarts. You can use filtering
98334// on nested fields to filter based on resource labels.
98335//
98336// To filter on multiple expressions, provide each separate expression
98337// within parentheses. For example: ``` (scheduling.automaticRestart =
98338// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
98339// is an `AND` expression. However, you can include `AND` and `OR`
98340// expressions explicitly. For example: ``` (cpuPlatform = "Intel
98341// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
98342// (scheduling.automaticRestart = true) ```
98343func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
98344	c.urlParams_.Set("filter", filter)
98345	return c
98346}
98347
98348// IncludeAllScopes sets the optional parameter "includeAllScopes":
98349// Indicates whether every visible scope for each scope type (zone,
98350// region, global) should be included in the response. For new resource
98351// types added after this field, the flag has no effect as new resource
98352// types will always include every visible scope for each scope type in
98353// response. For resource types which predate this field, if this flag
98354// is omitted or false, only scopes of the scope types where the
98355// resource type is expected to be found will be included.
98356func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
98357	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
98358	return c
98359}
98360
98361// MaxResults sets the optional parameter "maxResults": The maximum
98362// number of results per page that should be returned. If the number of
98363// available results is larger than `maxResults`, Compute Engine returns
98364// a `nextPageToken` that can be used to get the next page of results in
98365// subsequent list requests. Acceptable values are `0` to `500`,
98366// inclusive. (Default: `500`)
98367func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
98368	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98369	return c
98370}
98371
98372// OrderBy sets the optional parameter "orderBy": Sorts list results by
98373// a certain order. By default, results are returned in alphanumerical
98374// order based on the resource name.
98375//
98376// You can also sort results in descending order based on the creation
98377// timestamp using `orderBy="creationTimestamp desc". This sorts
98378// results based on the `creationTimestamp` field in reverse
98379// chronological order (newest result first). Use this to sort resources
98380// like operations so that the newest operation is returned
98381// first.
98382//
98383// Currently, only sorting by `name` or `creationTimestamp desc` is
98384// supported.
98385func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
98386	c.urlParams_.Set("orderBy", orderBy)
98387	return c
98388}
98389
98390// PageToken sets the optional parameter "pageToken": Specifies a page
98391// token to use. Set `pageToken` to the `nextPageToken` returned by a
98392// previous list request to get the next page of results.
98393func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
98394	c.urlParams_.Set("pageToken", pageToken)
98395	return c
98396}
98397
98398// Fields allows partial responses to be retrieved. See
98399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98400// for more information.
98401func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
98402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98403	return c
98404}
98405
98406// IfNoneMatch sets the optional parameter which makes the operation
98407// fail if the object's ETag matches the given value. This is useful for
98408// getting updates only after the object has changed since the last
98409// request. Use googleapi.IsNotModified to check whether the response
98410// error from Do is the result of In-None-Match.
98411func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
98412	c.ifNoneMatch_ = entityTag
98413	return c
98414}
98415
98416// Context sets the context to be used in this call's Do method. Any
98417// pending HTTP request will be aborted if the provided context is
98418// canceled.
98419func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
98420	c.ctx_ = ctx
98421	return c
98422}
98423
98424// Header returns an http.Header that can be modified by the caller to
98425// add HTTP headers to the request.
98426func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
98427	if c.header_ == nil {
98428		c.header_ = make(http.Header)
98429	}
98430	return c.header_
98431}
98432
98433func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
98434	reqHeaders := make(http.Header)
98435	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98436	for k, v := range c.header_ {
98437		reqHeaders[k] = v
98438	}
98439	reqHeaders.Set("User-Agent", c.s.userAgent())
98440	if c.ifNoneMatch_ != "" {
98441		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98442	}
98443	var body io.Reader = nil
98444	c.urlParams_.Set("alt", alt)
98445	c.urlParams_.Set("prettyPrint", "false")
98446	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
98447	urls += "?" + c.urlParams_.Encode()
98448	req, err := http.NewRequest("GET", urls, body)
98449	if err != nil {
98450		return nil, err
98451	}
98452	req.Header = reqHeaders
98453	googleapi.Expand(req.URL, map[string]string{
98454		"project": c.project,
98455	})
98456	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98457}
98458
98459// Do executes the "compute.regionCommitments.aggregatedList" call.
98460// Exactly one of *CommitmentAggregatedList or error will be non-nil.
98461// Any non-2xx status code is an error. Response headers are in either
98462// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
98463// returned at all) in error.(*googleapi.Error).Header. Use
98464// googleapi.IsNotModified to check whether the returned error was
98465// because http.StatusNotModified was returned.
98466func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
98467	gensupport.SetOptions(c.urlParams_, opts...)
98468	res, err := c.doRequest("json")
98469	if res != nil && res.StatusCode == http.StatusNotModified {
98470		if res.Body != nil {
98471			res.Body.Close()
98472		}
98473		return nil, &googleapi.Error{
98474			Code:   res.StatusCode,
98475			Header: res.Header,
98476		}
98477	}
98478	if err != nil {
98479		return nil, err
98480	}
98481	defer googleapi.CloseBody(res)
98482	if err := googleapi.CheckResponse(res); err != nil {
98483		return nil, err
98484	}
98485	ret := &CommitmentAggregatedList{
98486		ServerResponse: googleapi.ServerResponse{
98487			Header:         res.Header,
98488			HTTPStatusCode: res.StatusCode,
98489		},
98490	}
98491	target := &ret
98492	if err := gensupport.DecodeResponse(target, res); err != nil {
98493		return nil, err
98494	}
98495	return ret, nil
98496	// {
98497	//   "description": "Retrieves an aggregated list of commitments.",
98498	//   "httpMethod": "GET",
98499	//   "id": "compute.regionCommitments.aggregatedList",
98500	//   "parameterOrder": [
98501	//     "project"
98502	//   ],
98503	//   "parameters": {
98504	//     "filter": {
98505	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
98506	//       "location": "query",
98507	//       "type": "string"
98508	//     },
98509	//     "includeAllScopes": {
98510	//       "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.",
98511	//       "location": "query",
98512	//       "type": "boolean"
98513	//     },
98514	//     "maxResults": {
98515	//       "default": "500",
98516	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
98517	//       "format": "uint32",
98518	//       "location": "query",
98519	//       "minimum": "0",
98520	//       "type": "integer"
98521	//     },
98522	//     "orderBy": {
98523	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
98524	//       "location": "query",
98525	//       "type": "string"
98526	//     },
98527	//     "pageToken": {
98528	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
98529	//       "location": "query",
98530	//       "type": "string"
98531	//     },
98532	//     "project": {
98533	//       "description": "Project ID for this request.",
98534	//       "location": "path",
98535	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98536	//       "required": true,
98537	//       "type": "string"
98538	//     }
98539	//   },
98540	//   "path": "{project}/aggregated/commitments",
98541	//   "response": {
98542	//     "$ref": "CommitmentAggregatedList"
98543	//   },
98544	//   "scopes": [
98545	//     "https://www.googleapis.com/auth/cloud-platform",
98546	//     "https://www.googleapis.com/auth/compute",
98547	//     "https://www.googleapis.com/auth/compute.readonly"
98548	//   ]
98549	// }
98550
98551}
98552
98553// Pages invokes f for each page of results.
98554// A non-nil error returned from f will halt the iteration.
98555// The provided context supersedes any context provided to the Context method.
98556func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
98557	c.ctx_ = ctx
98558	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98559	for {
98560		x, err := c.Do()
98561		if err != nil {
98562			return err
98563		}
98564		if err := f(x); err != nil {
98565			return err
98566		}
98567		if x.NextPageToken == "" {
98568			return nil
98569		}
98570		c.PageToken(x.NextPageToken)
98571	}
98572}
98573
98574// method id "compute.regionCommitments.get":
98575
98576type RegionCommitmentsGetCall struct {
98577	s            *Service
98578	project      string
98579	region       string
98580	commitment   string
98581	urlParams_   gensupport.URLParams
98582	ifNoneMatch_ string
98583	ctx_         context.Context
98584	header_      http.Header
98585}
98586
98587// Get: Returns the specified commitment resource. Gets a list of
98588// available commitments by making a list() request.
98589func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
98590	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98591	c.project = project
98592	c.region = region
98593	c.commitment = commitment
98594	return c
98595}
98596
98597// Fields allows partial responses to be retrieved. See
98598// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98599// for more information.
98600func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
98601	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98602	return c
98603}
98604
98605// IfNoneMatch sets the optional parameter which makes the operation
98606// fail if the object's ETag matches the given value. This is useful for
98607// getting updates only after the object has changed since the last
98608// request. Use googleapi.IsNotModified to check whether the response
98609// error from Do is the result of In-None-Match.
98610func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
98611	c.ifNoneMatch_ = entityTag
98612	return c
98613}
98614
98615// Context sets the context to be used in this call's Do method. Any
98616// pending HTTP request will be aborted if the provided context is
98617// canceled.
98618func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
98619	c.ctx_ = ctx
98620	return c
98621}
98622
98623// Header returns an http.Header that can be modified by the caller to
98624// add HTTP headers to the request.
98625func (c *RegionCommitmentsGetCall) Header() http.Header {
98626	if c.header_ == nil {
98627		c.header_ = make(http.Header)
98628	}
98629	return c.header_
98630}
98631
98632func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
98633	reqHeaders := make(http.Header)
98634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98635	for k, v := range c.header_ {
98636		reqHeaders[k] = v
98637	}
98638	reqHeaders.Set("User-Agent", c.s.userAgent())
98639	if c.ifNoneMatch_ != "" {
98640		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98641	}
98642	var body io.Reader = nil
98643	c.urlParams_.Set("alt", alt)
98644	c.urlParams_.Set("prettyPrint", "false")
98645	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
98646	urls += "?" + c.urlParams_.Encode()
98647	req, err := http.NewRequest("GET", urls, body)
98648	if err != nil {
98649		return nil, err
98650	}
98651	req.Header = reqHeaders
98652	googleapi.Expand(req.URL, map[string]string{
98653		"project":    c.project,
98654		"region":     c.region,
98655		"commitment": c.commitment,
98656	})
98657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98658}
98659
98660// Do executes the "compute.regionCommitments.get" call.
98661// Exactly one of *Commitment or error will be non-nil. Any non-2xx
98662// status code is an error. Response headers are in either
98663// *Commitment.ServerResponse.Header or (if a response was returned at
98664// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98665// to check whether the returned error was because
98666// http.StatusNotModified was returned.
98667func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
98668	gensupport.SetOptions(c.urlParams_, opts...)
98669	res, err := c.doRequest("json")
98670	if res != nil && res.StatusCode == http.StatusNotModified {
98671		if res.Body != nil {
98672			res.Body.Close()
98673		}
98674		return nil, &googleapi.Error{
98675			Code:   res.StatusCode,
98676			Header: res.Header,
98677		}
98678	}
98679	if err != nil {
98680		return nil, err
98681	}
98682	defer googleapi.CloseBody(res)
98683	if err := googleapi.CheckResponse(res); err != nil {
98684		return nil, err
98685	}
98686	ret := &Commitment{
98687		ServerResponse: googleapi.ServerResponse{
98688			Header:         res.Header,
98689			HTTPStatusCode: res.StatusCode,
98690		},
98691	}
98692	target := &ret
98693	if err := gensupport.DecodeResponse(target, res); err != nil {
98694		return nil, err
98695	}
98696	return ret, nil
98697	// {
98698	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
98699	//   "httpMethod": "GET",
98700	//   "id": "compute.regionCommitments.get",
98701	//   "parameterOrder": [
98702	//     "project",
98703	//     "region",
98704	//     "commitment"
98705	//   ],
98706	//   "parameters": {
98707	//     "commitment": {
98708	//       "description": "Name of the commitment to return.",
98709	//       "location": "path",
98710	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98711	//       "required": true,
98712	//       "type": "string"
98713	//     },
98714	//     "project": {
98715	//       "description": "Project ID for this request.",
98716	//       "location": "path",
98717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98718	//       "required": true,
98719	//       "type": "string"
98720	//     },
98721	//     "region": {
98722	//       "description": "Name of the region for this request.",
98723	//       "location": "path",
98724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98725	//       "required": true,
98726	//       "type": "string"
98727	//     }
98728	//   },
98729	//   "path": "{project}/regions/{region}/commitments/{commitment}",
98730	//   "response": {
98731	//     "$ref": "Commitment"
98732	//   },
98733	//   "scopes": [
98734	//     "https://www.googleapis.com/auth/cloud-platform",
98735	//     "https://www.googleapis.com/auth/compute",
98736	//     "https://www.googleapis.com/auth/compute.readonly"
98737	//   ]
98738	// }
98739
98740}
98741
98742// method id "compute.regionCommitments.insert":
98743
98744type RegionCommitmentsInsertCall struct {
98745	s          *Service
98746	project    string
98747	region     string
98748	commitment *Commitment
98749	urlParams_ gensupport.URLParams
98750	ctx_       context.Context
98751	header_    http.Header
98752}
98753
98754// Insert: Creates a commitment in the specified project using the data
98755// included in the request.
98756func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
98757	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98758	c.project = project
98759	c.region = region
98760	c.commitment = commitment
98761	return c
98762}
98763
98764// RequestId sets the optional parameter "requestId": An optional
98765// request ID to identify requests. Specify a unique request ID so that
98766// if you must retry your request, the server will know to ignore the
98767// request if it has already been completed.
98768//
98769// For example, consider a situation where you make an initial request
98770// and the request times out. If you make the request again with the
98771// same request ID, the server can check if original operation with the
98772// same request ID was received, and if so, will ignore the second
98773// request. This prevents clients from accidentally creating duplicate
98774// commitments.
98775//
98776// The request ID must be a valid UUID with the exception that zero UUID
98777// is not supported (00000000-0000-0000-0000-000000000000).
98778func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
98779	c.urlParams_.Set("requestId", requestId)
98780	return c
98781}
98782
98783// Fields allows partial responses to be retrieved. See
98784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98785// for more information.
98786func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
98787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98788	return c
98789}
98790
98791// Context sets the context to be used in this call's Do method. Any
98792// pending HTTP request will be aborted if the provided context is
98793// canceled.
98794func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
98795	c.ctx_ = ctx
98796	return c
98797}
98798
98799// Header returns an http.Header that can be modified by the caller to
98800// add HTTP headers to the request.
98801func (c *RegionCommitmentsInsertCall) Header() http.Header {
98802	if c.header_ == nil {
98803		c.header_ = make(http.Header)
98804	}
98805	return c.header_
98806}
98807
98808func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
98809	reqHeaders := make(http.Header)
98810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98811	for k, v := range c.header_ {
98812		reqHeaders[k] = v
98813	}
98814	reqHeaders.Set("User-Agent", c.s.userAgent())
98815	var body io.Reader = nil
98816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
98817	if err != nil {
98818		return nil, err
98819	}
98820	reqHeaders.Set("Content-Type", "application/json")
98821	c.urlParams_.Set("alt", alt)
98822	c.urlParams_.Set("prettyPrint", "false")
98823	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
98824	urls += "?" + c.urlParams_.Encode()
98825	req, err := http.NewRequest("POST", urls, body)
98826	if err != nil {
98827		return nil, err
98828	}
98829	req.Header = reqHeaders
98830	googleapi.Expand(req.URL, map[string]string{
98831		"project": c.project,
98832		"region":  c.region,
98833	})
98834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98835}
98836
98837// Do executes the "compute.regionCommitments.insert" call.
98838// Exactly one of *Operation or error will be non-nil. Any non-2xx
98839// status code is an error. Response headers are in either
98840// *Operation.ServerResponse.Header or (if a response was returned at
98841// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98842// to check whether the returned error was because
98843// http.StatusNotModified was returned.
98844func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98845	gensupport.SetOptions(c.urlParams_, opts...)
98846	res, err := c.doRequest("json")
98847	if res != nil && res.StatusCode == http.StatusNotModified {
98848		if res.Body != nil {
98849			res.Body.Close()
98850		}
98851		return nil, &googleapi.Error{
98852			Code:   res.StatusCode,
98853			Header: res.Header,
98854		}
98855	}
98856	if err != nil {
98857		return nil, err
98858	}
98859	defer googleapi.CloseBody(res)
98860	if err := googleapi.CheckResponse(res); err != nil {
98861		return nil, err
98862	}
98863	ret := &Operation{
98864		ServerResponse: googleapi.ServerResponse{
98865			Header:         res.Header,
98866			HTTPStatusCode: res.StatusCode,
98867		},
98868	}
98869	target := &ret
98870	if err := gensupport.DecodeResponse(target, res); err != nil {
98871		return nil, err
98872	}
98873	return ret, nil
98874	// {
98875	//   "description": "Creates a commitment in the specified project using the data included in the request.",
98876	//   "httpMethod": "POST",
98877	//   "id": "compute.regionCommitments.insert",
98878	//   "parameterOrder": [
98879	//     "project",
98880	//     "region"
98881	//   ],
98882	//   "parameters": {
98883	//     "project": {
98884	//       "description": "Project ID for this request.",
98885	//       "location": "path",
98886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98887	//       "required": true,
98888	//       "type": "string"
98889	//     },
98890	//     "region": {
98891	//       "description": "Name of the region for this request.",
98892	//       "location": "path",
98893	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98894	//       "required": true,
98895	//       "type": "string"
98896	//     },
98897	//     "requestId": {
98898	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98899	//       "location": "query",
98900	//       "type": "string"
98901	//     }
98902	//   },
98903	//   "path": "{project}/regions/{region}/commitments",
98904	//   "request": {
98905	//     "$ref": "Commitment"
98906	//   },
98907	//   "response": {
98908	//     "$ref": "Operation"
98909	//   },
98910	//   "scopes": [
98911	//     "https://www.googleapis.com/auth/cloud-platform",
98912	//     "https://www.googleapis.com/auth/compute"
98913	//   ]
98914	// }
98915
98916}
98917
98918// method id "compute.regionCommitments.list":
98919
98920type RegionCommitmentsListCall struct {
98921	s            *Service
98922	project      string
98923	region       string
98924	urlParams_   gensupport.URLParams
98925	ifNoneMatch_ string
98926	ctx_         context.Context
98927	header_      http.Header
98928}
98929
98930// List: Retrieves a list of commitments contained within the specified
98931// region.
98932func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
98933	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98934	c.project = project
98935	c.region = region
98936	return c
98937}
98938
98939// Filter sets the optional parameter "filter": A filter expression that
98940// filters resources listed in the response. The expression must specify
98941// the field name, a comparison operator, and the value that you want to
98942// use for filtering. The value must be a string, a number, or a
98943// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98944// `<`.
98945//
98946// For example, if you are filtering Compute Engine instances, you can
98947// exclude instances named `example-instance` by specifying `name !=
98948// example-instance`.
98949//
98950// You can also filter nested fields. For example, you could specify
98951// `scheduling.automaticRestart = false` to include instances only if
98952// they are not scheduled for automatic restarts. You can use filtering
98953// on nested fields to filter based on resource labels.
98954//
98955// To filter on multiple expressions, provide each separate expression
98956// within parentheses. For example: ``` (scheduling.automaticRestart =
98957// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
98958// is an `AND` expression. However, you can include `AND` and `OR`
98959// expressions explicitly. For example: ``` (cpuPlatform = "Intel
98960// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
98961// (scheduling.automaticRestart = true) ```
98962func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
98963	c.urlParams_.Set("filter", filter)
98964	return c
98965}
98966
98967// MaxResults sets the optional parameter "maxResults": The maximum
98968// number of results per page that should be returned. If the number of
98969// available results is larger than `maxResults`, Compute Engine returns
98970// a `nextPageToken` that can be used to get the next page of results in
98971// subsequent list requests. Acceptable values are `0` to `500`,
98972// inclusive. (Default: `500`)
98973func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
98974	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98975	return c
98976}
98977
98978// OrderBy sets the optional parameter "orderBy": Sorts list results by
98979// a certain order. By default, results are returned in alphanumerical
98980// order based on the resource name.
98981//
98982// You can also sort results in descending order based on the creation
98983// timestamp using `orderBy="creationTimestamp desc". This sorts
98984// results based on the `creationTimestamp` field in reverse
98985// chronological order (newest result first). Use this to sort resources
98986// like operations so that the newest operation is returned
98987// first.
98988//
98989// Currently, only sorting by `name` or `creationTimestamp desc` is
98990// supported.
98991func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
98992	c.urlParams_.Set("orderBy", orderBy)
98993	return c
98994}
98995
98996// PageToken sets the optional parameter "pageToken": Specifies a page
98997// token to use. Set `pageToken` to the `nextPageToken` returned by a
98998// previous list request to get the next page of results.
98999func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
99000	c.urlParams_.Set("pageToken", pageToken)
99001	return c
99002}
99003
99004// Fields allows partial responses to be retrieved. See
99005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99006// for more information.
99007func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
99008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99009	return c
99010}
99011
99012// IfNoneMatch sets the optional parameter which makes the operation
99013// fail if the object's ETag matches the given value. This is useful for
99014// getting updates only after the object has changed since the last
99015// request. Use googleapi.IsNotModified to check whether the response
99016// error from Do is the result of In-None-Match.
99017func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
99018	c.ifNoneMatch_ = entityTag
99019	return c
99020}
99021
99022// Context sets the context to be used in this call's Do method. Any
99023// pending HTTP request will be aborted if the provided context is
99024// canceled.
99025func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
99026	c.ctx_ = ctx
99027	return c
99028}
99029
99030// Header returns an http.Header that can be modified by the caller to
99031// add HTTP headers to the request.
99032func (c *RegionCommitmentsListCall) Header() http.Header {
99033	if c.header_ == nil {
99034		c.header_ = make(http.Header)
99035	}
99036	return c.header_
99037}
99038
99039func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
99040	reqHeaders := make(http.Header)
99041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99042	for k, v := range c.header_ {
99043		reqHeaders[k] = v
99044	}
99045	reqHeaders.Set("User-Agent", c.s.userAgent())
99046	if c.ifNoneMatch_ != "" {
99047		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99048	}
99049	var body io.Reader = nil
99050	c.urlParams_.Set("alt", alt)
99051	c.urlParams_.Set("prettyPrint", "false")
99052	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
99053	urls += "?" + c.urlParams_.Encode()
99054	req, err := http.NewRequest("GET", urls, body)
99055	if err != nil {
99056		return nil, err
99057	}
99058	req.Header = reqHeaders
99059	googleapi.Expand(req.URL, map[string]string{
99060		"project": c.project,
99061		"region":  c.region,
99062	})
99063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99064}
99065
99066// Do executes the "compute.regionCommitments.list" call.
99067// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
99068// status code is an error. Response headers are in either
99069// *CommitmentList.ServerResponse.Header or (if a response was returned
99070// at all) in error.(*googleapi.Error).Header. Use
99071// googleapi.IsNotModified to check whether the returned error was
99072// because http.StatusNotModified was returned.
99073func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
99074	gensupport.SetOptions(c.urlParams_, opts...)
99075	res, err := c.doRequest("json")
99076	if res != nil && res.StatusCode == http.StatusNotModified {
99077		if res.Body != nil {
99078			res.Body.Close()
99079		}
99080		return nil, &googleapi.Error{
99081			Code:   res.StatusCode,
99082			Header: res.Header,
99083		}
99084	}
99085	if err != nil {
99086		return nil, err
99087	}
99088	defer googleapi.CloseBody(res)
99089	if err := googleapi.CheckResponse(res); err != nil {
99090		return nil, err
99091	}
99092	ret := &CommitmentList{
99093		ServerResponse: googleapi.ServerResponse{
99094			Header:         res.Header,
99095			HTTPStatusCode: res.StatusCode,
99096		},
99097	}
99098	target := &ret
99099	if err := gensupport.DecodeResponse(target, res); err != nil {
99100		return nil, err
99101	}
99102	return ret, nil
99103	// {
99104	//   "description": "Retrieves a list of commitments contained within the specified region.",
99105	//   "httpMethod": "GET",
99106	//   "id": "compute.regionCommitments.list",
99107	//   "parameterOrder": [
99108	//     "project",
99109	//     "region"
99110	//   ],
99111	//   "parameters": {
99112	//     "filter": {
99113	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
99114	//       "location": "query",
99115	//       "type": "string"
99116	//     },
99117	//     "maxResults": {
99118	//       "default": "500",
99119	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
99120	//       "format": "uint32",
99121	//       "location": "query",
99122	//       "minimum": "0",
99123	//       "type": "integer"
99124	//     },
99125	//     "orderBy": {
99126	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
99127	//       "location": "query",
99128	//       "type": "string"
99129	//     },
99130	//     "pageToken": {
99131	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
99132	//       "location": "query",
99133	//       "type": "string"
99134	//     },
99135	//     "project": {
99136	//       "description": "Project ID for this request.",
99137	//       "location": "path",
99138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99139	//       "required": true,
99140	//       "type": "string"
99141	//     },
99142	//     "region": {
99143	//       "description": "Name of the region for this request.",
99144	//       "location": "path",
99145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99146	//       "required": true,
99147	//       "type": "string"
99148	//     }
99149	//   },
99150	//   "path": "{project}/regions/{region}/commitments",
99151	//   "response": {
99152	//     "$ref": "CommitmentList"
99153	//   },
99154	//   "scopes": [
99155	//     "https://www.googleapis.com/auth/cloud-platform",
99156	//     "https://www.googleapis.com/auth/compute",
99157	//     "https://www.googleapis.com/auth/compute.readonly"
99158	//   ]
99159	// }
99160
99161}
99162
99163// Pages invokes f for each page of results.
99164// A non-nil error returned from f will halt the iteration.
99165// The provided context supersedes any context provided to the Context method.
99166func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
99167	c.ctx_ = ctx
99168	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99169	for {
99170		x, err := c.Do()
99171		if err != nil {
99172			return err
99173		}
99174		if err := f(x); err != nil {
99175			return err
99176		}
99177		if x.NextPageToken == "" {
99178			return nil
99179		}
99180		c.PageToken(x.NextPageToken)
99181	}
99182}
99183
99184// method id "compute.regionDiskTypes.get":
99185
99186type RegionDiskTypesGetCall struct {
99187	s            *Service
99188	project      string
99189	region       string
99190	diskType     string
99191	urlParams_   gensupport.URLParams
99192	ifNoneMatch_ string
99193	ctx_         context.Context
99194	header_      http.Header
99195}
99196
99197// Get: Returns the specified regional disk type. Gets a list of
99198// available disk types by making a list() request.
99199func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
99200	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99201	c.project = project
99202	c.region = region
99203	c.diskType = diskType
99204	return c
99205}
99206
99207// Fields allows partial responses to be retrieved. See
99208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99209// for more information.
99210func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
99211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99212	return c
99213}
99214
99215// IfNoneMatch sets the optional parameter which makes the operation
99216// fail if the object's ETag matches the given value. This is useful for
99217// getting updates only after the object has changed since the last
99218// request. Use googleapi.IsNotModified to check whether the response
99219// error from Do is the result of In-None-Match.
99220func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
99221	c.ifNoneMatch_ = entityTag
99222	return c
99223}
99224
99225// Context sets the context to be used in this call's Do method. Any
99226// pending HTTP request will be aborted if the provided context is
99227// canceled.
99228func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
99229	c.ctx_ = ctx
99230	return c
99231}
99232
99233// Header returns an http.Header that can be modified by the caller to
99234// add HTTP headers to the request.
99235func (c *RegionDiskTypesGetCall) Header() http.Header {
99236	if c.header_ == nil {
99237		c.header_ = make(http.Header)
99238	}
99239	return c.header_
99240}
99241
99242func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
99243	reqHeaders := make(http.Header)
99244	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99245	for k, v := range c.header_ {
99246		reqHeaders[k] = v
99247	}
99248	reqHeaders.Set("User-Agent", c.s.userAgent())
99249	if c.ifNoneMatch_ != "" {
99250		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99251	}
99252	var body io.Reader = nil
99253	c.urlParams_.Set("alt", alt)
99254	c.urlParams_.Set("prettyPrint", "false")
99255	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes/{diskType}")
99256	urls += "?" + c.urlParams_.Encode()
99257	req, err := http.NewRequest("GET", urls, body)
99258	if err != nil {
99259		return nil, err
99260	}
99261	req.Header = reqHeaders
99262	googleapi.Expand(req.URL, map[string]string{
99263		"project":  c.project,
99264		"region":   c.region,
99265		"diskType": c.diskType,
99266	})
99267	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99268}
99269
99270// Do executes the "compute.regionDiskTypes.get" call.
99271// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
99272// code is an error. Response headers are in either
99273// *DiskType.ServerResponse.Header or (if a response was returned at
99274// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99275// to check whether the returned error was because
99276// http.StatusNotModified was returned.
99277func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
99278	gensupport.SetOptions(c.urlParams_, opts...)
99279	res, err := c.doRequest("json")
99280	if res != nil && res.StatusCode == http.StatusNotModified {
99281		if res.Body != nil {
99282			res.Body.Close()
99283		}
99284		return nil, &googleapi.Error{
99285			Code:   res.StatusCode,
99286			Header: res.Header,
99287		}
99288	}
99289	if err != nil {
99290		return nil, err
99291	}
99292	defer googleapi.CloseBody(res)
99293	if err := googleapi.CheckResponse(res); err != nil {
99294		return nil, err
99295	}
99296	ret := &DiskType{
99297		ServerResponse: googleapi.ServerResponse{
99298			Header:         res.Header,
99299			HTTPStatusCode: res.StatusCode,
99300		},
99301	}
99302	target := &ret
99303	if err := gensupport.DecodeResponse(target, res); err != nil {
99304		return nil, err
99305	}
99306	return ret, nil
99307	// {
99308	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
99309	//   "httpMethod": "GET",
99310	//   "id": "compute.regionDiskTypes.get",
99311	//   "parameterOrder": [
99312	//     "project",
99313	//     "region",
99314	//     "diskType"
99315	//   ],
99316	//   "parameters": {
99317	//     "diskType": {
99318	//       "description": "Name of the disk type to return.",
99319	//       "location": "path",
99320	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99321	//       "required": true,
99322	//       "type": "string"
99323	//     },
99324	//     "project": {
99325	//       "description": "Project ID for this request.",
99326	//       "location": "path",
99327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99328	//       "required": true,
99329	//       "type": "string"
99330	//     },
99331	//     "region": {
99332	//       "description": "The name of the region for this request.",
99333	//       "location": "path",
99334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99335	//       "required": true,
99336	//       "type": "string"
99337	//     }
99338	//   },
99339	//   "path": "{project}/regions/{region}/diskTypes/{diskType}",
99340	//   "response": {
99341	//     "$ref": "DiskType"
99342	//   },
99343	//   "scopes": [
99344	//     "https://www.googleapis.com/auth/cloud-platform",
99345	//     "https://www.googleapis.com/auth/compute",
99346	//     "https://www.googleapis.com/auth/compute.readonly"
99347	//   ]
99348	// }
99349
99350}
99351
99352// method id "compute.regionDiskTypes.list":
99353
99354type RegionDiskTypesListCall struct {
99355	s            *Service
99356	project      string
99357	region       string
99358	urlParams_   gensupport.URLParams
99359	ifNoneMatch_ string
99360	ctx_         context.Context
99361	header_      http.Header
99362}
99363
99364// List: Retrieves a list of regional disk types available to the
99365// specified project.
99366func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
99367	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99368	c.project = project
99369	c.region = region
99370	return c
99371}
99372
99373// Filter sets the optional parameter "filter": A filter expression that
99374// filters resources listed in the response. The expression must specify
99375// the field name, a comparison operator, and the value that you want to
99376// use for filtering. The value must be a string, a number, or a
99377// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99378// `<`.
99379//
99380// For example, if you are filtering Compute Engine instances, you can
99381// exclude instances named `example-instance` by specifying `name !=
99382// example-instance`.
99383//
99384// You can also filter nested fields. For example, you could specify
99385// `scheduling.automaticRestart = false` to include instances only if
99386// they are not scheduled for automatic restarts. You can use filtering
99387// on nested fields to filter based on resource labels.
99388//
99389// To filter on multiple expressions, provide each separate expression
99390// within parentheses. For example: ``` (scheduling.automaticRestart =
99391// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
99392// is an `AND` expression. However, you can include `AND` and `OR`
99393// expressions explicitly. For example: ``` (cpuPlatform = "Intel
99394// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
99395// (scheduling.automaticRestart = true) ```
99396func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
99397	c.urlParams_.Set("filter", filter)
99398	return c
99399}
99400
99401// MaxResults sets the optional parameter "maxResults": The maximum
99402// number of results per page that should be returned. If the number of
99403// available results is larger than `maxResults`, Compute Engine returns
99404// a `nextPageToken` that can be used to get the next page of results in
99405// subsequent list requests. Acceptable values are `0` to `500`,
99406// inclusive. (Default: `500`)
99407func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
99408	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99409	return c
99410}
99411
99412// OrderBy sets the optional parameter "orderBy": Sorts list results by
99413// a certain order. By default, results are returned in alphanumerical
99414// order based on the resource name.
99415//
99416// You can also sort results in descending order based on the creation
99417// timestamp using `orderBy="creationTimestamp desc". This sorts
99418// results based on the `creationTimestamp` field in reverse
99419// chronological order (newest result first). Use this to sort resources
99420// like operations so that the newest operation is returned
99421// first.
99422//
99423// Currently, only sorting by `name` or `creationTimestamp desc` is
99424// supported.
99425func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
99426	c.urlParams_.Set("orderBy", orderBy)
99427	return c
99428}
99429
99430// PageToken sets the optional parameter "pageToken": Specifies a page
99431// token to use. Set `pageToken` to the `nextPageToken` returned by a
99432// previous list request to get the next page of results.
99433func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
99434	c.urlParams_.Set("pageToken", pageToken)
99435	return c
99436}
99437
99438// Fields allows partial responses to be retrieved. See
99439// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99440// for more information.
99441func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
99442	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99443	return c
99444}
99445
99446// IfNoneMatch sets the optional parameter which makes the operation
99447// fail if the object's ETag matches the given value. This is useful for
99448// getting updates only after the object has changed since the last
99449// request. Use googleapi.IsNotModified to check whether the response
99450// error from Do is the result of In-None-Match.
99451func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
99452	c.ifNoneMatch_ = entityTag
99453	return c
99454}
99455
99456// Context sets the context to be used in this call's Do method. Any
99457// pending HTTP request will be aborted if the provided context is
99458// canceled.
99459func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
99460	c.ctx_ = ctx
99461	return c
99462}
99463
99464// Header returns an http.Header that can be modified by the caller to
99465// add HTTP headers to the request.
99466func (c *RegionDiskTypesListCall) Header() http.Header {
99467	if c.header_ == nil {
99468		c.header_ = make(http.Header)
99469	}
99470	return c.header_
99471}
99472
99473func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
99474	reqHeaders := make(http.Header)
99475	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99476	for k, v := range c.header_ {
99477		reqHeaders[k] = v
99478	}
99479	reqHeaders.Set("User-Agent", c.s.userAgent())
99480	if c.ifNoneMatch_ != "" {
99481		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99482	}
99483	var body io.Reader = nil
99484	c.urlParams_.Set("alt", alt)
99485	c.urlParams_.Set("prettyPrint", "false")
99486	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes")
99487	urls += "?" + c.urlParams_.Encode()
99488	req, err := http.NewRequest("GET", urls, body)
99489	if err != nil {
99490		return nil, err
99491	}
99492	req.Header = reqHeaders
99493	googleapi.Expand(req.URL, map[string]string{
99494		"project": c.project,
99495		"region":  c.region,
99496	})
99497	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99498}
99499
99500// Do executes the "compute.regionDiskTypes.list" call.
99501// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
99502// non-2xx status code is an error. Response headers are in either
99503// *RegionDiskTypeList.ServerResponse.Header or (if a response was
99504// returned at all) in error.(*googleapi.Error).Header. Use
99505// googleapi.IsNotModified to check whether the returned error was
99506// because http.StatusNotModified was returned.
99507func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
99508	gensupport.SetOptions(c.urlParams_, opts...)
99509	res, err := c.doRequest("json")
99510	if res != nil && res.StatusCode == http.StatusNotModified {
99511		if res.Body != nil {
99512			res.Body.Close()
99513		}
99514		return nil, &googleapi.Error{
99515			Code:   res.StatusCode,
99516			Header: res.Header,
99517		}
99518	}
99519	if err != nil {
99520		return nil, err
99521	}
99522	defer googleapi.CloseBody(res)
99523	if err := googleapi.CheckResponse(res); err != nil {
99524		return nil, err
99525	}
99526	ret := &RegionDiskTypeList{
99527		ServerResponse: googleapi.ServerResponse{
99528			Header:         res.Header,
99529			HTTPStatusCode: res.StatusCode,
99530		},
99531	}
99532	target := &ret
99533	if err := gensupport.DecodeResponse(target, res); err != nil {
99534		return nil, err
99535	}
99536	return ret, nil
99537	// {
99538	//   "description": "Retrieves a list of regional disk types available to the specified project.",
99539	//   "httpMethod": "GET",
99540	//   "id": "compute.regionDiskTypes.list",
99541	//   "parameterOrder": [
99542	//     "project",
99543	//     "region"
99544	//   ],
99545	//   "parameters": {
99546	//     "filter": {
99547	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
99548	//       "location": "query",
99549	//       "type": "string"
99550	//     },
99551	//     "maxResults": {
99552	//       "default": "500",
99553	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
99554	//       "format": "uint32",
99555	//       "location": "query",
99556	//       "minimum": "0",
99557	//       "type": "integer"
99558	//     },
99559	//     "orderBy": {
99560	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
99561	//       "location": "query",
99562	//       "type": "string"
99563	//     },
99564	//     "pageToken": {
99565	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
99566	//       "location": "query",
99567	//       "type": "string"
99568	//     },
99569	//     "project": {
99570	//       "description": "Project ID for this request.",
99571	//       "location": "path",
99572	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99573	//       "required": true,
99574	//       "type": "string"
99575	//     },
99576	//     "region": {
99577	//       "description": "The name of the region for this request.",
99578	//       "location": "path",
99579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99580	//       "required": true,
99581	//       "type": "string"
99582	//     }
99583	//   },
99584	//   "path": "{project}/regions/{region}/diskTypes",
99585	//   "response": {
99586	//     "$ref": "RegionDiskTypeList"
99587	//   },
99588	//   "scopes": [
99589	//     "https://www.googleapis.com/auth/cloud-platform",
99590	//     "https://www.googleapis.com/auth/compute",
99591	//     "https://www.googleapis.com/auth/compute.readonly"
99592	//   ]
99593	// }
99594
99595}
99596
99597// Pages invokes f for each page of results.
99598// A non-nil error returned from f will halt the iteration.
99599// The provided context supersedes any context provided to the Context method.
99600func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
99601	c.ctx_ = ctx
99602	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99603	for {
99604		x, err := c.Do()
99605		if err != nil {
99606			return err
99607		}
99608		if err := f(x); err != nil {
99609			return err
99610		}
99611		if x.NextPageToken == "" {
99612			return nil
99613		}
99614		c.PageToken(x.NextPageToken)
99615	}
99616}
99617
99618// method id "compute.regionDisks.addResourcePolicies":
99619
99620type RegionDisksAddResourcePoliciesCall struct {
99621	s                                     *Service
99622	project                               string
99623	region                                string
99624	disk                                  string
99625	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
99626	urlParams_                            gensupport.URLParams
99627	ctx_                                  context.Context
99628	header_                               http.Header
99629}
99630
99631// AddResourcePolicies: Adds existing resource policies to a regional
99632// disk. You can only add one policy which will be applied to this disk
99633// for scheduling snapshot creation.
99634func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
99635	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99636	c.project = project
99637	c.region = region
99638	c.disk = disk
99639	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
99640	return c
99641}
99642
99643// RequestId sets the optional parameter "requestId": An optional
99644// request ID to identify requests. Specify a unique request ID so that
99645// if you must retry your request, the server will know to ignore the
99646// request if it has already been completed.
99647//
99648// For example, consider a situation where you make an initial request
99649// and the request times out. If you make the request again with the
99650// same request ID, the server can check if original operation with the
99651// same request ID was received, and if so, will ignore the second
99652// request. This prevents clients from accidentally creating duplicate
99653// commitments.
99654//
99655// The request ID must be a valid UUID with the exception that zero UUID
99656// is not supported (00000000-0000-0000-0000-000000000000).
99657func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
99658	c.urlParams_.Set("requestId", requestId)
99659	return c
99660}
99661
99662// Fields allows partial responses to be retrieved. See
99663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99664// for more information.
99665func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
99666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99667	return c
99668}
99669
99670// Context sets the context to be used in this call's Do method. Any
99671// pending HTTP request will be aborted if the provided context is
99672// canceled.
99673func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
99674	c.ctx_ = ctx
99675	return c
99676}
99677
99678// Header returns an http.Header that can be modified by the caller to
99679// add HTTP headers to the request.
99680func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
99681	if c.header_ == nil {
99682		c.header_ = make(http.Header)
99683	}
99684	return c.header_
99685}
99686
99687func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
99688	reqHeaders := make(http.Header)
99689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99690	for k, v := range c.header_ {
99691		reqHeaders[k] = v
99692	}
99693	reqHeaders.Set("User-Agent", c.s.userAgent())
99694	var body io.Reader = nil
99695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
99696	if err != nil {
99697		return nil, err
99698	}
99699	reqHeaders.Set("Content-Type", "application/json")
99700	c.urlParams_.Set("alt", alt)
99701	c.urlParams_.Set("prettyPrint", "false")
99702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/addResourcePolicies")
99703	urls += "?" + c.urlParams_.Encode()
99704	req, err := http.NewRequest("POST", urls, body)
99705	if err != nil {
99706		return nil, err
99707	}
99708	req.Header = reqHeaders
99709	googleapi.Expand(req.URL, map[string]string{
99710		"project": c.project,
99711		"region":  c.region,
99712		"disk":    c.disk,
99713	})
99714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99715}
99716
99717// Do executes the "compute.regionDisks.addResourcePolicies" call.
99718// Exactly one of *Operation or error will be non-nil. Any non-2xx
99719// status code is an error. Response headers are in either
99720// *Operation.ServerResponse.Header or (if a response was returned at
99721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99722// to check whether the returned error was because
99723// http.StatusNotModified was returned.
99724func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99725	gensupport.SetOptions(c.urlParams_, opts...)
99726	res, err := c.doRequest("json")
99727	if res != nil && res.StatusCode == http.StatusNotModified {
99728		if res.Body != nil {
99729			res.Body.Close()
99730		}
99731		return nil, &googleapi.Error{
99732			Code:   res.StatusCode,
99733			Header: res.Header,
99734		}
99735	}
99736	if err != nil {
99737		return nil, err
99738	}
99739	defer googleapi.CloseBody(res)
99740	if err := googleapi.CheckResponse(res); err != nil {
99741		return nil, err
99742	}
99743	ret := &Operation{
99744		ServerResponse: googleapi.ServerResponse{
99745			Header:         res.Header,
99746			HTTPStatusCode: res.StatusCode,
99747		},
99748	}
99749	target := &ret
99750	if err := gensupport.DecodeResponse(target, res); err != nil {
99751		return nil, err
99752	}
99753	return ret, nil
99754	// {
99755	//   "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.",
99756	//   "httpMethod": "POST",
99757	//   "id": "compute.regionDisks.addResourcePolicies",
99758	//   "parameterOrder": [
99759	//     "project",
99760	//     "region",
99761	//     "disk"
99762	//   ],
99763	//   "parameters": {
99764	//     "disk": {
99765	//       "description": "The disk name for this request.",
99766	//       "location": "path",
99767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99768	//       "required": true,
99769	//       "type": "string"
99770	//     },
99771	//     "project": {
99772	//       "description": "Project ID for this request.",
99773	//       "location": "path",
99774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99775	//       "required": true,
99776	//       "type": "string"
99777	//     },
99778	//     "region": {
99779	//       "description": "The name of the region for this request.",
99780	//       "location": "path",
99781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99782	//       "required": true,
99783	//       "type": "string"
99784	//     },
99785	//     "requestId": {
99786	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99787	//       "location": "query",
99788	//       "type": "string"
99789	//     }
99790	//   },
99791	//   "path": "{project}/regions/{region}/disks/{disk}/addResourcePolicies",
99792	//   "request": {
99793	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
99794	//   },
99795	//   "response": {
99796	//     "$ref": "Operation"
99797	//   },
99798	//   "scopes": [
99799	//     "https://www.googleapis.com/auth/cloud-platform",
99800	//     "https://www.googleapis.com/auth/compute"
99801	//   ]
99802	// }
99803
99804}
99805
99806// method id "compute.regionDisks.createSnapshot":
99807
99808type RegionDisksCreateSnapshotCall struct {
99809	s          *Service
99810	project    string
99811	region     string
99812	disk       string
99813	snapshot   *Snapshot
99814	urlParams_ gensupport.URLParams
99815	ctx_       context.Context
99816	header_    http.Header
99817}
99818
99819// CreateSnapshot: Creates a snapshot of this regional disk.
99820func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
99821	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99822	c.project = project
99823	c.region = region
99824	c.disk = disk
99825	c.snapshot = snapshot
99826	return c
99827}
99828
99829// RequestId sets the optional parameter "requestId": An optional
99830// request ID to identify requests. Specify a unique request ID so that
99831// if you must retry your request, the server will know to ignore the
99832// request if it has already been completed.
99833//
99834// For example, consider a situation where you make an initial request
99835// and the request times out. If you make the request again with the
99836// same request ID, the server can check if original operation with the
99837// same request ID was received, and if so, will ignore the second
99838// request. This prevents clients from accidentally creating duplicate
99839// commitments.
99840//
99841// The request ID must be a valid UUID with the exception that zero UUID
99842// is not supported (00000000-0000-0000-0000-000000000000).
99843func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
99844	c.urlParams_.Set("requestId", requestId)
99845	return c
99846}
99847
99848// Fields allows partial responses to be retrieved. See
99849// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99850// for more information.
99851func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
99852	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99853	return c
99854}
99855
99856// Context sets the context to be used in this call's Do method. Any
99857// pending HTTP request will be aborted if the provided context is
99858// canceled.
99859func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
99860	c.ctx_ = ctx
99861	return c
99862}
99863
99864// Header returns an http.Header that can be modified by the caller to
99865// add HTTP headers to the request.
99866func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
99867	if c.header_ == nil {
99868		c.header_ = make(http.Header)
99869	}
99870	return c.header_
99871}
99872
99873func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
99874	reqHeaders := make(http.Header)
99875	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99876	for k, v := range c.header_ {
99877		reqHeaders[k] = v
99878	}
99879	reqHeaders.Set("User-Agent", c.s.userAgent())
99880	var body io.Reader = nil
99881	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
99882	if err != nil {
99883		return nil, err
99884	}
99885	reqHeaders.Set("Content-Type", "application/json")
99886	c.urlParams_.Set("alt", alt)
99887	c.urlParams_.Set("prettyPrint", "false")
99888	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/createSnapshot")
99889	urls += "?" + c.urlParams_.Encode()
99890	req, err := http.NewRequest("POST", urls, body)
99891	if err != nil {
99892		return nil, err
99893	}
99894	req.Header = reqHeaders
99895	googleapi.Expand(req.URL, map[string]string{
99896		"project": c.project,
99897		"region":  c.region,
99898		"disk":    c.disk,
99899	})
99900	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99901}
99902
99903// Do executes the "compute.regionDisks.createSnapshot" call.
99904// Exactly one of *Operation or error will be non-nil. Any non-2xx
99905// status code is an error. Response headers are in either
99906// *Operation.ServerResponse.Header or (if a response was returned at
99907// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99908// to check whether the returned error was because
99909// http.StatusNotModified was returned.
99910func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99911	gensupport.SetOptions(c.urlParams_, opts...)
99912	res, err := c.doRequest("json")
99913	if res != nil && res.StatusCode == http.StatusNotModified {
99914		if res.Body != nil {
99915			res.Body.Close()
99916		}
99917		return nil, &googleapi.Error{
99918			Code:   res.StatusCode,
99919			Header: res.Header,
99920		}
99921	}
99922	if err != nil {
99923		return nil, err
99924	}
99925	defer googleapi.CloseBody(res)
99926	if err := googleapi.CheckResponse(res); err != nil {
99927		return nil, err
99928	}
99929	ret := &Operation{
99930		ServerResponse: googleapi.ServerResponse{
99931			Header:         res.Header,
99932			HTTPStatusCode: res.StatusCode,
99933		},
99934	}
99935	target := &ret
99936	if err := gensupport.DecodeResponse(target, res); err != nil {
99937		return nil, err
99938	}
99939	return ret, nil
99940	// {
99941	//   "description": "Creates a snapshot of this regional disk.",
99942	//   "httpMethod": "POST",
99943	//   "id": "compute.regionDisks.createSnapshot",
99944	//   "parameterOrder": [
99945	//     "project",
99946	//     "region",
99947	//     "disk"
99948	//   ],
99949	//   "parameters": {
99950	//     "disk": {
99951	//       "description": "Name of the regional persistent disk to snapshot.",
99952	//       "location": "path",
99953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99954	//       "required": true,
99955	//       "type": "string"
99956	//     },
99957	//     "project": {
99958	//       "description": "Project ID for this request.",
99959	//       "location": "path",
99960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99961	//       "required": true,
99962	//       "type": "string"
99963	//     },
99964	//     "region": {
99965	//       "description": "Name of the region for this request.",
99966	//       "location": "path",
99967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99968	//       "required": true,
99969	//       "type": "string"
99970	//     },
99971	//     "requestId": {
99972	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99973	//       "location": "query",
99974	//       "type": "string"
99975	//     }
99976	//   },
99977	//   "path": "{project}/regions/{region}/disks/{disk}/createSnapshot",
99978	//   "request": {
99979	//     "$ref": "Snapshot"
99980	//   },
99981	//   "response": {
99982	//     "$ref": "Operation"
99983	//   },
99984	//   "scopes": [
99985	//     "https://www.googleapis.com/auth/cloud-platform",
99986	//     "https://www.googleapis.com/auth/compute"
99987	//   ]
99988	// }
99989
99990}
99991
99992// method id "compute.regionDisks.delete":
99993
99994type RegionDisksDeleteCall struct {
99995	s          *Service
99996	project    string
99997	region     string
99998	disk       string
99999	urlParams_ gensupport.URLParams
100000	ctx_       context.Context
100001	header_    http.Header
100002}
100003
100004// Delete: Deletes the specified regional persistent disk. Deleting a
100005// regional disk removes all the replicas of its data permanently and is
100006// irreversible. However, deleting a disk does not delete any snapshots
100007// previously made from the disk. You must separately delete snapshots.
100008func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
100009	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100010	c.project = project
100011	c.region = region
100012	c.disk = disk
100013	return c
100014}
100015
100016// RequestId sets the optional parameter "requestId": An optional
100017// request ID to identify requests. Specify a unique request ID so that
100018// if you must retry your request, the server will know to ignore the
100019// request if it has already been completed.
100020//
100021// For example, consider a situation where you make an initial request
100022// and the request times out. If you make the request again with the
100023// same request ID, the server can check if original operation with the
100024// same request ID was received, and if so, will ignore the second
100025// request. This prevents clients from accidentally creating duplicate
100026// commitments.
100027//
100028// The request ID must be a valid UUID with the exception that zero UUID
100029// is not supported (00000000-0000-0000-0000-000000000000).
100030func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
100031	c.urlParams_.Set("requestId", requestId)
100032	return c
100033}
100034
100035// Fields allows partial responses to be retrieved. See
100036// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100037// for more information.
100038func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
100039	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100040	return c
100041}
100042
100043// Context sets the context to be used in this call's Do method. Any
100044// pending HTTP request will be aborted if the provided context is
100045// canceled.
100046func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
100047	c.ctx_ = ctx
100048	return c
100049}
100050
100051// Header returns an http.Header that can be modified by the caller to
100052// add HTTP headers to the request.
100053func (c *RegionDisksDeleteCall) Header() http.Header {
100054	if c.header_ == nil {
100055		c.header_ = make(http.Header)
100056	}
100057	return c.header_
100058}
100059
100060func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
100061	reqHeaders := make(http.Header)
100062	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100063	for k, v := range c.header_ {
100064		reqHeaders[k] = v
100065	}
100066	reqHeaders.Set("User-Agent", c.s.userAgent())
100067	var body io.Reader = nil
100068	c.urlParams_.Set("alt", alt)
100069	c.urlParams_.Set("prettyPrint", "false")
100070	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
100071	urls += "?" + c.urlParams_.Encode()
100072	req, err := http.NewRequest("DELETE", urls, body)
100073	if err != nil {
100074		return nil, err
100075	}
100076	req.Header = reqHeaders
100077	googleapi.Expand(req.URL, map[string]string{
100078		"project": c.project,
100079		"region":  c.region,
100080		"disk":    c.disk,
100081	})
100082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100083}
100084
100085// Do executes the "compute.regionDisks.delete" call.
100086// Exactly one of *Operation or error will be non-nil. Any non-2xx
100087// status code is an error. Response headers are in either
100088// *Operation.ServerResponse.Header or (if a response was returned at
100089// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100090// to check whether the returned error was because
100091// http.StatusNotModified was returned.
100092func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100093	gensupport.SetOptions(c.urlParams_, opts...)
100094	res, err := c.doRequest("json")
100095	if res != nil && res.StatusCode == http.StatusNotModified {
100096		if res.Body != nil {
100097			res.Body.Close()
100098		}
100099		return nil, &googleapi.Error{
100100			Code:   res.StatusCode,
100101			Header: res.Header,
100102		}
100103	}
100104	if err != nil {
100105		return nil, err
100106	}
100107	defer googleapi.CloseBody(res)
100108	if err := googleapi.CheckResponse(res); err != nil {
100109		return nil, err
100110	}
100111	ret := &Operation{
100112		ServerResponse: googleapi.ServerResponse{
100113			Header:         res.Header,
100114			HTTPStatusCode: res.StatusCode,
100115		},
100116	}
100117	target := &ret
100118	if err := gensupport.DecodeResponse(target, res); err != nil {
100119		return nil, err
100120	}
100121	return ret, nil
100122	// {
100123	//   "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.",
100124	//   "httpMethod": "DELETE",
100125	//   "id": "compute.regionDisks.delete",
100126	//   "parameterOrder": [
100127	//     "project",
100128	//     "region",
100129	//     "disk"
100130	//   ],
100131	//   "parameters": {
100132	//     "disk": {
100133	//       "description": "Name of the regional persistent disk to delete.",
100134	//       "location": "path",
100135	//       "required": true,
100136	//       "type": "string"
100137	//     },
100138	//     "project": {
100139	//       "description": "Project ID for this request.",
100140	//       "location": "path",
100141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100142	//       "required": true,
100143	//       "type": "string"
100144	//     },
100145	//     "region": {
100146	//       "description": "Name of the region for this request.",
100147	//       "location": "path",
100148	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100149	//       "required": true,
100150	//       "type": "string"
100151	//     },
100152	//     "requestId": {
100153	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100154	//       "location": "query",
100155	//       "type": "string"
100156	//     }
100157	//   },
100158	//   "path": "{project}/regions/{region}/disks/{disk}",
100159	//   "response": {
100160	//     "$ref": "Operation"
100161	//   },
100162	//   "scopes": [
100163	//     "https://www.googleapis.com/auth/cloud-platform",
100164	//     "https://www.googleapis.com/auth/compute"
100165	//   ]
100166	// }
100167
100168}
100169
100170// method id "compute.regionDisks.get":
100171
100172type RegionDisksGetCall struct {
100173	s            *Service
100174	project      string
100175	region       string
100176	disk         string
100177	urlParams_   gensupport.URLParams
100178	ifNoneMatch_ string
100179	ctx_         context.Context
100180	header_      http.Header
100181}
100182
100183// Get: Returns a specified regional persistent disk.
100184func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
100185	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100186	c.project = project
100187	c.region = region
100188	c.disk = disk
100189	return c
100190}
100191
100192// Fields allows partial responses to be retrieved. See
100193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100194// for more information.
100195func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
100196	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100197	return c
100198}
100199
100200// IfNoneMatch sets the optional parameter which makes the operation
100201// fail if the object's ETag matches the given value. This is useful for
100202// getting updates only after the object has changed since the last
100203// request. Use googleapi.IsNotModified to check whether the response
100204// error from Do is the result of In-None-Match.
100205func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
100206	c.ifNoneMatch_ = entityTag
100207	return c
100208}
100209
100210// Context sets the context to be used in this call's Do method. Any
100211// pending HTTP request will be aborted if the provided context is
100212// canceled.
100213func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
100214	c.ctx_ = ctx
100215	return c
100216}
100217
100218// Header returns an http.Header that can be modified by the caller to
100219// add HTTP headers to the request.
100220func (c *RegionDisksGetCall) Header() http.Header {
100221	if c.header_ == nil {
100222		c.header_ = make(http.Header)
100223	}
100224	return c.header_
100225}
100226
100227func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
100228	reqHeaders := make(http.Header)
100229	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100230	for k, v := range c.header_ {
100231		reqHeaders[k] = v
100232	}
100233	reqHeaders.Set("User-Agent", c.s.userAgent())
100234	if c.ifNoneMatch_ != "" {
100235		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100236	}
100237	var body io.Reader = nil
100238	c.urlParams_.Set("alt", alt)
100239	c.urlParams_.Set("prettyPrint", "false")
100240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
100241	urls += "?" + c.urlParams_.Encode()
100242	req, err := http.NewRequest("GET", urls, body)
100243	if err != nil {
100244		return nil, err
100245	}
100246	req.Header = reqHeaders
100247	googleapi.Expand(req.URL, map[string]string{
100248		"project": c.project,
100249		"region":  c.region,
100250		"disk":    c.disk,
100251	})
100252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100253}
100254
100255// Do executes the "compute.regionDisks.get" call.
100256// Exactly one of *Disk or error will be non-nil. Any non-2xx status
100257// code is an error. Response headers are in either
100258// *Disk.ServerResponse.Header or (if a response was returned at all) in
100259// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
100260// whether the returned error was because http.StatusNotModified was
100261// returned.
100262func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
100263	gensupport.SetOptions(c.urlParams_, opts...)
100264	res, err := c.doRequest("json")
100265	if res != nil && res.StatusCode == http.StatusNotModified {
100266		if res.Body != nil {
100267			res.Body.Close()
100268		}
100269		return nil, &googleapi.Error{
100270			Code:   res.StatusCode,
100271			Header: res.Header,
100272		}
100273	}
100274	if err != nil {
100275		return nil, err
100276	}
100277	defer googleapi.CloseBody(res)
100278	if err := googleapi.CheckResponse(res); err != nil {
100279		return nil, err
100280	}
100281	ret := &Disk{
100282		ServerResponse: googleapi.ServerResponse{
100283			Header:         res.Header,
100284			HTTPStatusCode: res.StatusCode,
100285		},
100286	}
100287	target := &ret
100288	if err := gensupport.DecodeResponse(target, res); err != nil {
100289		return nil, err
100290	}
100291	return ret, nil
100292	// {
100293	//   "description": "Returns a specified regional persistent disk.",
100294	//   "httpMethod": "GET",
100295	//   "id": "compute.regionDisks.get",
100296	//   "parameterOrder": [
100297	//     "project",
100298	//     "region",
100299	//     "disk"
100300	//   ],
100301	//   "parameters": {
100302	//     "disk": {
100303	//       "description": "Name of the regional persistent disk to return.",
100304	//       "location": "path",
100305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100306	//       "required": true,
100307	//       "type": "string"
100308	//     },
100309	//     "project": {
100310	//       "description": "Project ID for this request.",
100311	//       "location": "path",
100312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100313	//       "required": true,
100314	//       "type": "string"
100315	//     },
100316	//     "region": {
100317	//       "description": "Name of the region for this request.",
100318	//       "location": "path",
100319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100320	//       "required": true,
100321	//       "type": "string"
100322	//     }
100323	//   },
100324	//   "path": "{project}/regions/{region}/disks/{disk}",
100325	//   "response": {
100326	//     "$ref": "Disk"
100327	//   },
100328	//   "scopes": [
100329	//     "https://www.googleapis.com/auth/cloud-platform",
100330	//     "https://www.googleapis.com/auth/compute",
100331	//     "https://www.googleapis.com/auth/compute.readonly"
100332	//   ]
100333	// }
100334
100335}
100336
100337// method id "compute.regionDisks.getIamPolicy":
100338
100339type RegionDisksGetIamPolicyCall struct {
100340	s            *Service
100341	project      string
100342	region       string
100343	resource     string
100344	urlParams_   gensupport.URLParams
100345	ifNoneMatch_ string
100346	ctx_         context.Context
100347	header_      http.Header
100348}
100349
100350// GetIamPolicy: Gets the access control policy for a resource. May be
100351// empty if no such policy or resource exists.
100352func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
100353	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100354	c.project = project
100355	c.region = region
100356	c.resource = resource
100357	return c
100358}
100359
100360// Fields allows partial responses to be retrieved. See
100361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100362// for more information.
100363func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
100364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100365	return c
100366}
100367
100368// IfNoneMatch sets the optional parameter which makes the operation
100369// fail if the object's ETag matches the given value. This is useful for
100370// getting updates only after the object has changed since the last
100371// request. Use googleapi.IsNotModified to check whether the response
100372// error from Do is the result of In-None-Match.
100373func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
100374	c.ifNoneMatch_ = entityTag
100375	return c
100376}
100377
100378// Context sets the context to be used in this call's Do method. Any
100379// pending HTTP request will be aborted if the provided context is
100380// canceled.
100381func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
100382	c.ctx_ = ctx
100383	return c
100384}
100385
100386// Header returns an http.Header that can be modified by the caller to
100387// add HTTP headers to the request.
100388func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
100389	if c.header_ == nil {
100390		c.header_ = make(http.Header)
100391	}
100392	return c.header_
100393}
100394
100395func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
100396	reqHeaders := make(http.Header)
100397	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100398	for k, v := range c.header_ {
100399		reqHeaders[k] = v
100400	}
100401	reqHeaders.Set("User-Agent", c.s.userAgent())
100402	if c.ifNoneMatch_ != "" {
100403		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100404	}
100405	var body io.Reader = nil
100406	c.urlParams_.Set("alt", alt)
100407	c.urlParams_.Set("prettyPrint", "false")
100408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/getIamPolicy")
100409	urls += "?" + c.urlParams_.Encode()
100410	req, err := http.NewRequest("GET", urls, body)
100411	if err != nil {
100412		return nil, err
100413	}
100414	req.Header = reqHeaders
100415	googleapi.Expand(req.URL, map[string]string{
100416		"project":  c.project,
100417		"region":   c.region,
100418		"resource": c.resource,
100419	})
100420	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100421}
100422
100423// Do executes the "compute.regionDisks.getIamPolicy" call.
100424// Exactly one of *Policy or error will be non-nil. Any non-2xx status
100425// code is an error. Response headers are in either
100426// *Policy.ServerResponse.Header or (if a response was returned at all)
100427// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
100428// check whether the returned error was because http.StatusNotModified
100429// was returned.
100430func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
100431	gensupport.SetOptions(c.urlParams_, opts...)
100432	res, err := c.doRequest("json")
100433	if res != nil && res.StatusCode == http.StatusNotModified {
100434		if res.Body != nil {
100435			res.Body.Close()
100436		}
100437		return nil, &googleapi.Error{
100438			Code:   res.StatusCode,
100439			Header: res.Header,
100440		}
100441	}
100442	if err != nil {
100443		return nil, err
100444	}
100445	defer googleapi.CloseBody(res)
100446	if err := googleapi.CheckResponse(res); err != nil {
100447		return nil, err
100448	}
100449	ret := &Policy{
100450		ServerResponse: googleapi.ServerResponse{
100451			Header:         res.Header,
100452			HTTPStatusCode: res.StatusCode,
100453		},
100454	}
100455	target := &ret
100456	if err := gensupport.DecodeResponse(target, res); err != nil {
100457		return nil, err
100458	}
100459	return ret, nil
100460	// {
100461	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
100462	//   "httpMethod": "GET",
100463	//   "id": "compute.regionDisks.getIamPolicy",
100464	//   "parameterOrder": [
100465	//     "project",
100466	//     "region",
100467	//     "resource"
100468	//   ],
100469	//   "parameters": {
100470	//     "project": {
100471	//       "description": "Project ID for this request.",
100472	//       "location": "path",
100473	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100474	//       "required": true,
100475	//       "type": "string"
100476	//     },
100477	//     "region": {
100478	//       "description": "The name of the region for this request.",
100479	//       "location": "path",
100480	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100481	//       "required": true,
100482	//       "type": "string"
100483	//     },
100484	//     "resource": {
100485	//       "description": "Name or id of the resource for this request.",
100486	//       "location": "path",
100487	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100488	//       "required": true,
100489	//       "type": "string"
100490	//     }
100491	//   },
100492	//   "path": "{project}/regions/{region}/disks/{resource}/getIamPolicy",
100493	//   "response": {
100494	//     "$ref": "Policy"
100495	//   },
100496	//   "scopes": [
100497	//     "https://www.googleapis.com/auth/cloud-platform",
100498	//     "https://www.googleapis.com/auth/compute",
100499	//     "https://www.googleapis.com/auth/compute.readonly"
100500	//   ]
100501	// }
100502
100503}
100504
100505// method id "compute.regionDisks.insert":
100506
100507type RegionDisksInsertCall struct {
100508	s          *Service
100509	project    string
100510	region     string
100511	disk       *Disk
100512	urlParams_ gensupport.URLParams
100513	ctx_       context.Context
100514	header_    http.Header
100515}
100516
100517// Insert: Creates a persistent regional disk in the specified project
100518// using the data included in the request.
100519func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
100520	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100521	c.project = project
100522	c.region = region
100523	c.disk = disk
100524	return c
100525}
100526
100527// RequestId sets the optional parameter "requestId": An optional
100528// request ID to identify requests. Specify a unique request ID so that
100529// if you must retry your request, the server will know to ignore the
100530// request if it has already been completed.
100531//
100532// For example, consider a situation where you make an initial request
100533// and the request times out. If you make the request again with the
100534// same request ID, the server can check if original operation with the
100535// same request ID was received, and if so, will ignore the second
100536// request. This prevents clients from accidentally creating duplicate
100537// commitments.
100538//
100539// The request ID must be a valid UUID with the exception that zero UUID
100540// is not supported (00000000-0000-0000-0000-000000000000).
100541func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
100542	c.urlParams_.Set("requestId", requestId)
100543	return c
100544}
100545
100546// SourceImage sets the optional parameter "sourceImage": Source image
100547// to restore onto a disk.
100548func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
100549	c.urlParams_.Set("sourceImage", sourceImage)
100550	return c
100551}
100552
100553// Fields allows partial responses to be retrieved. See
100554// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100555// for more information.
100556func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
100557	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100558	return c
100559}
100560
100561// Context sets the context to be used in this call's Do method. Any
100562// pending HTTP request will be aborted if the provided context is
100563// canceled.
100564func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
100565	c.ctx_ = ctx
100566	return c
100567}
100568
100569// Header returns an http.Header that can be modified by the caller to
100570// add HTTP headers to the request.
100571func (c *RegionDisksInsertCall) Header() http.Header {
100572	if c.header_ == nil {
100573		c.header_ = make(http.Header)
100574	}
100575	return c.header_
100576}
100577
100578func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
100579	reqHeaders := make(http.Header)
100580	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100581	for k, v := range c.header_ {
100582		reqHeaders[k] = v
100583	}
100584	reqHeaders.Set("User-Agent", c.s.userAgent())
100585	var body io.Reader = nil
100586	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
100587	if err != nil {
100588		return nil, err
100589	}
100590	reqHeaders.Set("Content-Type", "application/json")
100591	c.urlParams_.Set("alt", alt)
100592	c.urlParams_.Set("prettyPrint", "false")
100593	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
100594	urls += "?" + c.urlParams_.Encode()
100595	req, err := http.NewRequest("POST", urls, body)
100596	if err != nil {
100597		return nil, err
100598	}
100599	req.Header = reqHeaders
100600	googleapi.Expand(req.URL, map[string]string{
100601		"project": c.project,
100602		"region":  c.region,
100603	})
100604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100605}
100606
100607// Do executes the "compute.regionDisks.insert" call.
100608// Exactly one of *Operation or error will be non-nil. Any non-2xx
100609// status code is an error. Response headers are in either
100610// *Operation.ServerResponse.Header or (if a response was returned at
100611// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100612// to check whether the returned error was because
100613// http.StatusNotModified was returned.
100614func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100615	gensupport.SetOptions(c.urlParams_, opts...)
100616	res, err := c.doRequest("json")
100617	if res != nil && res.StatusCode == http.StatusNotModified {
100618		if res.Body != nil {
100619			res.Body.Close()
100620		}
100621		return nil, &googleapi.Error{
100622			Code:   res.StatusCode,
100623			Header: res.Header,
100624		}
100625	}
100626	if err != nil {
100627		return nil, err
100628	}
100629	defer googleapi.CloseBody(res)
100630	if err := googleapi.CheckResponse(res); err != nil {
100631		return nil, err
100632	}
100633	ret := &Operation{
100634		ServerResponse: googleapi.ServerResponse{
100635			Header:         res.Header,
100636			HTTPStatusCode: res.StatusCode,
100637		},
100638	}
100639	target := &ret
100640	if err := gensupport.DecodeResponse(target, res); err != nil {
100641		return nil, err
100642	}
100643	return ret, nil
100644	// {
100645	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
100646	//   "httpMethod": "POST",
100647	//   "id": "compute.regionDisks.insert",
100648	//   "parameterOrder": [
100649	//     "project",
100650	//     "region"
100651	//   ],
100652	//   "parameters": {
100653	//     "project": {
100654	//       "description": "Project ID for this request.",
100655	//       "location": "path",
100656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100657	//       "required": true,
100658	//       "type": "string"
100659	//     },
100660	//     "region": {
100661	//       "description": "Name of the region for this request.",
100662	//       "location": "path",
100663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100664	//       "required": true,
100665	//       "type": "string"
100666	//     },
100667	//     "requestId": {
100668	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100669	//       "location": "query",
100670	//       "type": "string"
100671	//     },
100672	//     "sourceImage": {
100673	//       "description": "Optional. Source image to restore onto a disk.",
100674	//       "location": "query",
100675	//       "type": "string"
100676	//     }
100677	//   },
100678	//   "path": "{project}/regions/{region}/disks",
100679	//   "request": {
100680	//     "$ref": "Disk"
100681	//   },
100682	//   "response": {
100683	//     "$ref": "Operation"
100684	//   },
100685	//   "scopes": [
100686	//     "https://www.googleapis.com/auth/cloud-platform",
100687	//     "https://www.googleapis.com/auth/compute"
100688	//   ]
100689	// }
100690
100691}
100692
100693// method id "compute.regionDisks.list":
100694
100695type RegionDisksListCall struct {
100696	s            *Service
100697	project      string
100698	region       string
100699	urlParams_   gensupport.URLParams
100700	ifNoneMatch_ string
100701	ctx_         context.Context
100702	header_      http.Header
100703}
100704
100705// List: Retrieves the list of persistent disks contained within the
100706// specified region.
100707func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
100708	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100709	c.project = project
100710	c.region = region
100711	return c
100712}
100713
100714// Filter sets the optional parameter "filter": A filter expression that
100715// filters resources listed in the response. The expression must specify
100716// the field name, a comparison operator, and the value that you want to
100717// use for filtering. The value must be a string, a number, or a
100718// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100719// `<`.
100720//
100721// For example, if you are filtering Compute Engine instances, you can
100722// exclude instances named `example-instance` by specifying `name !=
100723// example-instance`.
100724//
100725// You can also filter nested fields. For example, you could specify
100726// `scheduling.automaticRestart = false` to include instances only if
100727// they are not scheduled for automatic restarts. You can use filtering
100728// on nested fields to filter based on resource labels.
100729//
100730// To filter on multiple expressions, provide each separate expression
100731// within parentheses. For example: ``` (scheduling.automaticRestart =
100732// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
100733// is an `AND` expression. However, you can include `AND` and `OR`
100734// expressions explicitly. For example: ``` (cpuPlatform = "Intel
100735// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
100736// (scheduling.automaticRestart = true) ```
100737func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
100738	c.urlParams_.Set("filter", filter)
100739	return c
100740}
100741
100742// MaxResults sets the optional parameter "maxResults": The maximum
100743// number of results per page that should be returned. If the number of
100744// available results is larger than `maxResults`, Compute Engine returns
100745// a `nextPageToken` that can be used to get the next page of results in
100746// subsequent list requests. Acceptable values are `0` to `500`,
100747// inclusive. (Default: `500`)
100748func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
100749	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100750	return c
100751}
100752
100753// OrderBy sets the optional parameter "orderBy": Sorts list results by
100754// a certain order. By default, results are returned in alphanumerical
100755// order based on the resource name.
100756//
100757// You can also sort results in descending order based on the creation
100758// timestamp using `orderBy="creationTimestamp desc". This sorts
100759// results based on the `creationTimestamp` field in reverse
100760// chronological order (newest result first). Use this to sort resources
100761// like operations so that the newest operation is returned
100762// first.
100763//
100764// Currently, only sorting by `name` or `creationTimestamp desc` is
100765// supported.
100766func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
100767	c.urlParams_.Set("orderBy", orderBy)
100768	return c
100769}
100770
100771// PageToken sets the optional parameter "pageToken": Specifies a page
100772// token to use. Set `pageToken` to the `nextPageToken` returned by a
100773// previous list request to get the next page of results.
100774func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
100775	c.urlParams_.Set("pageToken", pageToken)
100776	return c
100777}
100778
100779// Fields allows partial responses to be retrieved. See
100780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100781// for more information.
100782func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
100783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100784	return c
100785}
100786
100787// IfNoneMatch sets the optional parameter which makes the operation
100788// fail if the object's ETag matches the given value. This is useful for
100789// getting updates only after the object has changed since the last
100790// request. Use googleapi.IsNotModified to check whether the response
100791// error from Do is the result of In-None-Match.
100792func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
100793	c.ifNoneMatch_ = entityTag
100794	return c
100795}
100796
100797// Context sets the context to be used in this call's Do method. Any
100798// pending HTTP request will be aborted if the provided context is
100799// canceled.
100800func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
100801	c.ctx_ = ctx
100802	return c
100803}
100804
100805// Header returns an http.Header that can be modified by the caller to
100806// add HTTP headers to the request.
100807func (c *RegionDisksListCall) Header() http.Header {
100808	if c.header_ == nil {
100809		c.header_ = make(http.Header)
100810	}
100811	return c.header_
100812}
100813
100814func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
100815	reqHeaders := make(http.Header)
100816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100817	for k, v := range c.header_ {
100818		reqHeaders[k] = v
100819	}
100820	reqHeaders.Set("User-Agent", c.s.userAgent())
100821	if c.ifNoneMatch_ != "" {
100822		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100823	}
100824	var body io.Reader = nil
100825	c.urlParams_.Set("alt", alt)
100826	c.urlParams_.Set("prettyPrint", "false")
100827	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
100828	urls += "?" + c.urlParams_.Encode()
100829	req, err := http.NewRequest("GET", urls, body)
100830	if err != nil {
100831		return nil, err
100832	}
100833	req.Header = reqHeaders
100834	googleapi.Expand(req.URL, map[string]string{
100835		"project": c.project,
100836		"region":  c.region,
100837	})
100838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100839}
100840
100841// Do executes the "compute.regionDisks.list" call.
100842// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
100843// code is an error. Response headers are in either
100844// *DiskList.ServerResponse.Header or (if a response was returned at
100845// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100846// to check whether the returned error was because
100847// http.StatusNotModified was returned.
100848func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
100849	gensupport.SetOptions(c.urlParams_, opts...)
100850	res, err := c.doRequest("json")
100851	if res != nil && res.StatusCode == http.StatusNotModified {
100852		if res.Body != nil {
100853			res.Body.Close()
100854		}
100855		return nil, &googleapi.Error{
100856			Code:   res.StatusCode,
100857			Header: res.Header,
100858		}
100859	}
100860	if err != nil {
100861		return nil, err
100862	}
100863	defer googleapi.CloseBody(res)
100864	if err := googleapi.CheckResponse(res); err != nil {
100865		return nil, err
100866	}
100867	ret := &DiskList{
100868		ServerResponse: googleapi.ServerResponse{
100869			Header:         res.Header,
100870			HTTPStatusCode: res.StatusCode,
100871		},
100872	}
100873	target := &ret
100874	if err := gensupport.DecodeResponse(target, res); err != nil {
100875		return nil, err
100876	}
100877	return ret, nil
100878	// {
100879	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
100880	//   "httpMethod": "GET",
100881	//   "id": "compute.regionDisks.list",
100882	//   "parameterOrder": [
100883	//     "project",
100884	//     "region"
100885	//   ],
100886	//   "parameters": {
100887	//     "filter": {
100888	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100889	//       "location": "query",
100890	//       "type": "string"
100891	//     },
100892	//     "maxResults": {
100893	//       "default": "500",
100894	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100895	//       "format": "uint32",
100896	//       "location": "query",
100897	//       "minimum": "0",
100898	//       "type": "integer"
100899	//     },
100900	//     "orderBy": {
100901	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
100902	//       "location": "query",
100903	//       "type": "string"
100904	//     },
100905	//     "pageToken": {
100906	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100907	//       "location": "query",
100908	//       "type": "string"
100909	//     },
100910	//     "project": {
100911	//       "description": "Project ID for this request.",
100912	//       "location": "path",
100913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100914	//       "required": true,
100915	//       "type": "string"
100916	//     },
100917	//     "region": {
100918	//       "description": "Name of the region for this request.",
100919	//       "location": "path",
100920	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100921	//       "required": true,
100922	//       "type": "string"
100923	//     }
100924	//   },
100925	//   "path": "{project}/regions/{region}/disks",
100926	//   "response": {
100927	//     "$ref": "DiskList"
100928	//   },
100929	//   "scopes": [
100930	//     "https://www.googleapis.com/auth/cloud-platform",
100931	//     "https://www.googleapis.com/auth/compute",
100932	//     "https://www.googleapis.com/auth/compute.readonly"
100933	//   ]
100934	// }
100935
100936}
100937
100938// Pages invokes f for each page of results.
100939// A non-nil error returned from f will halt the iteration.
100940// The provided context supersedes any context provided to the Context method.
100941func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
100942	c.ctx_ = ctx
100943	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100944	for {
100945		x, err := c.Do()
100946		if err != nil {
100947			return err
100948		}
100949		if err := f(x); err != nil {
100950			return err
100951		}
100952		if x.NextPageToken == "" {
100953			return nil
100954		}
100955		c.PageToken(x.NextPageToken)
100956	}
100957}
100958
100959// method id "compute.regionDisks.removeResourcePolicies":
100960
100961type RegionDisksRemoveResourcePoliciesCall struct {
100962	s                                        *Service
100963	project                                  string
100964	region                                   string
100965	disk                                     string
100966	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
100967	urlParams_                               gensupport.URLParams
100968	ctx_                                     context.Context
100969	header_                                  http.Header
100970}
100971
100972// RemoveResourcePolicies: Removes resource policies from a regional
100973// disk.
100974func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
100975	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100976	c.project = project
100977	c.region = region
100978	c.disk = disk
100979	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
100980	return c
100981}
100982
100983// RequestId sets the optional parameter "requestId": An optional
100984// request ID to identify requests. Specify a unique request ID so that
100985// if you must retry your request, the server will know to ignore the
100986// request if it has already been completed.
100987//
100988// For example, consider a situation where you make an initial request
100989// and the request times out. If you make the request again with the
100990// same request ID, the server can check if original operation with the
100991// same request ID was received, and if so, will ignore the second
100992// request. This prevents clients from accidentally creating duplicate
100993// commitments.
100994//
100995// The request ID must be a valid UUID with the exception that zero UUID
100996// is not supported (00000000-0000-0000-0000-000000000000).
100997func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
100998	c.urlParams_.Set("requestId", requestId)
100999	return c
101000}
101001
101002// Fields allows partial responses to be retrieved. See
101003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101004// for more information.
101005func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
101006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101007	return c
101008}
101009
101010// Context sets the context to be used in this call's Do method. Any
101011// pending HTTP request will be aborted if the provided context is
101012// canceled.
101013func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
101014	c.ctx_ = ctx
101015	return c
101016}
101017
101018// Header returns an http.Header that can be modified by the caller to
101019// add HTTP headers to the request.
101020func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
101021	if c.header_ == nil {
101022		c.header_ = make(http.Header)
101023	}
101024	return c.header_
101025}
101026
101027func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
101028	reqHeaders := make(http.Header)
101029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101030	for k, v := range c.header_ {
101031		reqHeaders[k] = v
101032	}
101033	reqHeaders.Set("User-Agent", c.s.userAgent())
101034	var body io.Reader = nil
101035	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
101036	if err != nil {
101037		return nil, err
101038	}
101039	reqHeaders.Set("Content-Type", "application/json")
101040	c.urlParams_.Set("alt", alt)
101041	c.urlParams_.Set("prettyPrint", "false")
101042	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
101043	urls += "?" + c.urlParams_.Encode()
101044	req, err := http.NewRequest("POST", urls, body)
101045	if err != nil {
101046		return nil, err
101047	}
101048	req.Header = reqHeaders
101049	googleapi.Expand(req.URL, map[string]string{
101050		"project": c.project,
101051		"region":  c.region,
101052		"disk":    c.disk,
101053	})
101054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101055}
101056
101057// Do executes the "compute.regionDisks.removeResourcePolicies" call.
101058// Exactly one of *Operation or error will be non-nil. Any non-2xx
101059// status code is an error. Response headers are in either
101060// *Operation.ServerResponse.Header or (if a response was returned at
101061// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101062// to check whether the returned error was because
101063// http.StatusNotModified was returned.
101064func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101065	gensupport.SetOptions(c.urlParams_, opts...)
101066	res, err := c.doRequest("json")
101067	if res != nil && res.StatusCode == http.StatusNotModified {
101068		if res.Body != nil {
101069			res.Body.Close()
101070		}
101071		return nil, &googleapi.Error{
101072			Code:   res.StatusCode,
101073			Header: res.Header,
101074		}
101075	}
101076	if err != nil {
101077		return nil, err
101078	}
101079	defer googleapi.CloseBody(res)
101080	if err := googleapi.CheckResponse(res); err != nil {
101081		return nil, err
101082	}
101083	ret := &Operation{
101084		ServerResponse: googleapi.ServerResponse{
101085			Header:         res.Header,
101086			HTTPStatusCode: res.StatusCode,
101087		},
101088	}
101089	target := &ret
101090	if err := gensupport.DecodeResponse(target, res); err != nil {
101091		return nil, err
101092	}
101093	return ret, nil
101094	// {
101095	//   "description": "Removes resource policies from a regional disk.",
101096	//   "httpMethod": "POST",
101097	//   "id": "compute.regionDisks.removeResourcePolicies",
101098	//   "parameterOrder": [
101099	//     "project",
101100	//     "region",
101101	//     "disk"
101102	//   ],
101103	//   "parameters": {
101104	//     "disk": {
101105	//       "description": "The disk name for this request.",
101106	//       "location": "path",
101107	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101108	//       "required": true,
101109	//       "type": "string"
101110	//     },
101111	//     "project": {
101112	//       "description": "Project ID for this request.",
101113	//       "location": "path",
101114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101115	//       "required": true,
101116	//       "type": "string"
101117	//     },
101118	//     "region": {
101119	//       "description": "The name of the region for this request.",
101120	//       "location": "path",
101121	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101122	//       "required": true,
101123	//       "type": "string"
101124	//     },
101125	//     "requestId": {
101126	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101127	//       "location": "query",
101128	//       "type": "string"
101129	//     }
101130	//   },
101131	//   "path": "{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
101132	//   "request": {
101133	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
101134	//   },
101135	//   "response": {
101136	//     "$ref": "Operation"
101137	//   },
101138	//   "scopes": [
101139	//     "https://www.googleapis.com/auth/cloud-platform",
101140	//     "https://www.googleapis.com/auth/compute"
101141	//   ]
101142	// }
101143
101144}
101145
101146// method id "compute.regionDisks.resize":
101147
101148type RegionDisksResizeCall struct {
101149	s                        *Service
101150	project                  string
101151	region                   string
101152	disk                     string
101153	regiondisksresizerequest *RegionDisksResizeRequest
101154	urlParams_               gensupport.URLParams
101155	ctx_                     context.Context
101156	header_                  http.Header
101157}
101158
101159// Resize: Resizes the specified regional persistent disk.
101160func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
101161	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101162	c.project = project
101163	c.region = region
101164	c.disk = disk
101165	c.regiondisksresizerequest = regiondisksresizerequest
101166	return c
101167}
101168
101169// RequestId sets the optional parameter "requestId": An optional
101170// request ID to identify requests. Specify a unique request ID so that
101171// if you must retry your request, the server will know to ignore the
101172// request if it has already been completed.
101173//
101174// For example, consider a situation where you make an initial request
101175// and the request times out. If you make the request again with the
101176// same request ID, the server can check if original operation with the
101177// same request ID was received, and if so, will ignore the second
101178// request. This prevents clients from accidentally creating duplicate
101179// commitments.
101180//
101181// The request ID must be a valid UUID with the exception that zero UUID
101182// is not supported (00000000-0000-0000-0000-000000000000).
101183func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
101184	c.urlParams_.Set("requestId", requestId)
101185	return c
101186}
101187
101188// Fields allows partial responses to be retrieved. See
101189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101190// for more information.
101191func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
101192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101193	return c
101194}
101195
101196// Context sets the context to be used in this call's Do method. Any
101197// pending HTTP request will be aborted if the provided context is
101198// canceled.
101199func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
101200	c.ctx_ = ctx
101201	return c
101202}
101203
101204// Header returns an http.Header that can be modified by the caller to
101205// add HTTP headers to the request.
101206func (c *RegionDisksResizeCall) Header() http.Header {
101207	if c.header_ == nil {
101208		c.header_ = make(http.Header)
101209	}
101210	return c.header_
101211}
101212
101213func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
101214	reqHeaders := make(http.Header)
101215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101216	for k, v := range c.header_ {
101217		reqHeaders[k] = v
101218	}
101219	reqHeaders.Set("User-Agent", c.s.userAgent())
101220	var body io.Reader = nil
101221	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
101222	if err != nil {
101223		return nil, err
101224	}
101225	reqHeaders.Set("Content-Type", "application/json")
101226	c.urlParams_.Set("alt", alt)
101227	c.urlParams_.Set("prettyPrint", "false")
101228	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/resize")
101229	urls += "?" + c.urlParams_.Encode()
101230	req, err := http.NewRequest("POST", urls, body)
101231	if err != nil {
101232		return nil, err
101233	}
101234	req.Header = reqHeaders
101235	googleapi.Expand(req.URL, map[string]string{
101236		"project": c.project,
101237		"region":  c.region,
101238		"disk":    c.disk,
101239	})
101240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101241}
101242
101243// Do executes the "compute.regionDisks.resize" call.
101244// Exactly one of *Operation or error will be non-nil. Any non-2xx
101245// status code is an error. Response headers are in either
101246// *Operation.ServerResponse.Header or (if a response was returned at
101247// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101248// to check whether the returned error was because
101249// http.StatusNotModified was returned.
101250func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101251	gensupport.SetOptions(c.urlParams_, opts...)
101252	res, err := c.doRequest("json")
101253	if res != nil && res.StatusCode == http.StatusNotModified {
101254		if res.Body != nil {
101255			res.Body.Close()
101256		}
101257		return nil, &googleapi.Error{
101258			Code:   res.StatusCode,
101259			Header: res.Header,
101260		}
101261	}
101262	if err != nil {
101263		return nil, err
101264	}
101265	defer googleapi.CloseBody(res)
101266	if err := googleapi.CheckResponse(res); err != nil {
101267		return nil, err
101268	}
101269	ret := &Operation{
101270		ServerResponse: googleapi.ServerResponse{
101271			Header:         res.Header,
101272			HTTPStatusCode: res.StatusCode,
101273		},
101274	}
101275	target := &ret
101276	if err := gensupport.DecodeResponse(target, res); err != nil {
101277		return nil, err
101278	}
101279	return ret, nil
101280	// {
101281	//   "description": "Resizes the specified regional persistent disk.",
101282	//   "httpMethod": "POST",
101283	//   "id": "compute.regionDisks.resize",
101284	//   "parameterOrder": [
101285	//     "project",
101286	//     "region",
101287	//     "disk"
101288	//   ],
101289	//   "parameters": {
101290	//     "disk": {
101291	//       "description": "Name of the regional persistent disk.",
101292	//       "location": "path",
101293	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101294	//       "required": true,
101295	//       "type": "string"
101296	//     },
101297	//     "project": {
101298	//       "description": "The project ID for this request.",
101299	//       "location": "path",
101300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101301	//       "required": true,
101302	//       "type": "string"
101303	//     },
101304	//     "region": {
101305	//       "description": "Name of the region for this request.",
101306	//       "location": "path",
101307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101308	//       "required": true,
101309	//       "type": "string"
101310	//     },
101311	//     "requestId": {
101312	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101313	//       "location": "query",
101314	//       "type": "string"
101315	//     }
101316	//   },
101317	//   "path": "{project}/regions/{region}/disks/{disk}/resize",
101318	//   "request": {
101319	//     "$ref": "RegionDisksResizeRequest"
101320	//   },
101321	//   "response": {
101322	//     "$ref": "Operation"
101323	//   },
101324	//   "scopes": [
101325	//     "https://www.googleapis.com/auth/cloud-platform",
101326	//     "https://www.googleapis.com/auth/compute"
101327	//   ]
101328	// }
101329
101330}
101331
101332// method id "compute.regionDisks.setIamPolicy":
101333
101334type RegionDisksSetIamPolicyCall struct {
101335	s                      *Service
101336	project                string
101337	region                 string
101338	resource               string
101339	regionsetpolicyrequest *RegionSetPolicyRequest
101340	urlParams_             gensupport.URLParams
101341	ctx_                   context.Context
101342	header_                http.Header
101343}
101344
101345// SetIamPolicy: Sets the access control policy on the specified
101346// resource. Replaces any existing policy.
101347func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
101348	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101349	c.project = project
101350	c.region = region
101351	c.resource = resource
101352	c.regionsetpolicyrequest = regionsetpolicyrequest
101353	return c
101354}
101355
101356// Fields allows partial responses to be retrieved. See
101357// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101358// for more information.
101359func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
101360	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101361	return c
101362}
101363
101364// Context sets the context to be used in this call's Do method. Any
101365// pending HTTP request will be aborted if the provided context is
101366// canceled.
101367func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
101368	c.ctx_ = ctx
101369	return c
101370}
101371
101372// Header returns an http.Header that can be modified by the caller to
101373// add HTTP headers to the request.
101374func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
101375	if c.header_ == nil {
101376		c.header_ = make(http.Header)
101377	}
101378	return c.header_
101379}
101380
101381func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
101382	reqHeaders := make(http.Header)
101383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101384	for k, v := range c.header_ {
101385		reqHeaders[k] = v
101386	}
101387	reqHeaders.Set("User-Agent", c.s.userAgent())
101388	var body io.Reader = nil
101389	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
101390	if err != nil {
101391		return nil, err
101392	}
101393	reqHeaders.Set("Content-Type", "application/json")
101394	c.urlParams_.Set("alt", alt)
101395	c.urlParams_.Set("prettyPrint", "false")
101396	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setIamPolicy")
101397	urls += "?" + c.urlParams_.Encode()
101398	req, err := http.NewRequest("POST", urls, body)
101399	if err != nil {
101400		return nil, err
101401	}
101402	req.Header = reqHeaders
101403	googleapi.Expand(req.URL, map[string]string{
101404		"project":  c.project,
101405		"region":   c.region,
101406		"resource": c.resource,
101407	})
101408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101409}
101410
101411// Do executes the "compute.regionDisks.setIamPolicy" call.
101412// Exactly one of *Policy or error will be non-nil. Any non-2xx status
101413// code is an error. Response headers are in either
101414// *Policy.ServerResponse.Header or (if a response was returned at all)
101415// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
101416// check whether the returned error was because http.StatusNotModified
101417// was returned.
101418func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
101419	gensupport.SetOptions(c.urlParams_, opts...)
101420	res, err := c.doRequest("json")
101421	if res != nil && res.StatusCode == http.StatusNotModified {
101422		if res.Body != nil {
101423			res.Body.Close()
101424		}
101425		return nil, &googleapi.Error{
101426			Code:   res.StatusCode,
101427			Header: res.Header,
101428		}
101429	}
101430	if err != nil {
101431		return nil, err
101432	}
101433	defer googleapi.CloseBody(res)
101434	if err := googleapi.CheckResponse(res); err != nil {
101435		return nil, err
101436	}
101437	ret := &Policy{
101438		ServerResponse: googleapi.ServerResponse{
101439			Header:         res.Header,
101440			HTTPStatusCode: res.StatusCode,
101441		},
101442	}
101443	target := &ret
101444	if err := gensupport.DecodeResponse(target, res); err != nil {
101445		return nil, err
101446	}
101447	return ret, nil
101448	// {
101449	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
101450	//   "httpMethod": "POST",
101451	//   "id": "compute.regionDisks.setIamPolicy",
101452	//   "parameterOrder": [
101453	//     "project",
101454	//     "region",
101455	//     "resource"
101456	//   ],
101457	//   "parameters": {
101458	//     "project": {
101459	//       "description": "Project ID for this request.",
101460	//       "location": "path",
101461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101462	//       "required": true,
101463	//       "type": "string"
101464	//     },
101465	//     "region": {
101466	//       "description": "The name of the region for this request.",
101467	//       "location": "path",
101468	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101469	//       "required": true,
101470	//       "type": "string"
101471	//     },
101472	//     "resource": {
101473	//       "description": "Name or id of the resource for this request.",
101474	//       "location": "path",
101475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101476	//       "required": true,
101477	//       "type": "string"
101478	//     }
101479	//   },
101480	//   "path": "{project}/regions/{region}/disks/{resource}/setIamPolicy",
101481	//   "request": {
101482	//     "$ref": "RegionSetPolicyRequest"
101483	//   },
101484	//   "response": {
101485	//     "$ref": "Policy"
101486	//   },
101487	//   "scopes": [
101488	//     "https://www.googleapis.com/auth/cloud-platform",
101489	//     "https://www.googleapis.com/auth/compute"
101490	//   ]
101491	// }
101492
101493}
101494
101495// method id "compute.regionDisks.setLabels":
101496
101497type RegionDisksSetLabelsCall struct {
101498	s                      *Service
101499	project                string
101500	region                 string
101501	resource               string
101502	regionsetlabelsrequest *RegionSetLabelsRequest
101503	urlParams_             gensupport.URLParams
101504	ctx_                   context.Context
101505	header_                http.Header
101506}
101507
101508// SetLabels: Sets the labels on the target regional disk.
101509func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
101510	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101511	c.project = project
101512	c.region = region
101513	c.resource = resource
101514	c.regionsetlabelsrequest = regionsetlabelsrequest
101515	return c
101516}
101517
101518// RequestId sets the optional parameter "requestId": An optional
101519// request ID to identify requests. Specify a unique request ID so that
101520// if you must retry your request, the server will know to ignore the
101521// request if it has already been completed.
101522//
101523// For example, consider a situation where you make an initial request
101524// and the request times out. If you make the request again with the
101525// same request ID, the server can check if original operation with the
101526// same request ID was received, and if so, will ignore the second
101527// request. This prevents clients from accidentally creating duplicate
101528// commitments.
101529//
101530// The request ID must be a valid UUID with the exception that zero UUID
101531// is not supported (00000000-0000-0000-0000-000000000000).
101532func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
101533	c.urlParams_.Set("requestId", requestId)
101534	return c
101535}
101536
101537// Fields allows partial responses to be retrieved. See
101538// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101539// for more information.
101540func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
101541	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101542	return c
101543}
101544
101545// Context sets the context to be used in this call's Do method. Any
101546// pending HTTP request will be aborted if the provided context is
101547// canceled.
101548func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
101549	c.ctx_ = ctx
101550	return c
101551}
101552
101553// Header returns an http.Header that can be modified by the caller to
101554// add HTTP headers to the request.
101555func (c *RegionDisksSetLabelsCall) Header() http.Header {
101556	if c.header_ == nil {
101557		c.header_ = make(http.Header)
101558	}
101559	return c.header_
101560}
101561
101562func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
101563	reqHeaders := make(http.Header)
101564	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101565	for k, v := range c.header_ {
101566		reqHeaders[k] = v
101567	}
101568	reqHeaders.Set("User-Agent", c.s.userAgent())
101569	var body io.Reader = nil
101570	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
101571	if err != nil {
101572		return nil, err
101573	}
101574	reqHeaders.Set("Content-Type", "application/json")
101575	c.urlParams_.Set("alt", alt)
101576	c.urlParams_.Set("prettyPrint", "false")
101577	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setLabels")
101578	urls += "?" + c.urlParams_.Encode()
101579	req, err := http.NewRequest("POST", urls, body)
101580	if err != nil {
101581		return nil, err
101582	}
101583	req.Header = reqHeaders
101584	googleapi.Expand(req.URL, map[string]string{
101585		"project":  c.project,
101586		"region":   c.region,
101587		"resource": c.resource,
101588	})
101589	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101590}
101591
101592// Do executes the "compute.regionDisks.setLabels" call.
101593// Exactly one of *Operation or error will be non-nil. Any non-2xx
101594// status code is an error. Response headers are in either
101595// *Operation.ServerResponse.Header or (if a response was returned at
101596// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101597// to check whether the returned error was because
101598// http.StatusNotModified was returned.
101599func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101600	gensupport.SetOptions(c.urlParams_, opts...)
101601	res, err := c.doRequest("json")
101602	if res != nil && res.StatusCode == http.StatusNotModified {
101603		if res.Body != nil {
101604			res.Body.Close()
101605		}
101606		return nil, &googleapi.Error{
101607			Code:   res.StatusCode,
101608			Header: res.Header,
101609		}
101610	}
101611	if err != nil {
101612		return nil, err
101613	}
101614	defer googleapi.CloseBody(res)
101615	if err := googleapi.CheckResponse(res); err != nil {
101616		return nil, err
101617	}
101618	ret := &Operation{
101619		ServerResponse: googleapi.ServerResponse{
101620			Header:         res.Header,
101621			HTTPStatusCode: res.StatusCode,
101622		},
101623	}
101624	target := &ret
101625	if err := gensupport.DecodeResponse(target, res); err != nil {
101626		return nil, err
101627	}
101628	return ret, nil
101629	// {
101630	//   "description": "Sets the labels on the target regional disk.",
101631	//   "httpMethod": "POST",
101632	//   "id": "compute.regionDisks.setLabels",
101633	//   "parameterOrder": [
101634	//     "project",
101635	//     "region",
101636	//     "resource"
101637	//   ],
101638	//   "parameters": {
101639	//     "project": {
101640	//       "description": "Project ID for this request.",
101641	//       "location": "path",
101642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101643	//       "required": true,
101644	//       "type": "string"
101645	//     },
101646	//     "region": {
101647	//       "description": "The region for this request.",
101648	//       "location": "path",
101649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101650	//       "required": true,
101651	//       "type": "string"
101652	//     },
101653	//     "requestId": {
101654	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101655	//       "location": "query",
101656	//       "type": "string"
101657	//     },
101658	//     "resource": {
101659	//       "description": "Name or id of the resource for this request.",
101660	//       "location": "path",
101661	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101662	//       "required": true,
101663	//       "type": "string"
101664	//     }
101665	//   },
101666	//   "path": "{project}/regions/{region}/disks/{resource}/setLabels",
101667	//   "request": {
101668	//     "$ref": "RegionSetLabelsRequest"
101669	//   },
101670	//   "response": {
101671	//     "$ref": "Operation"
101672	//   },
101673	//   "scopes": [
101674	//     "https://www.googleapis.com/auth/cloud-platform",
101675	//     "https://www.googleapis.com/auth/compute"
101676	//   ]
101677	// }
101678
101679}
101680
101681// method id "compute.regionDisks.testIamPermissions":
101682
101683type RegionDisksTestIamPermissionsCall struct {
101684	s                      *Service
101685	project                string
101686	region                 string
101687	resource               string
101688	testpermissionsrequest *TestPermissionsRequest
101689	urlParams_             gensupport.URLParams
101690	ctx_                   context.Context
101691	header_                http.Header
101692}
101693
101694// TestIamPermissions: Returns permissions that a caller has on the
101695// specified resource.
101696func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
101697	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101698	c.project = project
101699	c.region = region
101700	c.resource = resource
101701	c.testpermissionsrequest = testpermissionsrequest
101702	return c
101703}
101704
101705// Fields allows partial responses to be retrieved. See
101706// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101707// for more information.
101708func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
101709	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101710	return c
101711}
101712
101713// Context sets the context to be used in this call's Do method. Any
101714// pending HTTP request will be aborted if the provided context is
101715// canceled.
101716func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
101717	c.ctx_ = ctx
101718	return c
101719}
101720
101721// Header returns an http.Header that can be modified by the caller to
101722// add HTTP headers to the request.
101723func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
101724	if c.header_ == nil {
101725		c.header_ = make(http.Header)
101726	}
101727	return c.header_
101728}
101729
101730func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101731	reqHeaders := make(http.Header)
101732	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101733	for k, v := range c.header_ {
101734		reqHeaders[k] = v
101735	}
101736	reqHeaders.Set("User-Agent", c.s.userAgent())
101737	var body io.Reader = nil
101738	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101739	if err != nil {
101740		return nil, err
101741	}
101742	reqHeaders.Set("Content-Type", "application/json")
101743	c.urlParams_.Set("alt", alt)
101744	c.urlParams_.Set("prettyPrint", "false")
101745	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/testIamPermissions")
101746	urls += "?" + c.urlParams_.Encode()
101747	req, err := http.NewRequest("POST", urls, body)
101748	if err != nil {
101749		return nil, err
101750	}
101751	req.Header = reqHeaders
101752	googleapi.Expand(req.URL, map[string]string{
101753		"project":  c.project,
101754		"region":   c.region,
101755		"resource": c.resource,
101756	})
101757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101758}
101759
101760// Do executes the "compute.regionDisks.testIamPermissions" call.
101761// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101762// non-2xx status code is an error. Response headers are in either
101763// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101764// returned at all) in error.(*googleapi.Error).Header. Use
101765// googleapi.IsNotModified to check whether the returned error was
101766// because http.StatusNotModified was returned.
101767func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101768	gensupport.SetOptions(c.urlParams_, opts...)
101769	res, err := c.doRequest("json")
101770	if res != nil && res.StatusCode == http.StatusNotModified {
101771		if res.Body != nil {
101772			res.Body.Close()
101773		}
101774		return nil, &googleapi.Error{
101775			Code:   res.StatusCode,
101776			Header: res.Header,
101777		}
101778	}
101779	if err != nil {
101780		return nil, err
101781	}
101782	defer googleapi.CloseBody(res)
101783	if err := googleapi.CheckResponse(res); err != nil {
101784		return nil, err
101785	}
101786	ret := &TestPermissionsResponse{
101787		ServerResponse: googleapi.ServerResponse{
101788			Header:         res.Header,
101789			HTTPStatusCode: res.StatusCode,
101790		},
101791	}
101792	target := &ret
101793	if err := gensupport.DecodeResponse(target, res); err != nil {
101794		return nil, err
101795	}
101796	return ret, nil
101797	// {
101798	//   "description": "Returns permissions that a caller has on the specified resource.",
101799	//   "httpMethod": "POST",
101800	//   "id": "compute.regionDisks.testIamPermissions",
101801	//   "parameterOrder": [
101802	//     "project",
101803	//     "region",
101804	//     "resource"
101805	//   ],
101806	//   "parameters": {
101807	//     "project": {
101808	//       "description": "Project ID for this request.",
101809	//       "location": "path",
101810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101811	//       "required": true,
101812	//       "type": "string"
101813	//     },
101814	//     "region": {
101815	//       "description": "The name of the region for this request.",
101816	//       "location": "path",
101817	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101818	//       "required": true,
101819	//       "type": "string"
101820	//     },
101821	//     "resource": {
101822	//       "description": "Name or id of the resource for this request.",
101823	//       "location": "path",
101824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101825	//       "required": true,
101826	//       "type": "string"
101827	//     }
101828	//   },
101829	//   "path": "{project}/regions/{region}/disks/{resource}/testIamPermissions",
101830	//   "request": {
101831	//     "$ref": "TestPermissionsRequest"
101832	//   },
101833	//   "response": {
101834	//     "$ref": "TestPermissionsResponse"
101835	//   },
101836	//   "scopes": [
101837	//     "https://www.googleapis.com/auth/cloud-platform",
101838	//     "https://www.googleapis.com/auth/compute",
101839	//     "https://www.googleapis.com/auth/compute.readonly"
101840	//   ]
101841	// }
101842
101843}
101844
101845// method id "compute.regionHealthCheckServices.delete":
101846
101847type RegionHealthCheckServicesDeleteCall struct {
101848	s                  *Service
101849	project            string
101850	region             string
101851	healthCheckService string
101852	urlParams_         gensupport.URLParams
101853	ctx_               context.Context
101854	header_            http.Header
101855}
101856
101857// Delete: Deletes the specified regional HealthCheckService.
101858func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
101859	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101860	c.project = project
101861	c.region = region
101862	c.healthCheckService = healthCheckService
101863	return c
101864}
101865
101866// RequestId sets the optional parameter "requestId": An optional
101867// request ID to identify requests. Specify a unique request ID so that
101868// if you must retry your request, the server will know to ignore the
101869// request if it has already been completed.
101870//
101871// For example, consider a situation where you make an initial request
101872// and the request times out. If you make the request again with the
101873// same request ID, the server can check if original operation with the
101874// same request ID was received, and if so, will ignore the second
101875// request. This prevents clients from accidentally creating duplicate
101876// commitments.
101877//
101878// The request ID must be a valid UUID with the exception that zero UUID
101879// is not supported (00000000-0000-0000-0000-000000000000).
101880func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
101881	c.urlParams_.Set("requestId", requestId)
101882	return c
101883}
101884
101885// Fields allows partial responses to be retrieved. See
101886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101887// for more information.
101888func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
101889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101890	return c
101891}
101892
101893// Context sets the context to be used in this call's Do method. Any
101894// pending HTTP request will be aborted if the provided context is
101895// canceled.
101896func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
101897	c.ctx_ = ctx
101898	return c
101899}
101900
101901// Header returns an http.Header that can be modified by the caller to
101902// add HTTP headers to the request.
101903func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
101904	if c.header_ == nil {
101905		c.header_ = make(http.Header)
101906	}
101907	return c.header_
101908}
101909
101910func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
101911	reqHeaders := make(http.Header)
101912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101913	for k, v := range c.header_ {
101914		reqHeaders[k] = v
101915	}
101916	reqHeaders.Set("User-Agent", c.s.userAgent())
101917	var body io.Reader = nil
101918	c.urlParams_.Set("alt", alt)
101919	c.urlParams_.Set("prettyPrint", "false")
101920	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
101921	urls += "?" + c.urlParams_.Encode()
101922	req, err := http.NewRequest("DELETE", urls, body)
101923	if err != nil {
101924		return nil, err
101925	}
101926	req.Header = reqHeaders
101927	googleapi.Expand(req.URL, map[string]string{
101928		"project":            c.project,
101929		"region":             c.region,
101930		"healthCheckService": c.healthCheckService,
101931	})
101932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101933}
101934
101935// Do executes the "compute.regionHealthCheckServices.delete" call.
101936// Exactly one of *Operation or error will be non-nil. Any non-2xx
101937// status code is an error. Response headers are in either
101938// *Operation.ServerResponse.Header or (if a response was returned at
101939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101940// to check whether the returned error was because
101941// http.StatusNotModified was returned.
101942func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101943	gensupport.SetOptions(c.urlParams_, opts...)
101944	res, err := c.doRequest("json")
101945	if res != nil && res.StatusCode == http.StatusNotModified {
101946		if res.Body != nil {
101947			res.Body.Close()
101948		}
101949		return nil, &googleapi.Error{
101950			Code:   res.StatusCode,
101951			Header: res.Header,
101952		}
101953	}
101954	if err != nil {
101955		return nil, err
101956	}
101957	defer googleapi.CloseBody(res)
101958	if err := googleapi.CheckResponse(res); err != nil {
101959		return nil, err
101960	}
101961	ret := &Operation{
101962		ServerResponse: googleapi.ServerResponse{
101963			Header:         res.Header,
101964			HTTPStatusCode: res.StatusCode,
101965		},
101966	}
101967	target := &ret
101968	if err := gensupport.DecodeResponse(target, res); err != nil {
101969		return nil, err
101970	}
101971	return ret, nil
101972	// {
101973	//   "description": "Deletes the specified regional HealthCheckService.",
101974	//   "httpMethod": "DELETE",
101975	//   "id": "compute.regionHealthCheckServices.delete",
101976	//   "parameterOrder": [
101977	//     "project",
101978	//     "region",
101979	//     "healthCheckService"
101980	//   ],
101981	//   "parameters": {
101982	//     "healthCheckService": {
101983	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
101984	//       "location": "path",
101985	//       "required": true,
101986	//       "type": "string"
101987	//     },
101988	//     "project": {
101989	//       "description": "Project ID for this request.",
101990	//       "location": "path",
101991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101992	//       "required": true,
101993	//       "type": "string"
101994	//     },
101995	//     "region": {
101996	//       "description": "Name of the region scoping this request.",
101997	//       "location": "path",
101998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101999	//       "required": true,
102000	//       "type": "string"
102001	//     },
102002	//     "requestId": {
102003	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102004	//       "location": "query",
102005	//       "type": "string"
102006	//     }
102007	//   },
102008	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
102009	//   "response": {
102010	//     "$ref": "Operation"
102011	//   },
102012	//   "scopes": [
102013	//     "https://www.googleapis.com/auth/cloud-platform",
102014	//     "https://www.googleapis.com/auth/compute"
102015	//   ]
102016	// }
102017
102018}
102019
102020// method id "compute.regionHealthCheckServices.get":
102021
102022type RegionHealthCheckServicesGetCall struct {
102023	s                  *Service
102024	project            string
102025	region             string
102026	healthCheckService string
102027	urlParams_         gensupport.URLParams
102028	ifNoneMatch_       string
102029	ctx_               context.Context
102030	header_            http.Header
102031}
102032
102033// Get: Returns the specified regional HealthCheckService resource.
102034func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
102035	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102036	c.project = project
102037	c.region = region
102038	c.healthCheckService = healthCheckService
102039	return c
102040}
102041
102042// Fields allows partial responses to be retrieved. See
102043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102044// for more information.
102045func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
102046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102047	return c
102048}
102049
102050// IfNoneMatch sets the optional parameter which makes the operation
102051// fail if the object's ETag matches the given value. This is useful for
102052// getting updates only after the object has changed since the last
102053// request. Use googleapi.IsNotModified to check whether the response
102054// error from Do is the result of In-None-Match.
102055func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
102056	c.ifNoneMatch_ = entityTag
102057	return c
102058}
102059
102060// Context sets the context to be used in this call's Do method. Any
102061// pending HTTP request will be aborted if the provided context is
102062// canceled.
102063func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
102064	c.ctx_ = ctx
102065	return c
102066}
102067
102068// Header returns an http.Header that can be modified by the caller to
102069// add HTTP headers to the request.
102070func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
102071	if c.header_ == nil {
102072		c.header_ = make(http.Header)
102073	}
102074	return c.header_
102075}
102076
102077func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
102078	reqHeaders := make(http.Header)
102079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102080	for k, v := range c.header_ {
102081		reqHeaders[k] = v
102082	}
102083	reqHeaders.Set("User-Agent", c.s.userAgent())
102084	if c.ifNoneMatch_ != "" {
102085		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102086	}
102087	var body io.Reader = nil
102088	c.urlParams_.Set("alt", alt)
102089	c.urlParams_.Set("prettyPrint", "false")
102090	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
102091	urls += "?" + c.urlParams_.Encode()
102092	req, err := http.NewRequest("GET", urls, body)
102093	if err != nil {
102094		return nil, err
102095	}
102096	req.Header = reqHeaders
102097	googleapi.Expand(req.URL, map[string]string{
102098		"project":            c.project,
102099		"region":             c.region,
102100		"healthCheckService": c.healthCheckService,
102101	})
102102	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102103}
102104
102105// Do executes the "compute.regionHealthCheckServices.get" call.
102106// Exactly one of *HealthCheckService or error will be non-nil. Any
102107// non-2xx status code is an error. Response headers are in either
102108// *HealthCheckService.ServerResponse.Header or (if a response was
102109// returned at all) in error.(*googleapi.Error).Header. Use
102110// googleapi.IsNotModified to check whether the returned error was
102111// because http.StatusNotModified was returned.
102112func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
102113	gensupport.SetOptions(c.urlParams_, opts...)
102114	res, err := c.doRequest("json")
102115	if res != nil && res.StatusCode == http.StatusNotModified {
102116		if res.Body != nil {
102117			res.Body.Close()
102118		}
102119		return nil, &googleapi.Error{
102120			Code:   res.StatusCode,
102121			Header: res.Header,
102122		}
102123	}
102124	if err != nil {
102125		return nil, err
102126	}
102127	defer googleapi.CloseBody(res)
102128	if err := googleapi.CheckResponse(res); err != nil {
102129		return nil, err
102130	}
102131	ret := &HealthCheckService{
102132		ServerResponse: googleapi.ServerResponse{
102133			Header:         res.Header,
102134			HTTPStatusCode: res.StatusCode,
102135		},
102136	}
102137	target := &ret
102138	if err := gensupport.DecodeResponse(target, res); err != nil {
102139		return nil, err
102140	}
102141	return ret, nil
102142	// {
102143	//   "description": "Returns the specified regional HealthCheckService resource.",
102144	//   "httpMethod": "GET",
102145	//   "id": "compute.regionHealthCheckServices.get",
102146	//   "parameterOrder": [
102147	//     "project",
102148	//     "region",
102149	//     "healthCheckService"
102150	//   ],
102151	//   "parameters": {
102152	//     "healthCheckService": {
102153	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
102154	//       "location": "path",
102155	//       "required": true,
102156	//       "type": "string"
102157	//     },
102158	//     "project": {
102159	//       "description": "Project ID for this request.",
102160	//       "location": "path",
102161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102162	//       "required": true,
102163	//       "type": "string"
102164	//     },
102165	//     "region": {
102166	//       "description": "Name of the region scoping this request.",
102167	//       "location": "path",
102168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102169	//       "required": true,
102170	//       "type": "string"
102171	//     }
102172	//   },
102173	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
102174	//   "response": {
102175	//     "$ref": "HealthCheckService"
102176	//   },
102177	//   "scopes": [
102178	//     "https://www.googleapis.com/auth/cloud-platform",
102179	//     "https://www.googleapis.com/auth/compute",
102180	//     "https://www.googleapis.com/auth/compute.readonly"
102181	//   ]
102182	// }
102183
102184}
102185
102186// method id "compute.regionHealthCheckServices.insert":
102187
102188type RegionHealthCheckServicesInsertCall struct {
102189	s                  *Service
102190	project            string
102191	region             string
102192	healthcheckservice *HealthCheckService
102193	urlParams_         gensupport.URLParams
102194	ctx_               context.Context
102195	header_            http.Header
102196}
102197
102198// Insert: Creates a regional HealthCheckService resource in the
102199// specified project and region using the data included in the request.
102200func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
102201	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102202	c.project = project
102203	c.region = region
102204	c.healthcheckservice = healthcheckservice
102205	return c
102206}
102207
102208// RequestId sets the optional parameter "requestId": An optional
102209// request ID to identify requests. Specify a unique request ID so that
102210// if you must retry your request, the server will know to ignore the
102211// request if it has already been completed.
102212//
102213// For example, consider a situation where you make an initial request
102214// and the request times out. If you make the request again with the
102215// same request ID, the server can check if original operation with the
102216// same request ID was received, and if so, will ignore the second
102217// request. This prevents clients from accidentally creating duplicate
102218// commitments.
102219//
102220// The request ID must be a valid UUID with the exception that zero UUID
102221// is not supported (00000000-0000-0000-0000-000000000000).
102222func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
102223	c.urlParams_.Set("requestId", requestId)
102224	return c
102225}
102226
102227// Fields allows partial responses to be retrieved. See
102228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102229// for more information.
102230func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
102231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102232	return c
102233}
102234
102235// Context sets the context to be used in this call's Do method. Any
102236// pending HTTP request will be aborted if the provided context is
102237// canceled.
102238func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
102239	c.ctx_ = ctx
102240	return c
102241}
102242
102243// Header returns an http.Header that can be modified by the caller to
102244// add HTTP headers to the request.
102245func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
102246	if c.header_ == nil {
102247		c.header_ = make(http.Header)
102248	}
102249	return c.header_
102250}
102251
102252func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
102253	reqHeaders := make(http.Header)
102254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102255	for k, v := range c.header_ {
102256		reqHeaders[k] = v
102257	}
102258	reqHeaders.Set("User-Agent", c.s.userAgent())
102259	var body io.Reader = nil
102260	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
102261	if err != nil {
102262		return nil, err
102263	}
102264	reqHeaders.Set("Content-Type", "application/json")
102265	c.urlParams_.Set("alt", alt)
102266	c.urlParams_.Set("prettyPrint", "false")
102267	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
102268	urls += "?" + c.urlParams_.Encode()
102269	req, err := http.NewRequest("POST", urls, body)
102270	if err != nil {
102271		return nil, err
102272	}
102273	req.Header = reqHeaders
102274	googleapi.Expand(req.URL, map[string]string{
102275		"project": c.project,
102276		"region":  c.region,
102277	})
102278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102279}
102280
102281// Do executes the "compute.regionHealthCheckServices.insert" call.
102282// Exactly one of *Operation or error will be non-nil. Any non-2xx
102283// status code is an error. Response headers are in either
102284// *Operation.ServerResponse.Header or (if a response was returned at
102285// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102286// to check whether the returned error was because
102287// http.StatusNotModified was returned.
102288func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102289	gensupport.SetOptions(c.urlParams_, opts...)
102290	res, err := c.doRequest("json")
102291	if res != nil && res.StatusCode == http.StatusNotModified {
102292		if res.Body != nil {
102293			res.Body.Close()
102294		}
102295		return nil, &googleapi.Error{
102296			Code:   res.StatusCode,
102297			Header: res.Header,
102298		}
102299	}
102300	if err != nil {
102301		return nil, err
102302	}
102303	defer googleapi.CloseBody(res)
102304	if err := googleapi.CheckResponse(res); err != nil {
102305		return nil, err
102306	}
102307	ret := &Operation{
102308		ServerResponse: googleapi.ServerResponse{
102309			Header:         res.Header,
102310			HTTPStatusCode: res.StatusCode,
102311		},
102312	}
102313	target := &ret
102314	if err := gensupport.DecodeResponse(target, res); err != nil {
102315		return nil, err
102316	}
102317	return ret, nil
102318	// {
102319	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
102320	//   "httpMethod": "POST",
102321	//   "id": "compute.regionHealthCheckServices.insert",
102322	//   "parameterOrder": [
102323	//     "project",
102324	//     "region"
102325	//   ],
102326	//   "parameters": {
102327	//     "project": {
102328	//       "description": "Project ID for this request.",
102329	//       "location": "path",
102330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102331	//       "required": true,
102332	//       "type": "string"
102333	//     },
102334	//     "region": {
102335	//       "description": "Name of the region scoping this request.",
102336	//       "location": "path",
102337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102338	//       "required": true,
102339	//       "type": "string"
102340	//     },
102341	//     "requestId": {
102342	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102343	//       "location": "query",
102344	//       "type": "string"
102345	//     }
102346	//   },
102347	//   "path": "{project}/regions/{region}/healthCheckServices",
102348	//   "request": {
102349	//     "$ref": "HealthCheckService"
102350	//   },
102351	//   "response": {
102352	//     "$ref": "Operation"
102353	//   },
102354	//   "scopes": [
102355	//     "https://www.googleapis.com/auth/cloud-platform",
102356	//     "https://www.googleapis.com/auth/compute"
102357	//   ]
102358	// }
102359
102360}
102361
102362// method id "compute.regionHealthCheckServices.list":
102363
102364type RegionHealthCheckServicesListCall struct {
102365	s            *Service
102366	project      string
102367	region       string
102368	urlParams_   gensupport.URLParams
102369	ifNoneMatch_ string
102370	ctx_         context.Context
102371	header_      http.Header
102372}
102373
102374// List: Lists all the HealthCheckService resources that have been
102375// configured for the specified project in the given region.
102376func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
102377	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102378	c.project = project
102379	c.region = region
102380	return c
102381}
102382
102383// Filter sets the optional parameter "filter": A filter expression that
102384// filters resources listed in the response. The expression must specify
102385// the field name, a comparison operator, and the value that you want to
102386// use for filtering. The value must be a string, a number, or a
102387// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102388// `<`.
102389//
102390// For example, if you are filtering Compute Engine instances, you can
102391// exclude instances named `example-instance` by specifying `name !=
102392// example-instance`.
102393//
102394// You can also filter nested fields. For example, you could specify
102395// `scheduling.automaticRestart = false` to include instances only if
102396// they are not scheduled for automatic restarts. You can use filtering
102397// on nested fields to filter based on resource labels.
102398//
102399// To filter on multiple expressions, provide each separate expression
102400// within parentheses. For example: ``` (scheduling.automaticRestart =
102401// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102402// is an `AND` expression. However, you can include `AND` and `OR`
102403// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102404// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102405// (scheduling.automaticRestart = true) ```
102406func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
102407	c.urlParams_.Set("filter", filter)
102408	return c
102409}
102410
102411// MaxResults sets the optional parameter "maxResults": The maximum
102412// number of results per page that should be returned. If the number of
102413// available results is larger than `maxResults`, Compute Engine returns
102414// a `nextPageToken` that can be used to get the next page of results in
102415// subsequent list requests. Acceptable values are `0` to `500`,
102416// inclusive. (Default: `500`)
102417func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
102418	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102419	return c
102420}
102421
102422// OrderBy sets the optional parameter "orderBy": Sorts list results by
102423// a certain order. By default, results are returned in alphanumerical
102424// order based on the resource name.
102425//
102426// You can also sort results in descending order based on the creation
102427// timestamp using `orderBy="creationTimestamp desc". This sorts
102428// results based on the `creationTimestamp` field in reverse
102429// chronological order (newest result first). Use this to sort resources
102430// like operations so that the newest operation is returned
102431// first.
102432//
102433// Currently, only sorting by `name` or `creationTimestamp desc` is
102434// supported.
102435func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
102436	c.urlParams_.Set("orderBy", orderBy)
102437	return c
102438}
102439
102440// PageToken sets the optional parameter "pageToken": Specifies a page
102441// token to use. Set `pageToken` to the `nextPageToken` returned by a
102442// previous list request to get the next page of results.
102443func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
102444	c.urlParams_.Set("pageToken", pageToken)
102445	return c
102446}
102447
102448// Fields allows partial responses to be retrieved. See
102449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102450// for more information.
102451func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
102452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102453	return c
102454}
102455
102456// IfNoneMatch sets the optional parameter which makes the operation
102457// fail if the object's ETag matches the given value. This is useful for
102458// getting updates only after the object has changed since the last
102459// request. Use googleapi.IsNotModified to check whether the response
102460// error from Do is the result of In-None-Match.
102461func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
102462	c.ifNoneMatch_ = entityTag
102463	return c
102464}
102465
102466// Context sets the context to be used in this call's Do method. Any
102467// pending HTTP request will be aborted if the provided context is
102468// canceled.
102469func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
102470	c.ctx_ = ctx
102471	return c
102472}
102473
102474// Header returns an http.Header that can be modified by the caller to
102475// add HTTP headers to the request.
102476func (c *RegionHealthCheckServicesListCall) Header() http.Header {
102477	if c.header_ == nil {
102478		c.header_ = make(http.Header)
102479	}
102480	return c.header_
102481}
102482
102483func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
102484	reqHeaders := make(http.Header)
102485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102486	for k, v := range c.header_ {
102487		reqHeaders[k] = v
102488	}
102489	reqHeaders.Set("User-Agent", c.s.userAgent())
102490	if c.ifNoneMatch_ != "" {
102491		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102492	}
102493	var body io.Reader = nil
102494	c.urlParams_.Set("alt", alt)
102495	c.urlParams_.Set("prettyPrint", "false")
102496	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
102497	urls += "?" + c.urlParams_.Encode()
102498	req, err := http.NewRequest("GET", urls, body)
102499	if err != nil {
102500		return nil, err
102501	}
102502	req.Header = reqHeaders
102503	googleapi.Expand(req.URL, map[string]string{
102504		"project": c.project,
102505		"region":  c.region,
102506	})
102507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102508}
102509
102510// Do executes the "compute.regionHealthCheckServices.list" call.
102511// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
102512// non-2xx status code is an error. Response headers are in either
102513// *HealthCheckServicesList.ServerResponse.Header or (if a response was
102514// returned at all) in error.(*googleapi.Error).Header. Use
102515// googleapi.IsNotModified to check whether the returned error was
102516// because http.StatusNotModified was returned.
102517func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
102518	gensupport.SetOptions(c.urlParams_, opts...)
102519	res, err := c.doRequest("json")
102520	if res != nil && res.StatusCode == http.StatusNotModified {
102521		if res.Body != nil {
102522			res.Body.Close()
102523		}
102524		return nil, &googleapi.Error{
102525			Code:   res.StatusCode,
102526			Header: res.Header,
102527		}
102528	}
102529	if err != nil {
102530		return nil, err
102531	}
102532	defer googleapi.CloseBody(res)
102533	if err := googleapi.CheckResponse(res); err != nil {
102534		return nil, err
102535	}
102536	ret := &HealthCheckServicesList{
102537		ServerResponse: googleapi.ServerResponse{
102538			Header:         res.Header,
102539			HTTPStatusCode: res.StatusCode,
102540		},
102541	}
102542	target := &ret
102543	if err := gensupport.DecodeResponse(target, res); err != nil {
102544		return nil, err
102545	}
102546	return ret, nil
102547	// {
102548	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
102549	//   "httpMethod": "GET",
102550	//   "id": "compute.regionHealthCheckServices.list",
102551	//   "parameterOrder": [
102552	//     "project",
102553	//     "region"
102554	//   ],
102555	//   "parameters": {
102556	//     "filter": {
102557	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102558	//       "location": "query",
102559	//       "type": "string"
102560	//     },
102561	//     "maxResults": {
102562	//       "default": "500",
102563	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102564	//       "format": "uint32",
102565	//       "location": "query",
102566	//       "minimum": "0",
102567	//       "type": "integer"
102568	//     },
102569	//     "orderBy": {
102570	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102571	//       "location": "query",
102572	//       "type": "string"
102573	//     },
102574	//     "pageToken": {
102575	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102576	//       "location": "query",
102577	//       "type": "string"
102578	//     },
102579	//     "project": {
102580	//       "description": "Project ID for this request.",
102581	//       "location": "path",
102582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102583	//       "required": true,
102584	//       "type": "string"
102585	//     },
102586	//     "region": {
102587	//       "description": "Name of the region scoping this request.",
102588	//       "location": "path",
102589	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102590	//       "required": true,
102591	//       "type": "string"
102592	//     }
102593	//   },
102594	//   "path": "{project}/regions/{region}/healthCheckServices",
102595	//   "response": {
102596	//     "$ref": "HealthCheckServicesList"
102597	//   },
102598	//   "scopes": [
102599	//     "https://www.googleapis.com/auth/cloud-platform",
102600	//     "https://www.googleapis.com/auth/compute",
102601	//     "https://www.googleapis.com/auth/compute.readonly"
102602	//   ]
102603	// }
102604
102605}
102606
102607// Pages invokes f for each page of results.
102608// A non-nil error returned from f will halt the iteration.
102609// The provided context supersedes any context provided to the Context method.
102610func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
102611	c.ctx_ = ctx
102612	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102613	for {
102614		x, err := c.Do()
102615		if err != nil {
102616			return err
102617		}
102618		if err := f(x); err != nil {
102619			return err
102620		}
102621		if x.NextPageToken == "" {
102622			return nil
102623		}
102624		c.PageToken(x.NextPageToken)
102625	}
102626}
102627
102628// method id "compute.regionHealthCheckServices.patch":
102629
102630type RegionHealthCheckServicesPatchCall struct {
102631	s                  *Service
102632	project            string
102633	region             string
102634	healthCheckService string
102635	healthcheckservice *HealthCheckService
102636	urlParams_         gensupport.URLParams
102637	ctx_               context.Context
102638	header_            http.Header
102639}
102640
102641// Patch: Updates the specified regional HealthCheckService resource
102642// with the data included in the request. This method supports PATCH
102643// semantics and uses the JSON merge patch format and processing rules.
102644func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
102645	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102646	c.project = project
102647	c.region = region
102648	c.healthCheckService = healthCheckService
102649	c.healthcheckservice = healthcheckservice
102650	return c
102651}
102652
102653// RequestId sets the optional parameter "requestId": An optional
102654// request ID to identify requests. Specify a unique request ID so that
102655// if you must retry your request, the server will know to ignore the
102656// request if it has already been completed.
102657//
102658// For example, consider a situation where you make an initial request
102659// and the request times out. If you make the request again with the
102660// same request ID, the server can check if original operation with the
102661// same request ID was received, and if so, will ignore the second
102662// request. This prevents clients from accidentally creating duplicate
102663// commitments.
102664//
102665// The request ID must be a valid UUID with the exception that zero UUID
102666// is not supported (00000000-0000-0000-0000-000000000000).
102667func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
102668	c.urlParams_.Set("requestId", requestId)
102669	return c
102670}
102671
102672// Fields allows partial responses to be retrieved. See
102673// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102674// for more information.
102675func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
102676	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102677	return c
102678}
102679
102680// Context sets the context to be used in this call's Do method. Any
102681// pending HTTP request will be aborted if the provided context is
102682// canceled.
102683func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
102684	c.ctx_ = ctx
102685	return c
102686}
102687
102688// Header returns an http.Header that can be modified by the caller to
102689// add HTTP headers to the request.
102690func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
102691	if c.header_ == nil {
102692		c.header_ = make(http.Header)
102693	}
102694	return c.header_
102695}
102696
102697func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
102698	reqHeaders := make(http.Header)
102699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102700	for k, v := range c.header_ {
102701		reqHeaders[k] = v
102702	}
102703	reqHeaders.Set("User-Agent", c.s.userAgent())
102704	var body io.Reader = nil
102705	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
102706	if err != nil {
102707		return nil, err
102708	}
102709	reqHeaders.Set("Content-Type", "application/json")
102710	c.urlParams_.Set("alt", alt)
102711	c.urlParams_.Set("prettyPrint", "false")
102712	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
102713	urls += "?" + c.urlParams_.Encode()
102714	req, err := http.NewRequest("PATCH", urls, body)
102715	if err != nil {
102716		return nil, err
102717	}
102718	req.Header = reqHeaders
102719	googleapi.Expand(req.URL, map[string]string{
102720		"project":            c.project,
102721		"region":             c.region,
102722		"healthCheckService": c.healthCheckService,
102723	})
102724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102725}
102726
102727// Do executes the "compute.regionHealthCheckServices.patch" call.
102728// Exactly one of *Operation or error will be non-nil. Any non-2xx
102729// status code is an error. Response headers are in either
102730// *Operation.ServerResponse.Header or (if a response was returned at
102731// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102732// to check whether the returned error was because
102733// http.StatusNotModified was returned.
102734func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102735	gensupport.SetOptions(c.urlParams_, opts...)
102736	res, err := c.doRequest("json")
102737	if res != nil && res.StatusCode == http.StatusNotModified {
102738		if res.Body != nil {
102739			res.Body.Close()
102740		}
102741		return nil, &googleapi.Error{
102742			Code:   res.StatusCode,
102743			Header: res.Header,
102744		}
102745	}
102746	if err != nil {
102747		return nil, err
102748	}
102749	defer googleapi.CloseBody(res)
102750	if err := googleapi.CheckResponse(res); err != nil {
102751		return nil, err
102752	}
102753	ret := &Operation{
102754		ServerResponse: googleapi.ServerResponse{
102755			Header:         res.Header,
102756			HTTPStatusCode: res.StatusCode,
102757		},
102758	}
102759	target := &ret
102760	if err := gensupport.DecodeResponse(target, res); err != nil {
102761		return nil, err
102762	}
102763	return ret, nil
102764	// {
102765	//   "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.",
102766	//   "httpMethod": "PATCH",
102767	//   "id": "compute.regionHealthCheckServices.patch",
102768	//   "parameterOrder": [
102769	//     "project",
102770	//     "region",
102771	//     "healthCheckService"
102772	//   ],
102773	//   "parameters": {
102774	//     "healthCheckService": {
102775	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
102776	//       "location": "path",
102777	//       "required": true,
102778	//       "type": "string"
102779	//     },
102780	//     "project": {
102781	//       "description": "Project ID for this request.",
102782	//       "location": "path",
102783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102784	//       "required": true,
102785	//       "type": "string"
102786	//     },
102787	//     "region": {
102788	//       "description": "Name of the region scoping this request.",
102789	//       "location": "path",
102790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102791	//       "required": true,
102792	//       "type": "string"
102793	//     },
102794	//     "requestId": {
102795	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102796	//       "location": "query",
102797	//       "type": "string"
102798	//     }
102799	//   },
102800	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
102801	//   "request": {
102802	//     "$ref": "HealthCheckService"
102803	//   },
102804	//   "response": {
102805	//     "$ref": "Operation"
102806	//   },
102807	//   "scopes": [
102808	//     "https://www.googleapis.com/auth/cloud-platform",
102809	//     "https://www.googleapis.com/auth/compute"
102810	//   ]
102811	// }
102812
102813}
102814
102815// method id "compute.regionHealthChecks.delete":
102816
102817type RegionHealthChecksDeleteCall struct {
102818	s           *Service
102819	project     string
102820	region      string
102821	healthCheck string
102822	urlParams_  gensupport.URLParams
102823	ctx_        context.Context
102824	header_     http.Header
102825}
102826
102827// Delete: Deletes the specified HealthCheck resource.
102828func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
102829	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102830	c.project = project
102831	c.region = region
102832	c.healthCheck = healthCheck
102833	return c
102834}
102835
102836// RequestId sets the optional parameter "requestId": An optional
102837// request ID to identify requests. Specify a unique request ID so that
102838// if you must retry your request, the server will know to ignore the
102839// request if it has already been completed.
102840//
102841// For example, consider a situation where you make an initial request
102842// and the request times out. If you make the request again with the
102843// same request ID, the server can check if original operation with the
102844// same request ID was received, and if so, will ignore the second
102845// request. This prevents clients from accidentally creating duplicate
102846// commitments.
102847//
102848// The request ID must be a valid UUID with the exception that zero UUID
102849// is not supported (00000000-0000-0000-0000-000000000000).
102850func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
102851	c.urlParams_.Set("requestId", requestId)
102852	return c
102853}
102854
102855// Fields allows partial responses to be retrieved. See
102856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102857// for more information.
102858func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
102859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102860	return c
102861}
102862
102863// Context sets the context to be used in this call's Do method. Any
102864// pending HTTP request will be aborted if the provided context is
102865// canceled.
102866func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
102867	c.ctx_ = ctx
102868	return c
102869}
102870
102871// Header returns an http.Header that can be modified by the caller to
102872// add HTTP headers to the request.
102873func (c *RegionHealthChecksDeleteCall) Header() http.Header {
102874	if c.header_ == nil {
102875		c.header_ = make(http.Header)
102876	}
102877	return c.header_
102878}
102879
102880func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
102881	reqHeaders := make(http.Header)
102882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102883	for k, v := range c.header_ {
102884		reqHeaders[k] = v
102885	}
102886	reqHeaders.Set("User-Agent", c.s.userAgent())
102887	var body io.Reader = nil
102888	c.urlParams_.Set("alt", alt)
102889	c.urlParams_.Set("prettyPrint", "false")
102890	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
102891	urls += "?" + c.urlParams_.Encode()
102892	req, err := http.NewRequest("DELETE", urls, body)
102893	if err != nil {
102894		return nil, err
102895	}
102896	req.Header = reqHeaders
102897	googleapi.Expand(req.URL, map[string]string{
102898		"project":     c.project,
102899		"region":      c.region,
102900		"healthCheck": c.healthCheck,
102901	})
102902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102903}
102904
102905// Do executes the "compute.regionHealthChecks.delete" call.
102906// Exactly one of *Operation or error will be non-nil. Any non-2xx
102907// status code is an error. Response headers are in either
102908// *Operation.ServerResponse.Header or (if a response was returned at
102909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102910// to check whether the returned error was because
102911// http.StatusNotModified was returned.
102912func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102913	gensupport.SetOptions(c.urlParams_, opts...)
102914	res, err := c.doRequest("json")
102915	if res != nil && res.StatusCode == http.StatusNotModified {
102916		if res.Body != nil {
102917			res.Body.Close()
102918		}
102919		return nil, &googleapi.Error{
102920			Code:   res.StatusCode,
102921			Header: res.Header,
102922		}
102923	}
102924	if err != nil {
102925		return nil, err
102926	}
102927	defer googleapi.CloseBody(res)
102928	if err := googleapi.CheckResponse(res); err != nil {
102929		return nil, err
102930	}
102931	ret := &Operation{
102932		ServerResponse: googleapi.ServerResponse{
102933			Header:         res.Header,
102934			HTTPStatusCode: res.StatusCode,
102935		},
102936	}
102937	target := &ret
102938	if err := gensupport.DecodeResponse(target, res); err != nil {
102939		return nil, err
102940	}
102941	return ret, nil
102942	// {
102943	//   "description": "Deletes the specified HealthCheck resource.",
102944	//   "httpMethod": "DELETE",
102945	//   "id": "compute.regionHealthChecks.delete",
102946	//   "parameterOrder": [
102947	//     "project",
102948	//     "region",
102949	//     "healthCheck"
102950	//   ],
102951	//   "parameters": {
102952	//     "healthCheck": {
102953	//       "description": "Name of the HealthCheck resource to delete.",
102954	//       "location": "path",
102955	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102956	//       "required": true,
102957	//       "type": "string"
102958	//     },
102959	//     "project": {
102960	//       "description": "Project ID for this request.",
102961	//       "location": "path",
102962	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102963	//       "required": true,
102964	//       "type": "string"
102965	//     },
102966	//     "region": {
102967	//       "description": "Name of the region scoping this request.",
102968	//       "location": "path",
102969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102970	//       "required": true,
102971	//       "type": "string"
102972	//     },
102973	//     "requestId": {
102974	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102975	//       "location": "query",
102976	//       "type": "string"
102977	//     }
102978	//   },
102979	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
102980	//   "response": {
102981	//     "$ref": "Operation"
102982	//   },
102983	//   "scopes": [
102984	//     "https://www.googleapis.com/auth/cloud-platform",
102985	//     "https://www.googleapis.com/auth/compute"
102986	//   ]
102987	// }
102988
102989}
102990
102991// method id "compute.regionHealthChecks.get":
102992
102993type RegionHealthChecksGetCall struct {
102994	s            *Service
102995	project      string
102996	region       string
102997	healthCheck  string
102998	urlParams_   gensupport.URLParams
102999	ifNoneMatch_ string
103000	ctx_         context.Context
103001	header_      http.Header
103002}
103003
103004// Get: Returns the specified HealthCheck resource. Gets a list of
103005// available health checks by making a list() request.
103006func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
103007	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103008	c.project = project
103009	c.region = region
103010	c.healthCheck = healthCheck
103011	return c
103012}
103013
103014// Fields allows partial responses to be retrieved. See
103015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103016// for more information.
103017func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
103018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103019	return c
103020}
103021
103022// IfNoneMatch sets the optional parameter which makes the operation
103023// fail if the object's ETag matches the given value. This is useful for
103024// getting updates only after the object has changed since the last
103025// request. Use googleapi.IsNotModified to check whether the response
103026// error from Do is the result of In-None-Match.
103027func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
103028	c.ifNoneMatch_ = entityTag
103029	return c
103030}
103031
103032// Context sets the context to be used in this call's Do method. Any
103033// pending HTTP request will be aborted if the provided context is
103034// canceled.
103035func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
103036	c.ctx_ = ctx
103037	return c
103038}
103039
103040// Header returns an http.Header that can be modified by the caller to
103041// add HTTP headers to the request.
103042func (c *RegionHealthChecksGetCall) Header() http.Header {
103043	if c.header_ == nil {
103044		c.header_ = make(http.Header)
103045	}
103046	return c.header_
103047}
103048
103049func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
103050	reqHeaders := make(http.Header)
103051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103052	for k, v := range c.header_ {
103053		reqHeaders[k] = v
103054	}
103055	reqHeaders.Set("User-Agent", c.s.userAgent())
103056	if c.ifNoneMatch_ != "" {
103057		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103058	}
103059	var body io.Reader = nil
103060	c.urlParams_.Set("alt", alt)
103061	c.urlParams_.Set("prettyPrint", "false")
103062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
103063	urls += "?" + c.urlParams_.Encode()
103064	req, err := http.NewRequest("GET", urls, body)
103065	if err != nil {
103066		return nil, err
103067	}
103068	req.Header = reqHeaders
103069	googleapi.Expand(req.URL, map[string]string{
103070		"project":     c.project,
103071		"region":      c.region,
103072		"healthCheck": c.healthCheck,
103073	})
103074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103075}
103076
103077// Do executes the "compute.regionHealthChecks.get" call.
103078// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
103079// status code is an error. Response headers are in either
103080// *HealthCheck.ServerResponse.Header or (if a response was returned at
103081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103082// to check whether the returned error was because
103083// http.StatusNotModified was returned.
103084func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
103085	gensupport.SetOptions(c.urlParams_, opts...)
103086	res, err := c.doRequest("json")
103087	if res != nil && res.StatusCode == http.StatusNotModified {
103088		if res.Body != nil {
103089			res.Body.Close()
103090		}
103091		return nil, &googleapi.Error{
103092			Code:   res.StatusCode,
103093			Header: res.Header,
103094		}
103095	}
103096	if err != nil {
103097		return nil, err
103098	}
103099	defer googleapi.CloseBody(res)
103100	if err := googleapi.CheckResponse(res); err != nil {
103101		return nil, err
103102	}
103103	ret := &HealthCheck{
103104		ServerResponse: googleapi.ServerResponse{
103105			Header:         res.Header,
103106			HTTPStatusCode: res.StatusCode,
103107		},
103108	}
103109	target := &ret
103110	if err := gensupport.DecodeResponse(target, res); err != nil {
103111		return nil, err
103112	}
103113	return ret, nil
103114	// {
103115	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
103116	//   "httpMethod": "GET",
103117	//   "id": "compute.regionHealthChecks.get",
103118	//   "parameterOrder": [
103119	//     "project",
103120	//     "region",
103121	//     "healthCheck"
103122	//   ],
103123	//   "parameters": {
103124	//     "healthCheck": {
103125	//       "description": "Name of the HealthCheck resource to return.",
103126	//       "location": "path",
103127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103128	//       "required": true,
103129	//       "type": "string"
103130	//     },
103131	//     "project": {
103132	//       "description": "Project ID for this request.",
103133	//       "location": "path",
103134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103135	//       "required": true,
103136	//       "type": "string"
103137	//     },
103138	//     "region": {
103139	//       "description": "Name of the region scoping this request.",
103140	//       "location": "path",
103141	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103142	//       "required": true,
103143	//       "type": "string"
103144	//     }
103145	//   },
103146	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
103147	//   "response": {
103148	//     "$ref": "HealthCheck"
103149	//   },
103150	//   "scopes": [
103151	//     "https://www.googleapis.com/auth/cloud-platform",
103152	//     "https://www.googleapis.com/auth/compute",
103153	//     "https://www.googleapis.com/auth/compute.readonly"
103154	//   ]
103155	// }
103156
103157}
103158
103159// method id "compute.regionHealthChecks.insert":
103160
103161type RegionHealthChecksInsertCall struct {
103162	s           *Service
103163	project     string
103164	region      string
103165	healthcheck *HealthCheck
103166	urlParams_  gensupport.URLParams
103167	ctx_        context.Context
103168	header_     http.Header
103169}
103170
103171// Insert: Creates a HealthCheck resource in the specified project using
103172// the data included in the request.
103173func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
103174	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103175	c.project = project
103176	c.region = region
103177	c.healthcheck = healthcheck
103178	return c
103179}
103180
103181// RequestId sets the optional parameter "requestId": An optional
103182// request ID to identify requests. Specify a unique request ID so that
103183// if you must retry your request, the server will know to ignore the
103184// request if it has already been completed.
103185//
103186// For example, consider a situation where you make an initial request
103187// and the request times out. If you make the request again with the
103188// same request ID, the server can check if original operation with the
103189// same request ID was received, and if so, will ignore the second
103190// request. This prevents clients from accidentally creating duplicate
103191// commitments.
103192//
103193// The request ID must be a valid UUID with the exception that zero UUID
103194// is not supported (00000000-0000-0000-0000-000000000000).
103195func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
103196	c.urlParams_.Set("requestId", requestId)
103197	return c
103198}
103199
103200// Fields allows partial responses to be retrieved. See
103201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103202// for more information.
103203func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
103204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103205	return c
103206}
103207
103208// Context sets the context to be used in this call's Do method. Any
103209// pending HTTP request will be aborted if the provided context is
103210// canceled.
103211func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
103212	c.ctx_ = ctx
103213	return c
103214}
103215
103216// Header returns an http.Header that can be modified by the caller to
103217// add HTTP headers to the request.
103218func (c *RegionHealthChecksInsertCall) Header() http.Header {
103219	if c.header_ == nil {
103220		c.header_ = make(http.Header)
103221	}
103222	return c.header_
103223}
103224
103225func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
103226	reqHeaders := make(http.Header)
103227	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103228	for k, v := range c.header_ {
103229		reqHeaders[k] = v
103230	}
103231	reqHeaders.Set("User-Agent", c.s.userAgent())
103232	var body io.Reader = nil
103233	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
103234	if err != nil {
103235		return nil, err
103236	}
103237	reqHeaders.Set("Content-Type", "application/json")
103238	c.urlParams_.Set("alt", alt)
103239	c.urlParams_.Set("prettyPrint", "false")
103240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
103241	urls += "?" + c.urlParams_.Encode()
103242	req, err := http.NewRequest("POST", urls, body)
103243	if err != nil {
103244		return nil, err
103245	}
103246	req.Header = reqHeaders
103247	googleapi.Expand(req.URL, map[string]string{
103248		"project": c.project,
103249		"region":  c.region,
103250	})
103251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103252}
103253
103254// Do executes the "compute.regionHealthChecks.insert" call.
103255// Exactly one of *Operation or error will be non-nil. Any non-2xx
103256// status code is an error. Response headers are in either
103257// *Operation.ServerResponse.Header or (if a response was returned at
103258// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103259// to check whether the returned error was because
103260// http.StatusNotModified was returned.
103261func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103262	gensupport.SetOptions(c.urlParams_, opts...)
103263	res, err := c.doRequest("json")
103264	if res != nil && res.StatusCode == http.StatusNotModified {
103265		if res.Body != nil {
103266			res.Body.Close()
103267		}
103268		return nil, &googleapi.Error{
103269			Code:   res.StatusCode,
103270			Header: res.Header,
103271		}
103272	}
103273	if err != nil {
103274		return nil, err
103275	}
103276	defer googleapi.CloseBody(res)
103277	if err := googleapi.CheckResponse(res); err != nil {
103278		return nil, err
103279	}
103280	ret := &Operation{
103281		ServerResponse: googleapi.ServerResponse{
103282			Header:         res.Header,
103283			HTTPStatusCode: res.StatusCode,
103284		},
103285	}
103286	target := &ret
103287	if err := gensupport.DecodeResponse(target, res); err != nil {
103288		return nil, err
103289	}
103290	return ret, nil
103291	// {
103292	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
103293	//   "httpMethod": "POST",
103294	//   "id": "compute.regionHealthChecks.insert",
103295	//   "parameterOrder": [
103296	//     "project",
103297	//     "region"
103298	//   ],
103299	//   "parameters": {
103300	//     "project": {
103301	//       "description": "Project ID for this request.",
103302	//       "location": "path",
103303	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103304	//       "required": true,
103305	//       "type": "string"
103306	//     },
103307	//     "region": {
103308	//       "description": "Name of the region scoping this request.",
103309	//       "location": "path",
103310	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103311	//       "required": true,
103312	//       "type": "string"
103313	//     },
103314	//     "requestId": {
103315	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103316	//       "location": "query",
103317	//       "type": "string"
103318	//     }
103319	//   },
103320	//   "path": "{project}/regions/{region}/healthChecks",
103321	//   "request": {
103322	//     "$ref": "HealthCheck"
103323	//   },
103324	//   "response": {
103325	//     "$ref": "Operation"
103326	//   },
103327	//   "scopes": [
103328	//     "https://www.googleapis.com/auth/cloud-platform",
103329	//     "https://www.googleapis.com/auth/compute"
103330	//   ]
103331	// }
103332
103333}
103334
103335// method id "compute.regionHealthChecks.list":
103336
103337type RegionHealthChecksListCall struct {
103338	s            *Service
103339	project      string
103340	region       string
103341	urlParams_   gensupport.URLParams
103342	ifNoneMatch_ string
103343	ctx_         context.Context
103344	header_      http.Header
103345}
103346
103347// List: Retrieves the list of HealthCheck resources available to the
103348// specified project.
103349func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
103350	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103351	c.project = project
103352	c.region = region
103353	return c
103354}
103355
103356// Filter sets the optional parameter "filter": A filter expression that
103357// filters resources listed in the response. The expression must specify
103358// the field name, a comparison operator, and the value that you want to
103359// use for filtering. The value must be a string, a number, or a
103360// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103361// `<`.
103362//
103363// For example, if you are filtering Compute Engine instances, you can
103364// exclude instances named `example-instance` by specifying `name !=
103365// example-instance`.
103366//
103367// You can also filter nested fields. For example, you could specify
103368// `scheduling.automaticRestart = false` to include instances only if
103369// they are not scheduled for automatic restarts. You can use filtering
103370// on nested fields to filter based on resource labels.
103371//
103372// To filter on multiple expressions, provide each separate expression
103373// within parentheses. For example: ``` (scheduling.automaticRestart =
103374// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
103375// is an `AND` expression. However, you can include `AND` and `OR`
103376// expressions explicitly. For example: ``` (cpuPlatform = "Intel
103377// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
103378// (scheduling.automaticRestart = true) ```
103379func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
103380	c.urlParams_.Set("filter", filter)
103381	return c
103382}
103383
103384// MaxResults sets the optional parameter "maxResults": The maximum
103385// number of results per page that should be returned. If the number of
103386// available results is larger than `maxResults`, Compute Engine returns
103387// a `nextPageToken` that can be used to get the next page of results in
103388// subsequent list requests. Acceptable values are `0` to `500`,
103389// inclusive. (Default: `500`)
103390func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
103391	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103392	return c
103393}
103394
103395// OrderBy sets the optional parameter "orderBy": Sorts list results by
103396// a certain order. By default, results are returned in alphanumerical
103397// order based on the resource name.
103398//
103399// You can also sort results in descending order based on the creation
103400// timestamp using `orderBy="creationTimestamp desc". This sorts
103401// results based on the `creationTimestamp` field in reverse
103402// chronological order (newest result first). Use this to sort resources
103403// like operations so that the newest operation is returned
103404// first.
103405//
103406// Currently, only sorting by `name` or `creationTimestamp desc` is
103407// supported.
103408func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
103409	c.urlParams_.Set("orderBy", orderBy)
103410	return c
103411}
103412
103413// PageToken sets the optional parameter "pageToken": Specifies a page
103414// token to use. Set `pageToken` to the `nextPageToken` returned by a
103415// previous list request to get the next page of results.
103416func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
103417	c.urlParams_.Set("pageToken", pageToken)
103418	return c
103419}
103420
103421// Fields allows partial responses to be retrieved. See
103422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103423// for more information.
103424func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
103425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103426	return c
103427}
103428
103429// IfNoneMatch sets the optional parameter which makes the operation
103430// fail if the object's ETag matches the given value. This is useful for
103431// getting updates only after the object has changed since the last
103432// request. Use googleapi.IsNotModified to check whether the response
103433// error from Do is the result of In-None-Match.
103434func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
103435	c.ifNoneMatch_ = entityTag
103436	return c
103437}
103438
103439// Context sets the context to be used in this call's Do method. Any
103440// pending HTTP request will be aborted if the provided context is
103441// canceled.
103442func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
103443	c.ctx_ = ctx
103444	return c
103445}
103446
103447// Header returns an http.Header that can be modified by the caller to
103448// add HTTP headers to the request.
103449func (c *RegionHealthChecksListCall) Header() http.Header {
103450	if c.header_ == nil {
103451		c.header_ = make(http.Header)
103452	}
103453	return c.header_
103454}
103455
103456func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
103457	reqHeaders := make(http.Header)
103458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103459	for k, v := range c.header_ {
103460		reqHeaders[k] = v
103461	}
103462	reqHeaders.Set("User-Agent", c.s.userAgent())
103463	if c.ifNoneMatch_ != "" {
103464		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103465	}
103466	var body io.Reader = nil
103467	c.urlParams_.Set("alt", alt)
103468	c.urlParams_.Set("prettyPrint", "false")
103469	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
103470	urls += "?" + c.urlParams_.Encode()
103471	req, err := http.NewRequest("GET", urls, body)
103472	if err != nil {
103473		return nil, err
103474	}
103475	req.Header = reqHeaders
103476	googleapi.Expand(req.URL, map[string]string{
103477		"project": c.project,
103478		"region":  c.region,
103479	})
103480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103481}
103482
103483// Do executes the "compute.regionHealthChecks.list" call.
103484// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
103485// status code is an error. Response headers are in either
103486// *HealthCheckList.ServerResponse.Header or (if a response was returned
103487// at all) in error.(*googleapi.Error).Header. Use
103488// googleapi.IsNotModified to check whether the returned error was
103489// because http.StatusNotModified was returned.
103490func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
103491	gensupport.SetOptions(c.urlParams_, opts...)
103492	res, err := c.doRequest("json")
103493	if res != nil && res.StatusCode == http.StatusNotModified {
103494		if res.Body != nil {
103495			res.Body.Close()
103496		}
103497		return nil, &googleapi.Error{
103498			Code:   res.StatusCode,
103499			Header: res.Header,
103500		}
103501	}
103502	if err != nil {
103503		return nil, err
103504	}
103505	defer googleapi.CloseBody(res)
103506	if err := googleapi.CheckResponse(res); err != nil {
103507		return nil, err
103508	}
103509	ret := &HealthCheckList{
103510		ServerResponse: googleapi.ServerResponse{
103511			Header:         res.Header,
103512			HTTPStatusCode: res.StatusCode,
103513		},
103514	}
103515	target := &ret
103516	if err := gensupport.DecodeResponse(target, res); err != nil {
103517		return nil, err
103518	}
103519	return ret, nil
103520	// {
103521	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
103522	//   "httpMethod": "GET",
103523	//   "id": "compute.regionHealthChecks.list",
103524	//   "parameterOrder": [
103525	//     "project",
103526	//     "region"
103527	//   ],
103528	//   "parameters": {
103529	//     "filter": {
103530	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
103531	//       "location": "query",
103532	//       "type": "string"
103533	//     },
103534	//     "maxResults": {
103535	//       "default": "500",
103536	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
103537	//       "format": "uint32",
103538	//       "location": "query",
103539	//       "minimum": "0",
103540	//       "type": "integer"
103541	//     },
103542	//     "orderBy": {
103543	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
103544	//       "location": "query",
103545	//       "type": "string"
103546	//     },
103547	//     "pageToken": {
103548	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
103549	//       "location": "query",
103550	//       "type": "string"
103551	//     },
103552	//     "project": {
103553	//       "description": "Project ID for this request.",
103554	//       "location": "path",
103555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103556	//       "required": true,
103557	//       "type": "string"
103558	//     },
103559	//     "region": {
103560	//       "description": "Name of the region scoping this request.",
103561	//       "location": "path",
103562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103563	//       "required": true,
103564	//       "type": "string"
103565	//     }
103566	//   },
103567	//   "path": "{project}/regions/{region}/healthChecks",
103568	//   "response": {
103569	//     "$ref": "HealthCheckList"
103570	//   },
103571	//   "scopes": [
103572	//     "https://www.googleapis.com/auth/cloud-platform",
103573	//     "https://www.googleapis.com/auth/compute",
103574	//     "https://www.googleapis.com/auth/compute.readonly"
103575	//   ]
103576	// }
103577
103578}
103579
103580// Pages invokes f for each page of results.
103581// A non-nil error returned from f will halt the iteration.
103582// The provided context supersedes any context provided to the Context method.
103583func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
103584	c.ctx_ = ctx
103585	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103586	for {
103587		x, err := c.Do()
103588		if err != nil {
103589			return err
103590		}
103591		if err := f(x); err != nil {
103592			return err
103593		}
103594		if x.NextPageToken == "" {
103595			return nil
103596		}
103597		c.PageToken(x.NextPageToken)
103598	}
103599}
103600
103601// method id "compute.regionHealthChecks.patch":
103602
103603type RegionHealthChecksPatchCall struct {
103604	s           *Service
103605	project     string
103606	region      string
103607	healthCheck string
103608	healthcheck *HealthCheck
103609	urlParams_  gensupport.URLParams
103610	ctx_        context.Context
103611	header_     http.Header
103612}
103613
103614// Patch: Updates a HealthCheck resource in the specified project using
103615// the data included in the request. This method supports PATCH
103616// semantics and uses the JSON merge patch format and processing rules.
103617func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
103618	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103619	c.project = project
103620	c.region = region
103621	c.healthCheck = healthCheck
103622	c.healthcheck = healthcheck
103623	return c
103624}
103625
103626// RequestId sets the optional parameter "requestId": An optional
103627// request ID to identify requests. Specify a unique request ID so that
103628// if you must retry your request, the server will know to ignore the
103629// request if it has already been completed.
103630//
103631// For example, consider a situation where you make an initial request
103632// and the request times out. If you make the request again with the
103633// same request ID, the server can check if original operation with the
103634// same request ID was received, and if so, will ignore the second
103635// request. This prevents clients from accidentally creating duplicate
103636// commitments.
103637//
103638// The request ID must be a valid UUID with the exception that zero UUID
103639// is not supported (00000000-0000-0000-0000-000000000000).
103640func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
103641	c.urlParams_.Set("requestId", requestId)
103642	return c
103643}
103644
103645// Fields allows partial responses to be retrieved. See
103646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103647// for more information.
103648func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
103649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103650	return c
103651}
103652
103653// Context sets the context to be used in this call's Do method. Any
103654// pending HTTP request will be aborted if the provided context is
103655// canceled.
103656func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
103657	c.ctx_ = ctx
103658	return c
103659}
103660
103661// Header returns an http.Header that can be modified by the caller to
103662// add HTTP headers to the request.
103663func (c *RegionHealthChecksPatchCall) Header() http.Header {
103664	if c.header_ == nil {
103665		c.header_ = make(http.Header)
103666	}
103667	return c.header_
103668}
103669
103670func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
103671	reqHeaders := make(http.Header)
103672	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103673	for k, v := range c.header_ {
103674		reqHeaders[k] = v
103675	}
103676	reqHeaders.Set("User-Agent", c.s.userAgent())
103677	var body io.Reader = nil
103678	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
103679	if err != nil {
103680		return nil, err
103681	}
103682	reqHeaders.Set("Content-Type", "application/json")
103683	c.urlParams_.Set("alt", alt)
103684	c.urlParams_.Set("prettyPrint", "false")
103685	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
103686	urls += "?" + c.urlParams_.Encode()
103687	req, err := http.NewRequest("PATCH", urls, body)
103688	if err != nil {
103689		return nil, err
103690	}
103691	req.Header = reqHeaders
103692	googleapi.Expand(req.URL, map[string]string{
103693		"project":     c.project,
103694		"region":      c.region,
103695		"healthCheck": c.healthCheck,
103696	})
103697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103698}
103699
103700// Do executes the "compute.regionHealthChecks.patch" call.
103701// Exactly one of *Operation or error will be non-nil. Any non-2xx
103702// status code is an error. Response headers are in either
103703// *Operation.ServerResponse.Header or (if a response was returned at
103704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103705// to check whether the returned error was because
103706// http.StatusNotModified was returned.
103707func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103708	gensupport.SetOptions(c.urlParams_, opts...)
103709	res, err := c.doRequest("json")
103710	if res != nil && res.StatusCode == http.StatusNotModified {
103711		if res.Body != nil {
103712			res.Body.Close()
103713		}
103714		return nil, &googleapi.Error{
103715			Code:   res.StatusCode,
103716			Header: res.Header,
103717		}
103718	}
103719	if err != nil {
103720		return nil, err
103721	}
103722	defer googleapi.CloseBody(res)
103723	if err := googleapi.CheckResponse(res); err != nil {
103724		return nil, err
103725	}
103726	ret := &Operation{
103727		ServerResponse: googleapi.ServerResponse{
103728			Header:         res.Header,
103729			HTTPStatusCode: res.StatusCode,
103730		},
103731	}
103732	target := &ret
103733	if err := gensupport.DecodeResponse(target, res); err != nil {
103734		return nil, err
103735	}
103736	return ret, nil
103737	// {
103738	//   "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.",
103739	//   "httpMethod": "PATCH",
103740	//   "id": "compute.regionHealthChecks.patch",
103741	//   "parameterOrder": [
103742	//     "project",
103743	//     "region",
103744	//     "healthCheck"
103745	//   ],
103746	//   "parameters": {
103747	//     "healthCheck": {
103748	//       "description": "Name of the HealthCheck resource to patch.",
103749	//       "location": "path",
103750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103751	//       "required": true,
103752	//       "type": "string"
103753	//     },
103754	//     "project": {
103755	//       "description": "Project ID for this request.",
103756	//       "location": "path",
103757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103758	//       "required": true,
103759	//       "type": "string"
103760	//     },
103761	//     "region": {
103762	//       "description": "Name of the region scoping this request.",
103763	//       "location": "path",
103764	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103765	//       "required": true,
103766	//       "type": "string"
103767	//     },
103768	//     "requestId": {
103769	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103770	//       "location": "query",
103771	//       "type": "string"
103772	//     }
103773	//   },
103774	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
103775	//   "request": {
103776	//     "$ref": "HealthCheck"
103777	//   },
103778	//   "response": {
103779	//     "$ref": "Operation"
103780	//   },
103781	//   "scopes": [
103782	//     "https://www.googleapis.com/auth/cloud-platform",
103783	//     "https://www.googleapis.com/auth/compute"
103784	//   ]
103785	// }
103786
103787}
103788
103789// method id "compute.regionHealthChecks.update":
103790
103791type RegionHealthChecksUpdateCall struct {
103792	s           *Service
103793	project     string
103794	region      string
103795	healthCheck string
103796	healthcheck *HealthCheck
103797	urlParams_  gensupport.URLParams
103798	ctx_        context.Context
103799	header_     http.Header
103800}
103801
103802// Update: Updates a HealthCheck resource in the specified project using
103803// the data included in the request.
103804func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
103805	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103806	c.project = project
103807	c.region = region
103808	c.healthCheck = healthCheck
103809	c.healthcheck = healthcheck
103810	return c
103811}
103812
103813// RequestId sets the optional parameter "requestId": An optional
103814// request ID to identify requests. Specify a unique request ID so that
103815// if you must retry your request, the server will know to ignore the
103816// request if it has already been completed.
103817//
103818// For example, consider a situation where you make an initial request
103819// and the request times out. If you make the request again with the
103820// same request ID, the server can check if original operation with the
103821// same request ID was received, and if so, will ignore the second
103822// request. This prevents clients from accidentally creating duplicate
103823// commitments.
103824//
103825// The request ID must be a valid UUID with the exception that zero UUID
103826// is not supported (00000000-0000-0000-0000-000000000000).
103827func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
103828	c.urlParams_.Set("requestId", requestId)
103829	return c
103830}
103831
103832// Fields allows partial responses to be retrieved. See
103833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103834// for more information.
103835func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
103836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103837	return c
103838}
103839
103840// Context sets the context to be used in this call's Do method. Any
103841// pending HTTP request will be aborted if the provided context is
103842// canceled.
103843func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
103844	c.ctx_ = ctx
103845	return c
103846}
103847
103848// Header returns an http.Header that can be modified by the caller to
103849// add HTTP headers to the request.
103850func (c *RegionHealthChecksUpdateCall) Header() http.Header {
103851	if c.header_ == nil {
103852		c.header_ = make(http.Header)
103853	}
103854	return c.header_
103855}
103856
103857func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
103858	reqHeaders := make(http.Header)
103859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103860	for k, v := range c.header_ {
103861		reqHeaders[k] = v
103862	}
103863	reqHeaders.Set("User-Agent", c.s.userAgent())
103864	var body io.Reader = nil
103865	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
103866	if err != nil {
103867		return nil, err
103868	}
103869	reqHeaders.Set("Content-Type", "application/json")
103870	c.urlParams_.Set("alt", alt)
103871	c.urlParams_.Set("prettyPrint", "false")
103872	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
103873	urls += "?" + c.urlParams_.Encode()
103874	req, err := http.NewRequest("PUT", urls, body)
103875	if err != nil {
103876		return nil, err
103877	}
103878	req.Header = reqHeaders
103879	googleapi.Expand(req.URL, map[string]string{
103880		"project":     c.project,
103881		"region":      c.region,
103882		"healthCheck": c.healthCheck,
103883	})
103884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103885}
103886
103887// Do executes the "compute.regionHealthChecks.update" call.
103888// Exactly one of *Operation or error will be non-nil. Any non-2xx
103889// status code is an error. Response headers are in either
103890// *Operation.ServerResponse.Header or (if a response was returned at
103891// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103892// to check whether the returned error was because
103893// http.StatusNotModified was returned.
103894func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103895	gensupport.SetOptions(c.urlParams_, opts...)
103896	res, err := c.doRequest("json")
103897	if res != nil && res.StatusCode == http.StatusNotModified {
103898		if res.Body != nil {
103899			res.Body.Close()
103900		}
103901		return nil, &googleapi.Error{
103902			Code:   res.StatusCode,
103903			Header: res.Header,
103904		}
103905	}
103906	if err != nil {
103907		return nil, err
103908	}
103909	defer googleapi.CloseBody(res)
103910	if err := googleapi.CheckResponse(res); err != nil {
103911		return nil, err
103912	}
103913	ret := &Operation{
103914		ServerResponse: googleapi.ServerResponse{
103915			Header:         res.Header,
103916			HTTPStatusCode: res.StatusCode,
103917		},
103918	}
103919	target := &ret
103920	if err := gensupport.DecodeResponse(target, res); err != nil {
103921		return nil, err
103922	}
103923	return ret, nil
103924	// {
103925	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
103926	//   "httpMethod": "PUT",
103927	//   "id": "compute.regionHealthChecks.update",
103928	//   "parameterOrder": [
103929	//     "project",
103930	//     "region",
103931	//     "healthCheck"
103932	//   ],
103933	//   "parameters": {
103934	//     "healthCheck": {
103935	//       "description": "Name of the HealthCheck resource to update.",
103936	//       "location": "path",
103937	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103938	//       "required": true,
103939	//       "type": "string"
103940	//     },
103941	//     "project": {
103942	//       "description": "Project ID for this request.",
103943	//       "location": "path",
103944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103945	//       "required": true,
103946	//       "type": "string"
103947	//     },
103948	//     "region": {
103949	//       "description": "Name of the region scoping this request.",
103950	//       "location": "path",
103951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103952	//       "required": true,
103953	//       "type": "string"
103954	//     },
103955	//     "requestId": {
103956	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103957	//       "location": "query",
103958	//       "type": "string"
103959	//     }
103960	//   },
103961	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
103962	//   "request": {
103963	//     "$ref": "HealthCheck"
103964	//   },
103965	//   "response": {
103966	//     "$ref": "Operation"
103967	//   },
103968	//   "scopes": [
103969	//     "https://www.googleapis.com/auth/cloud-platform",
103970	//     "https://www.googleapis.com/auth/compute"
103971	//   ]
103972	// }
103973
103974}
103975
103976// method id "compute.regionInstanceGroupManagers.abandonInstances":
103977
103978type RegionInstanceGroupManagersAbandonInstancesCall struct {
103979	s                                                  *Service
103980	project                                            string
103981	region                                             string
103982	instanceGroupManager                               string
103983	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
103984	urlParams_                                         gensupport.URLParams
103985	ctx_                                               context.Context
103986	header_                                            http.Header
103987}
103988
103989// AbandonInstances: Flags the specified instances to be immediately
103990// removed from the managed instance group. Abandoning an instance does
103991// not delete the instance, but it does remove the instance from any
103992// target pools that are applied by the managed instance group. This
103993// method reduces the targetSize of the managed instance group by the
103994// number of instances that you abandon. This operation is marked as
103995// DONE when the action is scheduled even if the instances have not yet
103996// been removed from the group. You must separately verify the status of
103997// the abandoning action with the listmanagedinstances method.
103998//
103999// If the group is part of a backend service that has enabled connection
104000// draining, it can take up to 60 seconds after the connection draining
104001// duration has elapsed before the VM instance is removed or
104002// deleted.
104003//
104004// You can specify a maximum of 1000 instances with this method per
104005// request.
104006func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
104007	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104008	c.project = project
104009	c.region = region
104010	c.instanceGroupManager = instanceGroupManager
104011	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
104012	return c
104013}
104014
104015// RequestId sets the optional parameter "requestId": An optional
104016// request ID to identify requests. Specify a unique request ID so that
104017// if you must retry your request, the server will know to ignore the
104018// request if it has already been completed.
104019//
104020// For example, consider a situation where you make an initial request
104021// and the request times out. If you make the request again with the
104022// same request ID, the server can check if original operation with the
104023// same request ID was received, and if so, will ignore the second
104024// request. This prevents clients from accidentally creating duplicate
104025// commitments.
104026//
104027// The request ID must be a valid UUID with the exception that zero UUID
104028// is not supported (00000000-0000-0000-0000-000000000000).
104029func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
104030	c.urlParams_.Set("requestId", requestId)
104031	return c
104032}
104033
104034// Fields allows partial responses to be retrieved. See
104035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104036// for more information.
104037func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
104038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104039	return c
104040}
104041
104042// Context sets the context to be used in this call's Do method. Any
104043// pending HTTP request will be aborted if the provided context is
104044// canceled.
104045func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
104046	c.ctx_ = ctx
104047	return c
104048}
104049
104050// Header returns an http.Header that can be modified by the caller to
104051// add HTTP headers to the request.
104052func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
104053	if c.header_ == nil {
104054		c.header_ = make(http.Header)
104055	}
104056	return c.header_
104057}
104058
104059func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
104060	reqHeaders := make(http.Header)
104061	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104062	for k, v := range c.header_ {
104063		reqHeaders[k] = v
104064	}
104065	reqHeaders.Set("User-Agent", c.s.userAgent())
104066	var body io.Reader = nil
104067	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
104068	if err != nil {
104069		return nil, err
104070	}
104071	reqHeaders.Set("Content-Type", "application/json")
104072	c.urlParams_.Set("alt", alt)
104073	c.urlParams_.Set("prettyPrint", "false")
104074	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
104075	urls += "?" + c.urlParams_.Encode()
104076	req, err := http.NewRequest("POST", urls, body)
104077	if err != nil {
104078		return nil, err
104079	}
104080	req.Header = reqHeaders
104081	googleapi.Expand(req.URL, map[string]string{
104082		"project":              c.project,
104083		"region":               c.region,
104084		"instanceGroupManager": c.instanceGroupManager,
104085	})
104086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104087}
104088
104089// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
104090// Exactly one of *Operation or error will be non-nil. Any non-2xx
104091// status code is an error. Response headers are in either
104092// *Operation.ServerResponse.Header or (if a response was returned at
104093// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104094// to check whether the returned error was because
104095// http.StatusNotModified was returned.
104096func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104097	gensupport.SetOptions(c.urlParams_, opts...)
104098	res, err := c.doRequest("json")
104099	if res != nil && res.StatusCode == http.StatusNotModified {
104100		if res.Body != nil {
104101			res.Body.Close()
104102		}
104103		return nil, &googleapi.Error{
104104			Code:   res.StatusCode,
104105			Header: res.Header,
104106		}
104107	}
104108	if err != nil {
104109		return nil, err
104110	}
104111	defer googleapi.CloseBody(res)
104112	if err := googleapi.CheckResponse(res); err != nil {
104113		return nil, err
104114	}
104115	ret := &Operation{
104116		ServerResponse: googleapi.ServerResponse{
104117			Header:         res.Header,
104118			HTTPStatusCode: res.StatusCode,
104119		},
104120	}
104121	target := &ret
104122	if err := gensupport.DecodeResponse(target, res); err != nil {
104123		return nil, err
104124	}
104125	return ret, nil
104126	// {
104127	//   "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.",
104128	//   "httpMethod": "POST",
104129	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
104130	//   "parameterOrder": [
104131	//     "project",
104132	//     "region",
104133	//     "instanceGroupManager"
104134	//   ],
104135	//   "parameters": {
104136	//     "instanceGroupManager": {
104137	//       "description": "Name of the managed instance group.",
104138	//       "location": "path",
104139	//       "required": true,
104140	//       "type": "string"
104141	//     },
104142	//     "project": {
104143	//       "description": "Project ID for this request.",
104144	//       "location": "path",
104145	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104146	//       "required": true,
104147	//       "type": "string"
104148	//     },
104149	//     "region": {
104150	//       "description": "Name of the region scoping this request.",
104151	//       "location": "path",
104152	//       "required": true,
104153	//       "type": "string"
104154	//     },
104155	//     "requestId": {
104156	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104157	//       "location": "query",
104158	//       "type": "string"
104159	//     }
104160	//   },
104161	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
104162	//   "request": {
104163	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
104164	//   },
104165	//   "response": {
104166	//     "$ref": "Operation"
104167	//   },
104168	//   "scopes": [
104169	//     "https://www.googleapis.com/auth/cloud-platform",
104170	//     "https://www.googleapis.com/auth/compute"
104171	//   ]
104172	// }
104173
104174}
104175
104176// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
104177
104178type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
104179	s                                              *Service
104180	project                                        string
104181	region                                         string
104182	instanceGroupManager                           string
104183	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
104184	urlParams_                                     gensupport.URLParams
104185	ctx_                                           context.Context
104186	header_                                        http.Header
104187}
104188
104189// ApplyUpdatesToInstances: Apply updates to selected instances the
104190// managed instance group.
104191func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
104192	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104193	c.project = project
104194	c.region = region
104195	c.instanceGroupManager = instanceGroupManager
104196	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
104197	return c
104198}
104199
104200// Fields allows partial responses to be retrieved. See
104201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104202// for more information.
104203func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
104204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104205	return c
104206}
104207
104208// Context sets the context to be used in this call's Do method. Any
104209// pending HTTP request will be aborted if the provided context is
104210// canceled.
104211func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
104212	c.ctx_ = ctx
104213	return c
104214}
104215
104216// Header returns an http.Header that can be modified by the caller to
104217// add HTTP headers to the request.
104218func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
104219	if c.header_ == nil {
104220		c.header_ = make(http.Header)
104221	}
104222	return c.header_
104223}
104224
104225func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
104226	reqHeaders := make(http.Header)
104227	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104228	for k, v := range c.header_ {
104229		reqHeaders[k] = v
104230	}
104231	reqHeaders.Set("User-Agent", c.s.userAgent())
104232	var body io.Reader = nil
104233	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
104234	if err != nil {
104235		return nil, err
104236	}
104237	reqHeaders.Set("Content-Type", "application/json")
104238	c.urlParams_.Set("alt", alt)
104239	c.urlParams_.Set("prettyPrint", "false")
104240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
104241	urls += "?" + c.urlParams_.Encode()
104242	req, err := http.NewRequest("POST", urls, body)
104243	if err != nil {
104244		return nil, err
104245	}
104246	req.Header = reqHeaders
104247	googleapi.Expand(req.URL, map[string]string{
104248		"project":              c.project,
104249		"region":               c.region,
104250		"instanceGroupManager": c.instanceGroupManager,
104251	})
104252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104253}
104254
104255// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
104256// Exactly one of *Operation or error will be non-nil. Any non-2xx
104257// status code is an error. Response headers are in either
104258// *Operation.ServerResponse.Header or (if a response was returned at
104259// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104260// to check whether the returned error was because
104261// http.StatusNotModified was returned.
104262func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104263	gensupport.SetOptions(c.urlParams_, opts...)
104264	res, err := c.doRequest("json")
104265	if res != nil && res.StatusCode == http.StatusNotModified {
104266		if res.Body != nil {
104267			res.Body.Close()
104268		}
104269		return nil, &googleapi.Error{
104270			Code:   res.StatusCode,
104271			Header: res.Header,
104272		}
104273	}
104274	if err != nil {
104275		return nil, err
104276	}
104277	defer googleapi.CloseBody(res)
104278	if err := googleapi.CheckResponse(res); err != nil {
104279		return nil, err
104280	}
104281	ret := &Operation{
104282		ServerResponse: googleapi.ServerResponse{
104283			Header:         res.Header,
104284			HTTPStatusCode: res.StatusCode,
104285		},
104286	}
104287	target := &ret
104288	if err := gensupport.DecodeResponse(target, res); err != nil {
104289		return nil, err
104290	}
104291	return ret, nil
104292	// {
104293	//   "description": "Apply updates to selected instances the managed instance group.",
104294	//   "httpMethod": "POST",
104295	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
104296	//   "parameterOrder": [
104297	//     "project",
104298	//     "region",
104299	//     "instanceGroupManager"
104300	//   ],
104301	//   "parameters": {
104302	//     "instanceGroupManager": {
104303	//       "description": "The name of the managed instance group, should conform to RFC1035.",
104304	//       "location": "path",
104305	//       "required": true,
104306	//       "type": "string"
104307	//     },
104308	//     "project": {
104309	//       "description": "Project ID for this request.",
104310	//       "location": "path",
104311	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104312	//       "required": true,
104313	//       "type": "string"
104314	//     },
104315	//     "region": {
104316	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
104317	//       "location": "path",
104318	//       "required": true,
104319	//       "type": "string"
104320	//     }
104321	//   },
104322	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
104323	//   "request": {
104324	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
104325	//   },
104326	//   "response": {
104327	//     "$ref": "Operation"
104328	//   },
104329	//   "scopes": [
104330	//     "https://www.googleapis.com/auth/cloud-platform",
104331	//     "https://www.googleapis.com/auth/compute"
104332	//   ]
104333	// }
104334
104335}
104336
104337// method id "compute.regionInstanceGroupManagers.createInstances":
104338
104339type RegionInstanceGroupManagersCreateInstancesCall struct {
104340	s                                                 *Service
104341	project                                           string
104342	region                                            string
104343	instanceGroupManager                              string
104344	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
104345	urlParams_                                        gensupport.URLParams
104346	ctx_                                              context.Context
104347	header_                                           http.Header
104348}
104349
104350// CreateInstances: Creates instances with per-instance configs in this
104351// regional managed instance group. Instances are created using the
104352// current instance template. The create instances operation is marked
104353// DONE if the createInstances request is successful. The underlying
104354// actions take additional time. You must separately verify the status
104355// of the creating or actions with the listmanagedinstances method.
104356func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
104357	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104358	c.project = project
104359	c.region = region
104360	c.instanceGroupManager = instanceGroupManager
104361	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
104362	return c
104363}
104364
104365// RequestId sets the optional parameter "requestId": An optional
104366// request ID to identify requests. Specify a unique request ID so that
104367// if you must retry your request, the server will know to ignore the
104368// request if it has already been completed.
104369//
104370// For example, consider a situation where you make an initial request
104371// and the request times out. If you make the request again with the
104372// same request ID, the server can check if original operation with the
104373// same request ID was received, and if so, will ignore the second
104374// request.
104375//
104376// The request ID must be a valid UUID with the exception that zero UUID
104377// is not supported (00000000-0000-0000-0000-000000000000).
104378func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
104379	c.urlParams_.Set("requestId", requestId)
104380	return c
104381}
104382
104383// Fields allows partial responses to be retrieved. See
104384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104385// for more information.
104386func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
104387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104388	return c
104389}
104390
104391// Context sets the context to be used in this call's Do method. Any
104392// pending HTTP request will be aborted if the provided context is
104393// canceled.
104394func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
104395	c.ctx_ = ctx
104396	return c
104397}
104398
104399// Header returns an http.Header that can be modified by the caller to
104400// add HTTP headers to the request.
104401func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
104402	if c.header_ == nil {
104403		c.header_ = make(http.Header)
104404	}
104405	return c.header_
104406}
104407
104408func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
104409	reqHeaders := make(http.Header)
104410	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104411	for k, v := range c.header_ {
104412		reqHeaders[k] = v
104413	}
104414	reqHeaders.Set("User-Agent", c.s.userAgent())
104415	var body io.Reader = nil
104416	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
104417	if err != nil {
104418		return nil, err
104419	}
104420	reqHeaders.Set("Content-Type", "application/json")
104421	c.urlParams_.Set("alt", alt)
104422	c.urlParams_.Set("prettyPrint", "false")
104423	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
104424	urls += "?" + c.urlParams_.Encode()
104425	req, err := http.NewRequest("POST", urls, body)
104426	if err != nil {
104427		return nil, err
104428	}
104429	req.Header = reqHeaders
104430	googleapi.Expand(req.URL, map[string]string{
104431		"project":              c.project,
104432		"region":               c.region,
104433		"instanceGroupManager": c.instanceGroupManager,
104434	})
104435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104436}
104437
104438// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
104439// Exactly one of *Operation or error will be non-nil. Any non-2xx
104440// status code is an error. Response headers are in either
104441// *Operation.ServerResponse.Header or (if a response was returned at
104442// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104443// to check whether the returned error was because
104444// http.StatusNotModified was returned.
104445func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104446	gensupport.SetOptions(c.urlParams_, opts...)
104447	res, err := c.doRequest("json")
104448	if res != nil && res.StatusCode == http.StatusNotModified {
104449		if res.Body != nil {
104450			res.Body.Close()
104451		}
104452		return nil, &googleapi.Error{
104453			Code:   res.StatusCode,
104454			Header: res.Header,
104455		}
104456	}
104457	if err != nil {
104458		return nil, err
104459	}
104460	defer googleapi.CloseBody(res)
104461	if err := googleapi.CheckResponse(res); err != nil {
104462		return nil, err
104463	}
104464	ret := &Operation{
104465		ServerResponse: googleapi.ServerResponse{
104466			Header:         res.Header,
104467			HTTPStatusCode: res.StatusCode,
104468		},
104469	}
104470	target := &ret
104471	if err := gensupport.DecodeResponse(target, res); err != nil {
104472		return nil, err
104473	}
104474	return ret, nil
104475	// {
104476	//   "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.",
104477	//   "httpMethod": "POST",
104478	//   "id": "compute.regionInstanceGroupManagers.createInstances",
104479	//   "parameterOrder": [
104480	//     "project",
104481	//     "region",
104482	//     "instanceGroupManager"
104483	//   ],
104484	//   "parameters": {
104485	//     "instanceGroupManager": {
104486	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
104487	//       "location": "path",
104488	//       "required": true,
104489	//       "type": "string"
104490	//     },
104491	//     "project": {
104492	//       "description": "Project ID for this request.",
104493	//       "location": "path",
104494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104495	//       "required": true,
104496	//       "type": "string"
104497	//     },
104498	//     "region": {
104499	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
104500	//       "location": "path",
104501	//       "required": true,
104502	//       "type": "string"
104503	//     },
104504	//     "requestId": {
104505	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
104506	//       "location": "query",
104507	//       "type": "string"
104508	//     }
104509	//   },
104510	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
104511	//   "request": {
104512	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
104513	//   },
104514	//   "response": {
104515	//     "$ref": "Operation"
104516	//   },
104517	//   "scopes": [
104518	//     "https://www.googleapis.com/auth/cloud-platform",
104519	//     "https://www.googleapis.com/auth/compute"
104520	//   ]
104521	// }
104522
104523}
104524
104525// method id "compute.regionInstanceGroupManagers.delete":
104526
104527type RegionInstanceGroupManagersDeleteCall struct {
104528	s                    *Service
104529	project              string
104530	region               string
104531	instanceGroupManager string
104532	urlParams_           gensupport.URLParams
104533	ctx_                 context.Context
104534	header_              http.Header
104535}
104536
104537// Delete: Deletes the specified managed instance group and all of the
104538// instances in that group.
104539func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
104540	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104541	c.project = project
104542	c.region = region
104543	c.instanceGroupManager = instanceGroupManager
104544	return c
104545}
104546
104547// RequestId sets the optional parameter "requestId": An optional
104548// request ID to identify requests. Specify a unique request ID so that
104549// if you must retry your request, the server will know to ignore the
104550// request if it has already been completed.
104551//
104552// For example, consider a situation where you make an initial request
104553// and the request times out. If you make the request again with the
104554// same request ID, the server can check if original operation with the
104555// same request ID was received, and if so, will ignore the second
104556// request. This prevents clients from accidentally creating duplicate
104557// commitments.
104558//
104559// The request ID must be a valid UUID with the exception that zero UUID
104560// is not supported (00000000-0000-0000-0000-000000000000).
104561func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
104562	c.urlParams_.Set("requestId", requestId)
104563	return c
104564}
104565
104566// Fields allows partial responses to be retrieved. See
104567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104568// for more information.
104569func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
104570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104571	return c
104572}
104573
104574// Context sets the context to be used in this call's Do method. Any
104575// pending HTTP request will be aborted if the provided context is
104576// canceled.
104577func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
104578	c.ctx_ = ctx
104579	return c
104580}
104581
104582// Header returns an http.Header that can be modified by the caller to
104583// add HTTP headers to the request.
104584func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
104585	if c.header_ == nil {
104586		c.header_ = make(http.Header)
104587	}
104588	return c.header_
104589}
104590
104591func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
104592	reqHeaders := make(http.Header)
104593	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104594	for k, v := range c.header_ {
104595		reqHeaders[k] = v
104596	}
104597	reqHeaders.Set("User-Agent", c.s.userAgent())
104598	var body io.Reader = nil
104599	c.urlParams_.Set("alt", alt)
104600	c.urlParams_.Set("prettyPrint", "false")
104601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
104602	urls += "?" + c.urlParams_.Encode()
104603	req, err := http.NewRequest("DELETE", urls, body)
104604	if err != nil {
104605		return nil, err
104606	}
104607	req.Header = reqHeaders
104608	googleapi.Expand(req.URL, map[string]string{
104609		"project":              c.project,
104610		"region":               c.region,
104611		"instanceGroupManager": c.instanceGroupManager,
104612	})
104613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104614}
104615
104616// Do executes the "compute.regionInstanceGroupManagers.delete" call.
104617// Exactly one of *Operation or error will be non-nil. Any non-2xx
104618// status code is an error. Response headers are in either
104619// *Operation.ServerResponse.Header or (if a response was returned at
104620// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104621// to check whether the returned error was because
104622// http.StatusNotModified was returned.
104623func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104624	gensupport.SetOptions(c.urlParams_, opts...)
104625	res, err := c.doRequest("json")
104626	if res != nil && res.StatusCode == http.StatusNotModified {
104627		if res.Body != nil {
104628			res.Body.Close()
104629		}
104630		return nil, &googleapi.Error{
104631			Code:   res.StatusCode,
104632			Header: res.Header,
104633		}
104634	}
104635	if err != nil {
104636		return nil, err
104637	}
104638	defer googleapi.CloseBody(res)
104639	if err := googleapi.CheckResponse(res); err != nil {
104640		return nil, err
104641	}
104642	ret := &Operation{
104643		ServerResponse: googleapi.ServerResponse{
104644			Header:         res.Header,
104645			HTTPStatusCode: res.StatusCode,
104646		},
104647	}
104648	target := &ret
104649	if err := gensupport.DecodeResponse(target, res); err != nil {
104650		return nil, err
104651	}
104652	return ret, nil
104653	// {
104654	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
104655	//   "httpMethod": "DELETE",
104656	//   "id": "compute.regionInstanceGroupManagers.delete",
104657	//   "parameterOrder": [
104658	//     "project",
104659	//     "region",
104660	//     "instanceGroupManager"
104661	//   ],
104662	//   "parameters": {
104663	//     "instanceGroupManager": {
104664	//       "description": "Name of the managed instance group to delete.",
104665	//       "location": "path",
104666	//       "required": true,
104667	//       "type": "string"
104668	//     },
104669	//     "project": {
104670	//       "description": "Project ID for this request.",
104671	//       "location": "path",
104672	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104673	//       "required": true,
104674	//       "type": "string"
104675	//     },
104676	//     "region": {
104677	//       "description": "Name of the region scoping this request.",
104678	//       "location": "path",
104679	//       "required": true,
104680	//       "type": "string"
104681	//     },
104682	//     "requestId": {
104683	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104684	//       "location": "query",
104685	//       "type": "string"
104686	//     }
104687	//   },
104688	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
104689	//   "response": {
104690	//     "$ref": "Operation"
104691	//   },
104692	//   "scopes": [
104693	//     "https://www.googleapis.com/auth/cloud-platform",
104694	//     "https://www.googleapis.com/auth/compute"
104695	//   ]
104696	// }
104697
104698}
104699
104700// method id "compute.regionInstanceGroupManagers.deleteInstances":
104701
104702type RegionInstanceGroupManagersDeleteInstancesCall struct {
104703	s                                                 *Service
104704	project                                           string
104705	region                                            string
104706	instanceGroupManager                              string
104707	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
104708	urlParams_                                        gensupport.URLParams
104709	ctx_                                              context.Context
104710	header_                                           http.Header
104711}
104712
104713// DeleteInstances: Flags the specified instances in the managed
104714// instance group to be immediately deleted. The instances are also
104715// removed from any target pools of which they were a member. This
104716// method reduces the targetSize of the managed instance group by the
104717// number of instances that you delete. The deleteInstances operation is
104718// marked DONE if the deleteInstances request is successful. The
104719// underlying actions take additional time. You must separately verify
104720// the status of the deleting action with the listmanagedinstances
104721// method.
104722//
104723// If the group is part of a backend service that has enabled connection
104724// draining, it can take up to 60 seconds after the connection draining
104725// duration has elapsed before the VM instance is removed or
104726// deleted.
104727//
104728// You can specify a maximum of 1000 instances with this method per
104729// request.
104730func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
104731	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104732	c.project = project
104733	c.region = region
104734	c.instanceGroupManager = instanceGroupManager
104735	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
104736	return c
104737}
104738
104739// RequestId sets the optional parameter "requestId": An optional
104740// request ID to identify requests. Specify a unique request ID so that
104741// if you must retry your request, the server will know to ignore the
104742// request if it has already been completed.
104743//
104744// For example, consider a situation where you make an initial request
104745// and the request times out. If you make the request again with the
104746// same request ID, the server can check if original operation with the
104747// same request ID was received, and if so, will ignore the second
104748// request. This prevents clients from accidentally creating duplicate
104749// commitments.
104750//
104751// The request ID must be a valid UUID with the exception that zero UUID
104752// is not supported (00000000-0000-0000-0000-000000000000).
104753func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
104754	c.urlParams_.Set("requestId", requestId)
104755	return c
104756}
104757
104758// Fields allows partial responses to be retrieved. See
104759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104760// for more information.
104761func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
104762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104763	return c
104764}
104765
104766// Context sets the context to be used in this call's Do method. Any
104767// pending HTTP request will be aborted if the provided context is
104768// canceled.
104769func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
104770	c.ctx_ = ctx
104771	return c
104772}
104773
104774// Header returns an http.Header that can be modified by the caller to
104775// add HTTP headers to the request.
104776func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
104777	if c.header_ == nil {
104778		c.header_ = make(http.Header)
104779	}
104780	return c.header_
104781}
104782
104783func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
104784	reqHeaders := make(http.Header)
104785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104786	for k, v := range c.header_ {
104787		reqHeaders[k] = v
104788	}
104789	reqHeaders.Set("User-Agent", c.s.userAgent())
104790	var body io.Reader = nil
104791	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
104792	if err != nil {
104793		return nil, err
104794	}
104795	reqHeaders.Set("Content-Type", "application/json")
104796	c.urlParams_.Set("alt", alt)
104797	c.urlParams_.Set("prettyPrint", "false")
104798	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
104799	urls += "?" + c.urlParams_.Encode()
104800	req, err := http.NewRequest("POST", urls, body)
104801	if err != nil {
104802		return nil, err
104803	}
104804	req.Header = reqHeaders
104805	googleapi.Expand(req.URL, map[string]string{
104806		"project":              c.project,
104807		"region":               c.region,
104808		"instanceGroupManager": c.instanceGroupManager,
104809	})
104810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104811}
104812
104813// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
104814// Exactly one of *Operation or error will be non-nil. Any non-2xx
104815// status code is an error. Response headers are in either
104816// *Operation.ServerResponse.Header or (if a response was returned at
104817// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104818// to check whether the returned error was because
104819// http.StatusNotModified was returned.
104820func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104821	gensupport.SetOptions(c.urlParams_, opts...)
104822	res, err := c.doRequest("json")
104823	if res != nil && res.StatusCode == http.StatusNotModified {
104824		if res.Body != nil {
104825			res.Body.Close()
104826		}
104827		return nil, &googleapi.Error{
104828			Code:   res.StatusCode,
104829			Header: res.Header,
104830		}
104831	}
104832	if err != nil {
104833		return nil, err
104834	}
104835	defer googleapi.CloseBody(res)
104836	if err := googleapi.CheckResponse(res); err != nil {
104837		return nil, err
104838	}
104839	ret := &Operation{
104840		ServerResponse: googleapi.ServerResponse{
104841			Header:         res.Header,
104842			HTTPStatusCode: res.StatusCode,
104843		},
104844	}
104845	target := &ret
104846	if err := gensupport.DecodeResponse(target, res); err != nil {
104847		return nil, err
104848	}
104849	return ret, nil
104850	// {
104851	//   "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.",
104852	//   "httpMethod": "POST",
104853	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
104854	//   "parameterOrder": [
104855	//     "project",
104856	//     "region",
104857	//     "instanceGroupManager"
104858	//   ],
104859	//   "parameters": {
104860	//     "instanceGroupManager": {
104861	//       "description": "Name of the managed instance group.",
104862	//       "location": "path",
104863	//       "required": true,
104864	//       "type": "string"
104865	//     },
104866	//     "project": {
104867	//       "description": "Project ID for this request.",
104868	//       "location": "path",
104869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104870	//       "required": true,
104871	//       "type": "string"
104872	//     },
104873	//     "region": {
104874	//       "description": "Name of the region scoping this request.",
104875	//       "location": "path",
104876	//       "required": true,
104877	//       "type": "string"
104878	//     },
104879	//     "requestId": {
104880	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104881	//       "location": "query",
104882	//       "type": "string"
104883	//     }
104884	//   },
104885	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
104886	//   "request": {
104887	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
104888	//   },
104889	//   "response": {
104890	//     "$ref": "Operation"
104891	//   },
104892	//   "scopes": [
104893	//     "https://www.googleapis.com/auth/cloud-platform",
104894	//     "https://www.googleapis.com/auth/compute"
104895	//   ]
104896	// }
104897
104898}
104899
104900// method id "compute.regionInstanceGroupManagers.get":
104901
104902type RegionInstanceGroupManagersGetCall struct {
104903	s                    *Service
104904	project              string
104905	region               string
104906	instanceGroupManager string
104907	urlParams_           gensupport.URLParams
104908	ifNoneMatch_         string
104909	ctx_                 context.Context
104910	header_              http.Header
104911}
104912
104913// Get: Returns all of the details about the specified managed instance
104914// group.
104915func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
104916	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104917	c.project = project
104918	c.region = region
104919	c.instanceGroupManager = instanceGroupManager
104920	return c
104921}
104922
104923// Fields allows partial responses to be retrieved. See
104924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104925// for more information.
104926func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
104927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104928	return c
104929}
104930
104931// IfNoneMatch sets the optional parameter which makes the operation
104932// fail if the object's ETag matches the given value. This is useful for
104933// getting updates only after the object has changed since the last
104934// request. Use googleapi.IsNotModified to check whether the response
104935// error from Do is the result of In-None-Match.
104936func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
104937	c.ifNoneMatch_ = entityTag
104938	return c
104939}
104940
104941// Context sets the context to be used in this call's Do method. Any
104942// pending HTTP request will be aborted if the provided context is
104943// canceled.
104944func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
104945	c.ctx_ = ctx
104946	return c
104947}
104948
104949// Header returns an http.Header that can be modified by the caller to
104950// add HTTP headers to the request.
104951func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
104952	if c.header_ == nil {
104953		c.header_ = make(http.Header)
104954	}
104955	return c.header_
104956}
104957
104958func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
104959	reqHeaders := make(http.Header)
104960	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104961	for k, v := range c.header_ {
104962		reqHeaders[k] = v
104963	}
104964	reqHeaders.Set("User-Agent", c.s.userAgent())
104965	if c.ifNoneMatch_ != "" {
104966		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104967	}
104968	var body io.Reader = nil
104969	c.urlParams_.Set("alt", alt)
104970	c.urlParams_.Set("prettyPrint", "false")
104971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
104972	urls += "?" + c.urlParams_.Encode()
104973	req, err := http.NewRequest("GET", urls, body)
104974	if err != nil {
104975		return nil, err
104976	}
104977	req.Header = reqHeaders
104978	googleapi.Expand(req.URL, map[string]string{
104979		"project":              c.project,
104980		"region":               c.region,
104981		"instanceGroupManager": c.instanceGroupManager,
104982	})
104983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104984}
104985
104986// Do executes the "compute.regionInstanceGroupManagers.get" call.
104987// Exactly one of *InstanceGroupManager or error will be non-nil. Any
104988// non-2xx status code is an error. Response headers are in either
104989// *InstanceGroupManager.ServerResponse.Header or (if a response was
104990// returned at all) in error.(*googleapi.Error).Header. Use
104991// googleapi.IsNotModified to check whether the returned error was
104992// because http.StatusNotModified was returned.
104993func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
104994	gensupport.SetOptions(c.urlParams_, opts...)
104995	res, err := c.doRequest("json")
104996	if res != nil && res.StatusCode == http.StatusNotModified {
104997		if res.Body != nil {
104998			res.Body.Close()
104999		}
105000		return nil, &googleapi.Error{
105001			Code:   res.StatusCode,
105002			Header: res.Header,
105003		}
105004	}
105005	if err != nil {
105006		return nil, err
105007	}
105008	defer googleapi.CloseBody(res)
105009	if err := googleapi.CheckResponse(res); err != nil {
105010		return nil, err
105011	}
105012	ret := &InstanceGroupManager{
105013		ServerResponse: googleapi.ServerResponse{
105014			Header:         res.Header,
105015			HTTPStatusCode: res.StatusCode,
105016		},
105017	}
105018	target := &ret
105019	if err := gensupport.DecodeResponse(target, res); err != nil {
105020		return nil, err
105021	}
105022	return ret, nil
105023	// {
105024	//   "description": "Returns all of the details about the specified managed instance group.",
105025	//   "httpMethod": "GET",
105026	//   "id": "compute.regionInstanceGroupManagers.get",
105027	//   "parameterOrder": [
105028	//     "project",
105029	//     "region",
105030	//     "instanceGroupManager"
105031	//   ],
105032	//   "parameters": {
105033	//     "instanceGroupManager": {
105034	//       "description": "Name of the managed instance group to return.",
105035	//       "location": "path",
105036	//       "required": true,
105037	//       "type": "string"
105038	//     },
105039	//     "project": {
105040	//       "description": "Project ID for this request.",
105041	//       "location": "path",
105042	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105043	//       "required": true,
105044	//       "type": "string"
105045	//     },
105046	//     "region": {
105047	//       "description": "Name of the region scoping this request.",
105048	//       "location": "path",
105049	//       "required": true,
105050	//       "type": "string"
105051	//     }
105052	//   },
105053	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
105054	//   "response": {
105055	//     "$ref": "InstanceGroupManager"
105056	//   },
105057	//   "scopes": [
105058	//     "https://www.googleapis.com/auth/cloud-platform",
105059	//     "https://www.googleapis.com/auth/compute",
105060	//     "https://www.googleapis.com/auth/compute.readonly"
105061	//   ]
105062	// }
105063
105064}
105065
105066// method id "compute.regionInstanceGroupManagers.insert":
105067
105068type RegionInstanceGroupManagersInsertCall struct {
105069	s                    *Service
105070	project              string
105071	region               string
105072	instancegroupmanager *InstanceGroupManager
105073	urlParams_           gensupport.URLParams
105074	ctx_                 context.Context
105075	header_              http.Header
105076}
105077
105078// Insert: Creates a managed instance group using the information that
105079// you specify in the request. After the group is created, instances in
105080// the group are created using the specified instance template. This
105081// operation is marked as DONE when the group is created even if the
105082// instances in the group have not yet been created. You must separately
105083// verify the status of the individual instances with the
105084// listmanagedinstances method.
105085//
105086// A regional managed instance group can contain up to 2000 instances.
105087func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
105088	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105089	c.project = project
105090	c.region = region
105091	c.instancegroupmanager = instancegroupmanager
105092	return c
105093}
105094
105095// RequestId sets the optional parameter "requestId": An optional
105096// request ID to identify requests. Specify a unique request ID so that
105097// if you must retry your request, the server will know to ignore the
105098// request if it has already been completed.
105099//
105100// For example, consider a situation where you make an initial request
105101// and the request times out. If you make the request again with the
105102// same request ID, the server can check if original operation with the
105103// same request ID was received, and if so, will ignore the second
105104// request. This prevents clients from accidentally creating duplicate
105105// commitments.
105106//
105107// The request ID must be a valid UUID with the exception that zero UUID
105108// is not supported (00000000-0000-0000-0000-000000000000).
105109func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
105110	c.urlParams_.Set("requestId", requestId)
105111	return c
105112}
105113
105114// Fields allows partial responses to be retrieved. See
105115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105116// for more information.
105117func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
105118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105119	return c
105120}
105121
105122// Context sets the context to be used in this call's Do method. Any
105123// pending HTTP request will be aborted if the provided context is
105124// canceled.
105125func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
105126	c.ctx_ = ctx
105127	return c
105128}
105129
105130// Header returns an http.Header that can be modified by the caller to
105131// add HTTP headers to the request.
105132func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
105133	if c.header_ == nil {
105134		c.header_ = make(http.Header)
105135	}
105136	return c.header_
105137}
105138
105139func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
105140	reqHeaders := make(http.Header)
105141	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105142	for k, v := range c.header_ {
105143		reqHeaders[k] = v
105144	}
105145	reqHeaders.Set("User-Agent", c.s.userAgent())
105146	var body io.Reader = nil
105147	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
105148	if err != nil {
105149		return nil, err
105150	}
105151	reqHeaders.Set("Content-Type", "application/json")
105152	c.urlParams_.Set("alt", alt)
105153	c.urlParams_.Set("prettyPrint", "false")
105154	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
105155	urls += "?" + c.urlParams_.Encode()
105156	req, err := http.NewRequest("POST", urls, body)
105157	if err != nil {
105158		return nil, err
105159	}
105160	req.Header = reqHeaders
105161	googleapi.Expand(req.URL, map[string]string{
105162		"project": c.project,
105163		"region":  c.region,
105164	})
105165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105166}
105167
105168// Do executes the "compute.regionInstanceGroupManagers.insert" call.
105169// Exactly one of *Operation or error will be non-nil. Any non-2xx
105170// status code is an error. Response headers are in either
105171// *Operation.ServerResponse.Header or (if a response was returned at
105172// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105173// to check whether the returned error was because
105174// http.StatusNotModified was returned.
105175func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105176	gensupport.SetOptions(c.urlParams_, opts...)
105177	res, err := c.doRequest("json")
105178	if res != nil && res.StatusCode == http.StatusNotModified {
105179		if res.Body != nil {
105180			res.Body.Close()
105181		}
105182		return nil, &googleapi.Error{
105183			Code:   res.StatusCode,
105184			Header: res.Header,
105185		}
105186	}
105187	if err != nil {
105188		return nil, err
105189	}
105190	defer googleapi.CloseBody(res)
105191	if err := googleapi.CheckResponse(res); err != nil {
105192		return nil, err
105193	}
105194	ret := &Operation{
105195		ServerResponse: googleapi.ServerResponse{
105196			Header:         res.Header,
105197			HTTPStatusCode: res.StatusCode,
105198		},
105199	}
105200	target := &ret
105201	if err := gensupport.DecodeResponse(target, res); err != nil {
105202		return nil, err
105203	}
105204	return ret, nil
105205	// {
105206	//   "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.",
105207	//   "httpMethod": "POST",
105208	//   "id": "compute.regionInstanceGroupManagers.insert",
105209	//   "parameterOrder": [
105210	//     "project",
105211	//     "region"
105212	//   ],
105213	//   "parameters": {
105214	//     "project": {
105215	//       "description": "Project ID for this request.",
105216	//       "location": "path",
105217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105218	//       "required": true,
105219	//       "type": "string"
105220	//     },
105221	//     "region": {
105222	//       "description": "Name of the region scoping this request.",
105223	//       "location": "path",
105224	//       "required": true,
105225	//       "type": "string"
105226	//     },
105227	//     "requestId": {
105228	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105229	//       "location": "query",
105230	//       "type": "string"
105231	//     }
105232	//   },
105233	//   "path": "{project}/regions/{region}/instanceGroupManagers",
105234	//   "request": {
105235	//     "$ref": "InstanceGroupManager"
105236	//   },
105237	//   "response": {
105238	//     "$ref": "Operation"
105239	//   },
105240	//   "scopes": [
105241	//     "https://www.googleapis.com/auth/cloud-platform",
105242	//     "https://www.googleapis.com/auth/compute"
105243	//   ]
105244	// }
105245
105246}
105247
105248// method id "compute.regionInstanceGroupManagers.list":
105249
105250type RegionInstanceGroupManagersListCall struct {
105251	s            *Service
105252	project      string
105253	region       string
105254	urlParams_   gensupport.URLParams
105255	ifNoneMatch_ string
105256	ctx_         context.Context
105257	header_      http.Header
105258}
105259
105260// List: Retrieves the list of managed instance groups that are
105261// contained within the specified region.
105262func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
105263	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105264	c.project = project
105265	c.region = region
105266	return c
105267}
105268
105269// Filter sets the optional parameter "filter": A filter expression that
105270// filters resources listed in the response. The expression must specify
105271// the field name, a comparison operator, and the value that you want to
105272// use for filtering. The value must be a string, a number, or a
105273// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105274// `<`.
105275//
105276// For example, if you are filtering Compute Engine instances, you can
105277// exclude instances named `example-instance` by specifying `name !=
105278// example-instance`.
105279//
105280// You can also filter nested fields. For example, you could specify
105281// `scheduling.automaticRestart = false` to include instances only if
105282// they are not scheduled for automatic restarts. You can use filtering
105283// on nested fields to filter based on resource labels.
105284//
105285// To filter on multiple expressions, provide each separate expression
105286// within parentheses. For example: ``` (scheduling.automaticRestart =
105287// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105288// is an `AND` expression. However, you can include `AND` and `OR`
105289// expressions explicitly. For example: ``` (cpuPlatform = "Intel
105290// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
105291// (scheduling.automaticRestart = true) ```
105292func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
105293	c.urlParams_.Set("filter", filter)
105294	return c
105295}
105296
105297// MaxResults sets the optional parameter "maxResults": The maximum
105298// number of results per page that should be returned. If the number of
105299// available results is larger than `maxResults`, Compute Engine returns
105300// a `nextPageToken` that can be used to get the next page of results in
105301// subsequent list requests. Acceptable values are `0` to `500`,
105302// inclusive. (Default: `500`)
105303func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
105304	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105305	return c
105306}
105307
105308// OrderBy sets the optional parameter "orderBy": Sorts list results by
105309// a certain order. By default, results are returned in alphanumerical
105310// order based on the resource name.
105311//
105312// You can also sort results in descending order based on the creation
105313// timestamp using `orderBy="creationTimestamp desc". This sorts
105314// results based on the `creationTimestamp` field in reverse
105315// chronological order (newest result first). Use this to sort resources
105316// like operations so that the newest operation is returned
105317// first.
105318//
105319// Currently, only sorting by `name` or `creationTimestamp desc` is
105320// supported.
105321func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
105322	c.urlParams_.Set("orderBy", orderBy)
105323	return c
105324}
105325
105326// PageToken sets the optional parameter "pageToken": Specifies a page
105327// token to use. Set `pageToken` to the `nextPageToken` returned by a
105328// previous list request to get the next page of results.
105329func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
105330	c.urlParams_.Set("pageToken", pageToken)
105331	return c
105332}
105333
105334// Fields allows partial responses to be retrieved. See
105335// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105336// for more information.
105337func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
105338	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105339	return c
105340}
105341
105342// IfNoneMatch sets the optional parameter which makes the operation
105343// fail if the object's ETag matches the given value. This is useful for
105344// getting updates only after the object has changed since the last
105345// request. Use googleapi.IsNotModified to check whether the response
105346// error from Do is the result of In-None-Match.
105347func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
105348	c.ifNoneMatch_ = entityTag
105349	return c
105350}
105351
105352// Context sets the context to be used in this call's Do method. Any
105353// pending HTTP request will be aborted if the provided context is
105354// canceled.
105355func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
105356	c.ctx_ = ctx
105357	return c
105358}
105359
105360// Header returns an http.Header that can be modified by the caller to
105361// add HTTP headers to the request.
105362func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
105363	if c.header_ == nil {
105364		c.header_ = make(http.Header)
105365	}
105366	return c.header_
105367}
105368
105369func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
105370	reqHeaders := make(http.Header)
105371	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105372	for k, v := range c.header_ {
105373		reqHeaders[k] = v
105374	}
105375	reqHeaders.Set("User-Agent", c.s.userAgent())
105376	if c.ifNoneMatch_ != "" {
105377		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105378	}
105379	var body io.Reader = nil
105380	c.urlParams_.Set("alt", alt)
105381	c.urlParams_.Set("prettyPrint", "false")
105382	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
105383	urls += "?" + c.urlParams_.Encode()
105384	req, err := http.NewRequest("GET", urls, body)
105385	if err != nil {
105386		return nil, err
105387	}
105388	req.Header = reqHeaders
105389	googleapi.Expand(req.URL, map[string]string{
105390		"project": c.project,
105391		"region":  c.region,
105392	})
105393	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105394}
105395
105396// Do executes the "compute.regionInstanceGroupManagers.list" call.
105397// Exactly one of *RegionInstanceGroupManagerList or error will be
105398// non-nil. Any non-2xx status code is an error. Response headers are in
105399// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
105400// response was returned at all) in error.(*googleapi.Error).Header. Use
105401// googleapi.IsNotModified to check whether the returned error was
105402// because http.StatusNotModified was returned.
105403func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
105404	gensupport.SetOptions(c.urlParams_, opts...)
105405	res, err := c.doRequest("json")
105406	if res != nil && res.StatusCode == http.StatusNotModified {
105407		if res.Body != nil {
105408			res.Body.Close()
105409		}
105410		return nil, &googleapi.Error{
105411			Code:   res.StatusCode,
105412			Header: res.Header,
105413		}
105414	}
105415	if err != nil {
105416		return nil, err
105417	}
105418	defer googleapi.CloseBody(res)
105419	if err := googleapi.CheckResponse(res); err != nil {
105420		return nil, err
105421	}
105422	ret := &RegionInstanceGroupManagerList{
105423		ServerResponse: googleapi.ServerResponse{
105424			Header:         res.Header,
105425			HTTPStatusCode: res.StatusCode,
105426		},
105427	}
105428	target := &ret
105429	if err := gensupport.DecodeResponse(target, res); err != nil {
105430		return nil, err
105431	}
105432	return ret, nil
105433	// {
105434	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
105435	//   "httpMethod": "GET",
105436	//   "id": "compute.regionInstanceGroupManagers.list",
105437	//   "parameterOrder": [
105438	//     "project",
105439	//     "region"
105440	//   ],
105441	//   "parameters": {
105442	//     "filter": {
105443	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105444	//       "location": "query",
105445	//       "type": "string"
105446	//     },
105447	//     "maxResults": {
105448	//       "default": "500",
105449	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105450	//       "format": "uint32",
105451	//       "location": "query",
105452	//       "minimum": "0",
105453	//       "type": "integer"
105454	//     },
105455	//     "orderBy": {
105456	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
105457	//       "location": "query",
105458	//       "type": "string"
105459	//     },
105460	//     "pageToken": {
105461	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105462	//       "location": "query",
105463	//       "type": "string"
105464	//     },
105465	//     "project": {
105466	//       "description": "Project ID for this request.",
105467	//       "location": "path",
105468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105469	//       "required": true,
105470	//       "type": "string"
105471	//     },
105472	//     "region": {
105473	//       "description": "Name of the region scoping this request.",
105474	//       "location": "path",
105475	//       "required": true,
105476	//       "type": "string"
105477	//     }
105478	//   },
105479	//   "path": "{project}/regions/{region}/instanceGroupManagers",
105480	//   "response": {
105481	//     "$ref": "RegionInstanceGroupManagerList"
105482	//   },
105483	//   "scopes": [
105484	//     "https://www.googleapis.com/auth/cloud-platform",
105485	//     "https://www.googleapis.com/auth/compute",
105486	//     "https://www.googleapis.com/auth/compute.readonly"
105487	//   ]
105488	// }
105489
105490}
105491
105492// Pages invokes f for each page of results.
105493// A non-nil error returned from f will halt the iteration.
105494// The provided context supersedes any context provided to the Context method.
105495func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
105496	c.ctx_ = ctx
105497	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105498	for {
105499		x, err := c.Do()
105500		if err != nil {
105501			return err
105502		}
105503		if err := f(x); err != nil {
105504			return err
105505		}
105506		if x.NextPageToken == "" {
105507			return nil
105508		}
105509		c.PageToken(x.NextPageToken)
105510	}
105511}
105512
105513// method id "compute.regionInstanceGroupManagers.listErrors":
105514
105515type RegionInstanceGroupManagersListErrorsCall struct {
105516	s                    *Service
105517	project              string
105518	region               string
105519	instanceGroupManager string
105520	urlParams_           gensupport.URLParams
105521	ifNoneMatch_         string
105522	ctx_                 context.Context
105523	header_              http.Header
105524}
105525
105526// ListErrors: Lists all errors thrown by actions on instances for a
105527// given regional managed instance group. The filter and orderBy query
105528// parameters are not supported.
105529func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
105530	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105531	c.project = project
105532	c.region = region
105533	c.instanceGroupManager = instanceGroupManager
105534	return c
105535}
105536
105537// Filter sets the optional parameter "filter": A filter expression that
105538// filters resources listed in the response. The expression must specify
105539// the field name, a comparison operator, and the value that you want to
105540// use for filtering. The value must be a string, a number, or a
105541// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105542// `<`.
105543//
105544// For example, if you are filtering Compute Engine instances, you can
105545// exclude instances named `example-instance` by specifying `name !=
105546// example-instance`.
105547//
105548// You can also filter nested fields. For example, you could specify
105549// `scheduling.automaticRestart = false` to include instances only if
105550// they are not scheduled for automatic restarts. You can use filtering
105551// on nested fields to filter based on resource labels.
105552//
105553// To filter on multiple expressions, provide each separate expression
105554// within parentheses. For example: ``` (scheduling.automaticRestart =
105555// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105556// is an `AND` expression. However, you can include `AND` and `OR`
105557// expressions explicitly. For example: ``` (cpuPlatform = "Intel
105558// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
105559// (scheduling.automaticRestart = true) ```
105560func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
105561	c.urlParams_.Set("filter", filter)
105562	return c
105563}
105564
105565// MaxResults sets the optional parameter "maxResults": The maximum
105566// number of results per page that should be returned. If the number of
105567// available results is larger than `maxResults`, Compute Engine returns
105568// a `nextPageToken` that can be used to get the next page of results in
105569// subsequent list requests. Acceptable values are `0` to `500`,
105570// inclusive. (Default: `500`)
105571func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
105572	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105573	return c
105574}
105575
105576// OrderBy sets the optional parameter "orderBy": Sorts list results by
105577// a certain order. By default, results are returned in alphanumerical
105578// order based on the resource name.
105579//
105580// You can also sort results in descending order based on the creation
105581// timestamp using `orderBy="creationTimestamp desc". This sorts
105582// results based on the `creationTimestamp` field in reverse
105583// chronological order (newest result first). Use this to sort resources
105584// like operations so that the newest operation is returned
105585// first.
105586//
105587// Currently, only sorting by `name` or `creationTimestamp desc` is
105588// supported.
105589func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
105590	c.urlParams_.Set("orderBy", orderBy)
105591	return c
105592}
105593
105594// PageToken sets the optional parameter "pageToken": Specifies a page
105595// token to use. Set `pageToken` to the `nextPageToken` returned by a
105596// previous list request to get the next page of results.
105597func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
105598	c.urlParams_.Set("pageToken", pageToken)
105599	return c
105600}
105601
105602// Fields allows partial responses to be retrieved. See
105603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105604// for more information.
105605func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
105606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105607	return c
105608}
105609
105610// IfNoneMatch sets the optional parameter which makes the operation
105611// fail if the object's ETag matches the given value. This is useful for
105612// getting updates only after the object has changed since the last
105613// request. Use googleapi.IsNotModified to check whether the response
105614// error from Do is the result of In-None-Match.
105615func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
105616	c.ifNoneMatch_ = entityTag
105617	return c
105618}
105619
105620// Context sets the context to be used in this call's Do method. Any
105621// pending HTTP request will be aborted if the provided context is
105622// canceled.
105623func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
105624	c.ctx_ = ctx
105625	return c
105626}
105627
105628// Header returns an http.Header that can be modified by the caller to
105629// add HTTP headers to the request.
105630func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
105631	if c.header_ == nil {
105632		c.header_ = make(http.Header)
105633	}
105634	return c.header_
105635}
105636
105637func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
105638	reqHeaders := make(http.Header)
105639	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105640	for k, v := range c.header_ {
105641		reqHeaders[k] = v
105642	}
105643	reqHeaders.Set("User-Agent", c.s.userAgent())
105644	if c.ifNoneMatch_ != "" {
105645		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105646	}
105647	var body io.Reader = nil
105648	c.urlParams_.Set("alt", alt)
105649	c.urlParams_.Set("prettyPrint", "false")
105650	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
105651	urls += "?" + c.urlParams_.Encode()
105652	req, err := http.NewRequest("GET", urls, body)
105653	if err != nil {
105654		return nil, err
105655	}
105656	req.Header = reqHeaders
105657	googleapi.Expand(req.URL, map[string]string{
105658		"project":              c.project,
105659		"region":               c.region,
105660		"instanceGroupManager": c.instanceGroupManager,
105661	})
105662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105663}
105664
105665// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
105666// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
105667// error will be non-nil. Any non-2xx status code is an error. Response
105668// headers are in either
105669// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
105670// or (if a response was returned at all) in
105671// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
105672// whether the returned error was because http.StatusNotModified was
105673// returned.
105674func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
105675	gensupport.SetOptions(c.urlParams_, opts...)
105676	res, err := c.doRequest("json")
105677	if res != nil && res.StatusCode == http.StatusNotModified {
105678		if res.Body != nil {
105679			res.Body.Close()
105680		}
105681		return nil, &googleapi.Error{
105682			Code:   res.StatusCode,
105683			Header: res.Header,
105684		}
105685	}
105686	if err != nil {
105687		return nil, err
105688	}
105689	defer googleapi.CloseBody(res)
105690	if err := googleapi.CheckResponse(res); err != nil {
105691		return nil, err
105692	}
105693	ret := &RegionInstanceGroupManagersListErrorsResponse{
105694		ServerResponse: googleapi.ServerResponse{
105695			Header:         res.Header,
105696			HTTPStatusCode: res.StatusCode,
105697		},
105698	}
105699	target := &ret
105700	if err := gensupport.DecodeResponse(target, res); err != nil {
105701		return nil, err
105702	}
105703	return ret, nil
105704	// {
105705	//   "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.",
105706	//   "httpMethod": "GET",
105707	//   "id": "compute.regionInstanceGroupManagers.listErrors",
105708	//   "parameterOrder": [
105709	//     "project",
105710	//     "region",
105711	//     "instanceGroupManager"
105712	//   ],
105713	//   "parameters": {
105714	//     "filter": {
105715	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105716	//       "location": "query",
105717	//       "type": "string"
105718	//     },
105719	//     "instanceGroupManager": {
105720	//       "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}.",
105721	//       "location": "path",
105722	//       "required": true,
105723	//       "type": "string"
105724	//     },
105725	//     "maxResults": {
105726	//       "default": "500",
105727	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105728	//       "format": "uint32",
105729	//       "location": "query",
105730	//       "minimum": "0",
105731	//       "type": "integer"
105732	//     },
105733	//     "orderBy": {
105734	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
105735	//       "location": "query",
105736	//       "type": "string"
105737	//     },
105738	//     "pageToken": {
105739	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105740	//       "location": "query",
105741	//       "type": "string"
105742	//     },
105743	//     "project": {
105744	//       "description": "Project ID for this request.",
105745	//       "location": "path",
105746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105747	//       "required": true,
105748	//       "type": "string"
105749	//     },
105750	//     "region": {
105751	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
105752	//       "location": "path",
105753	//       "required": true,
105754	//       "type": "string"
105755	//     }
105756	//   },
105757	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
105758	//   "response": {
105759	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
105760	//   },
105761	//   "scopes": [
105762	//     "https://www.googleapis.com/auth/cloud-platform",
105763	//     "https://www.googleapis.com/auth/compute",
105764	//     "https://www.googleapis.com/auth/compute.readonly"
105765	//   ]
105766	// }
105767
105768}
105769
105770// Pages invokes f for each page of results.
105771// A non-nil error returned from f will halt the iteration.
105772// The provided context supersedes any context provided to the Context method.
105773func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
105774	c.ctx_ = ctx
105775	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105776	for {
105777		x, err := c.Do()
105778		if err != nil {
105779			return err
105780		}
105781		if err := f(x); err != nil {
105782			return err
105783		}
105784		if x.NextPageToken == "" {
105785			return nil
105786		}
105787		c.PageToken(x.NextPageToken)
105788	}
105789}
105790
105791// method id "compute.regionInstanceGroupManagers.listManagedInstances":
105792
105793type RegionInstanceGroupManagersListManagedInstancesCall struct {
105794	s                    *Service
105795	project              string
105796	region               string
105797	instanceGroupManager string
105798	urlParams_           gensupport.URLParams
105799	ctx_                 context.Context
105800	header_              http.Header
105801}
105802
105803// ListManagedInstances: Lists the instances in the managed instance
105804// group and instances that are scheduled to be created. The list
105805// includes any current actions that the group has scheduled for its
105806// instances. The orderBy query parameter is not supported.
105807func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
105808	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105809	c.project = project
105810	c.region = region
105811	c.instanceGroupManager = instanceGroupManager
105812	return c
105813}
105814
105815// Filter sets the optional parameter "filter": A filter expression that
105816// filters resources listed in the response. The expression must specify
105817// the field name, a comparison operator, and the value that you want to
105818// use for filtering. The value must be a string, a number, or a
105819// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105820// `<`.
105821//
105822// For example, if you are filtering Compute Engine instances, you can
105823// exclude instances named `example-instance` by specifying `name !=
105824// example-instance`.
105825//
105826// You can also filter nested fields. For example, you could specify
105827// `scheduling.automaticRestart = false` to include instances only if
105828// they are not scheduled for automatic restarts. You can use filtering
105829// on nested fields to filter based on resource labels.
105830//
105831// To filter on multiple expressions, provide each separate expression
105832// within parentheses. For example: ``` (scheduling.automaticRestart =
105833// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105834// is an `AND` expression. However, you can include `AND` and `OR`
105835// expressions explicitly. For example: ``` (cpuPlatform = "Intel
105836// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
105837// (scheduling.automaticRestart = true) ```
105838func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
105839	c.urlParams_.Set("filter", filter)
105840	return c
105841}
105842
105843// MaxResults sets the optional parameter "maxResults": The maximum
105844// number of results per page that should be returned. If the number of
105845// available results is larger than `maxResults`, Compute Engine returns
105846// a `nextPageToken` that can be used to get the next page of results in
105847// subsequent list requests. Acceptable values are `0` to `500`,
105848// inclusive. (Default: `500`)
105849func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
105850	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105851	return c
105852}
105853
105854// OrderBy sets the optional parameter "orderBy": Sorts list results by
105855// a certain order. By default, results are returned in alphanumerical
105856// order based on the resource name.
105857//
105858// You can also sort results in descending order based on the creation
105859// timestamp using `orderBy="creationTimestamp desc". This sorts
105860// results based on the `creationTimestamp` field in reverse
105861// chronological order (newest result first). Use this to sort resources
105862// like operations so that the newest operation is returned
105863// first.
105864//
105865// Currently, only sorting by `name` or `creationTimestamp desc` is
105866// supported.
105867func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
105868	c.urlParams_.Set("orderBy", orderBy)
105869	return c
105870}
105871
105872// PageToken sets the optional parameter "pageToken": Specifies a page
105873// token to use. Set `pageToken` to the `nextPageToken` returned by a
105874// previous list request to get the next page of results.
105875func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
105876	c.urlParams_.Set("pageToken", pageToken)
105877	return c
105878}
105879
105880// Fields allows partial responses to be retrieved. See
105881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105882// for more information.
105883func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
105884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105885	return c
105886}
105887
105888// Context sets the context to be used in this call's Do method. Any
105889// pending HTTP request will be aborted if the provided context is
105890// canceled.
105891func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
105892	c.ctx_ = ctx
105893	return c
105894}
105895
105896// Header returns an http.Header that can be modified by the caller to
105897// add HTTP headers to the request.
105898func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
105899	if c.header_ == nil {
105900		c.header_ = make(http.Header)
105901	}
105902	return c.header_
105903}
105904
105905func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
105906	reqHeaders := make(http.Header)
105907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105908	for k, v := range c.header_ {
105909		reqHeaders[k] = v
105910	}
105911	reqHeaders.Set("User-Agent", c.s.userAgent())
105912	var body io.Reader = nil
105913	c.urlParams_.Set("alt", alt)
105914	c.urlParams_.Set("prettyPrint", "false")
105915	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
105916	urls += "?" + c.urlParams_.Encode()
105917	req, err := http.NewRequest("POST", urls, body)
105918	if err != nil {
105919		return nil, err
105920	}
105921	req.Header = reqHeaders
105922	googleapi.Expand(req.URL, map[string]string{
105923		"project":              c.project,
105924		"region":               c.region,
105925		"instanceGroupManager": c.instanceGroupManager,
105926	})
105927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105928}
105929
105930// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
105931// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
105932// error will be non-nil. Any non-2xx status code is an error. Response
105933// headers are in either
105934// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
105935// r or (if a response was returned at all) in
105936// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
105937// whether the returned error was because http.StatusNotModified was
105938// returned.
105939func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
105940	gensupport.SetOptions(c.urlParams_, opts...)
105941	res, err := c.doRequest("json")
105942	if res != nil && res.StatusCode == http.StatusNotModified {
105943		if res.Body != nil {
105944			res.Body.Close()
105945		}
105946		return nil, &googleapi.Error{
105947			Code:   res.StatusCode,
105948			Header: res.Header,
105949		}
105950	}
105951	if err != nil {
105952		return nil, err
105953	}
105954	defer googleapi.CloseBody(res)
105955	if err := googleapi.CheckResponse(res); err != nil {
105956		return nil, err
105957	}
105958	ret := &RegionInstanceGroupManagersListInstancesResponse{
105959		ServerResponse: googleapi.ServerResponse{
105960			Header:         res.Header,
105961			HTTPStatusCode: res.StatusCode,
105962		},
105963	}
105964	target := &ret
105965	if err := gensupport.DecodeResponse(target, res); err != nil {
105966		return nil, err
105967	}
105968	return ret, nil
105969	// {
105970	//   "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.",
105971	//   "httpMethod": "POST",
105972	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
105973	//   "parameterOrder": [
105974	//     "project",
105975	//     "region",
105976	//     "instanceGroupManager"
105977	//   ],
105978	//   "parameters": {
105979	//     "filter": {
105980	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105981	//       "location": "query",
105982	//       "type": "string"
105983	//     },
105984	//     "instanceGroupManager": {
105985	//       "description": "The name of the managed instance group.",
105986	//       "location": "path",
105987	//       "required": true,
105988	//       "type": "string"
105989	//     },
105990	//     "maxResults": {
105991	//       "default": "500",
105992	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105993	//       "format": "uint32",
105994	//       "location": "query",
105995	//       "minimum": "0",
105996	//       "type": "integer"
105997	//     },
105998	//     "orderBy": {
105999	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106000	//       "location": "query",
106001	//       "type": "string"
106002	//     },
106003	//     "pageToken": {
106004	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106005	//       "location": "query",
106006	//       "type": "string"
106007	//     },
106008	//     "project": {
106009	//       "description": "Project ID for this request.",
106010	//       "location": "path",
106011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106012	//       "required": true,
106013	//       "type": "string"
106014	//     },
106015	//     "region": {
106016	//       "description": "Name of the region scoping this request.",
106017	//       "location": "path",
106018	//       "required": true,
106019	//       "type": "string"
106020	//     }
106021	//   },
106022	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
106023	//   "response": {
106024	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
106025	//   },
106026	//   "scopes": [
106027	//     "https://www.googleapis.com/auth/cloud-platform",
106028	//     "https://www.googleapis.com/auth/compute",
106029	//     "https://www.googleapis.com/auth/compute.readonly"
106030	//   ]
106031	// }
106032
106033}
106034
106035// Pages invokes f for each page of results.
106036// A non-nil error returned from f will halt the iteration.
106037// The provided context supersedes any context provided to the Context method.
106038func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
106039	c.ctx_ = ctx
106040	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106041	for {
106042		x, err := c.Do()
106043		if err != nil {
106044			return err
106045		}
106046		if err := f(x); err != nil {
106047			return err
106048		}
106049		if x.NextPageToken == "" {
106050			return nil
106051		}
106052		c.PageToken(x.NextPageToken)
106053	}
106054}
106055
106056// method id "compute.regionInstanceGroupManagers.patch":
106057
106058type RegionInstanceGroupManagersPatchCall struct {
106059	s                    *Service
106060	project              string
106061	region               string
106062	instanceGroupManager string
106063	instancegroupmanager *InstanceGroupManager
106064	urlParams_           gensupport.URLParams
106065	ctx_                 context.Context
106066	header_              http.Header
106067}
106068
106069// Patch: Updates a managed instance group using the information that
106070// you specify in the request. This operation is marked as DONE when the
106071// group is patched even if the instances in the group are still in the
106072// process of being patched. You must separately verify the status of
106073// the individual instances with the listmanagedinstances method. This
106074// method supports PATCH semantics and uses the JSON merge patch format
106075// and processing rules.
106076func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
106077	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106078	c.project = project
106079	c.region = region
106080	c.instanceGroupManager = instanceGroupManager
106081	c.instancegroupmanager = instancegroupmanager
106082	return c
106083}
106084
106085// RequestId sets the optional parameter "requestId": An optional
106086// request ID to identify requests. Specify a unique request ID so that
106087// if you must retry your request, the server will know to ignore the
106088// request if it has already been completed.
106089//
106090// For example, consider a situation where you make an initial request
106091// and the request times out. If you make the request again with the
106092// same request ID, the server can check if original operation with the
106093// same request ID was received, and if so, will ignore the second
106094// request. This prevents clients from accidentally creating duplicate
106095// commitments.
106096//
106097// The request ID must be a valid UUID with the exception that zero UUID
106098// is not supported (00000000-0000-0000-0000-000000000000).
106099func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
106100	c.urlParams_.Set("requestId", requestId)
106101	return c
106102}
106103
106104// Fields allows partial responses to be retrieved. See
106105// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106106// for more information.
106107func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
106108	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106109	return c
106110}
106111
106112// Context sets the context to be used in this call's Do method. Any
106113// pending HTTP request will be aborted if the provided context is
106114// canceled.
106115func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
106116	c.ctx_ = ctx
106117	return c
106118}
106119
106120// Header returns an http.Header that can be modified by the caller to
106121// add HTTP headers to the request.
106122func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
106123	if c.header_ == nil {
106124		c.header_ = make(http.Header)
106125	}
106126	return c.header_
106127}
106128
106129func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
106130	reqHeaders := make(http.Header)
106131	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106132	for k, v := range c.header_ {
106133		reqHeaders[k] = v
106134	}
106135	reqHeaders.Set("User-Agent", c.s.userAgent())
106136	var body io.Reader = nil
106137	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
106138	if err != nil {
106139		return nil, err
106140	}
106141	reqHeaders.Set("Content-Type", "application/json")
106142	c.urlParams_.Set("alt", alt)
106143	c.urlParams_.Set("prettyPrint", "false")
106144	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
106145	urls += "?" + c.urlParams_.Encode()
106146	req, err := http.NewRequest("PATCH", urls, body)
106147	if err != nil {
106148		return nil, err
106149	}
106150	req.Header = reqHeaders
106151	googleapi.Expand(req.URL, map[string]string{
106152		"project":              c.project,
106153		"region":               c.region,
106154		"instanceGroupManager": c.instanceGroupManager,
106155	})
106156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106157}
106158
106159// Do executes the "compute.regionInstanceGroupManagers.patch" call.
106160// Exactly one of *Operation or error will be non-nil. Any non-2xx
106161// status code is an error. Response headers are in either
106162// *Operation.ServerResponse.Header or (if a response was returned at
106163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106164// to check whether the returned error was because
106165// http.StatusNotModified was returned.
106166func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106167	gensupport.SetOptions(c.urlParams_, opts...)
106168	res, err := c.doRequest("json")
106169	if res != nil && res.StatusCode == http.StatusNotModified {
106170		if res.Body != nil {
106171			res.Body.Close()
106172		}
106173		return nil, &googleapi.Error{
106174			Code:   res.StatusCode,
106175			Header: res.Header,
106176		}
106177	}
106178	if err != nil {
106179		return nil, err
106180	}
106181	defer googleapi.CloseBody(res)
106182	if err := googleapi.CheckResponse(res); err != nil {
106183		return nil, err
106184	}
106185	ret := &Operation{
106186		ServerResponse: googleapi.ServerResponse{
106187			Header:         res.Header,
106188			HTTPStatusCode: res.StatusCode,
106189		},
106190	}
106191	target := &ret
106192	if err := gensupport.DecodeResponse(target, res); err != nil {
106193		return nil, err
106194	}
106195	return ret, nil
106196	// {
106197	//   "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.",
106198	//   "httpMethod": "PATCH",
106199	//   "id": "compute.regionInstanceGroupManagers.patch",
106200	//   "parameterOrder": [
106201	//     "project",
106202	//     "region",
106203	//     "instanceGroupManager"
106204	//   ],
106205	//   "parameters": {
106206	//     "instanceGroupManager": {
106207	//       "description": "The name of the instance group manager.",
106208	//       "location": "path",
106209	//       "required": true,
106210	//       "type": "string"
106211	//     },
106212	//     "project": {
106213	//       "description": "Project ID for this request.",
106214	//       "location": "path",
106215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106216	//       "required": true,
106217	//       "type": "string"
106218	//     },
106219	//     "region": {
106220	//       "description": "Name of the region scoping this request.",
106221	//       "location": "path",
106222	//       "required": true,
106223	//       "type": "string"
106224	//     },
106225	//     "requestId": {
106226	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106227	//       "location": "query",
106228	//       "type": "string"
106229	//     }
106230	//   },
106231	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
106232	//   "request": {
106233	//     "$ref": "InstanceGroupManager"
106234	//   },
106235	//   "response": {
106236	//     "$ref": "Operation"
106237	//   },
106238	//   "scopes": [
106239	//     "https://www.googleapis.com/auth/cloud-platform",
106240	//     "https://www.googleapis.com/auth/compute"
106241	//   ]
106242	// }
106243
106244}
106245
106246// method id "compute.regionInstanceGroupManagers.recreateInstances":
106247
106248type RegionInstanceGroupManagersRecreateInstancesCall struct {
106249	s                                          *Service
106250	project                                    string
106251	region                                     string
106252	instanceGroupManager                       string
106253	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
106254	urlParams_                                 gensupport.URLParams
106255	ctx_                                       context.Context
106256	header_                                    http.Header
106257}
106258
106259// RecreateInstances: Flags the specified instances in the managed
106260// instance group to be immediately recreated. The instances are deleted
106261// and recreated using the current instance template for the managed
106262// instance group. This operation is marked as DONE when the flag is set
106263// even if the instances have not yet been recreated. You must
106264// separately verify the status of the recreating action with the
106265// listmanagedinstances method.
106266//
106267// If the group is part of a backend service that has enabled connection
106268// draining, it can take up to 60 seconds after the connection draining
106269// duration has elapsed before the VM instance is removed or
106270// deleted.
106271//
106272// You can specify a maximum of 1000 instances with this method per
106273// request.
106274func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
106275	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106276	c.project = project
106277	c.region = region
106278	c.instanceGroupManager = instanceGroupManager
106279	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
106280	return c
106281}
106282
106283// RequestId sets the optional parameter "requestId": An optional
106284// request ID to identify requests. Specify a unique request ID so that
106285// if you must retry your request, the server will know to ignore the
106286// request if it has already been completed.
106287//
106288// For example, consider a situation where you make an initial request
106289// and the request times out. If you make the request again with the
106290// same request ID, the server can check if original operation with the
106291// same request ID was received, and if so, will ignore the second
106292// request. This prevents clients from accidentally creating duplicate
106293// commitments.
106294//
106295// The request ID must be a valid UUID with the exception that zero UUID
106296// is not supported (00000000-0000-0000-0000-000000000000).
106297func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
106298	c.urlParams_.Set("requestId", requestId)
106299	return c
106300}
106301
106302// Fields allows partial responses to be retrieved. See
106303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106304// for more information.
106305func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
106306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106307	return c
106308}
106309
106310// Context sets the context to be used in this call's Do method. Any
106311// pending HTTP request will be aborted if the provided context is
106312// canceled.
106313func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
106314	c.ctx_ = ctx
106315	return c
106316}
106317
106318// Header returns an http.Header that can be modified by the caller to
106319// add HTTP headers to the request.
106320func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
106321	if c.header_ == nil {
106322		c.header_ = make(http.Header)
106323	}
106324	return c.header_
106325}
106326
106327func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
106328	reqHeaders := make(http.Header)
106329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106330	for k, v := range c.header_ {
106331		reqHeaders[k] = v
106332	}
106333	reqHeaders.Set("User-Agent", c.s.userAgent())
106334	var body io.Reader = nil
106335	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
106336	if err != nil {
106337		return nil, err
106338	}
106339	reqHeaders.Set("Content-Type", "application/json")
106340	c.urlParams_.Set("alt", alt)
106341	c.urlParams_.Set("prettyPrint", "false")
106342	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
106343	urls += "?" + c.urlParams_.Encode()
106344	req, err := http.NewRequest("POST", urls, body)
106345	if err != nil {
106346		return nil, err
106347	}
106348	req.Header = reqHeaders
106349	googleapi.Expand(req.URL, map[string]string{
106350		"project":              c.project,
106351		"region":               c.region,
106352		"instanceGroupManager": c.instanceGroupManager,
106353	})
106354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106355}
106356
106357// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
106358// Exactly one of *Operation or error will be non-nil. Any non-2xx
106359// status code is an error. Response headers are in either
106360// *Operation.ServerResponse.Header or (if a response was returned at
106361// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106362// to check whether the returned error was because
106363// http.StatusNotModified was returned.
106364func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106365	gensupport.SetOptions(c.urlParams_, opts...)
106366	res, err := c.doRequest("json")
106367	if res != nil && res.StatusCode == http.StatusNotModified {
106368		if res.Body != nil {
106369			res.Body.Close()
106370		}
106371		return nil, &googleapi.Error{
106372			Code:   res.StatusCode,
106373			Header: res.Header,
106374		}
106375	}
106376	if err != nil {
106377		return nil, err
106378	}
106379	defer googleapi.CloseBody(res)
106380	if err := googleapi.CheckResponse(res); err != nil {
106381		return nil, err
106382	}
106383	ret := &Operation{
106384		ServerResponse: googleapi.ServerResponse{
106385			Header:         res.Header,
106386			HTTPStatusCode: res.StatusCode,
106387		},
106388	}
106389	target := &ret
106390	if err := gensupport.DecodeResponse(target, res); err != nil {
106391		return nil, err
106392	}
106393	return ret, nil
106394	// {
106395	//   "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.",
106396	//   "httpMethod": "POST",
106397	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
106398	//   "parameterOrder": [
106399	//     "project",
106400	//     "region",
106401	//     "instanceGroupManager"
106402	//   ],
106403	//   "parameters": {
106404	//     "instanceGroupManager": {
106405	//       "description": "Name of the managed instance group.",
106406	//       "location": "path",
106407	//       "required": true,
106408	//       "type": "string"
106409	//     },
106410	//     "project": {
106411	//       "description": "Project ID for this request.",
106412	//       "location": "path",
106413	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106414	//       "required": true,
106415	//       "type": "string"
106416	//     },
106417	//     "region": {
106418	//       "description": "Name of the region scoping this request.",
106419	//       "location": "path",
106420	//       "required": true,
106421	//       "type": "string"
106422	//     },
106423	//     "requestId": {
106424	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106425	//       "location": "query",
106426	//       "type": "string"
106427	//     }
106428	//   },
106429	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
106430	//   "request": {
106431	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
106432	//   },
106433	//   "response": {
106434	//     "$ref": "Operation"
106435	//   },
106436	//   "scopes": [
106437	//     "https://www.googleapis.com/auth/cloud-platform",
106438	//     "https://www.googleapis.com/auth/compute"
106439	//   ]
106440	// }
106441
106442}
106443
106444// method id "compute.regionInstanceGroupManagers.resize":
106445
106446type RegionInstanceGroupManagersResizeCall struct {
106447	s                    *Service
106448	project              string
106449	region               string
106450	instanceGroupManager string
106451	urlParams_           gensupport.URLParams
106452	ctx_                 context.Context
106453	header_              http.Header
106454}
106455
106456// Resize: Changes the intended size of the managed instance group. If
106457// you increase the size, the group creates new instances using the
106458// current instance template. If you decrease the size, the group
106459// deletes one or more instances.
106460//
106461// The resize operation is marked DONE if the resize request is
106462// successful. The underlying actions take additional time. You must
106463// separately verify the status of the creating or deleting actions with
106464// the listmanagedinstances method.
106465//
106466// If the group is part of a backend service that has enabled connection
106467// draining, it can take up to 60 seconds after the connection draining
106468// duration has elapsed before the VM instance is removed or deleted.
106469func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
106470	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106471	c.project = project
106472	c.region = region
106473	c.instanceGroupManager = instanceGroupManager
106474	c.urlParams_.Set("size", fmt.Sprint(size))
106475	return c
106476}
106477
106478// RequestId sets the optional parameter "requestId": An optional
106479// request ID to identify requests. Specify a unique request ID so that
106480// if you must retry your request, the server will know to ignore the
106481// request if it has already been completed.
106482//
106483// For example, consider a situation where you make an initial request
106484// and the request times out. If you make the request again with the
106485// same request ID, the server can check if original operation with the
106486// same request ID was received, and if so, will ignore the second
106487// request. This prevents clients from accidentally creating duplicate
106488// commitments.
106489//
106490// The request ID must be a valid UUID with the exception that zero UUID
106491// is not supported (00000000-0000-0000-0000-000000000000).
106492func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
106493	c.urlParams_.Set("requestId", requestId)
106494	return c
106495}
106496
106497// Fields allows partial responses to be retrieved. See
106498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106499// for more information.
106500func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
106501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106502	return c
106503}
106504
106505// Context sets the context to be used in this call's Do method. Any
106506// pending HTTP request will be aborted if the provided context is
106507// canceled.
106508func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
106509	c.ctx_ = ctx
106510	return c
106511}
106512
106513// Header returns an http.Header that can be modified by the caller to
106514// add HTTP headers to the request.
106515func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
106516	if c.header_ == nil {
106517		c.header_ = make(http.Header)
106518	}
106519	return c.header_
106520}
106521
106522func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
106523	reqHeaders := make(http.Header)
106524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106525	for k, v := range c.header_ {
106526		reqHeaders[k] = v
106527	}
106528	reqHeaders.Set("User-Agent", c.s.userAgent())
106529	var body io.Reader = nil
106530	c.urlParams_.Set("alt", alt)
106531	c.urlParams_.Set("prettyPrint", "false")
106532	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
106533	urls += "?" + c.urlParams_.Encode()
106534	req, err := http.NewRequest("POST", urls, body)
106535	if err != nil {
106536		return nil, err
106537	}
106538	req.Header = reqHeaders
106539	googleapi.Expand(req.URL, map[string]string{
106540		"project":              c.project,
106541		"region":               c.region,
106542		"instanceGroupManager": c.instanceGroupManager,
106543	})
106544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106545}
106546
106547// Do executes the "compute.regionInstanceGroupManagers.resize" call.
106548// Exactly one of *Operation or error will be non-nil. Any non-2xx
106549// status code is an error. Response headers are in either
106550// *Operation.ServerResponse.Header or (if a response was returned at
106551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106552// to check whether the returned error was because
106553// http.StatusNotModified was returned.
106554func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106555	gensupport.SetOptions(c.urlParams_, opts...)
106556	res, err := c.doRequest("json")
106557	if res != nil && res.StatusCode == http.StatusNotModified {
106558		if res.Body != nil {
106559			res.Body.Close()
106560		}
106561		return nil, &googleapi.Error{
106562			Code:   res.StatusCode,
106563			Header: res.Header,
106564		}
106565	}
106566	if err != nil {
106567		return nil, err
106568	}
106569	defer googleapi.CloseBody(res)
106570	if err := googleapi.CheckResponse(res); err != nil {
106571		return nil, err
106572	}
106573	ret := &Operation{
106574		ServerResponse: googleapi.ServerResponse{
106575			Header:         res.Header,
106576			HTTPStatusCode: res.StatusCode,
106577		},
106578	}
106579	target := &ret
106580	if err := gensupport.DecodeResponse(target, res); err != nil {
106581		return nil, err
106582	}
106583	return ret, nil
106584	// {
106585	//   "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.",
106586	//   "httpMethod": "POST",
106587	//   "id": "compute.regionInstanceGroupManagers.resize",
106588	//   "parameterOrder": [
106589	//     "project",
106590	//     "region",
106591	//     "instanceGroupManager",
106592	//     "size"
106593	//   ],
106594	//   "parameters": {
106595	//     "instanceGroupManager": {
106596	//       "description": "Name of the managed instance group.",
106597	//       "location": "path",
106598	//       "required": true,
106599	//       "type": "string"
106600	//     },
106601	//     "project": {
106602	//       "description": "Project ID for this request.",
106603	//       "location": "path",
106604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106605	//       "required": true,
106606	//       "type": "string"
106607	//     },
106608	//     "region": {
106609	//       "description": "Name of the region scoping this request.",
106610	//       "location": "path",
106611	//       "required": true,
106612	//       "type": "string"
106613	//     },
106614	//     "requestId": {
106615	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106616	//       "location": "query",
106617	//       "type": "string"
106618	//     },
106619	//     "size": {
106620	//       "description": "Number of instances that should exist in this instance group manager.",
106621	//       "format": "int32",
106622	//       "location": "query",
106623	//       "minimum": "0",
106624	//       "required": true,
106625	//       "type": "integer"
106626	//     }
106627	//   },
106628	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
106629	//   "response": {
106630	//     "$ref": "Operation"
106631	//   },
106632	//   "scopes": [
106633	//     "https://www.googleapis.com/auth/cloud-platform",
106634	//     "https://www.googleapis.com/auth/compute"
106635	//   ]
106636	// }
106637
106638}
106639
106640// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
106641
106642type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
106643	s                                             *Service
106644	project                                       string
106645	region                                        string
106646	instanceGroupManager                          string
106647	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
106648	urlParams_                                    gensupport.URLParams
106649	ctx_                                          context.Context
106650	header_                                       http.Header
106651}
106652
106653// SetInstanceTemplate: Sets the instance template to use when creating
106654// new instances or recreating instances in this group. Existing
106655// instances are not affected.
106656func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
106657	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106658	c.project = project
106659	c.region = region
106660	c.instanceGroupManager = instanceGroupManager
106661	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
106662	return c
106663}
106664
106665// RequestId sets the optional parameter "requestId": An optional
106666// request ID to identify requests. Specify a unique request ID so that
106667// if you must retry your request, the server will know to ignore the
106668// request if it has already been completed.
106669//
106670// For example, consider a situation where you make an initial request
106671// and the request times out. If you make the request again with the
106672// same request ID, the server can check if original operation with the
106673// same request ID was received, and if so, will ignore the second
106674// request. This prevents clients from accidentally creating duplicate
106675// commitments.
106676//
106677// The request ID must be a valid UUID with the exception that zero UUID
106678// is not supported (00000000-0000-0000-0000-000000000000).
106679func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
106680	c.urlParams_.Set("requestId", requestId)
106681	return c
106682}
106683
106684// Fields allows partial responses to be retrieved. See
106685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106686// for more information.
106687func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
106688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106689	return c
106690}
106691
106692// Context sets the context to be used in this call's Do method. Any
106693// pending HTTP request will be aborted if the provided context is
106694// canceled.
106695func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
106696	c.ctx_ = ctx
106697	return c
106698}
106699
106700// Header returns an http.Header that can be modified by the caller to
106701// add HTTP headers to the request.
106702func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
106703	if c.header_ == nil {
106704		c.header_ = make(http.Header)
106705	}
106706	return c.header_
106707}
106708
106709func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
106710	reqHeaders := make(http.Header)
106711	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106712	for k, v := range c.header_ {
106713		reqHeaders[k] = v
106714	}
106715	reqHeaders.Set("User-Agent", c.s.userAgent())
106716	var body io.Reader = nil
106717	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
106718	if err != nil {
106719		return nil, err
106720	}
106721	reqHeaders.Set("Content-Type", "application/json")
106722	c.urlParams_.Set("alt", alt)
106723	c.urlParams_.Set("prettyPrint", "false")
106724	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
106725	urls += "?" + c.urlParams_.Encode()
106726	req, err := http.NewRequest("POST", urls, body)
106727	if err != nil {
106728		return nil, err
106729	}
106730	req.Header = reqHeaders
106731	googleapi.Expand(req.URL, map[string]string{
106732		"project":              c.project,
106733		"region":               c.region,
106734		"instanceGroupManager": c.instanceGroupManager,
106735	})
106736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106737}
106738
106739// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
106740// Exactly one of *Operation or error will be non-nil. Any non-2xx
106741// status code is an error. Response headers are in either
106742// *Operation.ServerResponse.Header or (if a response was returned at
106743// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106744// to check whether the returned error was because
106745// http.StatusNotModified was returned.
106746func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106747	gensupport.SetOptions(c.urlParams_, opts...)
106748	res, err := c.doRequest("json")
106749	if res != nil && res.StatusCode == http.StatusNotModified {
106750		if res.Body != nil {
106751			res.Body.Close()
106752		}
106753		return nil, &googleapi.Error{
106754			Code:   res.StatusCode,
106755			Header: res.Header,
106756		}
106757	}
106758	if err != nil {
106759		return nil, err
106760	}
106761	defer googleapi.CloseBody(res)
106762	if err := googleapi.CheckResponse(res); err != nil {
106763		return nil, err
106764	}
106765	ret := &Operation{
106766		ServerResponse: googleapi.ServerResponse{
106767			Header:         res.Header,
106768			HTTPStatusCode: res.StatusCode,
106769		},
106770	}
106771	target := &ret
106772	if err := gensupport.DecodeResponse(target, res); err != nil {
106773		return nil, err
106774	}
106775	return ret, nil
106776	// {
106777	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
106778	//   "httpMethod": "POST",
106779	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
106780	//   "parameterOrder": [
106781	//     "project",
106782	//     "region",
106783	//     "instanceGroupManager"
106784	//   ],
106785	//   "parameters": {
106786	//     "instanceGroupManager": {
106787	//       "description": "The name of the managed instance group.",
106788	//       "location": "path",
106789	//       "required": true,
106790	//       "type": "string"
106791	//     },
106792	//     "project": {
106793	//       "description": "Project ID for this request.",
106794	//       "location": "path",
106795	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106796	//       "required": true,
106797	//       "type": "string"
106798	//     },
106799	//     "region": {
106800	//       "description": "Name of the region scoping this request.",
106801	//       "location": "path",
106802	//       "required": true,
106803	//       "type": "string"
106804	//     },
106805	//     "requestId": {
106806	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106807	//       "location": "query",
106808	//       "type": "string"
106809	//     }
106810	//   },
106811	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
106812	//   "request": {
106813	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
106814	//   },
106815	//   "response": {
106816	//     "$ref": "Operation"
106817	//   },
106818	//   "scopes": [
106819	//     "https://www.googleapis.com/auth/cloud-platform",
106820	//     "https://www.googleapis.com/auth/compute"
106821	//   ]
106822	// }
106823
106824}
106825
106826// method id "compute.regionInstanceGroupManagers.setTargetPools":
106827
106828type RegionInstanceGroupManagersSetTargetPoolsCall struct {
106829	s                                                *Service
106830	project                                          string
106831	region                                           string
106832	instanceGroupManager                             string
106833	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
106834	urlParams_                                       gensupport.URLParams
106835	ctx_                                             context.Context
106836	header_                                          http.Header
106837}
106838
106839// SetTargetPools: Modifies the target pools to which all new instances
106840// in this group are assigned. Existing instances in the group are not
106841// affected.
106842func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
106843	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106844	c.project = project
106845	c.region = region
106846	c.instanceGroupManager = instanceGroupManager
106847	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
106848	return c
106849}
106850
106851// RequestId sets the optional parameter "requestId": An optional
106852// request ID to identify requests. Specify a unique request ID so that
106853// if you must retry your request, the server will know to ignore the
106854// request if it has already been completed.
106855//
106856// For example, consider a situation where you make an initial request
106857// and the request times out. If you make the request again with the
106858// same request ID, the server can check if original operation with the
106859// same request ID was received, and if so, will ignore the second
106860// request. This prevents clients from accidentally creating duplicate
106861// commitments.
106862//
106863// The request ID must be a valid UUID with the exception that zero UUID
106864// is not supported (00000000-0000-0000-0000-000000000000).
106865func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
106866	c.urlParams_.Set("requestId", requestId)
106867	return c
106868}
106869
106870// Fields allows partial responses to be retrieved. See
106871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106872// for more information.
106873func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
106874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106875	return c
106876}
106877
106878// Context sets the context to be used in this call's Do method. Any
106879// pending HTTP request will be aborted if the provided context is
106880// canceled.
106881func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
106882	c.ctx_ = ctx
106883	return c
106884}
106885
106886// Header returns an http.Header that can be modified by the caller to
106887// add HTTP headers to the request.
106888func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
106889	if c.header_ == nil {
106890		c.header_ = make(http.Header)
106891	}
106892	return c.header_
106893}
106894
106895func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
106896	reqHeaders := make(http.Header)
106897	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106898	for k, v := range c.header_ {
106899		reqHeaders[k] = v
106900	}
106901	reqHeaders.Set("User-Agent", c.s.userAgent())
106902	var body io.Reader = nil
106903	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
106904	if err != nil {
106905		return nil, err
106906	}
106907	reqHeaders.Set("Content-Type", "application/json")
106908	c.urlParams_.Set("alt", alt)
106909	c.urlParams_.Set("prettyPrint", "false")
106910	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
106911	urls += "?" + c.urlParams_.Encode()
106912	req, err := http.NewRequest("POST", urls, body)
106913	if err != nil {
106914		return nil, err
106915	}
106916	req.Header = reqHeaders
106917	googleapi.Expand(req.URL, map[string]string{
106918		"project":              c.project,
106919		"region":               c.region,
106920		"instanceGroupManager": c.instanceGroupManager,
106921	})
106922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106923}
106924
106925// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
106926// Exactly one of *Operation or error will be non-nil. Any non-2xx
106927// status code is an error. Response headers are in either
106928// *Operation.ServerResponse.Header or (if a response was returned at
106929// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106930// to check whether the returned error was because
106931// http.StatusNotModified was returned.
106932func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106933	gensupport.SetOptions(c.urlParams_, opts...)
106934	res, err := c.doRequest("json")
106935	if res != nil && res.StatusCode == http.StatusNotModified {
106936		if res.Body != nil {
106937			res.Body.Close()
106938		}
106939		return nil, &googleapi.Error{
106940			Code:   res.StatusCode,
106941			Header: res.Header,
106942		}
106943	}
106944	if err != nil {
106945		return nil, err
106946	}
106947	defer googleapi.CloseBody(res)
106948	if err := googleapi.CheckResponse(res); err != nil {
106949		return nil, err
106950	}
106951	ret := &Operation{
106952		ServerResponse: googleapi.ServerResponse{
106953			Header:         res.Header,
106954			HTTPStatusCode: res.StatusCode,
106955		},
106956	}
106957	target := &ret
106958	if err := gensupport.DecodeResponse(target, res); err != nil {
106959		return nil, err
106960	}
106961	return ret, nil
106962	// {
106963	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
106964	//   "httpMethod": "POST",
106965	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
106966	//   "parameterOrder": [
106967	//     "project",
106968	//     "region",
106969	//     "instanceGroupManager"
106970	//   ],
106971	//   "parameters": {
106972	//     "instanceGroupManager": {
106973	//       "description": "Name of the managed instance group.",
106974	//       "location": "path",
106975	//       "required": true,
106976	//       "type": "string"
106977	//     },
106978	//     "project": {
106979	//       "description": "Project ID for this request.",
106980	//       "location": "path",
106981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106982	//       "required": true,
106983	//       "type": "string"
106984	//     },
106985	//     "region": {
106986	//       "description": "Name of the region scoping this request.",
106987	//       "location": "path",
106988	//       "required": true,
106989	//       "type": "string"
106990	//     },
106991	//     "requestId": {
106992	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106993	//       "location": "query",
106994	//       "type": "string"
106995	//     }
106996	//   },
106997	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
106998	//   "request": {
106999	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
107000	//   },
107001	//   "response": {
107002	//     "$ref": "Operation"
107003	//   },
107004	//   "scopes": [
107005	//     "https://www.googleapis.com/auth/cloud-platform",
107006	//     "https://www.googleapis.com/auth/compute"
107007	//   ]
107008	// }
107009
107010}
107011
107012// method id "compute.regionInstanceGroups.get":
107013
107014type RegionInstanceGroupsGetCall struct {
107015	s             *Service
107016	project       string
107017	region        string
107018	instanceGroup string
107019	urlParams_    gensupport.URLParams
107020	ifNoneMatch_  string
107021	ctx_          context.Context
107022	header_       http.Header
107023}
107024
107025// Get: Returns the specified instance group resource.
107026func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
107027	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107028	c.project = project
107029	c.region = region
107030	c.instanceGroup = instanceGroup
107031	return c
107032}
107033
107034// Fields allows partial responses to be retrieved. See
107035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107036// for more information.
107037func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
107038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107039	return c
107040}
107041
107042// IfNoneMatch sets the optional parameter which makes the operation
107043// fail if the object's ETag matches the given value. This is useful for
107044// getting updates only after the object has changed since the last
107045// request. Use googleapi.IsNotModified to check whether the response
107046// error from Do is the result of In-None-Match.
107047func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
107048	c.ifNoneMatch_ = entityTag
107049	return c
107050}
107051
107052// Context sets the context to be used in this call's Do method. Any
107053// pending HTTP request will be aborted if the provided context is
107054// canceled.
107055func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
107056	c.ctx_ = ctx
107057	return c
107058}
107059
107060// Header returns an http.Header that can be modified by the caller to
107061// add HTTP headers to the request.
107062func (c *RegionInstanceGroupsGetCall) Header() http.Header {
107063	if c.header_ == nil {
107064		c.header_ = make(http.Header)
107065	}
107066	return c.header_
107067}
107068
107069func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
107070	reqHeaders := make(http.Header)
107071	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107072	for k, v := range c.header_ {
107073		reqHeaders[k] = v
107074	}
107075	reqHeaders.Set("User-Agent", c.s.userAgent())
107076	if c.ifNoneMatch_ != "" {
107077		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107078	}
107079	var body io.Reader = nil
107080	c.urlParams_.Set("alt", alt)
107081	c.urlParams_.Set("prettyPrint", "false")
107082	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
107083	urls += "?" + c.urlParams_.Encode()
107084	req, err := http.NewRequest("GET", urls, body)
107085	if err != nil {
107086		return nil, err
107087	}
107088	req.Header = reqHeaders
107089	googleapi.Expand(req.URL, map[string]string{
107090		"project":       c.project,
107091		"region":        c.region,
107092		"instanceGroup": c.instanceGroup,
107093	})
107094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107095}
107096
107097// Do executes the "compute.regionInstanceGroups.get" call.
107098// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
107099// status code is an error. Response headers are in either
107100// *InstanceGroup.ServerResponse.Header or (if a response was returned
107101// at all) in error.(*googleapi.Error).Header. Use
107102// googleapi.IsNotModified to check whether the returned error was
107103// because http.StatusNotModified was returned.
107104func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
107105	gensupport.SetOptions(c.urlParams_, opts...)
107106	res, err := c.doRequest("json")
107107	if res != nil && res.StatusCode == http.StatusNotModified {
107108		if res.Body != nil {
107109			res.Body.Close()
107110		}
107111		return nil, &googleapi.Error{
107112			Code:   res.StatusCode,
107113			Header: res.Header,
107114		}
107115	}
107116	if err != nil {
107117		return nil, err
107118	}
107119	defer googleapi.CloseBody(res)
107120	if err := googleapi.CheckResponse(res); err != nil {
107121		return nil, err
107122	}
107123	ret := &InstanceGroup{
107124		ServerResponse: googleapi.ServerResponse{
107125			Header:         res.Header,
107126			HTTPStatusCode: res.StatusCode,
107127		},
107128	}
107129	target := &ret
107130	if err := gensupport.DecodeResponse(target, res); err != nil {
107131		return nil, err
107132	}
107133	return ret, nil
107134	// {
107135	//   "description": "Returns the specified instance group resource.",
107136	//   "httpMethod": "GET",
107137	//   "id": "compute.regionInstanceGroups.get",
107138	//   "parameterOrder": [
107139	//     "project",
107140	//     "region",
107141	//     "instanceGroup"
107142	//   ],
107143	//   "parameters": {
107144	//     "instanceGroup": {
107145	//       "description": "Name of the instance group resource to return.",
107146	//       "location": "path",
107147	//       "required": true,
107148	//       "type": "string"
107149	//     },
107150	//     "project": {
107151	//       "description": "Project ID for this request.",
107152	//       "location": "path",
107153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107154	//       "required": true,
107155	//       "type": "string"
107156	//     },
107157	//     "region": {
107158	//       "description": "Name of the region scoping this request.",
107159	//       "location": "path",
107160	//       "required": true,
107161	//       "type": "string"
107162	//     }
107163	//   },
107164	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
107165	//   "response": {
107166	//     "$ref": "InstanceGroup"
107167	//   },
107168	//   "scopes": [
107169	//     "https://www.googleapis.com/auth/cloud-platform",
107170	//     "https://www.googleapis.com/auth/compute",
107171	//     "https://www.googleapis.com/auth/compute.readonly"
107172	//   ]
107173	// }
107174
107175}
107176
107177// method id "compute.regionInstanceGroups.list":
107178
107179type RegionInstanceGroupsListCall struct {
107180	s            *Service
107181	project      string
107182	region       string
107183	urlParams_   gensupport.URLParams
107184	ifNoneMatch_ string
107185	ctx_         context.Context
107186	header_      http.Header
107187}
107188
107189// List: Retrieves the list of instance group resources contained within
107190// the specified region.
107191func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
107192	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107193	c.project = project
107194	c.region = region
107195	return c
107196}
107197
107198// Filter sets the optional parameter "filter": A filter expression that
107199// filters resources listed in the response. The expression must specify
107200// the field name, a comparison operator, and the value that you want to
107201// use for filtering. The value must be a string, a number, or a
107202// boolean. The comparison operator must be either `=`, `!=`, `>`, or
107203// `<`.
107204//
107205// For example, if you are filtering Compute Engine instances, you can
107206// exclude instances named `example-instance` by specifying `name !=
107207// example-instance`.
107208//
107209// You can also filter nested fields. For example, you could specify
107210// `scheduling.automaticRestart = false` to include instances only if
107211// they are not scheduled for automatic restarts. You can use filtering
107212// on nested fields to filter based on resource labels.
107213//
107214// To filter on multiple expressions, provide each separate expression
107215// within parentheses. For example: ``` (scheduling.automaticRestart =
107216// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
107217// is an `AND` expression. However, you can include `AND` and `OR`
107218// expressions explicitly. For example: ``` (cpuPlatform = "Intel
107219// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
107220// (scheduling.automaticRestart = true) ```
107221func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
107222	c.urlParams_.Set("filter", filter)
107223	return c
107224}
107225
107226// MaxResults sets the optional parameter "maxResults": The maximum
107227// number of results per page that should be returned. If the number of
107228// available results is larger than `maxResults`, Compute Engine returns
107229// a `nextPageToken` that can be used to get the next page of results in
107230// subsequent list requests. Acceptable values are `0` to `500`,
107231// inclusive. (Default: `500`)
107232func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
107233	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107234	return c
107235}
107236
107237// OrderBy sets the optional parameter "orderBy": Sorts list results by
107238// a certain order. By default, results are returned in alphanumerical
107239// order based on the resource name.
107240//
107241// You can also sort results in descending order based on the creation
107242// timestamp using `orderBy="creationTimestamp desc". This sorts
107243// results based on the `creationTimestamp` field in reverse
107244// chronological order (newest result first). Use this to sort resources
107245// like operations so that the newest operation is returned
107246// first.
107247//
107248// Currently, only sorting by `name` or `creationTimestamp desc` is
107249// supported.
107250func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
107251	c.urlParams_.Set("orderBy", orderBy)
107252	return c
107253}
107254
107255// PageToken sets the optional parameter "pageToken": Specifies a page
107256// token to use. Set `pageToken` to the `nextPageToken` returned by a
107257// previous list request to get the next page of results.
107258func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
107259	c.urlParams_.Set("pageToken", pageToken)
107260	return c
107261}
107262
107263// Fields allows partial responses to be retrieved. See
107264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107265// for more information.
107266func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
107267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107268	return c
107269}
107270
107271// IfNoneMatch sets the optional parameter which makes the operation
107272// fail if the object's ETag matches the given value. This is useful for
107273// getting updates only after the object has changed since the last
107274// request. Use googleapi.IsNotModified to check whether the response
107275// error from Do is the result of In-None-Match.
107276func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
107277	c.ifNoneMatch_ = entityTag
107278	return c
107279}
107280
107281// Context sets the context to be used in this call's Do method. Any
107282// pending HTTP request will be aborted if the provided context is
107283// canceled.
107284func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
107285	c.ctx_ = ctx
107286	return c
107287}
107288
107289// Header returns an http.Header that can be modified by the caller to
107290// add HTTP headers to the request.
107291func (c *RegionInstanceGroupsListCall) Header() http.Header {
107292	if c.header_ == nil {
107293		c.header_ = make(http.Header)
107294	}
107295	return c.header_
107296}
107297
107298func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
107299	reqHeaders := make(http.Header)
107300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107301	for k, v := range c.header_ {
107302		reqHeaders[k] = v
107303	}
107304	reqHeaders.Set("User-Agent", c.s.userAgent())
107305	if c.ifNoneMatch_ != "" {
107306		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107307	}
107308	var body io.Reader = nil
107309	c.urlParams_.Set("alt", alt)
107310	c.urlParams_.Set("prettyPrint", "false")
107311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
107312	urls += "?" + c.urlParams_.Encode()
107313	req, err := http.NewRequest("GET", urls, body)
107314	if err != nil {
107315		return nil, err
107316	}
107317	req.Header = reqHeaders
107318	googleapi.Expand(req.URL, map[string]string{
107319		"project": c.project,
107320		"region":  c.region,
107321	})
107322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107323}
107324
107325// Do executes the "compute.regionInstanceGroups.list" call.
107326// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
107327// non-2xx status code is an error. Response headers are in either
107328// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
107329// returned at all) in error.(*googleapi.Error).Header. Use
107330// googleapi.IsNotModified to check whether the returned error was
107331// because http.StatusNotModified was returned.
107332func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
107333	gensupport.SetOptions(c.urlParams_, opts...)
107334	res, err := c.doRequest("json")
107335	if res != nil && res.StatusCode == http.StatusNotModified {
107336		if res.Body != nil {
107337			res.Body.Close()
107338		}
107339		return nil, &googleapi.Error{
107340			Code:   res.StatusCode,
107341			Header: res.Header,
107342		}
107343	}
107344	if err != nil {
107345		return nil, err
107346	}
107347	defer googleapi.CloseBody(res)
107348	if err := googleapi.CheckResponse(res); err != nil {
107349		return nil, err
107350	}
107351	ret := &RegionInstanceGroupList{
107352		ServerResponse: googleapi.ServerResponse{
107353			Header:         res.Header,
107354			HTTPStatusCode: res.StatusCode,
107355		},
107356	}
107357	target := &ret
107358	if err := gensupport.DecodeResponse(target, res); err != nil {
107359		return nil, err
107360	}
107361	return ret, nil
107362	// {
107363	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
107364	//   "httpMethod": "GET",
107365	//   "id": "compute.regionInstanceGroups.list",
107366	//   "parameterOrder": [
107367	//     "project",
107368	//     "region"
107369	//   ],
107370	//   "parameters": {
107371	//     "filter": {
107372	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
107373	//       "location": "query",
107374	//       "type": "string"
107375	//     },
107376	//     "maxResults": {
107377	//       "default": "500",
107378	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
107379	//       "format": "uint32",
107380	//       "location": "query",
107381	//       "minimum": "0",
107382	//       "type": "integer"
107383	//     },
107384	//     "orderBy": {
107385	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
107386	//       "location": "query",
107387	//       "type": "string"
107388	//     },
107389	//     "pageToken": {
107390	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
107391	//       "location": "query",
107392	//       "type": "string"
107393	//     },
107394	//     "project": {
107395	//       "description": "Project ID for this request.",
107396	//       "location": "path",
107397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107398	//       "required": true,
107399	//       "type": "string"
107400	//     },
107401	//     "region": {
107402	//       "description": "Name of the region scoping this request.",
107403	//       "location": "path",
107404	//       "required": true,
107405	//       "type": "string"
107406	//     }
107407	//   },
107408	//   "path": "{project}/regions/{region}/instanceGroups",
107409	//   "response": {
107410	//     "$ref": "RegionInstanceGroupList"
107411	//   },
107412	//   "scopes": [
107413	//     "https://www.googleapis.com/auth/cloud-platform",
107414	//     "https://www.googleapis.com/auth/compute",
107415	//     "https://www.googleapis.com/auth/compute.readonly"
107416	//   ]
107417	// }
107418
107419}
107420
107421// Pages invokes f for each page of results.
107422// A non-nil error returned from f will halt the iteration.
107423// The provided context supersedes any context provided to the Context method.
107424func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
107425	c.ctx_ = ctx
107426	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107427	for {
107428		x, err := c.Do()
107429		if err != nil {
107430			return err
107431		}
107432		if err := f(x); err != nil {
107433			return err
107434		}
107435		if x.NextPageToken == "" {
107436			return nil
107437		}
107438		c.PageToken(x.NextPageToken)
107439	}
107440}
107441
107442// method id "compute.regionInstanceGroups.listInstances":
107443
107444type RegionInstanceGroupsListInstancesCall struct {
107445	s                                        *Service
107446	project                                  string
107447	region                                   string
107448	instanceGroup                            string
107449	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
107450	urlParams_                               gensupport.URLParams
107451	ctx_                                     context.Context
107452	header_                                  http.Header
107453}
107454
107455// ListInstances: Lists the instances in the specified instance group
107456// and displays information about the named ports. Depending on the
107457// specified options, this method can list all instances or only the
107458// instances that are running. The orderBy query parameter is not
107459// supported.
107460func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
107461	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107462	c.project = project
107463	c.region = region
107464	c.instanceGroup = instanceGroup
107465	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
107466	return c
107467}
107468
107469// Filter sets the optional parameter "filter": A filter expression that
107470// filters resources listed in the response. The expression must specify
107471// the field name, a comparison operator, and the value that you want to
107472// use for filtering. The value must be a string, a number, or a
107473// boolean. The comparison operator must be either `=`, `!=`, `>`, or
107474// `<`.
107475//
107476// For example, if you are filtering Compute Engine instances, you can
107477// exclude instances named `example-instance` by specifying `name !=
107478// example-instance`.
107479//
107480// You can also filter nested fields. For example, you could specify
107481// `scheduling.automaticRestart = false` to include instances only if
107482// they are not scheduled for automatic restarts. You can use filtering
107483// on nested fields to filter based on resource labels.
107484//
107485// To filter on multiple expressions, provide each separate expression
107486// within parentheses. For example: ``` (scheduling.automaticRestart =
107487// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
107488// is an `AND` expression. However, you can include `AND` and `OR`
107489// expressions explicitly. For example: ``` (cpuPlatform = "Intel
107490// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
107491// (scheduling.automaticRestart = true) ```
107492func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
107493	c.urlParams_.Set("filter", filter)
107494	return c
107495}
107496
107497// MaxResults sets the optional parameter "maxResults": The maximum
107498// number of results per page that should be returned. If the number of
107499// available results is larger than `maxResults`, Compute Engine returns
107500// a `nextPageToken` that can be used to get the next page of results in
107501// subsequent list requests. Acceptable values are `0` to `500`,
107502// inclusive. (Default: `500`)
107503func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
107504	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107505	return c
107506}
107507
107508// OrderBy sets the optional parameter "orderBy": Sorts list results by
107509// a certain order. By default, results are returned in alphanumerical
107510// order based on the resource name.
107511//
107512// You can also sort results in descending order based on the creation
107513// timestamp using `orderBy="creationTimestamp desc". This sorts
107514// results based on the `creationTimestamp` field in reverse
107515// chronological order (newest result first). Use this to sort resources
107516// like operations so that the newest operation is returned
107517// first.
107518//
107519// Currently, only sorting by `name` or `creationTimestamp desc` is
107520// supported.
107521func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
107522	c.urlParams_.Set("orderBy", orderBy)
107523	return c
107524}
107525
107526// PageToken sets the optional parameter "pageToken": Specifies a page
107527// token to use. Set `pageToken` to the `nextPageToken` returned by a
107528// previous list request to get the next page of results.
107529func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
107530	c.urlParams_.Set("pageToken", pageToken)
107531	return c
107532}
107533
107534// Fields allows partial responses to be retrieved. See
107535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107536// for more information.
107537func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
107538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107539	return c
107540}
107541
107542// Context sets the context to be used in this call's Do method. Any
107543// pending HTTP request will be aborted if the provided context is
107544// canceled.
107545func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
107546	c.ctx_ = ctx
107547	return c
107548}
107549
107550// Header returns an http.Header that can be modified by the caller to
107551// add HTTP headers to the request.
107552func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
107553	if c.header_ == nil {
107554		c.header_ = make(http.Header)
107555	}
107556	return c.header_
107557}
107558
107559func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
107560	reqHeaders := make(http.Header)
107561	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107562	for k, v := range c.header_ {
107563		reqHeaders[k] = v
107564	}
107565	reqHeaders.Set("User-Agent", c.s.userAgent())
107566	var body io.Reader = nil
107567	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
107568	if err != nil {
107569		return nil, err
107570	}
107571	reqHeaders.Set("Content-Type", "application/json")
107572	c.urlParams_.Set("alt", alt)
107573	c.urlParams_.Set("prettyPrint", "false")
107574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
107575	urls += "?" + c.urlParams_.Encode()
107576	req, err := http.NewRequest("POST", urls, body)
107577	if err != nil {
107578		return nil, err
107579	}
107580	req.Header = reqHeaders
107581	googleapi.Expand(req.URL, map[string]string{
107582		"project":       c.project,
107583		"region":        c.region,
107584		"instanceGroup": c.instanceGroup,
107585	})
107586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107587}
107588
107589// Do executes the "compute.regionInstanceGroups.listInstances" call.
107590// Exactly one of *RegionInstanceGroupsListInstances or error will be
107591// non-nil. Any non-2xx status code is an error. Response headers are in
107592// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
107593// (if a response was returned at all) in
107594// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
107595// whether the returned error was because http.StatusNotModified was
107596// returned.
107597func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
107598	gensupport.SetOptions(c.urlParams_, opts...)
107599	res, err := c.doRequest("json")
107600	if res != nil && res.StatusCode == http.StatusNotModified {
107601		if res.Body != nil {
107602			res.Body.Close()
107603		}
107604		return nil, &googleapi.Error{
107605			Code:   res.StatusCode,
107606			Header: res.Header,
107607		}
107608	}
107609	if err != nil {
107610		return nil, err
107611	}
107612	defer googleapi.CloseBody(res)
107613	if err := googleapi.CheckResponse(res); err != nil {
107614		return nil, err
107615	}
107616	ret := &RegionInstanceGroupsListInstances{
107617		ServerResponse: googleapi.ServerResponse{
107618			Header:         res.Header,
107619			HTTPStatusCode: res.StatusCode,
107620		},
107621	}
107622	target := &ret
107623	if err := gensupport.DecodeResponse(target, res); err != nil {
107624		return nil, err
107625	}
107626	return ret, nil
107627	// {
107628	//   "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.",
107629	//   "httpMethod": "POST",
107630	//   "id": "compute.regionInstanceGroups.listInstances",
107631	//   "parameterOrder": [
107632	//     "project",
107633	//     "region",
107634	//     "instanceGroup"
107635	//   ],
107636	//   "parameters": {
107637	//     "filter": {
107638	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
107639	//       "location": "query",
107640	//       "type": "string"
107641	//     },
107642	//     "instanceGroup": {
107643	//       "description": "Name of the regional instance group for which we want to list the instances.",
107644	//       "location": "path",
107645	//       "required": true,
107646	//       "type": "string"
107647	//     },
107648	//     "maxResults": {
107649	//       "default": "500",
107650	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
107651	//       "format": "uint32",
107652	//       "location": "query",
107653	//       "minimum": "0",
107654	//       "type": "integer"
107655	//     },
107656	//     "orderBy": {
107657	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
107658	//       "location": "query",
107659	//       "type": "string"
107660	//     },
107661	//     "pageToken": {
107662	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
107663	//       "location": "query",
107664	//       "type": "string"
107665	//     },
107666	//     "project": {
107667	//       "description": "Project ID for this request.",
107668	//       "location": "path",
107669	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107670	//       "required": true,
107671	//       "type": "string"
107672	//     },
107673	//     "region": {
107674	//       "description": "Name of the region scoping this request.",
107675	//       "location": "path",
107676	//       "required": true,
107677	//       "type": "string"
107678	//     }
107679	//   },
107680	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
107681	//   "request": {
107682	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
107683	//   },
107684	//   "response": {
107685	//     "$ref": "RegionInstanceGroupsListInstances"
107686	//   },
107687	//   "scopes": [
107688	//     "https://www.googleapis.com/auth/cloud-platform",
107689	//     "https://www.googleapis.com/auth/compute",
107690	//     "https://www.googleapis.com/auth/compute.readonly"
107691	//   ]
107692	// }
107693
107694}
107695
107696// Pages invokes f for each page of results.
107697// A non-nil error returned from f will halt the iteration.
107698// The provided context supersedes any context provided to the Context method.
107699func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
107700	c.ctx_ = ctx
107701	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107702	for {
107703		x, err := c.Do()
107704		if err != nil {
107705			return err
107706		}
107707		if err := f(x); err != nil {
107708			return err
107709		}
107710		if x.NextPageToken == "" {
107711			return nil
107712		}
107713		c.PageToken(x.NextPageToken)
107714	}
107715}
107716
107717// method id "compute.regionInstanceGroups.setNamedPorts":
107718
107719type RegionInstanceGroupsSetNamedPortsCall struct {
107720	s                                        *Service
107721	project                                  string
107722	region                                   string
107723	instanceGroup                            string
107724	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
107725	urlParams_                               gensupport.URLParams
107726	ctx_                                     context.Context
107727	header_                                  http.Header
107728}
107729
107730// SetNamedPorts: Sets the named ports for the specified regional
107731// instance group.
107732func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
107733	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107734	c.project = project
107735	c.region = region
107736	c.instanceGroup = instanceGroup
107737	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
107738	return c
107739}
107740
107741// RequestId sets the optional parameter "requestId": An optional
107742// request ID to identify requests. Specify a unique request ID so that
107743// if you must retry your request, the server will know to ignore the
107744// request if it has already been completed.
107745//
107746// For example, consider a situation where you make an initial request
107747// and the request times out. If you make the request again with the
107748// same request ID, the server can check if original operation with the
107749// same request ID was received, and if so, will ignore the second
107750// request. This prevents clients from accidentally creating duplicate
107751// commitments.
107752//
107753// The request ID must be a valid UUID with the exception that zero UUID
107754// is not supported (00000000-0000-0000-0000-000000000000).
107755func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
107756	c.urlParams_.Set("requestId", requestId)
107757	return c
107758}
107759
107760// Fields allows partial responses to be retrieved. See
107761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107762// for more information.
107763func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
107764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107765	return c
107766}
107767
107768// Context sets the context to be used in this call's Do method. Any
107769// pending HTTP request will be aborted if the provided context is
107770// canceled.
107771func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
107772	c.ctx_ = ctx
107773	return c
107774}
107775
107776// Header returns an http.Header that can be modified by the caller to
107777// add HTTP headers to the request.
107778func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
107779	if c.header_ == nil {
107780		c.header_ = make(http.Header)
107781	}
107782	return c.header_
107783}
107784
107785func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
107786	reqHeaders := make(http.Header)
107787	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107788	for k, v := range c.header_ {
107789		reqHeaders[k] = v
107790	}
107791	reqHeaders.Set("User-Agent", c.s.userAgent())
107792	var body io.Reader = nil
107793	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
107794	if err != nil {
107795		return nil, err
107796	}
107797	reqHeaders.Set("Content-Type", "application/json")
107798	c.urlParams_.Set("alt", alt)
107799	c.urlParams_.Set("prettyPrint", "false")
107800	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
107801	urls += "?" + c.urlParams_.Encode()
107802	req, err := http.NewRequest("POST", urls, body)
107803	if err != nil {
107804		return nil, err
107805	}
107806	req.Header = reqHeaders
107807	googleapi.Expand(req.URL, map[string]string{
107808		"project":       c.project,
107809		"region":        c.region,
107810		"instanceGroup": c.instanceGroup,
107811	})
107812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107813}
107814
107815// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
107816// Exactly one of *Operation or error will be non-nil. Any non-2xx
107817// status code is an error. Response headers are in either
107818// *Operation.ServerResponse.Header or (if a response was returned at
107819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107820// to check whether the returned error was because
107821// http.StatusNotModified was returned.
107822func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107823	gensupport.SetOptions(c.urlParams_, opts...)
107824	res, err := c.doRequest("json")
107825	if res != nil && res.StatusCode == http.StatusNotModified {
107826		if res.Body != nil {
107827			res.Body.Close()
107828		}
107829		return nil, &googleapi.Error{
107830			Code:   res.StatusCode,
107831			Header: res.Header,
107832		}
107833	}
107834	if err != nil {
107835		return nil, err
107836	}
107837	defer googleapi.CloseBody(res)
107838	if err := googleapi.CheckResponse(res); err != nil {
107839		return nil, err
107840	}
107841	ret := &Operation{
107842		ServerResponse: googleapi.ServerResponse{
107843			Header:         res.Header,
107844			HTTPStatusCode: res.StatusCode,
107845		},
107846	}
107847	target := &ret
107848	if err := gensupport.DecodeResponse(target, res); err != nil {
107849		return nil, err
107850	}
107851	return ret, nil
107852	// {
107853	//   "description": "Sets the named ports for the specified regional instance group.",
107854	//   "httpMethod": "POST",
107855	//   "id": "compute.regionInstanceGroups.setNamedPorts",
107856	//   "parameterOrder": [
107857	//     "project",
107858	//     "region",
107859	//     "instanceGroup"
107860	//   ],
107861	//   "parameters": {
107862	//     "instanceGroup": {
107863	//       "description": "The name of the regional instance group where the named ports are updated.",
107864	//       "location": "path",
107865	//       "required": true,
107866	//       "type": "string"
107867	//     },
107868	//     "project": {
107869	//       "description": "Project ID for this request.",
107870	//       "location": "path",
107871	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107872	//       "required": true,
107873	//       "type": "string"
107874	//     },
107875	//     "region": {
107876	//       "description": "Name of the region scoping this request.",
107877	//       "location": "path",
107878	//       "required": true,
107879	//       "type": "string"
107880	//     },
107881	//     "requestId": {
107882	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107883	//       "location": "query",
107884	//       "type": "string"
107885	//     }
107886	//   },
107887	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
107888	//   "request": {
107889	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
107890	//   },
107891	//   "response": {
107892	//     "$ref": "Operation"
107893	//   },
107894	//   "scopes": [
107895	//     "https://www.googleapis.com/auth/cloud-platform",
107896	//     "https://www.googleapis.com/auth/compute"
107897	//   ]
107898	// }
107899
107900}
107901
107902// method id "compute.regionNotificationEndpoints.delete":
107903
107904type RegionNotificationEndpointsDeleteCall struct {
107905	s                    *Service
107906	project              string
107907	region               string
107908	notificationEndpoint string
107909	urlParams_           gensupport.URLParams
107910	ctx_                 context.Context
107911	header_              http.Header
107912}
107913
107914// Delete: Deletes the specified NotificationEndpoint in the given
107915// region
107916func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
107917	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107918	c.project = project
107919	c.region = region
107920	c.notificationEndpoint = notificationEndpoint
107921	return c
107922}
107923
107924// RequestId sets the optional parameter "requestId": An optional
107925// request ID to identify requests. Specify a unique request ID so that
107926// if you must retry your request, the server will know to ignore the
107927// request if it has already been completed.
107928//
107929// For example, consider a situation where you make an initial request
107930// and the request times out. If you make the request again with the
107931// same request ID, the server can check if original operation with the
107932// same request ID was received, and if so, will ignore the second
107933// request. This prevents clients from accidentally creating duplicate
107934// commitments.
107935//
107936// The request ID must be a valid UUID with the exception that zero UUID
107937// is not supported (00000000-0000-0000-0000-000000000000).
107938func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
107939	c.urlParams_.Set("requestId", requestId)
107940	return c
107941}
107942
107943// Fields allows partial responses to be retrieved. See
107944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107945// for more information.
107946func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
107947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107948	return c
107949}
107950
107951// Context sets the context to be used in this call's Do method. Any
107952// pending HTTP request will be aborted if the provided context is
107953// canceled.
107954func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
107955	c.ctx_ = ctx
107956	return c
107957}
107958
107959// Header returns an http.Header that can be modified by the caller to
107960// add HTTP headers to the request.
107961func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
107962	if c.header_ == nil {
107963		c.header_ = make(http.Header)
107964	}
107965	return c.header_
107966}
107967
107968func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
107969	reqHeaders := make(http.Header)
107970	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107971	for k, v := range c.header_ {
107972		reqHeaders[k] = v
107973	}
107974	reqHeaders.Set("User-Agent", c.s.userAgent())
107975	var body io.Reader = nil
107976	c.urlParams_.Set("alt", alt)
107977	c.urlParams_.Set("prettyPrint", "false")
107978	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
107979	urls += "?" + c.urlParams_.Encode()
107980	req, err := http.NewRequest("DELETE", urls, body)
107981	if err != nil {
107982		return nil, err
107983	}
107984	req.Header = reqHeaders
107985	googleapi.Expand(req.URL, map[string]string{
107986		"project":              c.project,
107987		"region":               c.region,
107988		"notificationEndpoint": c.notificationEndpoint,
107989	})
107990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107991}
107992
107993// Do executes the "compute.regionNotificationEndpoints.delete" call.
107994// Exactly one of *Operation or error will be non-nil. Any non-2xx
107995// status code is an error. Response headers are in either
107996// *Operation.ServerResponse.Header or (if a response was returned at
107997// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107998// to check whether the returned error was because
107999// http.StatusNotModified was returned.
108000func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108001	gensupport.SetOptions(c.urlParams_, opts...)
108002	res, err := c.doRequest("json")
108003	if res != nil && res.StatusCode == http.StatusNotModified {
108004		if res.Body != nil {
108005			res.Body.Close()
108006		}
108007		return nil, &googleapi.Error{
108008			Code:   res.StatusCode,
108009			Header: res.Header,
108010		}
108011	}
108012	if err != nil {
108013		return nil, err
108014	}
108015	defer googleapi.CloseBody(res)
108016	if err := googleapi.CheckResponse(res); err != nil {
108017		return nil, err
108018	}
108019	ret := &Operation{
108020		ServerResponse: googleapi.ServerResponse{
108021			Header:         res.Header,
108022			HTTPStatusCode: res.StatusCode,
108023		},
108024	}
108025	target := &ret
108026	if err := gensupport.DecodeResponse(target, res); err != nil {
108027		return nil, err
108028	}
108029	return ret, nil
108030	// {
108031	//   "description": "Deletes the specified NotificationEndpoint in the given region",
108032	//   "httpMethod": "DELETE",
108033	//   "id": "compute.regionNotificationEndpoints.delete",
108034	//   "parameterOrder": [
108035	//     "project",
108036	//     "region",
108037	//     "notificationEndpoint"
108038	//   ],
108039	//   "parameters": {
108040	//     "notificationEndpoint": {
108041	//       "description": "Name of the NotificationEndpoint resource to delete.",
108042	//       "location": "path",
108043	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108044	//       "required": true,
108045	//       "type": "string"
108046	//     },
108047	//     "project": {
108048	//       "description": "Project ID for this request.",
108049	//       "location": "path",
108050	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108051	//       "required": true,
108052	//       "type": "string"
108053	//     },
108054	//     "region": {
108055	//       "description": "Name of the region scoping this request.",
108056	//       "location": "path",
108057	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108058	//       "required": true,
108059	//       "type": "string"
108060	//     },
108061	//     "requestId": {
108062	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108063	//       "location": "query",
108064	//       "type": "string"
108065	//     }
108066	//   },
108067	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
108068	//   "response": {
108069	//     "$ref": "Operation"
108070	//   },
108071	//   "scopes": [
108072	//     "https://www.googleapis.com/auth/cloud-platform",
108073	//     "https://www.googleapis.com/auth/compute"
108074	//   ]
108075	// }
108076
108077}
108078
108079// method id "compute.regionNotificationEndpoints.get":
108080
108081type RegionNotificationEndpointsGetCall struct {
108082	s                    *Service
108083	project              string
108084	region               string
108085	notificationEndpoint string
108086	urlParams_           gensupport.URLParams
108087	ifNoneMatch_         string
108088	ctx_                 context.Context
108089	header_              http.Header
108090}
108091
108092// Get: Returns the specified NotificationEndpoint resource in the given
108093// region.
108094func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
108095	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108096	c.project = project
108097	c.region = region
108098	c.notificationEndpoint = notificationEndpoint
108099	return c
108100}
108101
108102// Fields allows partial responses to be retrieved. See
108103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108104// for more information.
108105func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
108106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108107	return c
108108}
108109
108110// IfNoneMatch sets the optional parameter which makes the operation
108111// fail if the object's ETag matches the given value. This is useful for
108112// getting updates only after the object has changed since the last
108113// request. Use googleapi.IsNotModified to check whether the response
108114// error from Do is the result of In-None-Match.
108115func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
108116	c.ifNoneMatch_ = entityTag
108117	return c
108118}
108119
108120// Context sets the context to be used in this call's Do method. Any
108121// pending HTTP request will be aborted if the provided context is
108122// canceled.
108123func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
108124	c.ctx_ = ctx
108125	return c
108126}
108127
108128// Header returns an http.Header that can be modified by the caller to
108129// add HTTP headers to the request.
108130func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
108131	if c.header_ == nil {
108132		c.header_ = make(http.Header)
108133	}
108134	return c.header_
108135}
108136
108137func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
108138	reqHeaders := make(http.Header)
108139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108140	for k, v := range c.header_ {
108141		reqHeaders[k] = v
108142	}
108143	reqHeaders.Set("User-Agent", c.s.userAgent())
108144	if c.ifNoneMatch_ != "" {
108145		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108146	}
108147	var body io.Reader = nil
108148	c.urlParams_.Set("alt", alt)
108149	c.urlParams_.Set("prettyPrint", "false")
108150	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
108151	urls += "?" + c.urlParams_.Encode()
108152	req, err := http.NewRequest("GET", urls, body)
108153	if err != nil {
108154		return nil, err
108155	}
108156	req.Header = reqHeaders
108157	googleapi.Expand(req.URL, map[string]string{
108158		"project":              c.project,
108159		"region":               c.region,
108160		"notificationEndpoint": c.notificationEndpoint,
108161	})
108162	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108163}
108164
108165// Do executes the "compute.regionNotificationEndpoints.get" call.
108166// Exactly one of *NotificationEndpoint or error will be non-nil. Any
108167// non-2xx status code is an error. Response headers are in either
108168// *NotificationEndpoint.ServerResponse.Header or (if a response was
108169// returned at all) in error.(*googleapi.Error).Header. Use
108170// googleapi.IsNotModified to check whether the returned error was
108171// because http.StatusNotModified was returned.
108172func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
108173	gensupport.SetOptions(c.urlParams_, opts...)
108174	res, err := c.doRequest("json")
108175	if res != nil && res.StatusCode == http.StatusNotModified {
108176		if res.Body != nil {
108177			res.Body.Close()
108178		}
108179		return nil, &googleapi.Error{
108180			Code:   res.StatusCode,
108181			Header: res.Header,
108182		}
108183	}
108184	if err != nil {
108185		return nil, err
108186	}
108187	defer googleapi.CloseBody(res)
108188	if err := googleapi.CheckResponse(res); err != nil {
108189		return nil, err
108190	}
108191	ret := &NotificationEndpoint{
108192		ServerResponse: googleapi.ServerResponse{
108193			Header:         res.Header,
108194			HTTPStatusCode: res.StatusCode,
108195		},
108196	}
108197	target := &ret
108198	if err := gensupport.DecodeResponse(target, res); err != nil {
108199		return nil, err
108200	}
108201	return ret, nil
108202	// {
108203	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
108204	//   "httpMethod": "GET",
108205	//   "id": "compute.regionNotificationEndpoints.get",
108206	//   "parameterOrder": [
108207	//     "project",
108208	//     "region",
108209	//     "notificationEndpoint"
108210	//   ],
108211	//   "parameters": {
108212	//     "notificationEndpoint": {
108213	//       "description": "Name of the NotificationEndpoint resource to return.",
108214	//       "location": "path",
108215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108216	//       "required": true,
108217	//       "type": "string"
108218	//     },
108219	//     "project": {
108220	//       "description": "Project ID for this request.",
108221	//       "location": "path",
108222	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108223	//       "required": true,
108224	//       "type": "string"
108225	//     },
108226	//     "region": {
108227	//       "description": "Name of the region scoping this request.",
108228	//       "location": "path",
108229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108230	//       "required": true,
108231	//       "type": "string"
108232	//     }
108233	//   },
108234	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
108235	//   "response": {
108236	//     "$ref": "NotificationEndpoint"
108237	//   },
108238	//   "scopes": [
108239	//     "https://www.googleapis.com/auth/cloud-platform",
108240	//     "https://www.googleapis.com/auth/compute",
108241	//     "https://www.googleapis.com/auth/compute.readonly"
108242	//   ]
108243	// }
108244
108245}
108246
108247// method id "compute.regionNotificationEndpoints.insert":
108248
108249type RegionNotificationEndpointsInsertCall struct {
108250	s                    *Service
108251	project              string
108252	region               string
108253	notificationendpoint *NotificationEndpoint
108254	urlParams_           gensupport.URLParams
108255	ctx_                 context.Context
108256	header_              http.Header
108257}
108258
108259// Insert: Create a NotificationEndpoint in the specified project in the
108260// given region using the parameters that are included in the request.
108261func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
108262	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108263	c.project = project
108264	c.region = region
108265	c.notificationendpoint = notificationendpoint
108266	return c
108267}
108268
108269// RequestId sets the optional parameter "requestId": An optional
108270// request ID to identify requests. Specify a unique request ID so that
108271// if you must retry your request, the server will know to ignore the
108272// request if it has already been completed.
108273//
108274// For example, consider a situation where you make an initial request
108275// and the request times out. If you make the request again with the
108276// same request ID, the server can check if original operation with the
108277// same request ID was received, and if so, will ignore the second
108278// request. This prevents clients from accidentally creating duplicate
108279// commitments.
108280//
108281// The request ID must be a valid UUID with the exception that zero UUID
108282// is not supported (00000000-0000-0000-0000-000000000000).
108283func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
108284	c.urlParams_.Set("requestId", requestId)
108285	return c
108286}
108287
108288// Fields allows partial responses to be retrieved. See
108289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108290// for more information.
108291func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
108292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108293	return c
108294}
108295
108296// Context sets the context to be used in this call's Do method. Any
108297// pending HTTP request will be aborted if the provided context is
108298// canceled.
108299func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
108300	c.ctx_ = ctx
108301	return c
108302}
108303
108304// Header returns an http.Header that can be modified by the caller to
108305// add HTTP headers to the request.
108306func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
108307	if c.header_ == nil {
108308		c.header_ = make(http.Header)
108309	}
108310	return c.header_
108311}
108312
108313func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
108314	reqHeaders := make(http.Header)
108315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108316	for k, v := range c.header_ {
108317		reqHeaders[k] = v
108318	}
108319	reqHeaders.Set("User-Agent", c.s.userAgent())
108320	var body io.Reader = nil
108321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
108322	if err != nil {
108323		return nil, err
108324	}
108325	reqHeaders.Set("Content-Type", "application/json")
108326	c.urlParams_.Set("alt", alt)
108327	c.urlParams_.Set("prettyPrint", "false")
108328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
108329	urls += "?" + c.urlParams_.Encode()
108330	req, err := http.NewRequest("POST", urls, body)
108331	if err != nil {
108332		return nil, err
108333	}
108334	req.Header = reqHeaders
108335	googleapi.Expand(req.URL, map[string]string{
108336		"project": c.project,
108337		"region":  c.region,
108338	})
108339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108340}
108341
108342// Do executes the "compute.regionNotificationEndpoints.insert" call.
108343// Exactly one of *Operation or error will be non-nil. Any non-2xx
108344// status code is an error. Response headers are in either
108345// *Operation.ServerResponse.Header or (if a response was returned at
108346// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108347// to check whether the returned error was because
108348// http.StatusNotModified was returned.
108349func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108350	gensupport.SetOptions(c.urlParams_, opts...)
108351	res, err := c.doRequest("json")
108352	if res != nil && res.StatusCode == http.StatusNotModified {
108353		if res.Body != nil {
108354			res.Body.Close()
108355		}
108356		return nil, &googleapi.Error{
108357			Code:   res.StatusCode,
108358			Header: res.Header,
108359		}
108360	}
108361	if err != nil {
108362		return nil, err
108363	}
108364	defer googleapi.CloseBody(res)
108365	if err := googleapi.CheckResponse(res); err != nil {
108366		return nil, err
108367	}
108368	ret := &Operation{
108369		ServerResponse: googleapi.ServerResponse{
108370			Header:         res.Header,
108371			HTTPStatusCode: res.StatusCode,
108372		},
108373	}
108374	target := &ret
108375	if err := gensupport.DecodeResponse(target, res); err != nil {
108376		return nil, err
108377	}
108378	return ret, nil
108379	// {
108380	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
108381	//   "httpMethod": "POST",
108382	//   "id": "compute.regionNotificationEndpoints.insert",
108383	//   "parameterOrder": [
108384	//     "project",
108385	//     "region"
108386	//   ],
108387	//   "parameters": {
108388	//     "project": {
108389	//       "description": "Project ID for this request.",
108390	//       "location": "path",
108391	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108392	//       "required": true,
108393	//       "type": "string"
108394	//     },
108395	//     "region": {
108396	//       "description": "Name of the region scoping this request.",
108397	//       "location": "path",
108398	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108399	//       "required": true,
108400	//       "type": "string"
108401	//     },
108402	//     "requestId": {
108403	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108404	//       "location": "query",
108405	//       "type": "string"
108406	//     }
108407	//   },
108408	//   "path": "{project}/regions/{region}/notificationEndpoints",
108409	//   "request": {
108410	//     "$ref": "NotificationEndpoint"
108411	//   },
108412	//   "response": {
108413	//     "$ref": "Operation"
108414	//   },
108415	//   "scopes": [
108416	//     "https://www.googleapis.com/auth/cloud-platform",
108417	//     "https://www.googleapis.com/auth/compute"
108418	//   ]
108419	// }
108420
108421}
108422
108423// method id "compute.regionNotificationEndpoints.list":
108424
108425type RegionNotificationEndpointsListCall struct {
108426	s            *Service
108427	project      string
108428	region       string
108429	urlParams_   gensupport.URLParams
108430	ifNoneMatch_ string
108431	ctx_         context.Context
108432	header_      http.Header
108433}
108434
108435// List: Lists the NotificationEndpoints for a project in the given
108436// region.
108437func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
108438	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108439	c.project = project
108440	c.region = region
108441	return c
108442}
108443
108444// Filter sets the optional parameter "filter": A filter expression that
108445// filters resources listed in the response. The expression must specify
108446// the field name, a comparison operator, and the value that you want to
108447// use for filtering. The value must be a string, a number, or a
108448// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108449// `<`.
108450//
108451// For example, if you are filtering Compute Engine instances, you can
108452// exclude instances named `example-instance` by specifying `name !=
108453// example-instance`.
108454//
108455// You can also filter nested fields. For example, you could specify
108456// `scheduling.automaticRestart = false` to include instances only if
108457// they are not scheduled for automatic restarts. You can use filtering
108458// on nested fields to filter based on resource labels.
108459//
108460// To filter on multiple expressions, provide each separate expression
108461// within parentheses. For example: ``` (scheduling.automaticRestart =
108462// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108463// is an `AND` expression. However, you can include `AND` and `OR`
108464// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108465// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108466// (scheduling.automaticRestart = true) ```
108467func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
108468	c.urlParams_.Set("filter", filter)
108469	return c
108470}
108471
108472// MaxResults sets the optional parameter "maxResults": The maximum
108473// number of results per page that should be returned. If the number of
108474// available results is larger than `maxResults`, Compute Engine returns
108475// a `nextPageToken` that can be used to get the next page of results in
108476// subsequent list requests. Acceptable values are `0` to `500`,
108477// inclusive. (Default: `500`)
108478func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
108479	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108480	return c
108481}
108482
108483// OrderBy sets the optional parameter "orderBy": Sorts list results by
108484// a certain order. By default, results are returned in alphanumerical
108485// order based on the resource name.
108486//
108487// You can also sort results in descending order based on the creation
108488// timestamp using `orderBy="creationTimestamp desc". This sorts
108489// results based on the `creationTimestamp` field in reverse
108490// chronological order (newest result first). Use this to sort resources
108491// like operations so that the newest operation is returned
108492// first.
108493//
108494// Currently, only sorting by `name` or `creationTimestamp desc` is
108495// supported.
108496func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
108497	c.urlParams_.Set("orderBy", orderBy)
108498	return c
108499}
108500
108501// PageToken sets the optional parameter "pageToken": Specifies a page
108502// token to use. Set `pageToken` to the `nextPageToken` returned by a
108503// previous list request to get the next page of results.
108504func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
108505	c.urlParams_.Set("pageToken", pageToken)
108506	return c
108507}
108508
108509// Fields allows partial responses to be retrieved. See
108510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108511// for more information.
108512func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
108513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108514	return c
108515}
108516
108517// IfNoneMatch sets the optional parameter which makes the operation
108518// fail if the object's ETag matches the given value. This is useful for
108519// getting updates only after the object has changed since the last
108520// request. Use googleapi.IsNotModified to check whether the response
108521// error from Do is the result of In-None-Match.
108522func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
108523	c.ifNoneMatch_ = entityTag
108524	return c
108525}
108526
108527// Context sets the context to be used in this call's Do method. Any
108528// pending HTTP request will be aborted if the provided context is
108529// canceled.
108530func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
108531	c.ctx_ = ctx
108532	return c
108533}
108534
108535// Header returns an http.Header that can be modified by the caller to
108536// add HTTP headers to the request.
108537func (c *RegionNotificationEndpointsListCall) Header() http.Header {
108538	if c.header_ == nil {
108539		c.header_ = make(http.Header)
108540	}
108541	return c.header_
108542}
108543
108544func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
108545	reqHeaders := make(http.Header)
108546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108547	for k, v := range c.header_ {
108548		reqHeaders[k] = v
108549	}
108550	reqHeaders.Set("User-Agent", c.s.userAgent())
108551	if c.ifNoneMatch_ != "" {
108552		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108553	}
108554	var body io.Reader = nil
108555	c.urlParams_.Set("alt", alt)
108556	c.urlParams_.Set("prettyPrint", "false")
108557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
108558	urls += "?" + c.urlParams_.Encode()
108559	req, err := http.NewRequest("GET", urls, body)
108560	if err != nil {
108561		return nil, err
108562	}
108563	req.Header = reqHeaders
108564	googleapi.Expand(req.URL, map[string]string{
108565		"project": c.project,
108566		"region":  c.region,
108567	})
108568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108569}
108570
108571// Do executes the "compute.regionNotificationEndpoints.list" call.
108572// Exactly one of *NotificationEndpointList or error will be non-nil.
108573// Any non-2xx status code is an error. Response headers are in either
108574// *NotificationEndpointList.ServerResponse.Header or (if a response was
108575// returned at all) in error.(*googleapi.Error).Header. Use
108576// googleapi.IsNotModified to check whether the returned error was
108577// because http.StatusNotModified was returned.
108578func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
108579	gensupport.SetOptions(c.urlParams_, opts...)
108580	res, err := c.doRequest("json")
108581	if res != nil && res.StatusCode == http.StatusNotModified {
108582		if res.Body != nil {
108583			res.Body.Close()
108584		}
108585		return nil, &googleapi.Error{
108586			Code:   res.StatusCode,
108587			Header: res.Header,
108588		}
108589	}
108590	if err != nil {
108591		return nil, err
108592	}
108593	defer googleapi.CloseBody(res)
108594	if err := googleapi.CheckResponse(res); err != nil {
108595		return nil, err
108596	}
108597	ret := &NotificationEndpointList{
108598		ServerResponse: googleapi.ServerResponse{
108599			Header:         res.Header,
108600			HTTPStatusCode: res.StatusCode,
108601		},
108602	}
108603	target := &ret
108604	if err := gensupport.DecodeResponse(target, res); err != nil {
108605		return nil, err
108606	}
108607	return ret, nil
108608	// {
108609	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
108610	//   "httpMethod": "GET",
108611	//   "id": "compute.regionNotificationEndpoints.list",
108612	//   "parameterOrder": [
108613	//     "project",
108614	//     "region"
108615	//   ],
108616	//   "parameters": {
108617	//     "filter": {
108618	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108619	//       "location": "query",
108620	//       "type": "string"
108621	//     },
108622	//     "maxResults": {
108623	//       "default": "500",
108624	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108625	//       "format": "uint32",
108626	//       "location": "query",
108627	//       "minimum": "0",
108628	//       "type": "integer"
108629	//     },
108630	//     "orderBy": {
108631	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108632	//       "location": "query",
108633	//       "type": "string"
108634	//     },
108635	//     "pageToken": {
108636	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108637	//       "location": "query",
108638	//       "type": "string"
108639	//     },
108640	//     "project": {
108641	//       "description": "Project ID for this request.",
108642	//       "location": "path",
108643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108644	//       "required": true,
108645	//       "type": "string"
108646	//     },
108647	//     "region": {
108648	//       "description": "Name of the region scoping this request.",
108649	//       "location": "path",
108650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108651	//       "required": true,
108652	//       "type": "string"
108653	//     }
108654	//   },
108655	//   "path": "{project}/regions/{region}/notificationEndpoints",
108656	//   "response": {
108657	//     "$ref": "NotificationEndpointList"
108658	//   },
108659	//   "scopes": [
108660	//     "https://www.googleapis.com/auth/cloud-platform",
108661	//     "https://www.googleapis.com/auth/compute",
108662	//     "https://www.googleapis.com/auth/compute.readonly"
108663	//   ]
108664	// }
108665
108666}
108667
108668// Pages invokes f for each page of results.
108669// A non-nil error returned from f will halt the iteration.
108670// The provided context supersedes any context provided to the Context method.
108671func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
108672	c.ctx_ = ctx
108673	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108674	for {
108675		x, err := c.Do()
108676		if err != nil {
108677			return err
108678		}
108679		if err := f(x); err != nil {
108680			return err
108681		}
108682		if x.NextPageToken == "" {
108683			return nil
108684		}
108685		c.PageToken(x.NextPageToken)
108686	}
108687}
108688
108689// method id "compute.regionOperations.delete":
108690
108691type RegionOperationsDeleteCall struct {
108692	s          *Service
108693	project    string
108694	region     string
108695	operation  string
108696	urlParams_ gensupport.URLParams
108697	ctx_       context.Context
108698	header_    http.Header
108699}
108700
108701// Delete: Deletes the specified region-specific Operations resource.
108702// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
108703func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
108704	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108705	c.project = project
108706	c.region = region
108707	c.operation = operation
108708	return c
108709}
108710
108711// Fields allows partial responses to be retrieved. See
108712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108713// for more information.
108714func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
108715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108716	return c
108717}
108718
108719// Context sets the context to be used in this call's Do method. Any
108720// pending HTTP request will be aborted if the provided context is
108721// canceled.
108722func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
108723	c.ctx_ = ctx
108724	return c
108725}
108726
108727// Header returns an http.Header that can be modified by the caller to
108728// add HTTP headers to the request.
108729func (c *RegionOperationsDeleteCall) Header() http.Header {
108730	if c.header_ == nil {
108731		c.header_ = make(http.Header)
108732	}
108733	return c.header_
108734}
108735
108736func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
108737	reqHeaders := make(http.Header)
108738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108739	for k, v := range c.header_ {
108740		reqHeaders[k] = v
108741	}
108742	reqHeaders.Set("User-Agent", c.s.userAgent())
108743	var body io.Reader = nil
108744	c.urlParams_.Set("alt", alt)
108745	c.urlParams_.Set("prettyPrint", "false")
108746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
108747	urls += "?" + c.urlParams_.Encode()
108748	req, err := http.NewRequest("DELETE", urls, body)
108749	if err != nil {
108750		return nil, err
108751	}
108752	req.Header = reqHeaders
108753	googleapi.Expand(req.URL, map[string]string{
108754		"project":   c.project,
108755		"region":    c.region,
108756		"operation": c.operation,
108757	})
108758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108759}
108760
108761// Do executes the "compute.regionOperations.delete" call.
108762func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
108763	gensupport.SetOptions(c.urlParams_, opts...)
108764	res, err := c.doRequest("json")
108765	if err != nil {
108766		return err
108767	}
108768	defer googleapi.CloseBody(res)
108769	if err := googleapi.CheckResponse(res); err != nil {
108770		return err
108771	}
108772	return nil
108773	// {
108774	//   "description": "Deletes the specified region-specific Operations resource.",
108775	//   "httpMethod": "DELETE",
108776	//   "id": "compute.regionOperations.delete",
108777	//   "parameterOrder": [
108778	//     "project",
108779	//     "region",
108780	//     "operation"
108781	//   ],
108782	//   "parameters": {
108783	//     "operation": {
108784	//       "description": "Name of the Operations resource to delete.",
108785	//       "location": "path",
108786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108787	//       "required": true,
108788	//       "type": "string"
108789	//     },
108790	//     "project": {
108791	//       "description": "Project ID for this request.",
108792	//       "location": "path",
108793	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108794	//       "required": true,
108795	//       "type": "string"
108796	//     },
108797	//     "region": {
108798	//       "description": "Name of the region for this request.",
108799	//       "location": "path",
108800	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108801	//       "required": true,
108802	//       "type": "string"
108803	//     }
108804	//   },
108805	//   "path": "{project}/regions/{region}/operations/{operation}",
108806	//   "scopes": [
108807	//     "https://www.googleapis.com/auth/cloud-platform",
108808	//     "https://www.googleapis.com/auth/compute"
108809	//   ]
108810	// }
108811
108812}
108813
108814// method id "compute.regionOperations.get":
108815
108816type RegionOperationsGetCall struct {
108817	s            *Service
108818	project      string
108819	region       string
108820	operation    string
108821	urlParams_   gensupport.URLParams
108822	ifNoneMatch_ string
108823	ctx_         context.Context
108824	header_      http.Header
108825}
108826
108827// Get: Retrieves the specified region-specific Operations resource.
108828// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
108829func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
108830	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108831	c.project = project
108832	c.region = region
108833	c.operation = operation
108834	return c
108835}
108836
108837// Fields allows partial responses to be retrieved. See
108838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108839// for more information.
108840func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
108841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108842	return c
108843}
108844
108845// IfNoneMatch sets the optional parameter which makes the operation
108846// fail if the object's ETag matches the given value. This is useful for
108847// getting updates only after the object has changed since the last
108848// request. Use googleapi.IsNotModified to check whether the response
108849// error from Do is the result of In-None-Match.
108850func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
108851	c.ifNoneMatch_ = entityTag
108852	return c
108853}
108854
108855// Context sets the context to be used in this call's Do method. Any
108856// pending HTTP request will be aborted if the provided context is
108857// canceled.
108858func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
108859	c.ctx_ = ctx
108860	return c
108861}
108862
108863// Header returns an http.Header that can be modified by the caller to
108864// add HTTP headers to the request.
108865func (c *RegionOperationsGetCall) Header() http.Header {
108866	if c.header_ == nil {
108867		c.header_ = make(http.Header)
108868	}
108869	return c.header_
108870}
108871
108872func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
108873	reqHeaders := make(http.Header)
108874	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108875	for k, v := range c.header_ {
108876		reqHeaders[k] = v
108877	}
108878	reqHeaders.Set("User-Agent", c.s.userAgent())
108879	if c.ifNoneMatch_ != "" {
108880		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108881	}
108882	var body io.Reader = nil
108883	c.urlParams_.Set("alt", alt)
108884	c.urlParams_.Set("prettyPrint", "false")
108885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
108886	urls += "?" + c.urlParams_.Encode()
108887	req, err := http.NewRequest("GET", urls, body)
108888	if err != nil {
108889		return nil, err
108890	}
108891	req.Header = reqHeaders
108892	googleapi.Expand(req.URL, map[string]string{
108893		"project":   c.project,
108894		"region":    c.region,
108895		"operation": c.operation,
108896	})
108897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108898}
108899
108900// Do executes the "compute.regionOperations.get" call.
108901// Exactly one of *Operation or error will be non-nil. Any non-2xx
108902// status code is an error. Response headers are in either
108903// *Operation.ServerResponse.Header or (if a response was returned at
108904// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108905// to check whether the returned error was because
108906// http.StatusNotModified was returned.
108907func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108908	gensupport.SetOptions(c.urlParams_, opts...)
108909	res, err := c.doRequest("json")
108910	if res != nil && res.StatusCode == http.StatusNotModified {
108911		if res.Body != nil {
108912			res.Body.Close()
108913		}
108914		return nil, &googleapi.Error{
108915			Code:   res.StatusCode,
108916			Header: res.Header,
108917		}
108918	}
108919	if err != nil {
108920		return nil, err
108921	}
108922	defer googleapi.CloseBody(res)
108923	if err := googleapi.CheckResponse(res); err != nil {
108924		return nil, err
108925	}
108926	ret := &Operation{
108927		ServerResponse: googleapi.ServerResponse{
108928			Header:         res.Header,
108929			HTTPStatusCode: res.StatusCode,
108930		},
108931	}
108932	target := &ret
108933	if err := gensupport.DecodeResponse(target, res); err != nil {
108934		return nil, err
108935	}
108936	return ret, nil
108937	// {
108938	//   "description": "Retrieves the specified region-specific Operations resource.",
108939	//   "httpMethod": "GET",
108940	//   "id": "compute.regionOperations.get",
108941	//   "parameterOrder": [
108942	//     "project",
108943	//     "region",
108944	//     "operation"
108945	//   ],
108946	//   "parameters": {
108947	//     "operation": {
108948	//       "description": "Name of the Operations resource to return.",
108949	//       "location": "path",
108950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108951	//       "required": true,
108952	//       "type": "string"
108953	//     },
108954	//     "project": {
108955	//       "description": "Project ID for this request.",
108956	//       "location": "path",
108957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108958	//       "required": true,
108959	//       "type": "string"
108960	//     },
108961	//     "region": {
108962	//       "description": "Name of the region for this request.",
108963	//       "location": "path",
108964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108965	//       "required": true,
108966	//       "type": "string"
108967	//     }
108968	//   },
108969	//   "path": "{project}/regions/{region}/operations/{operation}",
108970	//   "response": {
108971	//     "$ref": "Operation"
108972	//   },
108973	//   "scopes": [
108974	//     "https://www.googleapis.com/auth/cloud-platform",
108975	//     "https://www.googleapis.com/auth/compute",
108976	//     "https://www.googleapis.com/auth/compute.readonly"
108977	//   ]
108978	// }
108979
108980}
108981
108982// method id "compute.regionOperations.list":
108983
108984type RegionOperationsListCall struct {
108985	s            *Service
108986	project      string
108987	region       string
108988	urlParams_   gensupport.URLParams
108989	ifNoneMatch_ string
108990	ctx_         context.Context
108991	header_      http.Header
108992}
108993
108994// List: Retrieves a list of Operation resources contained within the
108995// specified region.
108996// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
108997func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
108998	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108999	c.project = project
109000	c.region = region
109001	return c
109002}
109003
109004// Filter sets the optional parameter "filter": A filter expression that
109005// filters resources listed in the response. The expression must specify
109006// the field name, a comparison operator, and the value that you want to
109007// use for filtering. The value must be a string, a number, or a
109008// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109009// `<`.
109010//
109011// For example, if you are filtering Compute Engine instances, you can
109012// exclude instances named `example-instance` by specifying `name !=
109013// example-instance`.
109014//
109015// You can also filter nested fields. For example, you could specify
109016// `scheduling.automaticRestart = false` to include instances only if
109017// they are not scheduled for automatic restarts. You can use filtering
109018// on nested fields to filter based on resource labels.
109019//
109020// To filter on multiple expressions, provide each separate expression
109021// within parentheses. For example: ``` (scheduling.automaticRestart =
109022// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
109023// is an `AND` expression. However, you can include `AND` and `OR`
109024// expressions explicitly. For example: ``` (cpuPlatform = "Intel
109025// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
109026// (scheduling.automaticRestart = true) ```
109027func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
109028	c.urlParams_.Set("filter", filter)
109029	return c
109030}
109031
109032// MaxResults sets the optional parameter "maxResults": The maximum
109033// number of results per page that should be returned. If the number of
109034// available results is larger than `maxResults`, Compute Engine returns
109035// a `nextPageToken` that can be used to get the next page of results in
109036// subsequent list requests. Acceptable values are `0` to `500`,
109037// inclusive. (Default: `500`)
109038func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
109039	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109040	return c
109041}
109042
109043// OrderBy sets the optional parameter "orderBy": Sorts list results by
109044// a certain order. By default, results are returned in alphanumerical
109045// order based on the resource name.
109046//
109047// You can also sort results in descending order based on the creation
109048// timestamp using `orderBy="creationTimestamp desc". This sorts
109049// results based on the `creationTimestamp` field in reverse
109050// chronological order (newest result first). Use this to sort resources
109051// like operations so that the newest operation is returned
109052// first.
109053//
109054// Currently, only sorting by `name` or `creationTimestamp desc` is
109055// supported.
109056func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
109057	c.urlParams_.Set("orderBy", orderBy)
109058	return c
109059}
109060
109061// PageToken sets the optional parameter "pageToken": Specifies a page
109062// token to use. Set `pageToken` to the `nextPageToken` returned by a
109063// previous list request to get the next page of results.
109064func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
109065	c.urlParams_.Set("pageToken", pageToken)
109066	return c
109067}
109068
109069// Fields allows partial responses to be retrieved. See
109070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109071// for more information.
109072func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
109073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109074	return c
109075}
109076
109077// IfNoneMatch sets the optional parameter which makes the operation
109078// fail if the object's ETag matches the given value. This is useful for
109079// getting updates only after the object has changed since the last
109080// request. Use googleapi.IsNotModified to check whether the response
109081// error from Do is the result of In-None-Match.
109082func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
109083	c.ifNoneMatch_ = entityTag
109084	return c
109085}
109086
109087// Context sets the context to be used in this call's Do method. Any
109088// pending HTTP request will be aborted if the provided context is
109089// canceled.
109090func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
109091	c.ctx_ = ctx
109092	return c
109093}
109094
109095// Header returns an http.Header that can be modified by the caller to
109096// add HTTP headers to the request.
109097func (c *RegionOperationsListCall) Header() http.Header {
109098	if c.header_ == nil {
109099		c.header_ = make(http.Header)
109100	}
109101	return c.header_
109102}
109103
109104func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
109105	reqHeaders := make(http.Header)
109106	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109107	for k, v := range c.header_ {
109108		reqHeaders[k] = v
109109	}
109110	reqHeaders.Set("User-Agent", c.s.userAgent())
109111	if c.ifNoneMatch_ != "" {
109112		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109113	}
109114	var body io.Reader = nil
109115	c.urlParams_.Set("alt", alt)
109116	c.urlParams_.Set("prettyPrint", "false")
109117	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
109118	urls += "?" + c.urlParams_.Encode()
109119	req, err := http.NewRequest("GET", urls, body)
109120	if err != nil {
109121		return nil, err
109122	}
109123	req.Header = reqHeaders
109124	googleapi.Expand(req.URL, map[string]string{
109125		"project": c.project,
109126		"region":  c.region,
109127	})
109128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109129}
109130
109131// Do executes the "compute.regionOperations.list" call.
109132// Exactly one of *OperationList or error will be non-nil. Any non-2xx
109133// status code is an error. Response headers are in either
109134// *OperationList.ServerResponse.Header or (if a response was returned
109135// at all) in error.(*googleapi.Error).Header. Use
109136// googleapi.IsNotModified to check whether the returned error was
109137// because http.StatusNotModified was returned.
109138func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
109139	gensupport.SetOptions(c.urlParams_, opts...)
109140	res, err := c.doRequest("json")
109141	if res != nil && res.StatusCode == http.StatusNotModified {
109142		if res.Body != nil {
109143			res.Body.Close()
109144		}
109145		return nil, &googleapi.Error{
109146			Code:   res.StatusCode,
109147			Header: res.Header,
109148		}
109149	}
109150	if err != nil {
109151		return nil, err
109152	}
109153	defer googleapi.CloseBody(res)
109154	if err := googleapi.CheckResponse(res); err != nil {
109155		return nil, err
109156	}
109157	ret := &OperationList{
109158		ServerResponse: googleapi.ServerResponse{
109159			Header:         res.Header,
109160			HTTPStatusCode: res.StatusCode,
109161		},
109162	}
109163	target := &ret
109164	if err := gensupport.DecodeResponse(target, res); err != nil {
109165		return nil, err
109166	}
109167	return ret, nil
109168	// {
109169	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
109170	//   "httpMethod": "GET",
109171	//   "id": "compute.regionOperations.list",
109172	//   "parameterOrder": [
109173	//     "project",
109174	//     "region"
109175	//   ],
109176	//   "parameters": {
109177	//     "filter": {
109178	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
109179	//       "location": "query",
109180	//       "type": "string"
109181	//     },
109182	//     "maxResults": {
109183	//       "default": "500",
109184	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109185	//       "format": "uint32",
109186	//       "location": "query",
109187	//       "minimum": "0",
109188	//       "type": "integer"
109189	//     },
109190	//     "orderBy": {
109191	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
109192	//       "location": "query",
109193	//       "type": "string"
109194	//     },
109195	//     "pageToken": {
109196	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109197	//       "location": "query",
109198	//       "type": "string"
109199	//     },
109200	//     "project": {
109201	//       "description": "Project ID for this request.",
109202	//       "location": "path",
109203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109204	//       "required": true,
109205	//       "type": "string"
109206	//     },
109207	//     "region": {
109208	//       "description": "Name of the region for this request.",
109209	//       "location": "path",
109210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109211	//       "required": true,
109212	//       "type": "string"
109213	//     }
109214	//   },
109215	//   "path": "{project}/regions/{region}/operations",
109216	//   "response": {
109217	//     "$ref": "OperationList"
109218	//   },
109219	//   "scopes": [
109220	//     "https://www.googleapis.com/auth/cloud-platform",
109221	//     "https://www.googleapis.com/auth/compute",
109222	//     "https://www.googleapis.com/auth/compute.readonly"
109223	//   ]
109224	// }
109225
109226}
109227
109228// Pages invokes f for each page of results.
109229// A non-nil error returned from f will halt the iteration.
109230// The provided context supersedes any context provided to the Context method.
109231func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
109232	c.ctx_ = ctx
109233	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109234	for {
109235		x, err := c.Do()
109236		if err != nil {
109237			return err
109238		}
109239		if err := f(x); err != nil {
109240			return err
109241		}
109242		if x.NextPageToken == "" {
109243			return nil
109244		}
109245		c.PageToken(x.NextPageToken)
109246	}
109247}
109248
109249// method id "compute.regionOperations.wait":
109250
109251type RegionOperationsWaitCall struct {
109252	s          *Service
109253	project    string
109254	region     string
109255	operation  string
109256	urlParams_ gensupport.URLParams
109257	ctx_       context.Context
109258	header_    http.Header
109259}
109260
109261// Wait: Waits for the specified Operation resource to return as `DONE`
109262// or for the request to approach the 2 minute deadline, and retrieves
109263// the specified Operation resource. This method differs from the `GET`
109264// method in that it waits for no more than the default deadline (2
109265// minutes) and then returns the current state of the operation, which
109266// might be `DONE` or still in progress.
109267//
109268// This method is called on a best-effort basis. Specifically:
109269// - In uncommon cases, when the server is overloaded, the request might
109270// return before the default deadline is reached, or might return after
109271// zero seconds.
109272// - If the default deadline is reached, there is no guarantee that the
109273// operation is actually done when the method returns. Be prepared to
109274// retry if the operation is not `DONE`.
109275func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
109276	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109277	c.project = project
109278	c.region = region
109279	c.operation = operation
109280	return c
109281}
109282
109283// Fields allows partial responses to be retrieved. See
109284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109285// for more information.
109286func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
109287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109288	return c
109289}
109290
109291// Context sets the context to be used in this call's Do method. Any
109292// pending HTTP request will be aborted if the provided context is
109293// canceled.
109294func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
109295	c.ctx_ = ctx
109296	return c
109297}
109298
109299// Header returns an http.Header that can be modified by the caller to
109300// add HTTP headers to the request.
109301func (c *RegionOperationsWaitCall) Header() http.Header {
109302	if c.header_ == nil {
109303		c.header_ = make(http.Header)
109304	}
109305	return c.header_
109306}
109307
109308func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
109309	reqHeaders := make(http.Header)
109310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109311	for k, v := range c.header_ {
109312		reqHeaders[k] = v
109313	}
109314	reqHeaders.Set("User-Agent", c.s.userAgent())
109315	var body io.Reader = nil
109316	c.urlParams_.Set("alt", alt)
109317	c.urlParams_.Set("prettyPrint", "false")
109318	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}/wait")
109319	urls += "?" + c.urlParams_.Encode()
109320	req, err := http.NewRequest("POST", urls, body)
109321	if err != nil {
109322		return nil, err
109323	}
109324	req.Header = reqHeaders
109325	googleapi.Expand(req.URL, map[string]string{
109326		"project":   c.project,
109327		"region":    c.region,
109328		"operation": c.operation,
109329	})
109330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109331}
109332
109333// Do executes the "compute.regionOperations.wait" call.
109334// Exactly one of *Operation or error will be non-nil. Any non-2xx
109335// status code is an error. Response headers are in either
109336// *Operation.ServerResponse.Header or (if a response was returned at
109337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109338// to check whether the returned error was because
109339// http.StatusNotModified was returned.
109340func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109341	gensupport.SetOptions(c.urlParams_, opts...)
109342	res, err := c.doRequest("json")
109343	if res != nil && res.StatusCode == http.StatusNotModified {
109344		if res.Body != nil {
109345			res.Body.Close()
109346		}
109347		return nil, &googleapi.Error{
109348			Code:   res.StatusCode,
109349			Header: res.Header,
109350		}
109351	}
109352	if err != nil {
109353		return nil, err
109354	}
109355	defer googleapi.CloseBody(res)
109356	if err := googleapi.CheckResponse(res); err != nil {
109357		return nil, err
109358	}
109359	ret := &Operation{
109360		ServerResponse: googleapi.ServerResponse{
109361			Header:         res.Header,
109362			HTTPStatusCode: res.StatusCode,
109363		},
109364	}
109365	target := &ret
109366	if err := gensupport.DecodeResponse(target, res); err != nil {
109367		return nil, err
109368	}
109369	return ret, nil
109370	// {
109371	//   "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`.",
109372	//   "httpMethod": "POST",
109373	//   "id": "compute.regionOperations.wait",
109374	//   "parameterOrder": [
109375	//     "project",
109376	//     "region",
109377	//     "operation"
109378	//   ],
109379	//   "parameters": {
109380	//     "operation": {
109381	//       "description": "Name of the Operations resource to return.",
109382	//       "location": "path",
109383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109384	//       "required": true,
109385	//       "type": "string"
109386	//     },
109387	//     "project": {
109388	//       "description": "Project ID for this request.",
109389	//       "location": "path",
109390	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109391	//       "required": true,
109392	//       "type": "string"
109393	//     },
109394	//     "region": {
109395	//       "description": "Name of the region for this request.",
109396	//       "location": "path",
109397	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109398	//       "required": true,
109399	//       "type": "string"
109400	//     }
109401	//   },
109402	//   "path": "{project}/regions/{region}/operations/{operation}/wait",
109403	//   "response": {
109404	//     "$ref": "Operation"
109405	//   },
109406	//   "scopes": [
109407	//     "https://www.googleapis.com/auth/cloud-platform",
109408	//     "https://www.googleapis.com/auth/compute",
109409	//     "https://www.googleapis.com/auth/compute.readonly"
109410	//   ]
109411	// }
109412
109413}
109414
109415// method id "compute.regionSslCertificates.delete":
109416
109417type RegionSslCertificatesDeleteCall struct {
109418	s              *Service
109419	project        string
109420	region         string
109421	sslCertificate string
109422	urlParams_     gensupport.URLParams
109423	ctx_           context.Context
109424	header_        http.Header
109425}
109426
109427// Delete: Deletes the specified SslCertificate resource in the region.
109428func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
109429	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109430	c.project = project
109431	c.region = region
109432	c.sslCertificate = sslCertificate
109433	return c
109434}
109435
109436// RequestId sets the optional parameter "requestId": An optional
109437// request ID to identify requests. Specify a unique request ID so that
109438// if you must retry your request, the server will know to ignore the
109439// request if it has already been completed.
109440//
109441// For example, consider a situation where you make an initial request
109442// and the request times out. If you make the request again with the
109443// same request ID, the server can check if original operation with the
109444// same request ID was received, and if so, will ignore the second
109445// request. This prevents clients from accidentally creating duplicate
109446// commitments.
109447//
109448// The request ID must be a valid UUID with the exception that zero UUID
109449// is not supported (00000000-0000-0000-0000-000000000000).
109450func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
109451	c.urlParams_.Set("requestId", requestId)
109452	return c
109453}
109454
109455// Fields allows partial responses to be retrieved. See
109456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109457// for more information.
109458func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
109459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109460	return c
109461}
109462
109463// Context sets the context to be used in this call's Do method. Any
109464// pending HTTP request will be aborted if the provided context is
109465// canceled.
109466func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
109467	c.ctx_ = ctx
109468	return c
109469}
109470
109471// Header returns an http.Header that can be modified by the caller to
109472// add HTTP headers to the request.
109473func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
109474	if c.header_ == nil {
109475		c.header_ = make(http.Header)
109476	}
109477	return c.header_
109478}
109479
109480func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
109481	reqHeaders := make(http.Header)
109482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109483	for k, v := range c.header_ {
109484		reqHeaders[k] = v
109485	}
109486	reqHeaders.Set("User-Agent", c.s.userAgent())
109487	var body io.Reader = nil
109488	c.urlParams_.Set("alt", alt)
109489	c.urlParams_.Set("prettyPrint", "false")
109490	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
109491	urls += "?" + c.urlParams_.Encode()
109492	req, err := http.NewRequest("DELETE", urls, body)
109493	if err != nil {
109494		return nil, err
109495	}
109496	req.Header = reqHeaders
109497	googleapi.Expand(req.URL, map[string]string{
109498		"project":        c.project,
109499		"region":         c.region,
109500		"sslCertificate": c.sslCertificate,
109501	})
109502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109503}
109504
109505// Do executes the "compute.regionSslCertificates.delete" call.
109506// Exactly one of *Operation or error will be non-nil. Any non-2xx
109507// status code is an error. Response headers are in either
109508// *Operation.ServerResponse.Header or (if a response was returned at
109509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109510// to check whether the returned error was because
109511// http.StatusNotModified was returned.
109512func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109513	gensupport.SetOptions(c.urlParams_, opts...)
109514	res, err := c.doRequest("json")
109515	if res != nil && res.StatusCode == http.StatusNotModified {
109516		if res.Body != nil {
109517			res.Body.Close()
109518		}
109519		return nil, &googleapi.Error{
109520			Code:   res.StatusCode,
109521			Header: res.Header,
109522		}
109523	}
109524	if err != nil {
109525		return nil, err
109526	}
109527	defer googleapi.CloseBody(res)
109528	if err := googleapi.CheckResponse(res); err != nil {
109529		return nil, err
109530	}
109531	ret := &Operation{
109532		ServerResponse: googleapi.ServerResponse{
109533			Header:         res.Header,
109534			HTTPStatusCode: res.StatusCode,
109535		},
109536	}
109537	target := &ret
109538	if err := gensupport.DecodeResponse(target, res); err != nil {
109539		return nil, err
109540	}
109541	return ret, nil
109542	// {
109543	//   "description": "Deletes the specified SslCertificate resource in the region.",
109544	//   "httpMethod": "DELETE",
109545	//   "id": "compute.regionSslCertificates.delete",
109546	//   "parameterOrder": [
109547	//     "project",
109548	//     "region",
109549	//     "sslCertificate"
109550	//   ],
109551	//   "parameters": {
109552	//     "project": {
109553	//       "description": "Project ID for this request.",
109554	//       "location": "path",
109555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109556	//       "required": true,
109557	//       "type": "string"
109558	//     },
109559	//     "region": {
109560	//       "description": "Name of the region scoping this request.",
109561	//       "location": "path",
109562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109563	//       "required": true,
109564	//       "type": "string"
109565	//     },
109566	//     "requestId": {
109567	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109568	//       "location": "query",
109569	//       "type": "string"
109570	//     },
109571	//     "sslCertificate": {
109572	//       "description": "Name of the SslCertificate resource to delete.",
109573	//       "location": "path",
109574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109575	//       "required": true,
109576	//       "type": "string"
109577	//     }
109578	//   },
109579	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
109580	//   "response": {
109581	//     "$ref": "Operation"
109582	//   },
109583	//   "scopes": [
109584	//     "https://www.googleapis.com/auth/cloud-platform",
109585	//     "https://www.googleapis.com/auth/compute"
109586	//   ]
109587	// }
109588
109589}
109590
109591// method id "compute.regionSslCertificates.get":
109592
109593type RegionSslCertificatesGetCall struct {
109594	s              *Service
109595	project        string
109596	region         string
109597	sslCertificate string
109598	urlParams_     gensupport.URLParams
109599	ifNoneMatch_   string
109600	ctx_           context.Context
109601	header_        http.Header
109602}
109603
109604// Get: Returns the specified SslCertificate resource in the specified
109605// region. Get a list of available SSL certificates by making a list()
109606// request.
109607func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
109608	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109609	c.project = project
109610	c.region = region
109611	c.sslCertificate = sslCertificate
109612	return c
109613}
109614
109615// Fields allows partial responses to be retrieved. See
109616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109617// for more information.
109618func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
109619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109620	return c
109621}
109622
109623// IfNoneMatch sets the optional parameter which makes the operation
109624// fail if the object's ETag matches the given value. This is useful for
109625// getting updates only after the object has changed since the last
109626// request. Use googleapi.IsNotModified to check whether the response
109627// error from Do is the result of In-None-Match.
109628func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
109629	c.ifNoneMatch_ = entityTag
109630	return c
109631}
109632
109633// Context sets the context to be used in this call's Do method. Any
109634// pending HTTP request will be aborted if the provided context is
109635// canceled.
109636func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
109637	c.ctx_ = ctx
109638	return c
109639}
109640
109641// Header returns an http.Header that can be modified by the caller to
109642// add HTTP headers to the request.
109643func (c *RegionSslCertificatesGetCall) Header() http.Header {
109644	if c.header_ == nil {
109645		c.header_ = make(http.Header)
109646	}
109647	return c.header_
109648}
109649
109650func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
109651	reqHeaders := make(http.Header)
109652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109653	for k, v := range c.header_ {
109654		reqHeaders[k] = v
109655	}
109656	reqHeaders.Set("User-Agent", c.s.userAgent())
109657	if c.ifNoneMatch_ != "" {
109658		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109659	}
109660	var body io.Reader = nil
109661	c.urlParams_.Set("alt", alt)
109662	c.urlParams_.Set("prettyPrint", "false")
109663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
109664	urls += "?" + c.urlParams_.Encode()
109665	req, err := http.NewRequest("GET", urls, body)
109666	if err != nil {
109667		return nil, err
109668	}
109669	req.Header = reqHeaders
109670	googleapi.Expand(req.URL, map[string]string{
109671		"project":        c.project,
109672		"region":         c.region,
109673		"sslCertificate": c.sslCertificate,
109674	})
109675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109676}
109677
109678// Do executes the "compute.regionSslCertificates.get" call.
109679// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
109680// status code is an error. Response headers are in either
109681// *SslCertificate.ServerResponse.Header or (if a response was returned
109682// at all) in error.(*googleapi.Error).Header. Use
109683// googleapi.IsNotModified to check whether the returned error was
109684// because http.StatusNotModified was returned.
109685func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
109686	gensupport.SetOptions(c.urlParams_, opts...)
109687	res, err := c.doRequest("json")
109688	if res != nil && res.StatusCode == http.StatusNotModified {
109689		if res.Body != nil {
109690			res.Body.Close()
109691		}
109692		return nil, &googleapi.Error{
109693			Code:   res.StatusCode,
109694			Header: res.Header,
109695		}
109696	}
109697	if err != nil {
109698		return nil, err
109699	}
109700	defer googleapi.CloseBody(res)
109701	if err := googleapi.CheckResponse(res); err != nil {
109702		return nil, err
109703	}
109704	ret := &SslCertificate{
109705		ServerResponse: googleapi.ServerResponse{
109706			Header:         res.Header,
109707			HTTPStatusCode: res.StatusCode,
109708		},
109709	}
109710	target := &ret
109711	if err := gensupport.DecodeResponse(target, res); err != nil {
109712		return nil, err
109713	}
109714	return ret, nil
109715	// {
109716	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
109717	//   "httpMethod": "GET",
109718	//   "id": "compute.regionSslCertificates.get",
109719	//   "parameterOrder": [
109720	//     "project",
109721	//     "region",
109722	//     "sslCertificate"
109723	//   ],
109724	//   "parameters": {
109725	//     "project": {
109726	//       "description": "Project ID for this request.",
109727	//       "location": "path",
109728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109729	//       "required": true,
109730	//       "type": "string"
109731	//     },
109732	//     "region": {
109733	//       "description": "Name of the region scoping this request.",
109734	//       "location": "path",
109735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109736	//       "required": true,
109737	//       "type": "string"
109738	//     },
109739	//     "sslCertificate": {
109740	//       "description": "Name of the SslCertificate resource to return.",
109741	//       "location": "path",
109742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109743	//       "required": true,
109744	//       "type": "string"
109745	//     }
109746	//   },
109747	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
109748	//   "response": {
109749	//     "$ref": "SslCertificate"
109750	//   },
109751	//   "scopes": [
109752	//     "https://www.googleapis.com/auth/cloud-platform",
109753	//     "https://www.googleapis.com/auth/compute",
109754	//     "https://www.googleapis.com/auth/compute.readonly"
109755	//   ]
109756	// }
109757
109758}
109759
109760// method id "compute.regionSslCertificates.insert":
109761
109762type RegionSslCertificatesInsertCall struct {
109763	s              *Service
109764	project        string
109765	region         string
109766	sslcertificate *SslCertificate
109767	urlParams_     gensupport.URLParams
109768	ctx_           context.Context
109769	header_        http.Header
109770}
109771
109772// Insert: Creates a SslCertificate resource in the specified project
109773// and region using the data included in the request
109774func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
109775	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109776	c.project = project
109777	c.region = region
109778	c.sslcertificate = sslcertificate
109779	return c
109780}
109781
109782// RequestId sets the optional parameter "requestId": An optional
109783// request ID to identify requests. Specify a unique request ID so that
109784// if you must retry your request, the server will know to ignore the
109785// request if it has already been completed.
109786//
109787// For example, consider a situation where you make an initial request
109788// and the request times out. If you make the request again with the
109789// same request ID, the server can check if original operation with the
109790// same request ID was received, and if so, will ignore the second
109791// request. This prevents clients from accidentally creating duplicate
109792// commitments.
109793//
109794// The request ID must be a valid UUID with the exception that zero UUID
109795// is not supported (00000000-0000-0000-0000-000000000000).
109796func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
109797	c.urlParams_.Set("requestId", requestId)
109798	return c
109799}
109800
109801// Fields allows partial responses to be retrieved. See
109802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109803// for more information.
109804func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
109805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109806	return c
109807}
109808
109809// Context sets the context to be used in this call's Do method. Any
109810// pending HTTP request will be aborted if the provided context is
109811// canceled.
109812func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
109813	c.ctx_ = ctx
109814	return c
109815}
109816
109817// Header returns an http.Header that can be modified by the caller to
109818// add HTTP headers to the request.
109819func (c *RegionSslCertificatesInsertCall) Header() http.Header {
109820	if c.header_ == nil {
109821		c.header_ = make(http.Header)
109822	}
109823	return c.header_
109824}
109825
109826func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
109827	reqHeaders := make(http.Header)
109828	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109829	for k, v := range c.header_ {
109830		reqHeaders[k] = v
109831	}
109832	reqHeaders.Set("User-Agent", c.s.userAgent())
109833	var body io.Reader = nil
109834	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
109835	if err != nil {
109836		return nil, err
109837	}
109838	reqHeaders.Set("Content-Type", "application/json")
109839	c.urlParams_.Set("alt", alt)
109840	c.urlParams_.Set("prettyPrint", "false")
109841	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
109842	urls += "?" + c.urlParams_.Encode()
109843	req, err := http.NewRequest("POST", urls, body)
109844	if err != nil {
109845		return nil, err
109846	}
109847	req.Header = reqHeaders
109848	googleapi.Expand(req.URL, map[string]string{
109849		"project": c.project,
109850		"region":  c.region,
109851	})
109852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109853}
109854
109855// Do executes the "compute.regionSslCertificates.insert" call.
109856// Exactly one of *Operation or error will be non-nil. Any non-2xx
109857// status code is an error. Response headers are in either
109858// *Operation.ServerResponse.Header or (if a response was returned at
109859// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109860// to check whether the returned error was because
109861// http.StatusNotModified was returned.
109862func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109863	gensupport.SetOptions(c.urlParams_, opts...)
109864	res, err := c.doRequest("json")
109865	if res != nil && res.StatusCode == http.StatusNotModified {
109866		if res.Body != nil {
109867			res.Body.Close()
109868		}
109869		return nil, &googleapi.Error{
109870			Code:   res.StatusCode,
109871			Header: res.Header,
109872		}
109873	}
109874	if err != nil {
109875		return nil, err
109876	}
109877	defer googleapi.CloseBody(res)
109878	if err := googleapi.CheckResponse(res); err != nil {
109879		return nil, err
109880	}
109881	ret := &Operation{
109882		ServerResponse: googleapi.ServerResponse{
109883			Header:         res.Header,
109884			HTTPStatusCode: res.StatusCode,
109885		},
109886	}
109887	target := &ret
109888	if err := gensupport.DecodeResponse(target, res); err != nil {
109889		return nil, err
109890	}
109891	return ret, nil
109892	// {
109893	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
109894	//   "httpMethod": "POST",
109895	//   "id": "compute.regionSslCertificates.insert",
109896	//   "parameterOrder": [
109897	//     "project",
109898	//     "region"
109899	//   ],
109900	//   "parameters": {
109901	//     "project": {
109902	//       "description": "Project ID for this request.",
109903	//       "location": "path",
109904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109905	//       "required": true,
109906	//       "type": "string"
109907	//     },
109908	//     "region": {
109909	//       "description": "Name of the region scoping this request.",
109910	//       "location": "path",
109911	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109912	//       "required": true,
109913	//       "type": "string"
109914	//     },
109915	//     "requestId": {
109916	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109917	//       "location": "query",
109918	//       "type": "string"
109919	//     }
109920	//   },
109921	//   "path": "{project}/regions/{region}/sslCertificates",
109922	//   "request": {
109923	//     "$ref": "SslCertificate"
109924	//   },
109925	//   "response": {
109926	//     "$ref": "Operation"
109927	//   },
109928	//   "scopes": [
109929	//     "https://www.googleapis.com/auth/cloud-platform",
109930	//     "https://www.googleapis.com/auth/compute"
109931	//   ]
109932	// }
109933
109934}
109935
109936// method id "compute.regionSslCertificates.list":
109937
109938type RegionSslCertificatesListCall struct {
109939	s            *Service
109940	project      string
109941	region       string
109942	urlParams_   gensupport.URLParams
109943	ifNoneMatch_ string
109944	ctx_         context.Context
109945	header_      http.Header
109946}
109947
109948// List: Retrieves the list of SslCertificate resources available to the
109949// specified project in the specified region.
109950func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
109951	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109952	c.project = project
109953	c.region = region
109954	return c
109955}
109956
109957// Filter sets the optional parameter "filter": A filter expression that
109958// filters resources listed in the response. The expression must specify
109959// the field name, a comparison operator, and the value that you want to
109960// use for filtering. The value must be a string, a number, or a
109961// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109962// `<`.
109963//
109964// For example, if you are filtering Compute Engine instances, you can
109965// exclude instances named `example-instance` by specifying `name !=
109966// example-instance`.
109967//
109968// You can also filter nested fields. For example, you could specify
109969// `scheduling.automaticRestart = false` to include instances only if
109970// they are not scheduled for automatic restarts. You can use filtering
109971// on nested fields to filter based on resource labels.
109972//
109973// To filter on multiple expressions, provide each separate expression
109974// within parentheses. For example: ``` (scheduling.automaticRestart =
109975// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
109976// is an `AND` expression. However, you can include `AND` and `OR`
109977// expressions explicitly. For example: ``` (cpuPlatform = "Intel
109978// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
109979// (scheduling.automaticRestart = true) ```
109980func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
109981	c.urlParams_.Set("filter", filter)
109982	return c
109983}
109984
109985// MaxResults sets the optional parameter "maxResults": The maximum
109986// number of results per page that should be returned. If the number of
109987// available results is larger than `maxResults`, Compute Engine returns
109988// a `nextPageToken` that can be used to get the next page of results in
109989// subsequent list requests. Acceptable values are `0` to `500`,
109990// inclusive. (Default: `500`)
109991func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
109992	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109993	return c
109994}
109995
109996// OrderBy sets the optional parameter "orderBy": Sorts list results by
109997// a certain order. By default, results are returned in alphanumerical
109998// order based on the resource name.
109999//
110000// You can also sort results in descending order based on the creation
110001// timestamp using `orderBy="creationTimestamp desc". This sorts
110002// results based on the `creationTimestamp` field in reverse
110003// chronological order (newest result first). Use this to sort resources
110004// like operations so that the newest operation is returned
110005// first.
110006//
110007// Currently, only sorting by `name` or `creationTimestamp desc` is
110008// supported.
110009func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
110010	c.urlParams_.Set("orderBy", orderBy)
110011	return c
110012}
110013
110014// PageToken sets the optional parameter "pageToken": Specifies a page
110015// token to use. Set `pageToken` to the `nextPageToken` returned by a
110016// previous list request to get the next page of results.
110017func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
110018	c.urlParams_.Set("pageToken", pageToken)
110019	return c
110020}
110021
110022// Fields allows partial responses to be retrieved. See
110023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110024// for more information.
110025func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
110026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110027	return c
110028}
110029
110030// IfNoneMatch sets the optional parameter which makes the operation
110031// fail if the object's ETag matches the given value. This is useful for
110032// getting updates only after the object has changed since the last
110033// request. Use googleapi.IsNotModified to check whether the response
110034// error from Do is the result of In-None-Match.
110035func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
110036	c.ifNoneMatch_ = entityTag
110037	return c
110038}
110039
110040// Context sets the context to be used in this call's Do method. Any
110041// pending HTTP request will be aborted if the provided context is
110042// canceled.
110043func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
110044	c.ctx_ = ctx
110045	return c
110046}
110047
110048// Header returns an http.Header that can be modified by the caller to
110049// add HTTP headers to the request.
110050func (c *RegionSslCertificatesListCall) Header() http.Header {
110051	if c.header_ == nil {
110052		c.header_ = make(http.Header)
110053	}
110054	return c.header_
110055}
110056
110057func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
110058	reqHeaders := make(http.Header)
110059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110060	for k, v := range c.header_ {
110061		reqHeaders[k] = v
110062	}
110063	reqHeaders.Set("User-Agent", c.s.userAgent())
110064	if c.ifNoneMatch_ != "" {
110065		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110066	}
110067	var body io.Reader = nil
110068	c.urlParams_.Set("alt", alt)
110069	c.urlParams_.Set("prettyPrint", "false")
110070	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
110071	urls += "?" + c.urlParams_.Encode()
110072	req, err := http.NewRequest("GET", urls, body)
110073	if err != nil {
110074		return nil, err
110075	}
110076	req.Header = reqHeaders
110077	googleapi.Expand(req.URL, map[string]string{
110078		"project": c.project,
110079		"region":  c.region,
110080	})
110081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110082}
110083
110084// Do executes the "compute.regionSslCertificates.list" call.
110085// Exactly one of *SslCertificateList or error will be non-nil. Any
110086// non-2xx status code is an error. Response headers are in either
110087// *SslCertificateList.ServerResponse.Header or (if a response was
110088// returned at all) in error.(*googleapi.Error).Header. Use
110089// googleapi.IsNotModified to check whether the returned error was
110090// because http.StatusNotModified was returned.
110091func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
110092	gensupport.SetOptions(c.urlParams_, opts...)
110093	res, err := c.doRequest("json")
110094	if res != nil && res.StatusCode == http.StatusNotModified {
110095		if res.Body != nil {
110096			res.Body.Close()
110097		}
110098		return nil, &googleapi.Error{
110099			Code:   res.StatusCode,
110100			Header: res.Header,
110101		}
110102	}
110103	if err != nil {
110104		return nil, err
110105	}
110106	defer googleapi.CloseBody(res)
110107	if err := googleapi.CheckResponse(res); err != nil {
110108		return nil, err
110109	}
110110	ret := &SslCertificateList{
110111		ServerResponse: googleapi.ServerResponse{
110112			Header:         res.Header,
110113			HTTPStatusCode: res.StatusCode,
110114		},
110115	}
110116	target := &ret
110117	if err := gensupport.DecodeResponse(target, res); err != nil {
110118		return nil, err
110119	}
110120	return ret, nil
110121	// {
110122	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
110123	//   "httpMethod": "GET",
110124	//   "id": "compute.regionSslCertificates.list",
110125	//   "parameterOrder": [
110126	//     "project",
110127	//     "region"
110128	//   ],
110129	//   "parameters": {
110130	//     "filter": {
110131	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110132	//       "location": "query",
110133	//       "type": "string"
110134	//     },
110135	//     "maxResults": {
110136	//       "default": "500",
110137	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110138	//       "format": "uint32",
110139	//       "location": "query",
110140	//       "minimum": "0",
110141	//       "type": "integer"
110142	//     },
110143	//     "orderBy": {
110144	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
110145	//       "location": "query",
110146	//       "type": "string"
110147	//     },
110148	//     "pageToken": {
110149	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110150	//       "location": "query",
110151	//       "type": "string"
110152	//     },
110153	//     "project": {
110154	//       "description": "Project ID for this request.",
110155	//       "location": "path",
110156	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110157	//       "required": true,
110158	//       "type": "string"
110159	//     },
110160	//     "region": {
110161	//       "description": "Name of the region scoping this request.",
110162	//       "location": "path",
110163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110164	//       "required": true,
110165	//       "type": "string"
110166	//     }
110167	//   },
110168	//   "path": "{project}/regions/{region}/sslCertificates",
110169	//   "response": {
110170	//     "$ref": "SslCertificateList"
110171	//   },
110172	//   "scopes": [
110173	//     "https://www.googleapis.com/auth/cloud-platform",
110174	//     "https://www.googleapis.com/auth/compute",
110175	//     "https://www.googleapis.com/auth/compute.readonly"
110176	//   ]
110177	// }
110178
110179}
110180
110181// Pages invokes f for each page of results.
110182// A non-nil error returned from f will halt the iteration.
110183// The provided context supersedes any context provided to the Context method.
110184func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
110185	c.ctx_ = ctx
110186	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110187	for {
110188		x, err := c.Do()
110189		if err != nil {
110190			return err
110191		}
110192		if err := f(x); err != nil {
110193			return err
110194		}
110195		if x.NextPageToken == "" {
110196			return nil
110197		}
110198		c.PageToken(x.NextPageToken)
110199	}
110200}
110201
110202// method id "compute.regionTargetHttpProxies.delete":
110203
110204type RegionTargetHttpProxiesDeleteCall struct {
110205	s               *Service
110206	project         string
110207	region          string
110208	targetHttpProxy string
110209	urlParams_      gensupport.URLParams
110210	ctx_            context.Context
110211	header_         http.Header
110212}
110213
110214// Delete: Deletes the specified TargetHttpProxy resource.
110215func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
110216	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110217	c.project = project
110218	c.region = region
110219	c.targetHttpProxy = targetHttpProxy
110220	return c
110221}
110222
110223// RequestId sets the optional parameter "requestId": An optional
110224// request ID to identify requests. Specify a unique request ID so that
110225// if you must retry your request, the server will know to ignore the
110226// request if it has already been completed.
110227//
110228// For example, consider a situation where you make an initial request
110229// and the request times out. If you make the request again with the
110230// same request ID, the server can check if original operation with the
110231// same request ID was received, and if so, will ignore the second
110232// request. This prevents clients from accidentally creating duplicate
110233// commitments.
110234//
110235// The request ID must be a valid UUID with the exception that zero UUID
110236// is not supported (00000000-0000-0000-0000-000000000000).
110237func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
110238	c.urlParams_.Set("requestId", requestId)
110239	return c
110240}
110241
110242// Fields allows partial responses to be retrieved. See
110243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110244// for more information.
110245func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
110246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110247	return c
110248}
110249
110250// Context sets the context to be used in this call's Do method. Any
110251// pending HTTP request will be aborted if the provided context is
110252// canceled.
110253func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
110254	c.ctx_ = ctx
110255	return c
110256}
110257
110258// Header returns an http.Header that can be modified by the caller to
110259// add HTTP headers to the request.
110260func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
110261	if c.header_ == nil {
110262		c.header_ = make(http.Header)
110263	}
110264	return c.header_
110265}
110266
110267func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
110268	reqHeaders := make(http.Header)
110269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110270	for k, v := range c.header_ {
110271		reqHeaders[k] = v
110272	}
110273	reqHeaders.Set("User-Agent", c.s.userAgent())
110274	var body io.Reader = nil
110275	c.urlParams_.Set("alt", alt)
110276	c.urlParams_.Set("prettyPrint", "false")
110277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
110278	urls += "?" + c.urlParams_.Encode()
110279	req, err := http.NewRequest("DELETE", urls, body)
110280	if err != nil {
110281		return nil, err
110282	}
110283	req.Header = reqHeaders
110284	googleapi.Expand(req.URL, map[string]string{
110285		"project":         c.project,
110286		"region":          c.region,
110287		"targetHttpProxy": c.targetHttpProxy,
110288	})
110289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110290}
110291
110292// Do executes the "compute.regionTargetHttpProxies.delete" call.
110293// Exactly one of *Operation or error will be non-nil. Any non-2xx
110294// status code is an error. Response headers are in either
110295// *Operation.ServerResponse.Header or (if a response was returned at
110296// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110297// to check whether the returned error was because
110298// http.StatusNotModified was returned.
110299func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110300	gensupport.SetOptions(c.urlParams_, opts...)
110301	res, err := c.doRequest("json")
110302	if res != nil && res.StatusCode == http.StatusNotModified {
110303		if res.Body != nil {
110304			res.Body.Close()
110305		}
110306		return nil, &googleapi.Error{
110307			Code:   res.StatusCode,
110308			Header: res.Header,
110309		}
110310	}
110311	if err != nil {
110312		return nil, err
110313	}
110314	defer googleapi.CloseBody(res)
110315	if err := googleapi.CheckResponse(res); err != nil {
110316		return nil, err
110317	}
110318	ret := &Operation{
110319		ServerResponse: googleapi.ServerResponse{
110320			Header:         res.Header,
110321			HTTPStatusCode: res.StatusCode,
110322		},
110323	}
110324	target := &ret
110325	if err := gensupport.DecodeResponse(target, res); err != nil {
110326		return nil, err
110327	}
110328	return ret, nil
110329	// {
110330	//   "description": "Deletes the specified TargetHttpProxy resource.",
110331	//   "httpMethod": "DELETE",
110332	//   "id": "compute.regionTargetHttpProxies.delete",
110333	//   "parameterOrder": [
110334	//     "project",
110335	//     "region",
110336	//     "targetHttpProxy"
110337	//   ],
110338	//   "parameters": {
110339	//     "project": {
110340	//       "description": "Project ID for this request.",
110341	//       "location": "path",
110342	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110343	//       "required": true,
110344	//       "type": "string"
110345	//     },
110346	//     "region": {
110347	//       "description": "Name of the region scoping this request.",
110348	//       "location": "path",
110349	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110350	//       "required": true,
110351	//       "type": "string"
110352	//     },
110353	//     "requestId": {
110354	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110355	//       "location": "query",
110356	//       "type": "string"
110357	//     },
110358	//     "targetHttpProxy": {
110359	//       "description": "Name of the TargetHttpProxy resource to delete.",
110360	//       "location": "path",
110361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110362	//       "required": true,
110363	//       "type": "string"
110364	//     }
110365	//   },
110366	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
110367	//   "response": {
110368	//     "$ref": "Operation"
110369	//   },
110370	//   "scopes": [
110371	//     "https://www.googleapis.com/auth/cloud-platform",
110372	//     "https://www.googleapis.com/auth/compute"
110373	//   ]
110374	// }
110375
110376}
110377
110378// method id "compute.regionTargetHttpProxies.get":
110379
110380type RegionTargetHttpProxiesGetCall struct {
110381	s               *Service
110382	project         string
110383	region          string
110384	targetHttpProxy string
110385	urlParams_      gensupport.URLParams
110386	ifNoneMatch_    string
110387	ctx_            context.Context
110388	header_         http.Header
110389}
110390
110391// Get: Returns the specified TargetHttpProxy resource in the specified
110392// region. Gets a list of available target HTTP proxies by making a
110393// list() request.
110394func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
110395	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110396	c.project = project
110397	c.region = region
110398	c.targetHttpProxy = targetHttpProxy
110399	return c
110400}
110401
110402// Fields allows partial responses to be retrieved. See
110403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110404// for more information.
110405func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
110406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110407	return c
110408}
110409
110410// IfNoneMatch sets the optional parameter which makes the operation
110411// fail if the object's ETag matches the given value. This is useful for
110412// getting updates only after the object has changed since the last
110413// request. Use googleapi.IsNotModified to check whether the response
110414// error from Do is the result of In-None-Match.
110415func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
110416	c.ifNoneMatch_ = entityTag
110417	return c
110418}
110419
110420// Context sets the context to be used in this call's Do method. Any
110421// pending HTTP request will be aborted if the provided context is
110422// canceled.
110423func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
110424	c.ctx_ = ctx
110425	return c
110426}
110427
110428// Header returns an http.Header that can be modified by the caller to
110429// add HTTP headers to the request.
110430func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
110431	if c.header_ == nil {
110432		c.header_ = make(http.Header)
110433	}
110434	return c.header_
110435}
110436
110437func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
110438	reqHeaders := make(http.Header)
110439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110440	for k, v := range c.header_ {
110441		reqHeaders[k] = v
110442	}
110443	reqHeaders.Set("User-Agent", c.s.userAgent())
110444	if c.ifNoneMatch_ != "" {
110445		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110446	}
110447	var body io.Reader = nil
110448	c.urlParams_.Set("alt", alt)
110449	c.urlParams_.Set("prettyPrint", "false")
110450	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
110451	urls += "?" + c.urlParams_.Encode()
110452	req, err := http.NewRequest("GET", urls, body)
110453	if err != nil {
110454		return nil, err
110455	}
110456	req.Header = reqHeaders
110457	googleapi.Expand(req.URL, map[string]string{
110458		"project":         c.project,
110459		"region":          c.region,
110460		"targetHttpProxy": c.targetHttpProxy,
110461	})
110462	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110463}
110464
110465// Do executes the "compute.regionTargetHttpProxies.get" call.
110466// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
110467// status code is an error. Response headers are in either
110468// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
110469// at all) in error.(*googleapi.Error).Header. Use
110470// googleapi.IsNotModified to check whether the returned error was
110471// because http.StatusNotModified was returned.
110472func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
110473	gensupport.SetOptions(c.urlParams_, opts...)
110474	res, err := c.doRequest("json")
110475	if res != nil && res.StatusCode == http.StatusNotModified {
110476		if res.Body != nil {
110477			res.Body.Close()
110478		}
110479		return nil, &googleapi.Error{
110480			Code:   res.StatusCode,
110481			Header: res.Header,
110482		}
110483	}
110484	if err != nil {
110485		return nil, err
110486	}
110487	defer googleapi.CloseBody(res)
110488	if err := googleapi.CheckResponse(res); err != nil {
110489		return nil, err
110490	}
110491	ret := &TargetHttpProxy{
110492		ServerResponse: googleapi.ServerResponse{
110493			Header:         res.Header,
110494			HTTPStatusCode: res.StatusCode,
110495		},
110496	}
110497	target := &ret
110498	if err := gensupport.DecodeResponse(target, res); err != nil {
110499		return nil, err
110500	}
110501	return ret, nil
110502	// {
110503	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
110504	//   "httpMethod": "GET",
110505	//   "id": "compute.regionTargetHttpProxies.get",
110506	//   "parameterOrder": [
110507	//     "project",
110508	//     "region",
110509	//     "targetHttpProxy"
110510	//   ],
110511	//   "parameters": {
110512	//     "project": {
110513	//       "description": "Project ID for this request.",
110514	//       "location": "path",
110515	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110516	//       "required": true,
110517	//       "type": "string"
110518	//     },
110519	//     "region": {
110520	//       "description": "Name of the region scoping this request.",
110521	//       "location": "path",
110522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110523	//       "required": true,
110524	//       "type": "string"
110525	//     },
110526	//     "targetHttpProxy": {
110527	//       "description": "Name of the TargetHttpProxy resource to return.",
110528	//       "location": "path",
110529	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110530	//       "required": true,
110531	//       "type": "string"
110532	//     }
110533	//   },
110534	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
110535	//   "response": {
110536	//     "$ref": "TargetHttpProxy"
110537	//   },
110538	//   "scopes": [
110539	//     "https://www.googleapis.com/auth/cloud-platform",
110540	//     "https://www.googleapis.com/auth/compute",
110541	//     "https://www.googleapis.com/auth/compute.readonly"
110542	//   ]
110543	// }
110544
110545}
110546
110547// method id "compute.regionTargetHttpProxies.insert":
110548
110549type RegionTargetHttpProxiesInsertCall struct {
110550	s               *Service
110551	project         string
110552	region          string
110553	targethttpproxy *TargetHttpProxy
110554	urlParams_      gensupport.URLParams
110555	ctx_            context.Context
110556	header_         http.Header
110557}
110558
110559// Insert: Creates a TargetHttpProxy resource in the specified project
110560// and region using the data included in the request.
110561func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
110562	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110563	c.project = project
110564	c.region = region
110565	c.targethttpproxy = targethttpproxy
110566	return c
110567}
110568
110569// RequestId sets the optional parameter "requestId": An optional
110570// request ID to identify requests. Specify a unique request ID so that
110571// if you must retry your request, the server will know to ignore the
110572// request if it has already been completed.
110573//
110574// For example, consider a situation where you make an initial request
110575// and the request times out. If you make the request again with the
110576// same request ID, the server can check if original operation with the
110577// same request ID was received, and if so, will ignore the second
110578// request. This prevents clients from accidentally creating duplicate
110579// commitments.
110580//
110581// The request ID must be a valid UUID with the exception that zero UUID
110582// is not supported (00000000-0000-0000-0000-000000000000).
110583func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
110584	c.urlParams_.Set("requestId", requestId)
110585	return c
110586}
110587
110588// Fields allows partial responses to be retrieved. See
110589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110590// for more information.
110591func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
110592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110593	return c
110594}
110595
110596// Context sets the context to be used in this call's Do method. Any
110597// pending HTTP request will be aborted if the provided context is
110598// canceled.
110599func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
110600	c.ctx_ = ctx
110601	return c
110602}
110603
110604// Header returns an http.Header that can be modified by the caller to
110605// add HTTP headers to the request.
110606func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
110607	if c.header_ == nil {
110608		c.header_ = make(http.Header)
110609	}
110610	return c.header_
110611}
110612
110613func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
110614	reqHeaders := make(http.Header)
110615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110616	for k, v := range c.header_ {
110617		reqHeaders[k] = v
110618	}
110619	reqHeaders.Set("User-Agent", c.s.userAgent())
110620	var body io.Reader = nil
110621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
110622	if err != nil {
110623		return nil, err
110624	}
110625	reqHeaders.Set("Content-Type", "application/json")
110626	c.urlParams_.Set("alt", alt)
110627	c.urlParams_.Set("prettyPrint", "false")
110628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
110629	urls += "?" + c.urlParams_.Encode()
110630	req, err := http.NewRequest("POST", urls, body)
110631	if err != nil {
110632		return nil, err
110633	}
110634	req.Header = reqHeaders
110635	googleapi.Expand(req.URL, map[string]string{
110636		"project": c.project,
110637		"region":  c.region,
110638	})
110639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110640}
110641
110642// Do executes the "compute.regionTargetHttpProxies.insert" call.
110643// Exactly one of *Operation or error will be non-nil. Any non-2xx
110644// status code is an error. Response headers are in either
110645// *Operation.ServerResponse.Header or (if a response was returned at
110646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110647// to check whether the returned error was because
110648// http.StatusNotModified was returned.
110649func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110650	gensupport.SetOptions(c.urlParams_, opts...)
110651	res, err := c.doRequest("json")
110652	if res != nil && res.StatusCode == http.StatusNotModified {
110653		if res.Body != nil {
110654			res.Body.Close()
110655		}
110656		return nil, &googleapi.Error{
110657			Code:   res.StatusCode,
110658			Header: res.Header,
110659		}
110660	}
110661	if err != nil {
110662		return nil, err
110663	}
110664	defer googleapi.CloseBody(res)
110665	if err := googleapi.CheckResponse(res); err != nil {
110666		return nil, err
110667	}
110668	ret := &Operation{
110669		ServerResponse: googleapi.ServerResponse{
110670			Header:         res.Header,
110671			HTTPStatusCode: res.StatusCode,
110672		},
110673	}
110674	target := &ret
110675	if err := gensupport.DecodeResponse(target, res); err != nil {
110676		return nil, err
110677	}
110678	return ret, nil
110679	// {
110680	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
110681	//   "httpMethod": "POST",
110682	//   "id": "compute.regionTargetHttpProxies.insert",
110683	//   "parameterOrder": [
110684	//     "project",
110685	//     "region"
110686	//   ],
110687	//   "parameters": {
110688	//     "project": {
110689	//       "description": "Project ID for this request.",
110690	//       "location": "path",
110691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110692	//       "required": true,
110693	//       "type": "string"
110694	//     },
110695	//     "region": {
110696	//       "description": "Name of the region scoping this request.",
110697	//       "location": "path",
110698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110699	//       "required": true,
110700	//       "type": "string"
110701	//     },
110702	//     "requestId": {
110703	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110704	//       "location": "query",
110705	//       "type": "string"
110706	//     }
110707	//   },
110708	//   "path": "{project}/regions/{region}/targetHttpProxies",
110709	//   "request": {
110710	//     "$ref": "TargetHttpProxy"
110711	//   },
110712	//   "response": {
110713	//     "$ref": "Operation"
110714	//   },
110715	//   "scopes": [
110716	//     "https://www.googleapis.com/auth/cloud-platform",
110717	//     "https://www.googleapis.com/auth/compute"
110718	//   ]
110719	// }
110720
110721}
110722
110723// method id "compute.regionTargetHttpProxies.list":
110724
110725type RegionTargetHttpProxiesListCall struct {
110726	s            *Service
110727	project      string
110728	region       string
110729	urlParams_   gensupport.URLParams
110730	ifNoneMatch_ string
110731	ctx_         context.Context
110732	header_      http.Header
110733}
110734
110735// List: Retrieves the list of TargetHttpProxy resources available to
110736// the specified project in the specified region.
110737func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
110738	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110739	c.project = project
110740	c.region = region
110741	return c
110742}
110743
110744// Filter sets the optional parameter "filter": A filter expression that
110745// filters resources listed in the response. The expression must specify
110746// the field name, a comparison operator, and the value that you want to
110747// use for filtering. The value must be a string, a number, or a
110748// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110749// `<`.
110750//
110751// For example, if you are filtering Compute Engine instances, you can
110752// exclude instances named `example-instance` by specifying `name !=
110753// example-instance`.
110754//
110755// You can also filter nested fields. For example, you could specify
110756// `scheduling.automaticRestart = false` to include instances only if
110757// they are not scheduled for automatic restarts. You can use filtering
110758// on nested fields to filter based on resource labels.
110759//
110760// To filter on multiple expressions, provide each separate expression
110761// within parentheses. For example: ``` (scheduling.automaticRestart =
110762// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110763// is an `AND` expression. However, you can include `AND` and `OR`
110764// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110765// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110766// (scheduling.automaticRestart = true) ```
110767func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
110768	c.urlParams_.Set("filter", filter)
110769	return c
110770}
110771
110772// MaxResults sets the optional parameter "maxResults": The maximum
110773// number of results per page that should be returned. If the number of
110774// available results is larger than `maxResults`, Compute Engine returns
110775// a `nextPageToken` that can be used to get the next page of results in
110776// subsequent list requests. Acceptable values are `0` to `500`,
110777// inclusive. (Default: `500`)
110778func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
110779	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110780	return c
110781}
110782
110783// OrderBy sets the optional parameter "orderBy": Sorts list results by
110784// a certain order. By default, results are returned in alphanumerical
110785// order based on the resource name.
110786//
110787// You can also sort results in descending order based on the creation
110788// timestamp using `orderBy="creationTimestamp desc". This sorts
110789// results based on the `creationTimestamp` field in reverse
110790// chronological order (newest result first). Use this to sort resources
110791// like operations so that the newest operation is returned
110792// first.
110793//
110794// Currently, only sorting by `name` or `creationTimestamp desc` is
110795// supported.
110796func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
110797	c.urlParams_.Set("orderBy", orderBy)
110798	return c
110799}
110800
110801// PageToken sets the optional parameter "pageToken": Specifies a page
110802// token to use. Set `pageToken` to the `nextPageToken` returned by a
110803// previous list request to get the next page of results.
110804func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
110805	c.urlParams_.Set("pageToken", pageToken)
110806	return c
110807}
110808
110809// Fields allows partial responses to be retrieved. See
110810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110811// for more information.
110812func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
110813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110814	return c
110815}
110816
110817// IfNoneMatch sets the optional parameter which makes the operation
110818// fail if the object's ETag matches the given value. This is useful for
110819// getting updates only after the object has changed since the last
110820// request. Use googleapi.IsNotModified to check whether the response
110821// error from Do is the result of In-None-Match.
110822func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
110823	c.ifNoneMatch_ = entityTag
110824	return c
110825}
110826
110827// Context sets the context to be used in this call's Do method. Any
110828// pending HTTP request will be aborted if the provided context is
110829// canceled.
110830func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
110831	c.ctx_ = ctx
110832	return c
110833}
110834
110835// Header returns an http.Header that can be modified by the caller to
110836// add HTTP headers to the request.
110837func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
110838	if c.header_ == nil {
110839		c.header_ = make(http.Header)
110840	}
110841	return c.header_
110842}
110843
110844func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
110845	reqHeaders := make(http.Header)
110846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110847	for k, v := range c.header_ {
110848		reqHeaders[k] = v
110849	}
110850	reqHeaders.Set("User-Agent", c.s.userAgent())
110851	if c.ifNoneMatch_ != "" {
110852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110853	}
110854	var body io.Reader = nil
110855	c.urlParams_.Set("alt", alt)
110856	c.urlParams_.Set("prettyPrint", "false")
110857	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
110858	urls += "?" + c.urlParams_.Encode()
110859	req, err := http.NewRequest("GET", urls, body)
110860	if err != nil {
110861		return nil, err
110862	}
110863	req.Header = reqHeaders
110864	googleapi.Expand(req.URL, map[string]string{
110865		"project": c.project,
110866		"region":  c.region,
110867	})
110868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110869}
110870
110871// Do executes the "compute.regionTargetHttpProxies.list" call.
110872// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
110873// non-2xx status code is an error. Response headers are in either
110874// *TargetHttpProxyList.ServerResponse.Header or (if a response was
110875// returned at all) in error.(*googleapi.Error).Header. Use
110876// googleapi.IsNotModified to check whether the returned error was
110877// because http.StatusNotModified was returned.
110878func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
110879	gensupport.SetOptions(c.urlParams_, opts...)
110880	res, err := c.doRequest("json")
110881	if res != nil && res.StatusCode == http.StatusNotModified {
110882		if res.Body != nil {
110883			res.Body.Close()
110884		}
110885		return nil, &googleapi.Error{
110886			Code:   res.StatusCode,
110887			Header: res.Header,
110888		}
110889	}
110890	if err != nil {
110891		return nil, err
110892	}
110893	defer googleapi.CloseBody(res)
110894	if err := googleapi.CheckResponse(res); err != nil {
110895		return nil, err
110896	}
110897	ret := &TargetHttpProxyList{
110898		ServerResponse: googleapi.ServerResponse{
110899			Header:         res.Header,
110900			HTTPStatusCode: res.StatusCode,
110901		},
110902	}
110903	target := &ret
110904	if err := gensupport.DecodeResponse(target, res); err != nil {
110905		return nil, err
110906	}
110907	return ret, nil
110908	// {
110909	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
110910	//   "httpMethod": "GET",
110911	//   "id": "compute.regionTargetHttpProxies.list",
110912	//   "parameterOrder": [
110913	//     "project",
110914	//     "region"
110915	//   ],
110916	//   "parameters": {
110917	//     "filter": {
110918	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110919	//       "location": "query",
110920	//       "type": "string"
110921	//     },
110922	//     "maxResults": {
110923	//       "default": "500",
110924	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110925	//       "format": "uint32",
110926	//       "location": "query",
110927	//       "minimum": "0",
110928	//       "type": "integer"
110929	//     },
110930	//     "orderBy": {
110931	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
110932	//       "location": "query",
110933	//       "type": "string"
110934	//     },
110935	//     "pageToken": {
110936	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110937	//       "location": "query",
110938	//       "type": "string"
110939	//     },
110940	//     "project": {
110941	//       "description": "Project ID for this request.",
110942	//       "location": "path",
110943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110944	//       "required": true,
110945	//       "type": "string"
110946	//     },
110947	//     "region": {
110948	//       "description": "Name of the region scoping this request.",
110949	//       "location": "path",
110950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110951	//       "required": true,
110952	//       "type": "string"
110953	//     }
110954	//   },
110955	//   "path": "{project}/regions/{region}/targetHttpProxies",
110956	//   "response": {
110957	//     "$ref": "TargetHttpProxyList"
110958	//   },
110959	//   "scopes": [
110960	//     "https://www.googleapis.com/auth/cloud-platform",
110961	//     "https://www.googleapis.com/auth/compute",
110962	//     "https://www.googleapis.com/auth/compute.readonly"
110963	//   ]
110964	// }
110965
110966}
110967
110968// Pages invokes f for each page of results.
110969// A non-nil error returned from f will halt the iteration.
110970// The provided context supersedes any context provided to the Context method.
110971func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
110972	c.ctx_ = ctx
110973	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110974	for {
110975		x, err := c.Do()
110976		if err != nil {
110977			return err
110978		}
110979		if err := f(x); err != nil {
110980			return err
110981		}
110982		if x.NextPageToken == "" {
110983			return nil
110984		}
110985		c.PageToken(x.NextPageToken)
110986	}
110987}
110988
110989// method id "compute.regionTargetHttpProxies.setUrlMap":
110990
110991type RegionTargetHttpProxiesSetUrlMapCall struct {
110992	s               *Service
110993	project         string
110994	region          string
110995	targetHttpProxy string
110996	urlmapreference *UrlMapReference
110997	urlParams_      gensupport.URLParams
110998	ctx_            context.Context
110999	header_         http.Header
111000}
111001
111002// SetUrlMap: Changes the URL map for TargetHttpProxy.
111003func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
111004	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111005	c.project = project
111006	c.region = region
111007	c.targetHttpProxy = targetHttpProxy
111008	c.urlmapreference = urlmapreference
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 *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
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 *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
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 *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
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 *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
111050	if c.header_ == nil {
111051		c.header_ = make(http.Header)
111052	}
111053	return c.header_
111054}
111055
111056func (c *RegionTargetHttpProxiesSetUrlMapCall) 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	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
111065	if err != nil {
111066		return nil, err
111067	}
111068	reqHeaders.Set("Content-Type", "application/json")
111069	c.urlParams_.Set("alt", alt)
111070	c.urlParams_.Set("prettyPrint", "false")
111071	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
111072	urls += "?" + c.urlParams_.Encode()
111073	req, err := http.NewRequest("POST", urls, body)
111074	if err != nil {
111075		return nil, err
111076	}
111077	req.Header = reqHeaders
111078	googleapi.Expand(req.URL, map[string]string{
111079		"project":         c.project,
111080		"region":          c.region,
111081		"targetHttpProxy": c.targetHttpProxy,
111082	})
111083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111084}
111085
111086// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
111087// Exactly one of *Operation or error will be non-nil. Any non-2xx
111088// status code is an error. Response headers are in either
111089// *Operation.ServerResponse.Header or (if a response was returned at
111090// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111091// to check whether the returned error was because
111092// http.StatusNotModified was returned.
111093func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111094	gensupport.SetOptions(c.urlParams_, opts...)
111095	res, err := c.doRequest("json")
111096	if res != nil && res.StatusCode == http.StatusNotModified {
111097		if res.Body != nil {
111098			res.Body.Close()
111099		}
111100		return nil, &googleapi.Error{
111101			Code:   res.StatusCode,
111102			Header: res.Header,
111103		}
111104	}
111105	if err != nil {
111106		return nil, err
111107	}
111108	defer googleapi.CloseBody(res)
111109	if err := googleapi.CheckResponse(res); err != nil {
111110		return nil, err
111111	}
111112	ret := &Operation{
111113		ServerResponse: googleapi.ServerResponse{
111114			Header:         res.Header,
111115			HTTPStatusCode: res.StatusCode,
111116		},
111117	}
111118	target := &ret
111119	if err := gensupport.DecodeResponse(target, res); err != nil {
111120		return nil, err
111121	}
111122	return ret, nil
111123	// {
111124	//   "description": "Changes the URL map for TargetHttpProxy.",
111125	//   "httpMethod": "POST",
111126	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
111127	//   "parameterOrder": [
111128	//     "project",
111129	//     "region",
111130	//     "targetHttpProxy"
111131	//   ],
111132	//   "parameters": {
111133	//     "project": {
111134	//       "description": "Project ID for this request.",
111135	//       "location": "path",
111136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111137	//       "required": true,
111138	//       "type": "string"
111139	//     },
111140	//     "region": {
111141	//       "description": "Name of the region scoping this request.",
111142	//       "location": "path",
111143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111144	//       "required": true,
111145	//       "type": "string"
111146	//     },
111147	//     "requestId": {
111148	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111149	//       "location": "query",
111150	//       "type": "string"
111151	//     },
111152	//     "targetHttpProxy": {
111153	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
111154	//       "location": "path",
111155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111156	//       "required": true,
111157	//       "type": "string"
111158	//     }
111159	//   },
111160	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
111161	//   "request": {
111162	//     "$ref": "UrlMapReference"
111163	//   },
111164	//   "response": {
111165	//     "$ref": "Operation"
111166	//   },
111167	//   "scopes": [
111168	//     "https://www.googleapis.com/auth/cloud-platform",
111169	//     "https://www.googleapis.com/auth/compute"
111170	//   ]
111171	// }
111172
111173}
111174
111175// method id "compute.regionTargetHttpsProxies.delete":
111176
111177type RegionTargetHttpsProxiesDeleteCall struct {
111178	s                *Service
111179	project          string
111180	region           string
111181	targetHttpsProxy string
111182	urlParams_       gensupport.URLParams
111183	ctx_             context.Context
111184	header_          http.Header
111185}
111186
111187// Delete: Deletes the specified TargetHttpsProxy resource.
111188func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
111189	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111190	c.project = project
111191	c.region = region
111192	c.targetHttpsProxy = targetHttpsProxy
111193	return c
111194}
111195
111196// RequestId sets the optional parameter "requestId": An optional
111197// request ID to identify requests. Specify a unique request ID so that
111198// if you must retry your request, the server will know to ignore the
111199// request if it has already been completed.
111200//
111201// For example, consider a situation where you make an initial request
111202// and the request times out. If you make the request again with the
111203// same request ID, the server can check if original operation with the
111204// same request ID was received, and if so, will ignore the second
111205// request. This prevents clients from accidentally creating duplicate
111206// commitments.
111207//
111208// The request ID must be a valid UUID with the exception that zero UUID
111209// is not supported (00000000-0000-0000-0000-000000000000).
111210func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
111211	c.urlParams_.Set("requestId", requestId)
111212	return c
111213}
111214
111215// Fields allows partial responses to be retrieved. See
111216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111217// for more information.
111218func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
111219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111220	return c
111221}
111222
111223// Context sets the context to be used in this call's Do method. Any
111224// pending HTTP request will be aborted if the provided context is
111225// canceled.
111226func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
111227	c.ctx_ = ctx
111228	return c
111229}
111230
111231// Header returns an http.Header that can be modified by the caller to
111232// add HTTP headers to the request.
111233func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
111234	if c.header_ == nil {
111235		c.header_ = make(http.Header)
111236	}
111237	return c.header_
111238}
111239
111240func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
111241	reqHeaders := make(http.Header)
111242	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111243	for k, v := range c.header_ {
111244		reqHeaders[k] = v
111245	}
111246	reqHeaders.Set("User-Agent", c.s.userAgent())
111247	var body io.Reader = nil
111248	c.urlParams_.Set("alt", alt)
111249	c.urlParams_.Set("prettyPrint", "false")
111250	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
111251	urls += "?" + c.urlParams_.Encode()
111252	req, err := http.NewRequest("DELETE", urls, body)
111253	if err != nil {
111254		return nil, err
111255	}
111256	req.Header = reqHeaders
111257	googleapi.Expand(req.URL, map[string]string{
111258		"project":          c.project,
111259		"region":           c.region,
111260		"targetHttpsProxy": c.targetHttpsProxy,
111261	})
111262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111263}
111264
111265// Do executes the "compute.regionTargetHttpsProxies.delete" call.
111266// Exactly one of *Operation or error will be non-nil. Any non-2xx
111267// status code is an error. Response headers are in either
111268// *Operation.ServerResponse.Header or (if a response was returned at
111269// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111270// to check whether the returned error was because
111271// http.StatusNotModified was returned.
111272func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111273	gensupport.SetOptions(c.urlParams_, opts...)
111274	res, err := c.doRequest("json")
111275	if res != nil && res.StatusCode == http.StatusNotModified {
111276		if res.Body != nil {
111277			res.Body.Close()
111278		}
111279		return nil, &googleapi.Error{
111280			Code:   res.StatusCode,
111281			Header: res.Header,
111282		}
111283	}
111284	if err != nil {
111285		return nil, err
111286	}
111287	defer googleapi.CloseBody(res)
111288	if err := googleapi.CheckResponse(res); err != nil {
111289		return nil, err
111290	}
111291	ret := &Operation{
111292		ServerResponse: googleapi.ServerResponse{
111293			Header:         res.Header,
111294			HTTPStatusCode: res.StatusCode,
111295		},
111296	}
111297	target := &ret
111298	if err := gensupport.DecodeResponse(target, res); err != nil {
111299		return nil, err
111300	}
111301	return ret, nil
111302	// {
111303	//   "description": "Deletes the specified TargetHttpsProxy resource.",
111304	//   "httpMethod": "DELETE",
111305	//   "id": "compute.regionTargetHttpsProxies.delete",
111306	//   "parameterOrder": [
111307	//     "project",
111308	//     "region",
111309	//     "targetHttpsProxy"
111310	//   ],
111311	//   "parameters": {
111312	//     "project": {
111313	//       "description": "Project ID for this request.",
111314	//       "location": "path",
111315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111316	//       "required": true,
111317	//       "type": "string"
111318	//     },
111319	//     "region": {
111320	//       "description": "Name of the region scoping this request.",
111321	//       "location": "path",
111322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111323	//       "required": true,
111324	//       "type": "string"
111325	//     },
111326	//     "requestId": {
111327	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111328	//       "location": "query",
111329	//       "type": "string"
111330	//     },
111331	//     "targetHttpsProxy": {
111332	//       "description": "Name of the TargetHttpsProxy resource to delete.",
111333	//       "location": "path",
111334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111335	//       "required": true,
111336	//       "type": "string"
111337	//     }
111338	//   },
111339	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
111340	//   "response": {
111341	//     "$ref": "Operation"
111342	//   },
111343	//   "scopes": [
111344	//     "https://www.googleapis.com/auth/cloud-platform",
111345	//     "https://www.googleapis.com/auth/compute"
111346	//   ]
111347	// }
111348
111349}
111350
111351// method id "compute.regionTargetHttpsProxies.get":
111352
111353type RegionTargetHttpsProxiesGetCall struct {
111354	s                *Service
111355	project          string
111356	region           string
111357	targetHttpsProxy string
111358	urlParams_       gensupport.URLParams
111359	ifNoneMatch_     string
111360	ctx_             context.Context
111361	header_          http.Header
111362}
111363
111364// Get: Returns the specified TargetHttpsProxy resource in the specified
111365// region. Gets a list of available target HTTP proxies by making a
111366// list() request.
111367func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
111368	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111369	c.project = project
111370	c.region = region
111371	c.targetHttpsProxy = targetHttpsProxy
111372	return c
111373}
111374
111375// Fields allows partial responses to be retrieved. See
111376// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111377// for more information.
111378func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
111379	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111380	return c
111381}
111382
111383// IfNoneMatch sets the optional parameter which makes the operation
111384// fail if the object's ETag matches the given value. This is useful for
111385// getting updates only after the object has changed since the last
111386// request. Use googleapi.IsNotModified to check whether the response
111387// error from Do is the result of In-None-Match.
111388func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
111389	c.ifNoneMatch_ = entityTag
111390	return c
111391}
111392
111393// Context sets the context to be used in this call's Do method. Any
111394// pending HTTP request will be aborted if the provided context is
111395// canceled.
111396func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
111397	c.ctx_ = ctx
111398	return c
111399}
111400
111401// Header returns an http.Header that can be modified by the caller to
111402// add HTTP headers to the request.
111403func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
111404	if c.header_ == nil {
111405		c.header_ = make(http.Header)
111406	}
111407	return c.header_
111408}
111409
111410func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
111411	reqHeaders := make(http.Header)
111412	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111413	for k, v := range c.header_ {
111414		reqHeaders[k] = v
111415	}
111416	reqHeaders.Set("User-Agent", c.s.userAgent())
111417	if c.ifNoneMatch_ != "" {
111418		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111419	}
111420	var body io.Reader = nil
111421	c.urlParams_.Set("alt", alt)
111422	c.urlParams_.Set("prettyPrint", "false")
111423	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
111424	urls += "?" + c.urlParams_.Encode()
111425	req, err := http.NewRequest("GET", urls, body)
111426	if err != nil {
111427		return nil, err
111428	}
111429	req.Header = reqHeaders
111430	googleapi.Expand(req.URL, map[string]string{
111431		"project":          c.project,
111432		"region":           c.region,
111433		"targetHttpsProxy": c.targetHttpsProxy,
111434	})
111435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111436}
111437
111438// Do executes the "compute.regionTargetHttpsProxies.get" call.
111439// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
111440// non-2xx status code is an error. Response headers are in either
111441// *TargetHttpsProxy.ServerResponse.Header or (if a response was
111442// returned at all) in error.(*googleapi.Error).Header. Use
111443// googleapi.IsNotModified to check whether the returned error was
111444// because http.StatusNotModified was returned.
111445func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
111446	gensupport.SetOptions(c.urlParams_, opts...)
111447	res, err := c.doRequest("json")
111448	if res != nil && res.StatusCode == http.StatusNotModified {
111449		if res.Body != nil {
111450			res.Body.Close()
111451		}
111452		return nil, &googleapi.Error{
111453			Code:   res.StatusCode,
111454			Header: res.Header,
111455		}
111456	}
111457	if err != nil {
111458		return nil, err
111459	}
111460	defer googleapi.CloseBody(res)
111461	if err := googleapi.CheckResponse(res); err != nil {
111462		return nil, err
111463	}
111464	ret := &TargetHttpsProxy{
111465		ServerResponse: googleapi.ServerResponse{
111466			Header:         res.Header,
111467			HTTPStatusCode: res.StatusCode,
111468		},
111469	}
111470	target := &ret
111471	if err := gensupport.DecodeResponse(target, res); err != nil {
111472		return nil, err
111473	}
111474	return ret, nil
111475	// {
111476	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
111477	//   "httpMethod": "GET",
111478	//   "id": "compute.regionTargetHttpsProxies.get",
111479	//   "parameterOrder": [
111480	//     "project",
111481	//     "region",
111482	//     "targetHttpsProxy"
111483	//   ],
111484	//   "parameters": {
111485	//     "project": {
111486	//       "description": "Project ID for this request.",
111487	//       "location": "path",
111488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111489	//       "required": true,
111490	//       "type": "string"
111491	//     },
111492	//     "region": {
111493	//       "description": "Name of the region scoping this request.",
111494	//       "location": "path",
111495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111496	//       "required": true,
111497	//       "type": "string"
111498	//     },
111499	//     "targetHttpsProxy": {
111500	//       "description": "Name of the TargetHttpsProxy resource to return.",
111501	//       "location": "path",
111502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111503	//       "required": true,
111504	//       "type": "string"
111505	//     }
111506	//   },
111507	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
111508	//   "response": {
111509	//     "$ref": "TargetHttpsProxy"
111510	//   },
111511	//   "scopes": [
111512	//     "https://www.googleapis.com/auth/cloud-platform",
111513	//     "https://www.googleapis.com/auth/compute",
111514	//     "https://www.googleapis.com/auth/compute.readonly"
111515	//   ]
111516	// }
111517
111518}
111519
111520// method id "compute.regionTargetHttpsProxies.insert":
111521
111522type RegionTargetHttpsProxiesInsertCall struct {
111523	s                *Service
111524	project          string
111525	region           string
111526	targethttpsproxy *TargetHttpsProxy
111527	urlParams_       gensupport.URLParams
111528	ctx_             context.Context
111529	header_          http.Header
111530}
111531
111532// Insert: Creates a TargetHttpsProxy resource in the specified project
111533// and region using the data included in the request.
111534func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
111535	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111536	c.project = project
111537	c.region = region
111538	c.targethttpsproxy = targethttpsproxy
111539	return c
111540}
111541
111542// RequestId sets the optional parameter "requestId": An optional
111543// request ID to identify requests. Specify a unique request ID so that
111544// if you must retry your request, the server will know to ignore the
111545// request if it has already been completed.
111546//
111547// For example, consider a situation where you make an initial request
111548// and the request times out. If you make the request again with the
111549// same request ID, the server can check if original operation with the
111550// same request ID was received, and if so, will ignore the second
111551// request. This prevents clients from accidentally creating duplicate
111552// commitments.
111553//
111554// The request ID must be a valid UUID with the exception that zero UUID
111555// is not supported (00000000-0000-0000-0000-000000000000).
111556func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
111557	c.urlParams_.Set("requestId", requestId)
111558	return c
111559}
111560
111561// Fields allows partial responses to be retrieved. See
111562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111563// for more information.
111564func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
111565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111566	return c
111567}
111568
111569// Context sets the context to be used in this call's Do method. Any
111570// pending HTTP request will be aborted if the provided context is
111571// canceled.
111572func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
111573	c.ctx_ = ctx
111574	return c
111575}
111576
111577// Header returns an http.Header that can be modified by the caller to
111578// add HTTP headers to the request.
111579func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
111580	if c.header_ == nil {
111581		c.header_ = make(http.Header)
111582	}
111583	return c.header_
111584}
111585
111586func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
111587	reqHeaders := make(http.Header)
111588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111589	for k, v := range c.header_ {
111590		reqHeaders[k] = v
111591	}
111592	reqHeaders.Set("User-Agent", c.s.userAgent())
111593	var body io.Reader = nil
111594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
111595	if err != nil {
111596		return nil, err
111597	}
111598	reqHeaders.Set("Content-Type", "application/json")
111599	c.urlParams_.Set("alt", alt)
111600	c.urlParams_.Set("prettyPrint", "false")
111601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
111602	urls += "?" + c.urlParams_.Encode()
111603	req, err := http.NewRequest("POST", urls, body)
111604	if err != nil {
111605		return nil, err
111606	}
111607	req.Header = reqHeaders
111608	googleapi.Expand(req.URL, map[string]string{
111609		"project": c.project,
111610		"region":  c.region,
111611	})
111612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111613}
111614
111615// Do executes the "compute.regionTargetHttpsProxies.insert" call.
111616// Exactly one of *Operation or error will be non-nil. Any non-2xx
111617// status code is an error. Response headers are in either
111618// *Operation.ServerResponse.Header or (if a response was returned at
111619// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111620// to check whether the returned error was because
111621// http.StatusNotModified was returned.
111622func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111623	gensupport.SetOptions(c.urlParams_, opts...)
111624	res, err := c.doRequest("json")
111625	if res != nil && res.StatusCode == http.StatusNotModified {
111626		if res.Body != nil {
111627			res.Body.Close()
111628		}
111629		return nil, &googleapi.Error{
111630			Code:   res.StatusCode,
111631			Header: res.Header,
111632		}
111633	}
111634	if err != nil {
111635		return nil, err
111636	}
111637	defer googleapi.CloseBody(res)
111638	if err := googleapi.CheckResponse(res); err != nil {
111639		return nil, err
111640	}
111641	ret := &Operation{
111642		ServerResponse: googleapi.ServerResponse{
111643			Header:         res.Header,
111644			HTTPStatusCode: res.StatusCode,
111645		},
111646	}
111647	target := &ret
111648	if err := gensupport.DecodeResponse(target, res); err != nil {
111649		return nil, err
111650	}
111651	return ret, nil
111652	// {
111653	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
111654	//   "httpMethod": "POST",
111655	//   "id": "compute.regionTargetHttpsProxies.insert",
111656	//   "parameterOrder": [
111657	//     "project",
111658	//     "region"
111659	//   ],
111660	//   "parameters": {
111661	//     "project": {
111662	//       "description": "Project ID for this request.",
111663	//       "location": "path",
111664	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111665	//       "required": true,
111666	//       "type": "string"
111667	//     },
111668	//     "region": {
111669	//       "description": "Name of the region scoping this request.",
111670	//       "location": "path",
111671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111672	//       "required": true,
111673	//       "type": "string"
111674	//     },
111675	//     "requestId": {
111676	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111677	//       "location": "query",
111678	//       "type": "string"
111679	//     }
111680	//   },
111681	//   "path": "{project}/regions/{region}/targetHttpsProxies",
111682	//   "request": {
111683	//     "$ref": "TargetHttpsProxy"
111684	//   },
111685	//   "response": {
111686	//     "$ref": "Operation"
111687	//   },
111688	//   "scopes": [
111689	//     "https://www.googleapis.com/auth/cloud-platform",
111690	//     "https://www.googleapis.com/auth/compute"
111691	//   ]
111692	// }
111693
111694}
111695
111696// method id "compute.regionTargetHttpsProxies.list":
111697
111698type RegionTargetHttpsProxiesListCall struct {
111699	s            *Service
111700	project      string
111701	region       string
111702	urlParams_   gensupport.URLParams
111703	ifNoneMatch_ string
111704	ctx_         context.Context
111705	header_      http.Header
111706}
111707
111708// List: Retrieves the list of TargetHttpsProxy resources available to
111709// the specified project in the specified region.
111710func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
111711	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111712	c.project = project
111713	c.region = region
111714	return c
111715}
111716
111717// Filter sets the optional parameter "filter": A filter expression that
111718// filters resources listed in the response. The expression must specify
111719// the field name, a comparison operator, and the value that you want to
111720// use for filtering. The value must be a string, a number, or a
111721// boolean. The comparison operator must be either `=`, `!=`, `>`, or
111722// `<`.
111723//
111724// For example, if you are filtering Compute Engine instances, you can
111725// exclude instances named `example-instance` by specifying `name !=
111726// example-instance`.
111727//
111728// You can also filter nested fields. For example, you could specify
111729// `scheduling.automaticRestart = false` to include instances only if
111730// they are not scheduled for automatic restarts. You can use filtering
111731// on nested fields to filter based on resource labels.
111732//
111733// To filter on multiple expressions, provide each separate expression
111734// within parentheses. For example: ``` (scheduling.automaticRestart =
111735// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
111736// is an `AND` expression. However, you can include `AND` and `OR`
111737// expressions explicitly. For example: ``` (cpuPlatform = "Intel
111738// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
111739// (scheduling.automaticRestart = true) ```
111740func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
111741	c.urlParams_.Set("filter", filter)
111742	return c
111743}
111744
111745// MaxResults sets the optional parameter "maxResults": The maximum
111746// number of results per page that should be returned. If the number of
111747// available results is larger than `maxResults`, Compute Engine returns
111748// a `nextPageToken` that can be used to get the next page of results in
111749// subsequent list requests. Acceptable values are `0` to `500`,
111750// inclusive. (Default: `500`)
111751func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
111752	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111753	return c
111754}
111755
111756// OrderBy sets the optional parameter "orderBy": Sorts list results by
111757// a certain order. By default, results are returned in alphanumerical
111758// order based on the resource name.
111759//
111760// You can also sort results in descending order based on the creation
111761// timestamp using `orderBy="creationTimestamp desc". This sorts
111762// results based on the `creationTimestamp` field in reverse
111763// chronological order (newest result first). Use this to sort resources
111764// like operations so that the newest operation is returned
111765// first.
111766//
111767// Currently, only sorting by `name` or `creationTimestamp desc` is
111768// supported.
111769func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
111770	c.urlParams_.Set("orderBy", orderBy)
111771	return c
111772}
111773
111774// PageToken sets the optional parameter "pageToken": Specifies a page
111775// token to use. Set `pageToken` to the `nextPageToken` returned by a
111776// previous list request to get the next page of results.
111777func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
111778	c.urlParams_.Set("pageToken", pageToken)
111779	return c
111780}
111781
111782// Fields allows partial responses to be retrieved. See
111783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111784// for more information.
111785func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
111786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111787	return c
111788}
111789
111790// IfNoneMatch sets the optional parameter which makes the operation
111791// fail if the object's ETag matches the given value. This is useful for
111792// getting updates only after the object has changed since the last
111793// request. Use googleapi.IsNotModified to check whether the response
111794// error from Do is the result of In-None-Match.
111795func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
111796	c.ifNoneMatch_ = entityTag
111797	return c
111798}
111799
111800// Context sets the context to be used in this call's Do method. Any
111801// pending HTTP request will be aborted if the provided context is
111802// canceled.
111803func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
111804	c.ctx_ = ctx
111805	return c
111806}
111807
111808// Header returns an http.Header that can be modified by the caller to
111809// add HTTP headers to the request.
111810func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
111811	if c.header_ == nil {
111812		c.header_ = make(http.Header)
111813	}
111814	return c.header_
111815}
111816
111817func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
111818	reqHeaders := make(http.Header)
111819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111820	for k, v := range c.header_ {
111821		reqHeaders[k] = v
111822	}
111823	reqHeaders.Set("User-Agent", c.s.userAgent())
111824	if c.ifNoneMatch_ != "" {
111825		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111826	}
111827	var body io.Reader = nil
111828	c.urlParams_.Set("alt", alt)
111829	c.urlParams_.Set("prettyPrint", "false")
111830	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
111831	urls += "?" + c.urlParams_.Encode()
111832	req, err := http.NewRequest("GET", urls, body)
111833	if err != nil {
111834		return nil, err
111835	}
111836	req.Header = reqHeaders
111837	googleapi.Expand(req.URL, map[string]string{
111838		"project": c.project,
111839		"region":  c.region,
111840	})
111841	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111842}
111843
111844// Do executes the "compute.regionTargetHttpsProxies.list" call.
111845// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
111846// non-2xx status code is an error. Response headers are in either
111847// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
111848// returned at all) in error.(*googleapi.Error).Header. Use
111849// googleapi.IsNotModified to check whether the returned error was
111850// because http.StatusNotModified was returned.
111851func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
111852	gensupport.SetOptions(c.urlParams_, opts...)
111853	res, err := c.doRequest("json")
111854	if res != nil && res.StatusCode == http.StatusNotModified {
111855		if res.Body != nil {
111856			res.Body.Close()
111857		}
111858		return nil, &googleapi.Error{
111859			Code:   res.StatusCode,
111860			Header: res.Header,
111861		}
111862	}
111863	if err != nil {
111864		return nil, err
111865	}
111866	defer googleapi.CloseBody(res)
111867	if err := googleapi.CheckResponse(res); err != nil {
111868		return nil, err
111869	}
111870	ret := &TargetHttpsProxyList{
111871		ServerResponse: googleapi.ServerResponse{
111872			Header:         res.Header,
111873			HTTPStatusCode: res.StatusCode,
111874		},
111875	}
111876	target := &ret
111877	if err := gensupport.DecodeResponse(target, res); err != nil {
111878		return nil, err
111879	}
111880	return ret, nil
111881	// {
111882	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
111883	//   "httpMethod": "GET",
111884	//   "id": "compute.regionTargetHttpsProxies.list",
111885	//   "parameterOrder": [
111886	//     "project",
111887	//     "region"
111888	//   ],
111889	//   "parameters": {
111890	//     "filter": {
111891	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
111892	//       "location": "query",
111893	//       "type": "string"
111894	//     },
111895	//     "maxResults": {
111896	//       "default": "500",
111897	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
111898	//       "format": "uint32",
111899	//       "location": "query",
111900	//       "minimum": "0",
111901	//       "type": "integer"
111902	//     },
111903	//     "orderBy": {
111904	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
111905	//       "location": "query",
111906	//       "type": "string"
111907	//     },
111908	//     "pageToken": {
111909	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
111910	//       "location": "query",
111911	//       "type": "string"
111912	//     },
111913	//     "project": {
111914	//       "description": "Project ID for this request.",
111915	//       "location": "path",
111916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111917	//       "required": true,
111918	//       "type": "string"
111919	//     },
111920	//     "region": {
111921	//       "description": "Name of the region scoping this request.",
111922	//       "location": "path",
111923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111924	//       "required": true,
111925	//       "type": "string"
111926	//     }
111927	//   },
111928	//   "path": "{project}/regions/{region}/targetHttpsProxies",
111929	//   "response": {
111930	//     "$ref": "TargetHttpsProxyList"
111931	//   },
111932	//   "scopes": [
111933	//     "https://www.googleapis.com/auth/cloud-platform",
111934	//     "https://www.googleapis.com/auth/compute",
111935	//     "https://www.googleapis.com/auth/compute.readonly"
111936	//   ]
111937	// }
111938
111939}
111940
111941// Pages invokes f for each page of results.
111942// A non-nil error returned from f will halt the iteration.
111943// The provided context supersedes any context provided to the Context method.
111944func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
111945	c.ctx_ = ctx
111946	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111947	for {
111948		x, err := c.Do()
111949		if err != nil {
111950			return err
111951		}
111952		if err := f(x); err != nil {
111953			return err
111954		}
111955		if x.NextPageToken == "" {
111956			return nil
111957		}
111958		c.PageToken(x.NextPageToken)
111959	}
111960}
111961
111962// method id "compute.regionTargetHttpsProxies.setSslCertificates":
111963
111964type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
111965	s                                                 *Service
111966	project                                           string
111967	region                                            string
111968	targetHttpsProxy                                  string
111969	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
111970	urlParams_                                        gensupport.URLParams
111971	ctx_                                              context.Context
111972	header_                                           http.Header
111973}
111974
111975// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
111976func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
111977	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111978	c.project = project
111979	c.region = region
111980	c.targetHttpsProxy = targetHttpsProxy
111981	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
111982	return c
111983}
111984
111985// RequestId sets the optional parameter "requestId": An optional
111986// request ID to identify requests. Specify a unique request ID so that
111987// if you must retry your request, the server will know to ignore the
111988// request if it has already been completed.
111989//
111990// For example, consider a situation where you make an initial request
111991// and the request times out. If you make the request again with the
111992// same request ID, the server can check if original operation with the
111993// same request ID was received, and if so, will ignore the second
111994// request. This prevents clients from accidentally creating duplicate
111995// commitments.
111996//
111997// The request ID must be a valid UUID with the exception that zero UUID
111998// is not supported (00000000-0000-0000-0000-000000000000).
111999func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
112000	c.urlParams_.Set("requestId", requestId)
112001	return c
112002}
112003
112004// Fields allows partial responses to be retrieved. See
112005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112006// for more information.
112007func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
112008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112009	return c
112010}
112011
112012// Context sets the context to be used in this call's Do method. Any
112013// pending HTTP request will be aborted if the provided context is
112014// canceled.
112015func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
112016	c.ctx_ = ctx
112017	return c
112018}
112019
112020// Header returns an http.Header that can be modified by the caller to
112021// add HTTP headers to the request.
112022func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
112023	if c.header_ == nil {
112024		c.header_ = make(http.Header)
112025	}
112026	return c.header_
112027}
112028
112029func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
112030	reqHeaders := make(http.Header)
112031	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112032	for k, v := range c.header_ {
112033		reqHeaders[k] = v
112034	}
112035	reqHeaders.Set("User-Agent", c.s.userAgent())
112036	var body io.Reader = nil
112037	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
112038	if err != nil {
112039		return nil, err
112040	}
112041	reqHeaders.Set("Content-Type", "application/json")
112042	c.urlParams_.Set("alt", alt)
112043	c.urlParams_.Set("prettyPrint", "false")
112044	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
112045	urls += "?" + c.urlParams_.Encode()
112046	req, err := http.NewRequest("POST", urls, body)
112047	if err != nil {
112048		return nil, err
112049	}
112050	req.Header = reqHeaders
112051	googleapi.Expand(req.URL, map[string]string{
112052		"project":          c.project,
112053		"region":           c.region,
112054		"targetHttpsProxy": c.targetHttpsProxy,
112055	})
112056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112057}
112058
112059// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
112060// Exactly one of *Operation or error will be non-nil. Any non-2xx
112061// status code is an error. Response headers are in either
112062// *Operation.ServerResponse.Header or (if a response was returned at
112063// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112064// to check whether the returned error was because
112065// http.StatusNotModified was returned.
112066func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112067	gensupport.SetOptions(c.urlParams_, opts...)
112068	res, err := c.doRequest("json")
112069	if res != nil && res.StatusCode == http.StatusNotModified {
112070		if res.Body != nil {
112071			res.Body.Close()
112072		}
112073		return nil, &googleapi.Error{
112074			Code:   res.StatusCode,
112075			Header: res.Header,
112076		}
112077	}
112078	if err != nil {
112079		return nil, err
112080	}
112081	defer googleapi.CloseBody(res)
112082	if err := googleapi.CheckResponse(res); err != nil {
112083		return nil, err
112084	}
112085	ret := &Operation{
112086		ServerResponse: googleapi.ServerResponse{
112087			Header:         res.Header,
112088			HTTPStatusCode: res.StatusCode,
112089		},
112090	}
112091	target := &ret
112092	if err := gensupport.DecodeResponse(target, res); err != nil {
112093		return nil, err
112094	}
112095	return ret, nil
112096	// {
112097	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
112098	//   "httpMethod": "POST",
112099	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
112100	//   "parameterOrder": [
112101	//     "project",
112102	//     "region",
112103	//     "targetHttpsProxy"
112104	//   ],
112105	//   "parameters": {
112106	//     "project": {
112107	//       "description": "Project ID for this request.",
112108	//       "location": "path",
112109	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112110	//       "required": true,
112111	//       "type": "string"
112112	//     },
112113	//     "region": {
112114	//       "description": "Name of the region scoping this request.",
112115	//       "location": "path",
112116	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112117	//       "required": true,
112118	//       "type": "string"
112119	//     },
112120	//     "requestId": {
112121	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112122	//       "location": "query",
112123	//       "type": "string"
112124	//     },
112125	//     "targetHttpsProxy": {
112126	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
112127	//       "location": "path",
112128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112129	//       "required": true,
112130	//       "type": "string"
112131	//     }
112132	//   },
112133	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
112134	//   "request": {
112135	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
112136	//   },
112137	//   "response": {
112138	//     "$ref": "Operation"
112139	//   },
112140	//   "scopes": [
112141	//     "https://www.googleapis.com/auth/cloud-platform",
112142	//     "https://www.googleapis.com/auth/compute"
112143	//   ]
112144	// }
112145
112146}
112147
112148// method id "compute.regionTargetHttpsProxies.setUrlMap":
112149
112150type RegionTargetHttpsProxiesSetUrlMapCall struct {
112151	s                *Service
112152	project          string
112153	region           string
112154	targetHttpsProxy string
112155	urlmapreference  *UrlMapReference
112156	urlParams_       gensupport.URLParams
112157	ctx_             context.Context
112158	header_          http.Header
112159}
112160
112161// SetUrlMap: Changes the URL map for TargetHttpsProxy.
112162func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
112163	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112164	c.project = project
112165	c.region = region
112166	c.targetHttpsProxy = targetHttpsProxy
112167	c.urlmapreference = urlmapreference
112168	return c
112169}
112170
112171// RequestId sets the optional parameter "requestId": An optional
112172// request ID to identify requests. Specify a unique request ID so that
112173// if you must retry your request, the server will know to ignore the
112174// request if it has already been completed.
112175//
112176// For example, consider a situation where you make an initial request
112177// and the request times out. If you make the request again with the
112178// same request ID, the server can check if original operation with the
112179// same request ID was received, and if so, will ignore the second
112180// request. This prevents clients from accidentally creating duplicate
112181// commitments.
112182//
112183// The request ID must be a valid UUID with the exception that zero UUID
112184// is not supported (00000000-0000-0000-0000-000000000000).
112185func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
112186	c.urlParams_.Set("requestId", requestId)
112187	return c
112188}
112189
112190// Fields allows partial responses to be retrieved. See
112191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112192// for more information.
112193func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
112194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112195	return c
112196}
112197
112198// Context sets the context to be used in this call's Do method. Any
112199// pending HTTP request will be aborted if the provided context is
112200// canceled.
112201func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
112202	c.ctx_ = ctx
112203	return c
112204}
112205
112206// Header returns an http.Header that can be modified by the caller to
112207// add HTTP headers to the request.
112208func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
112209	if c.header_ == nil {
112210		c.header_ = make(http.Header)
112211	}
112212	return c.header_
112213}
112214
112215func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
112216	reqHeaders := make(http.Header)
112217	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112218	for k, v := range c.header_ {
112219		reqHeaders[k] = v
112220	}
112221	reqHeaders.Set("User-Agent", c.s.userAgent())
112222	var body io.Reader = nil
112223	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
112224	if err != nil {
112225		return nil, err
112226	}
112227	reqHeaders.Set("Content-Type", "application/json")
112228	c.urlParams_.Set("alt", alt)
112229	c.urlParams_.Set("prettyPrint", "false")
112230	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
112231	urls += "?" + c.urlParams_.Encode()
112232	req, err := http.NewRequest("POST", urls, body)
112233	if err != nil {
112234		return nil, err
112235	}
112236	req.Header = reqHeaders
112237	googleapi.Expand(req.URL, map[string]string{
112238		"project":          c.project,
112239		"region":           c.region,
112240		"targetHttpsProxy": c.targetHttpsProxy,
112241	})
112242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112243}
112244
112245// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
112246// Exactly one of *Operation or error will be non-nil. Any non-2xx
112247// status code is an error. Response headers are in either
112248// *Operation.ServerResponse.Header or (if a response was returned at
112249// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112250// to check whether the returned error was because
112251// http.StatusNotModified was returned.
112252func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112253	gensupport.SetOptions(c.urlParams_, opts...)
112254	res, err := c.doRequest("json")
112255	if res != nil && res.StatusCode == http.StatusNotModified {
112256		if res.Body != nil {
112257			res.Body.Close()
112258		}
112259		return nil, &googleapi.Error{
112260			Code:   res.StatusCode,
112261			Header: res.Header,
112262		}
112263	}
112264	if err != nil {
112265		return nil, err
112266	}
112267	defer googleapi.CloseBody(res)
112268	if err := googleapi.CheckResponse(res); err != nil {
112269		return nil, err
112270	}
112271	ret := &Operation{
112272		ServerResponse: googleapi.ServerResponse{
112273			Header:         res.Header,
112274			HTTPStatusCode: res.StatusCode,
112275		},
112276	}
112277	target := &ret
112278	if err := gensupport.DecodeResponse(target, res); err != nil {
112279		return nil, err
112280	}
112281	return ret, nil
112282	// {
112283	//   "description": "Changes the URL map for TargetHttpsProxy.",
112284	//   "httpMethod": "POST",
112285	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
112286	//   "parameterOrder": [
112287	//     "project",
112288	//     "region",
112289	//     "targetHttpsProxy"
112290	//   ],
112291	//   "parameters": {
112292	//     "project": {
112293	//       "description": "Project ID for this request.",
112294	//       "location": "path",
112295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112296	//       "required": true,
112297	//       "type": "string"
112298	//     },
112299	//     "region": {
112300	//       "description": "Name of the region scoping this request.",
112301	//       "location": "path",
112302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112303	//       "required": true,
112304	//       "type": "string"
112305	//     },
112306	//     "requestId": {
112307	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112308	//       "location": "query",
112309	//       "type": "string"
112310	//     },
112311	//     "targetHttpsProxy": {
112312	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
112313	//       "location": "path",
112314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112315	//       "required": true,
112316	//       "type": "string"
112317	//     }
112318	//   },
112319	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
112320	//   "request": {
112321	//     "$ref": "UrlMapReference"
112322	//   },
112323	//   "response": {
112324	//     "$ref": "Operation"
112325	//   },
112326	//   "scopes": [
112327	//     "https://www.googleapis.com/auth/cloud-platform",
112328	//     "https://www.googleapis.com/auth/compute"
112329	//   ]
112330	// }
112331
112332}
112333
112334// method id "compute.regionUrlMaps.delete":
112335
112336type RegionUrlMapsDeleteCall struct {
112337	s          *Service
112338	project    string
112339	region     string
112340	urlMap     string
112341	urlParams_ gensupport.URLParams
112342	ctx_       context.Context
112343	header_    http.Header
112344}
112345
112346// Delete: Deletes the specified UrlMap resource.
112347func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
112348	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112349	c.project = project
112350	c.region = region
112351	c.urlMap = urlMap
112352	return c
112353}
112354
112355// RequestId sets the optional parameter "requestId": begin_interface:
112356// MixerMutationRequestBuilder Request ID to support idempotency.
112357func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
112358	c.urlParams_.Set("requestId", requestId)
112359	return c
112360}
112361
112362// Fields allows partial responses to be retrieved. See
112363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112364// for more information.
112365func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
112366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112367	return c
112368}
112369
112370// Context sets the context to be used in this call's Do method. Any
112371// pending HTTP request will be aborted if the provided context is
112372// canceled.
112373func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
112374	c.ctx_ = ctx
112375	return c
112376}
112377
112378// Header returns an http.Header that can be modified by the caller to
112379// add HTTP headers to the request.
112380func (c *RegionUrlMapsDeleteCall) Header() http.Header {
112381	if c.header_ == nil {
112382		c.header_ = make(http.Header)
112383	}
112384	return c.header_
112385}
112386
112387func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
112388	reqHeaders := make(http.Header)
112389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112390	for k, v := range c.header_ {
112391		reqHeaders[k] = v
112392	}
112393	reqHeaders.Set("User-Agent", c.s.userAgent())
112394	var body io.Reader = nil
112395	c.urlParams_.Set("alt", alt)
112396	c.urlParams_.Set("prettyPrint", "false")
112397	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
112398	urls += "?" + c.urlParams_.Encode()
112399	req, err := http.NewRequest("DELETE", urls, body)
112400	if err != nil {
112401		return nil, err
112402	}
112403	req.Header = reqHeaders
112404	googleapi.Expand(req.URL, map[string]string{
112405		"project": c.project,
112406		"region":  c.region,
112407		"urlMap":  c.urlMap,
112408	})
112409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112410}
112411
112412// Do executes the "compute.regionUrlMaps.delete" call.
112413// Exactly one of *Operation or error will be non-nil. Any non-2xx
112414// status code is an error. Response headers are in either
112415// *Operation.ServerResponse.Header or (if a response was returned at
112416// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112417// to check whether the returned error was because
112418// http.StatusNotModified was returned.
112419func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112420	gensupport.SetOptions(c.urlParams_, opts...)
112421	res, err := c.doRequest("json")
112422	if res != nil && res.StatusCode == http.StatusNotModified {
112423		if res.Body != nil {
112424			res.Body.Close()
112425		}
112426		return nil, &googleapi.Error{
112427			Code:   res.StatusCode,
112428			Header: res.Header,
112429		}
112430	}
112431	if err != nil {
112432		return nil, err
112433	}
112434	defer googleapi.CloseBody(res)
112435	if err := googleapi.CheckResponse(res); err != nil {
112436		return nil, err
112437	}
112438	ret := &Operation{
112439		ServerResponse: googleapi.ServerResponse{
112440			Header:         res.Header,
112441			HTTPStatusCode: res.StatusCode,
112442		},
112443	}
112444	target := &ret
112445	if err := gensupport.DecodeResponse(target, res); err != nil {
112446		return nil, err
112447	}
112448	return ret, nil
112449	// {
112450	//   "description": "Deletes the specified UrlMap resource.",
112451	//   "httpMethod": "DELETE",
112452	//   "id": "compute.regionUrlMaps.delete",
112453	//   "parameterOrder": [
112454	//     "project",
112455	//     "region",
112456	//     "urlMap"
112457	//   ],
112458	//   "parameters": {
112459	//     "project": {
112460	//       "description": "Project ID for this request.",
112461	//       "location": "path",
112462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112463	//       "required": true,
112464	//       "type": "string"
112465	//     },
112466	//     "region": {
112467	//       "description": "Name of the region scoping this request.",
112468	//       "location": "path",
112469	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112470	//       "required": true,
112471	//       "type": "string"
112472	//     },
112473	//     "requestId": {
112474	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
112475	//       "location": "query",
112476	//       "type": "string"
112477	//     },
112478	//     "urlMap": {
112479	//       "description": "Name of the UrlMap resource to delete.",
112480	//       "location": "path",
112481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112482	//       "required": true,
112483	//       "type": "string"
112484	//     }
112485	//   },
112486	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
112487	//   "response": {
112488	//     "$ref": "Operation"
112489	//   },
112490	//   "scopes": [
112491	//     "https://www.googleapis.com/auth/cloud-platform",
112492	//     "https://www.googleapis.com/auth/compute"
112493	//   ]
112494	// }
112495
112496}
112497
112498// method id "compute.regionUrlMaps.get":
112499
112500type RegionUrlMapsGetCall struct {
112501	s            *Service
112502	project      string
112503	region       string
112504	urlMap       string
112505	urlParams_   gensupport.URLParams
112506	ifNoneMatch_ string
112507	ctx_         context.Context
112508	header_      http.Header
112509}
112510
112511// Get: Returns the specified UrlMap resource. Gets a list of available
112512// URL maps by making a list() request.
112513func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
112514	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112515	c.project = project
112516	c.region = region
112517	c.urlMap = urlMap
112518	return c
112519}
112520
112521// Fields allows partial responses to be retrieved. See
112522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112523// for more information.
112524func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
112525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112526	return c
112527}
112528
112529// IfNoneMatch sets the optional parameter which makes the operation
112530// fail if the object's ETag matches the given value. This is useful for
112531// getting updates only after the object has changed since the last
112532// request. Use googleapi.IsNotModified to check whether the response
112533// error from Do is the result of In-None-Match.
112534func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
112535	c.ifNoneMatch_ = entityTag
112536	return c
112537}
112538
112539// Context sets the context to be used in this call's Do method. Any
112540// pending HTTP request will be aborted if the provided context is
112541// canceled.
112542func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
112543	c.ctx_ = ctx
112544	return c
112545}
112546
112547// Header returns an http.Header that can be modified by the caller to
112548// add HTTP headers to the request.
112549func (c *RegionUrlMapsGetCall) Header() http.Header {
112550	if c.header_ == nil {
112551		c.header_ = make(http.Header)
112552	}
112553	return c.header_
112554}
112555
112556func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
112557	reqHeaders := make(http.Header)
112558	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112559	for k, v := range c.header_ {
112560		reqHeaders[k] = v
112561	}
112562	reqHeaders.Set("User-Agent", c.s.userAgent())
112563	if c.ifNoneMatch_ != "" {
112564		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112565	}
112566	var body io.Reader = nil
112567	c.urlParams_.Set("alt", alt)
112568	c.urlParams_.Set("prettyPrint", "false")
112569	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
112570	urls += "?" + c.urlParams_.Encode()
112571	req, err := http.NewRequest("GET", urls, body)
112572	if err != nil {
112573		return nil, err
112574	}
112575	req.Header = reqHeaders
112576	googleapi.Expand(req.URL, map[string]string{
112577		"project": c.project,
112578		"region":  c.region,
112579		"urlMap":  c.urlMap,
112580	})
112581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112582}
112583
112584// Do executes the "compute.regionUrlMaps.get" call.
112585// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
112586// code is an error. Response headers are in either
112587// *UrlMap.ServerResponse.Header or (if a response was returned at all)
112588// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
112589// check whether the returned error was because http.StatusNotModified
112590// was returned.
112591func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
112592	gensupport.SetOptions(c.urlParams_, opts...)
112593	res, err := c.doRequest("json")
112594	if res != nil && res.StatusCode == http.StatusNotModified {
112595		if res.Body != nil {
112596			res.Body.Close()
112597		}
112598		return nil, &googleapi.Error{
112599			Code:   res.StatusCode,
112600			Header: res.Header,
112601		}
112602	}
112603	if err != nil {
112604		return nil, err
112605	}
112606	defer googleapi.CloseBody(res)
112607	if err := googleapi.CheckResponse(res); err != nil {
112608		return nil, err
112609	}
112610	ret := &UrlMap{
112611		ServerResponse: googleapi.ServerResponse{
112612			Header:         res.Header,
112613			HTTPStatusCode: res.StatusCode,
112614		},
112615	}
112616	target := &ret
112617	if err := gensupport.DecodeResponse(target, res); err != nil {
112618		return nil, err
112619	}
112620	return ret, nil
112621	// {
112622	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
112623	//   "httpMethod": "GET",
112624	//   "id": "compute.regionUrlMaps.get",
112625	//   "parameterOrder": [
112626	//     "project",
112627	//     "region",
112628	//     "urlMap"
112629	//   ],
112630	//   "parameters": {
112631	//     "project": {
112632	//       "description": "Project ID for this request.",
112633	//       "location": "path",
112634	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112635	//       "required": true,
112636	//       "type": "string"
112637	//     },
112638	//     "region": {
112639	//       "description": "Name of the region scoping this request.",
112640	//       "location": "path",
112641	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112642	//       "required": true,
112643	//       "type": "string"
112644	//     },
112645	//     "urlMap": {
112646	//       "description": "Name of the UrlMap resource to return.",
112647	//       "location": "path",
112648	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112649	//       "required": true,
112650	//       "type": "string"
112651	//     }
112652	//   },
112653	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
112654	//   "response": {
112655	//     "$ref": "UrlMap"
112656	//   },
112657	//   "scopes": [
112658	//     "https://www.googleapis.com/auth/cloud-platform",
112659	//     "https://www.googleapis.com/auth/compute",
112660	//     "https://www.googleapis.com/auth/compute.readonly"
112661	//   ]
112662	// }
112663
112664}
112665
112666// method id "compute.regionUrlMaps.insert":
112667
112668type RegionUrlMapsInsertCall struct {
112669	s          *Service
112670	project    string
112671	region     string
112672	urlmap     *UrlMap
112673	urlParams_ gensupport.URLParams
112674	ctx_       context.Context
112675	header_    http.Header
112676}
112677
112678// Insert: Creates a UrlMap resource in the specified project using the
112679// data included in the request.
112680func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
112681	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112682	c.project = project
112683	c.region = region
112684	c.urlmap = urlmap
112685	return c
112686}
112687
112688// RequestId sets the optional parameter "requestId": begin_interface:
112689// MixerMutationRequestBuilder Request ID to support idempotency.
112690func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
112691	c.urlParams_.Set("requestId", requestId)
112692	return c
112693}
112694
112695// Fields allows partial responses to be retrieved. See
112696// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112697// for more information.
112698func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
112699	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112700	return c
112701}
112702
112703// Context sets the context to be used in this call's Do method. Any
112704// pending HTTP request will be aborted if the provided context is
112705// canceled.
112706func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
112707	c.ctx_ = ctx
112708	return c
112709}
112710
112711// Header returns an http.Header that can be modified by the caller to
112712// add HTTP headers to the request.
112713func (c *RegionUrlMapsInsertCall) Header() http.Header {
112714	if c.header_ == nil {
112715		c.header_ = make(http.Header)
112716	}
112717	return c.header_
112718}
112719
112720func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
112721	reqHeaders := make(http.Header)
112722	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112723	for k, v := range c.header_ {
112724		reqHeaders[k] = v
112725	}
112726	reqHeaders.Set("User-Agent", c.s.userAgent())
112727	var body io.Reader = nil
112728	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
112729	if err != nil {
112730		return nil, err
112731	}
112732	reqHeaders.Set("Content-Type", "application/json")
112733	c.urlParams_.Set("alt", alt)
112734	c.urlParams_.Set("prettyPrint", "false")
112735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
112736	urls += "?" + c.urlParams_.Encode()
112737	req, err := http.NewRequest("POST", urls, body)
112738	if err != nil {
112739		return nil, err
112740	}
112741	req.Header = reqHeaders
112742	googleapi.Expand(req.URL, map[string]string{
112743		"project": c.project,
112744		"region":  c.region,
112745	})
112746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112747}
112748
112749// Do executes the "compute.regionUrlMaps.insert" call.
112750// Exactly one of *Operation or error will be non-nil. Any non-2xx
112751// status code is an error. Response headers are in either
112752// *Operation.ServerResponse.Header or (if a response was returned at
112753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112754// to check whether the returned error was because
112755// http.StatusNotModified was returned.
112756func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112757	gensupport.SetOptions(c.urlParams_, opts...)
112758	res, err := c.doRequest("json")
112759	if res != nil && res.StatusCode == http.StatusNotModified {
112760		if res.Body != nil {
112761			res.Body.Close()
112762		}
112763		return nil, &googleapi.Error{
112764			Code:   res.StatusCode,
112765			Header: res.Header,
112766		}
112767	}
112768	if err != nil {
112769		return nil, err
112770	}
112771	defer googleapi.CloseBody(res)
112772	if err := googleapi.CheckResponse(res); err != nil {
112773		return nil, err
112774	}
112775	ret := &Operation{
112776		ServerResponse: googleapi.ServerResponse{
112777			Header:         res.Header,
112778			HTTPStatusCode: res.StatusCode,
112779		},
112780	}
112781	target := &ret
112782	if err := gensupport.DecodeResponse(target, res); err != nil {
112783		return nil, err
112784	}
112785	return ret, nil
112786	// {
112787	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
112788	//   "httpMethod": "POST",
112789	//   "id": "compute.regionUrlMaps.insert",
112790	//   "parameterOrder": [
112791	//     "project",
112792	//     "region"
112793	//   ],
112794	//   "parameters": {
112795	//     "project": {
112796	//       "description": "Project ID for this request.",
112797	//       "location": "path",
112798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112799	//       "required": true,
112800	//       "type": "string"
112801	//     },
112802	//     "region": {
112803	//       "description": "Name of the region scoping this request.",
112804	//       "location": "path",
112805	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112806	//       "required": true,
112807	//       "type": "string"
112808	//     },
112809	//     "requestId": {
112810	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
112811	//       "location": "query",
112812	//       "type": "string"
112813	//     }
112814	//   },
112815	//   "path": "{project}/regions/{region}/urlMaps",
112816	//   "request": {
112817	//     "$ref": "UrlMap"
112818	//   },
112819	//   "response": {
112820	//     "$ref": "Operation"
112821	//   },
112822	//   "scopes": [
112823	//     "https://www.googleapis.com/auth/cloud-platform",
112824	//     "https://www.googleapis.com/auth/compute"
112825	//   ]
112826	// }
112827
112828}
112829
112830// method id "compute.regionUrlMaps.list":
112831
112832type RegionUrlMapsListCall struct {
112833	s            *Service
112834	project      string
112835	region       string
112836	urlParams_   gensupport.URLParams
112837	ifNoneMatch_ string
112838	ctx_         context.Context
112839	header_      http.Header
112840}
112841
112842// List: Retrieves the list of UrlMap resources available to the
112843// specified project in the specified region.
112844func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
112845	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112846	c.project = project
112847	c.region = region
112848	return c
112849}
112850
112851// Filter sets the optional parameter "filter": A filter expression that
112852// filters resources listed in the response. The expression must specify
112853// the field name, a comparison operator, and the value that you want to
112854// use for filtering. The value must be a string, a number, or a
112855// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112856// `<`.
112857//
112858// For example, if you are filtering Compute Engine instances, you can
112859// exclude instances named `example-instance` by specifying `name !=
112860// example-instance`.
112861//
112862// You can also filter nested fields. For example, you could specify
112863// `scheduling.automaticRestart = false` to include instances only if
112864// they are not scheduled for automatic restarts. You can use filtering
112865// on nested fields to filter based on resource labels.
112866//
112867// To filter on multiple expressions, provide each separate expression
112868// within parentheses. For example: ``` (scheduling.automaticRestart =
112869// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
112870// is an `AND` expression. However, you can include `AND` and `OR`
112871// expressions explicitly. For example: ``` (cpuPlatform = "Intel
112872// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
112873// (scheduling.automaticRestart = true) ```
112874func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
112875	c.urlParams_.Set("filter", filter)
112876	return c
112877}
112878
112879// MaxResults sets the optional parameter "maxResults": The maximum
112880// number of results per page that should be returned. If the number of
112881// available results is larger than `maxResults`, Compute Engine returns
112882// a `nextPageToken` that can be used to get the next page of results in
112883// subsequent list requests. Acceptable values are `0` to `500`,
112884// inclusive. (Default: `500`)
112885func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
112886	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112887	return c
112888}
112889
112890// OrderBy sets the optional parameter "orderBy": Sorts list results by
112891// a certain order. By default, results are returned in alphanumerical
112892// order based on the resource name.
112893//
112894// You can also sort results in descending order based on the creation
112895// timestamp using `orderBy="creationTimestamp desc". This sorts
112896// results based on the `creationTimestamp` field in reverse
112897// chronological order (newest result first). Use this to sort resources
112898// like operations so that the newest operation is returned
112899// first.
112900//
112901// Currently, only sorting by `name` or `creationTimestamp desc` is
112902// supported.
112903func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
112904	c.urlParams_.Set("orderBy", orderBy)
112905	return c
112906}
112907
112908// PageToken sets the optional parameter "pageToken": Specifies a page
112909// token to use. Set `pageToken` to the `nextPageToken` returned by a
112910// previous list request to get the next page of results.
112911func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
112912	c.urlParams_.Set("pageToken", pageToken)
112913	return c
112914}
112915
112916// Fields allows partial responses to be retrieved. See
112917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112918// for more information.
112919func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
112920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112921	return c
112922}
112923
112924// IfNoneMatch sets the optional parameter which makes the operation
112925// fail if the object's ETag matches the given value. This is useful for
112926// getting updates only after the object has changed since the last
112927// request. Use googleapi.IsNotModified to check whether the response
112928// error from Do is the result of In-None-Match.
112929func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
112930	c.ifNoneMatch_ = entityTag
112931	return c
112932}
112933
112934// Context sets the context to be used in this call's Do method. Any
112935// pending HTTP request will be aborted if the provided context is
112936// canceled.
112937func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
112938	c.ctx_ = ctx
112939	return c
112940}
112941
112942// Header returns an http.Header that can be modified by the caller to
112943// add HTTP headers to the request.
112944func (c *RegionUrlMapsListCall) Header() http.Header {
112945	if c.header_ == nil {
112946		c.header_ = make(http.Header)
112947	}
112948	return c.header_
112949}
112950
112951func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
112952	reqHeaders := make(http.Header)
112953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112954	for k, v := range c.header_ {
112955		reqHeaders[k] = v
112956	}
112957	reqHeaders.Set("User-Agent", c.s.userAgent())
112958	if c.ifNoneMatch_ != "" {
112959		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112960	}
112961	var body io.Reader = nil
112962	c.urlParams_.Set("alt", alt)
112963	c.urlParams_.Set("prettyPrint", "false")
112964	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
112965	urls += "?" + c.urlParams_.Encode()
112966	req, err := http.NewRequest("GET", urls, body)
112967	if err != nil {
112968		return nil, err
112969	}
112970	req.Header = reqHeaders
112971	googleapi.Expand(req.URL, map[string]string{
112972		"project": c.project,
112973		"region":  c.region,
112974	})
112975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112976}
112977
112978// Do executes the "compute.regionUrlMaps.list" call.
112979// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
112980// status code is an error. Response headers are in either
112981// *UrlMapList.ServerResponse.Header or (if a response was returned at
112982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112983// to check whether the returned error was because
112984// http.StatusNotModified was returned.
112985func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
112986	gensupport.SetOptions(c.urlParams_, opts...)
112987	res, err := c.doRequest("json")
112988	if res != nil && res.StatusCode == http.StatusNotModified {
112989		if res.Body != nil {
112990			res.Body.Close()
112991		}
112992		return nil, &googleapi.Error{
112993			Code:   res.StatusCode,
112994			Header: res.Header,
112995		}
112996	}
112997	if err != nil {
112998		return nil, err
112999	}
113000	defer googleapi.CloseBody(res)
113001	if err := googleapi.CheckResponse(res); err != nil {
113002		return nil, err
113003	}
113004	ret := &UrlMapList{
113005		ServerResponse: googleapi.ServerResponse{
113006			Header:         res.Header,
113007			HTTPStatusCode: res.StatusCode,
113008		},
113009	}
113010	target := &ret
113011	if err := gensupport.DecodeResponse(target, res); err != nil {
113012		return nil, err
113013	}
113014	return ret, nil
113015	// {
113016	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
113017	//   "httpMethod": "GET",
113018	//   "id": "compute.regionUrlMaps.list",
113019	//   "parameterOrder": [
113020	//     "project",
113021	//     "region"
113022	//   ],
113023	//   "parameters": {
113024	//     "filter": {
113025	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
113026	//       "location": "query",
113027	//       "type": "string"
113028	//     },
113029	//     "maxResults": {
113030	//       "default": "500",
113031	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
113032	//       "format": "uint32",
113033	//       "location": "query",
113034	//       "minimum": "0",
113035	//       "type": "integer"
113036	//     },
113037	//     "orderBy": {
113038	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
113039	//       "location": "query",
113040	//       "type": "string"
113041	//     },
113042	//     "pageToken": {
113043	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
113044	//       "location": "query",
113045	//       "type": "string"
113046	//     },
113047	//     "project": {
113048	//       "description": "Project ID for this request.",
113049	//       "location": "path",
113050	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113051	//       "required": true,
113052	//       "type": "string"
113053	//     },
113054	//     "region": {
113055	//       "description": "Name of the region scoping this request.",
113056	//       "location": "path",
113057	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113058	//       "required": true,
113059	//       "type": "string"
113060	//     }
113061	//   },
113062	//   "path": "{project}/regions/{region}/urlMaps",
113063	//   "response": {
113064	//     "$ref": "UrlMapList"
113065	//   },
113066	//   "scopes": [
113067	//     "https://www.googleapis.com/auth/cloud-platform",
113068	//     "https://www.googleapis.com/auth/compute",
113069	//     "https://www.googleapis.com/auth/compute.readonly"
113070	//   ]
113071	// }
113072
113073}
113074
113075// Pages invokes f for each page of results.
113076// A non-nil error returned from f will halt the iteration.
113077// The provided context supersedes any context provided to the Context method.
113078func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
113079	c.ctx_ = ctx
113080	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113081	for {
113082		x, err := c.Do()
113083		if err != nil {
113084			return err
113085		}
113086		if err := f(x); err != nil {
113087			return err
113088		}
113089		if x.NextPageToken == "" {
113090			return nil
113091		}
113092		c.PageToken(x.NextPageToken)
113093	}
113094}
113095
113096// method id "compute.regionUrlMaps.patch":
113097
113098type RegionUrlMapsPatchCall struct {
113099	s          *Service
113100	project    string
113101	region     string
113102	urlMap     string
113103	urlmap     *UrlMap
113104	urlParams_ gensupport.URLParams
113105	ctx_       context.Context
113106	header_    http.Header
113107}
113108
113109// Patch: Patches the specified UrlMap resource with the data included
113110// in the request. This method supports PATCH semantics and uses JSON
113111// merge patch format and processing rules.
113112func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
113113	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113114	c.project = project
113115	c.region = region
113116	c.urlMap = urlMap
113117	c.urlmap = urlmap
113118	return c
113119}
113120
113121// RequestId sets the optional parameter "requestId": begin_interface:
113122// MixerMutationRequestBuilder Request ID to support idempotency.
113123func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
113124	c.urlParams_.Set("requestId", requestId)
113125	return c
113126}
113127
113128// Fields allows partial responses to be retrieved. See
113129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113130// for more information.
113131func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
113132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113133	return c
113134}
113135
113136// Context sets the context to be used in this call's Do method. Any
113137// pending HTTP request will be aborted if the provided context is
113138// canceled.
113139func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
113140	c.ctx_ = ctx
113141	return c
113142}
113143
113144// Header returns an http.Header that can be modified by the caller to
113145// add HTTP headers to the request.
113146func (c *RegionUrlMapsPatchCall) Header() http.Header {
113147	if c.header_ == nil {
113148		c.header_ = make(http.Header)
113149	}
113150	return c.header_
113151}
113152
113153func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
113154	reqHeaders := make(http.Header)
113155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113156	for k, v := range c.header_ {
113157		reqHeaders[k] = v
113158	}
113159	reqHeaders.Set("User-Agent", c.s.userAgent())
113160	var body io.Reader = nil
113161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
113162	if err != nil {
113163		return nil, err
113164	}
113165	reqHeaders.Set("Content-Type", "application/json")
113166	c.urlParams_.Set("alt", alt)
113167	c.urlParams_.Set("prettyPrint", "false")
113168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
113169	urls += "?" + c.urlParams_.Encode()
113170	req, err := http.NewRequest("PATCH", urls, body)
113171	if err != nil {
113172		return nil, err
113173	}
113174	req.Header = reqHeaders
113175	googleapi.Expand(req.URL, map[string]string{
113176		"project": c.project,
113177		"region":  c.region,
113178		"urlMap":  c.urlMap,
113179	})
113180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113181}
113182
113183// Do executes the "compute.regionUrlMaps.patch" call.
113184// Exactly one of *Operation or error will be non-nil. Any non-2xx
113185// status code is an error. Response headers are in either
113186// *Operation.ServerResponse.Header or (if a response was returned at
113187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113188// to check whether the returned error was because
113189// http.StatusNotModified was returned.
113190func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113191	gensupport.SetOptions(c.urlParams_, opts...)
113192	res, err := c.doRequest("json")
113193	if res != nil && res.StatusCode == http.StatusNotModified {
113194		if res.Body != nil {
113195			res.Body.Close()
113196		}
113197		return nil, &googleapi.Error{
113198			Code:   res.StatusCode,
113199			Header: res.Header,
113200		}
113201	}
113202	if err != nil {
113203		return nil, err
113204	}
113205	defer googleapi.CloseBody(res)
113206	if err := googleapi.CheckResponse(res); err != nil {
113207		return nil, err
113208	}
113209	ret := &Operation{
113210		ServerResponse: googleapi.ServerResponse{
113211			Header:         res.Header,
113212			HTTPStatusCode: res.StatusCode,
113213		},
113214	}
113215	target := &ret
113216	if err := gensupport.DecodeResponse(target, res); err != nil {
113217		return nil, err
113218	}
113219	return ret, nil
113220	// {
113221	//   "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.",
113222	//   "httpMethod": "PATCH",
113223	//   "id": "compute.regionUrlMaps.patch",
113224	//   "parameterOrder": [
113225	//     "project",
113226	//     "region",
113227	//     "urlMap"
113228	//   ],
113229	//   "parameters": {
113230	//     "project": {
113231	//       "description": "Project ID for this request.",
113232	//       "location": "path",
113233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113234	//       "required": true,
113235	//       "type": "string"
113236	//     },
113237	//     "region": {
113238	//       "description": "Name of the region scoping this request.",
113239	//       "location": "path",
113240	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113241	//       "required": true,
113242	//       "type": "string"
113243	//     },
113244	//     "requestId": {
113245	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
113246	//       "location": "query",
113247	//       "type": "string"
113248	//     },
113249	//     "urlMap": {
113250	//       "description": "Name of the UrlMap resource to patch.",
113251	//       "location": "path",
113252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113253	//       "required": true,
113254	//       "type": "string"
113255	//     }
113256	//   },
113257	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
113258	//   "request": {
113259	//     "$ref": "UrlMap"
113260	//   },
113261	//   "response": {
113262	//     "$ref": "Operation"
113263	//   },
113264	//   "scopes": [
113265	//     "https://www.googleapis.com/auth/cloud-platform",
113266	//     "https://www.googleapis.com/auth/compute"
113267	//   ]
113268	// }
113269
113270}
113271
113272// method id "compute.regionUrlMaps.update":
113273
113274type RegionUrlMapsUpdateCall struct {
113275	s          *Service
113276	project    string
113277	region     string
113278	urlMap     string
113279	urlmap     *UrlMap
113280	urlParams_ gensupport.URLParams
113281	ctx_       context.Context
113282	header_    http.Header
113283}
113284
113285// Update: Updates the specified UrlMap resource with the data included
113286// in the request.
113287func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
113288	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113289	c.project = project
113290	c.region = region
113291	c.urlMap = urlMap
113292	c.urlmap = urlmap
113293	return c
113294}
113295
113296// RequestId sets the optional parameter "requestId": begin_interface:
113297// MixerMutationRequestBuilder Request ID to support idempotency.
113298func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
113299	c.urlParams_.Set("requestId", requestId)
113300	return c
113301}
113302
113303// Fields allows partial responses to be retrieved. See
113304// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113305// for more information.
113306func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
113307	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113308	return c
113309}
113310
113311// Context sets the context to be used in this call's Do method. Any
113312// pending HTTP request will be aborted if the provided context is
113313// canceled.
113314func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
113315	c.ctx_ = ctx
113316	return c
113317}
113318
113319// Header returns an http.Header that can be modified by the caller to
113320// add HTTP headers to the request.
113321func (c *RegionUrlMapsUpdateCall) Header() http.Header {
113322	if c.header_ == nil {
113323		c.header_ = make(http.Header)
113324	}
113325	return c.header_
113326}
113327
113328func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
113329	reqHeaders := make(http.Header)
113330	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113331	for k, v := range c.header_ {
113332		reqHeaders[k] = v
113333	}
113334	reqHeaders.Set("User-Agent", c.s.userAgent())
113335	var body io.Reader = nil
113336	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
113337	if err != nil {
113338		return nil, err
113339	}
113340	reqHeaders.Set("Content-Type", "application/json")
113341	c.urlParams_.Set("alt", alt)
113342	c.urlParams_.Set("prettyPrint", "false")
113343	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
113344	urls += "?" + c.urlParams_.Encode()
113345	req, err := http.NewRequest("PUT", urls, body)
113346	if err != nil {
113347		return nil, err
113348	}
113349	req.Header = reqHeaders
113350	googleapi.Expand(req.URL, map[string]string{
113351		"project": c.project,
113352		"region":  c.region,
113353		"urlMap":  c.urlMap,
113354	})
113355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113356}
113357
113358// Do executes the "compute.regionUrlMaps.update" call.
113359// Exactly one of *Operation or error will be non-nil. Any non-2xx
113360// status code is an error. Response headers are in either
113361// *Operation.ServerResponse.Header or (if a response was returned at
113362// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113363// to check whether the returned error was because
113364// http.StatusNotModified was returned.
113365func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113366	gensupport.SetOptions(c.urlParams_, opts...)
113367	res, err := c.doRequest("json")
113368	if res != nil && res.StatusCode == http.StatusNotModified {
113369		if res.Body != nil {
113370			res.Body.Close()
113371		}
113372		return nil, &googleapi.Error{
113373			Code:   res.StatusCode,
113374			Header: res.Header,
113375		}
113376	}
113377	if err != nil {
113378		return nil, err
113379	}
113380	defer googleapi.CloseBody(res)
113381	if err := googleapi.CheckResponse(res); err != nil {
113382		return nil, err
113383	}
113384	ret := &Operation{
113385		ServerResponse: googleapi.ServerResponse{
113386			Header:         res.Header,
113387			HTTPStatusCode: res.StatusCode,
113388		},
113389	}
113390	target := &ret
113391	if err := gensupport.DecodeResponse(target, res); err != nil {
113392		return nil, err
113393	}
113394	return ret, nil
113395	// {
113396	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
113397	//   "httpMethod": "PUT",
113398	//   "id": "compute.regionUrlMaps.update",
113399	//   "parameterOrder": [
113400	//     "project",
113401	//     "region",
113402	//     "urlMap"
113403	//   ],
113404	//   "parameters": {
113405	//     "project": {
113406	//       "description": "Project ID for this request.",
113407	//       "location": "path",
113408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113409	//       "required": true,
113410	//       "type": "string"
113411	//     },
113412	//     "region": {
113413	//       "description": "Name of the region scoping this request.",
113414	//       "location": "path",
113415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113416	//       "required": true,
113417	//       "type": "string"
113418	//     },
113419	//     "requestId": {
113420	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
113421	//       "location": "query",
113422	//       "type": "string"
113423	//     },
113424	//     "urlMap": {
113425	//       "description": "Name of the UrlMap resource to update.",
113426	//       "location": "path",
113427	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113428	//       "required": true,
113429	//       "type": "string"
113430	//     }
113431	//   },
113432	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
113433	//   "request": {
113434	//     "$ref": "UrlMap"
113435	//   },
113436	//   "response": {
113437	//     "$ref": "Operation"
113438	//   },
113439	//   "scopes": [
113440	//     "https://www.googleapis.com/auth/cloud-platform",
113441	//     "https://www.googleapis.com/auth/compute"
113442	//   ]
113443	// }
113444
113445}
113446
113447// method id "compute.regionUrlMaps.validate":
113448
113449type RegionUrlMapsValidateCall struct {
113450	s                            *Service
113451	project                      string
113452	region                       string
113453	urlMap                       string
113454	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
113455	urlParams_                   gensupport.URLParams
113456	ctx_                         context.Context
113457	header_                      http.Header
113458}
113459
113460// Validate: Runs static validation for the UrlMap. In particular, the
113461// tests of the provided UrlMap will be run. Calling this method does
113462// NOT create the UrlMap.
113463func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
113464	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113465	c.project = project
113466	c.region = region
113467	c.urlMap = urlMap
113468	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
113469	return c
113470}
113471
113472// Fields allows partial responses to be retrieved. See
113473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113474// for more information.
113475func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
113476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113477	return c
113478}
113479
113480// Context sets the context to be used in this call's Do method. Any
113481// pending HTTP request will be aborted if the provided context is
113482// canceled.
113483func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
113484	c.ctx_ = ctx
113485	return c
113486}
113487
113488// Header returns an http.Header that can be modified by the caller to
113489// add HTTP headers to the request.
113490func (c *RegionUrlMapsValidateCall) Header() http.Header {
113491	if c.header_ == nil {
113492		c.header_ = make(http.Header)
113493	}
113494	return c.header_
113495}
113496
113497func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
113498	reqHeaders := make(http.Header)
113499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113500	for k, v := range c.header_ {
113501		reqHeaders[k] = v
113502	}
113503	reqHeaders.Set("User-Agent", c.s.userAgent())
113504	var body io.Reader = nil
113505	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
113506	if err != nil {
113507		return nil, err
113508	}
113509	reqHeaders.Set("Content-Type", "application/json")
113510	c.urlParams_.Set("alt", alt)
113511	c.urlParams_.Set("prettyPrint", "false")
113512	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/validate")
113513	urls += "?" + c.urlParams_.Encode()
113514	req, err := http.NewRequest("POST", urls, body)
113515	if err != nil {
113516		return nil, err
113517	}
113518	req.Header = reqHeaders
113519	googleapi.Expand(req.URL, map[string]string{
113520		"project": c.project,
113521		"region":  c.region,
113522		"urlMap":  c.urlMap,
113523	})
113524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113525}
113526
113527// Do executes the "compute.regionUrlMaps.validate" call.
113528// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
113529// non-2xx status code is an error. Response headers are in either
113530// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
113531// returned at all) in error.(*googleapi.Error).Header. Use
113532// googleapi.IsNotModified to check whether the returned error was
113533// because http.StatusNotModified was returned.
113534func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
113535	gensupport.SetOptions(c.urlParams_, opts...)
113536	res, err := c.doRequest("json")
113537	if res != nil && res.StatusCode == http.StatusNotModified {
113538		if res.Body != nil {
113539			res.Body.Close()
113540		}
113541		return nil, &googleapi.Error{
113542			Code:   res.StatusCode,
113543			Header: res.Header,
113544		}
113545	}
113546	if err != nil {
113547		return nil, err
113548	}
113549	defer googleapi.CloseBody(res)
113550	if err := googleapi.CheckResponse(res); err != nil {
113551		return nil, err
113552	}
113553	ret := &UrlMapsValidateResponse{
113554		ServerResponse: googleapi.ServerResponse{
113555			Header:         res.Header,
113556			HTTPStatusCode: res.StatusCode,
113557		},
113558	}
113559	target := &ret
113560	if err := gensupport.DecodeResponse(target, res); err != nil {
113561		return nil, err
113562	}
113563	return ret, nil
113564	// {
113565	//   "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.",
113566	//   "httpMethod": "POST",
113567	//   "id": "compute.regionUrlMaps.validate",
113568	//   "parameterOrder": [
113569	//     "project",
113570	//     "region",
113571	//     "urlMap"
113572	//   ],
113573	//   "parameters": {
113574	//     "project": {
113575	//       "description": "Project ID for this request.",
113576	//       "location": "path",
113577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113578	//       "required": true,
113579	//       "type": "string"
113580	//     },
113581	//     "region": {
113582	//       "description": "Name of the region scoping this request.",
113583	//       "location": "path",
113584	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113585	//       "required": true,
113586	//       "type": "string"
113587	//     },
113588	//     "urlMap": {
113589	//       "description": "Name of the UrlMap resource to be validated as.",
113590	//       "location": "path",
113591	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113592	//       "required": true,
113593	//       "type": "string"
113594	//     }
113595	//   },
113596	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/validate",
113597	//   "request": {
113598	//     "$ref": "RegionUrlMapsValidateRequest"
113599	//   },
113600	//   "response": {
113601	//     "$ref": "UrlMapsValidateResponse"
113602	//   },
113603	//   "scopes": [
113604	//     "https://www.googleapis.com/auth/cloud-platform",
113605	//     "https://www.googleapis.com/auth/compute"
113606	//   ]
113607	// }
113608
113609}
113610
113611// method id "compute.regions.get":
113612
113613type RegionsGetCall struct {
113614	s            *Service
113615	project      string
113616	region       string
113617	urlParams_   gensupport.URLParams
113618	ifNoneMatch_ string
113619	ctx_         context.Context
113620	header_      http.Header
113621}
113622
113623// Get: Returns the specified Region resource. Gets a list of available
113624// regions by making a list() request.
113625// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
113626func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
113627	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113628	c.project = project
113629	c.region = region
113630	return c
113631}
113632
113633// Fields allows partial responses to be retrieved. See
113634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113635// for more information.
113636func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
113637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113638	return c
113639}
113640
113641// IfNoneMatch sets the optional parameter which makes the operation
113642// fail if the object's ETag matches the given value. This is useful for
113643// getting updates only after the object has changed since the last
113644// request. Use googleapi.IsNotModified to check whether the response
113645// error from Do is the result of In-None-Match.
113646func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
113647	c.ifNoneMatch_ = entityTag
113648	return c
113649}
113650
113651// Context sets the context to be used in this call's Do method. Any
113652// pending HTTP request will be aborted if the provided context is
113653// canceled.
113654func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
113655	c.ctx_ = ctx
113656	return c
113657}
113658
113659// Header returns an http.Header that can be modified by the caller to
113660// add HTTP headers to the request.
113661func (c *RegionsGetCall) Header() http.Header {
113662	if c.header_ == nil {
113663		c.header_ = make(http.Header)
113664	}
113665	return c.header_
113666}
113667
113668func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
113669	reqHeaders := make(http.Header)
113670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113671	for k, v := range c.header_ {
113672		reqHeaders[k] = v
113673	}
113674	reqHeaders.Set("User-Agent", c.s.userAgent())
113675	if c.ifNoneMatch_ != "" {
113676		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113677	}
113678	var body io.Reader = nil
113679	c.urlParams_.Set("alt", alt)
113680	c.urlParams_.Set("prettyPrint", "false")
113681	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
113682	urls += "?" + c.urlParams_.Encode()
113683	req, err := http.NewRequest("GET", urls, body)
113684	if err != nil {
113685		return nil, err
113686	}
113687	req.Header = reqHeaders
113688	googleapi.Expand(req.URL, map[string]string{
113689		"project": c.project,
113690		"region":  c.region,
113691	})
113692	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113693}
113694
113695// Do executes the "compute.regions.get" call.
113696// Exactly one of *Region or error will be non-nil. Any non-2xx status
113697// code is an error. Response headers are in either
113698// *Region.ServerResponse.Header or (if a response was returned at all)
113699// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
113700// check whether the returned error was because http.StatusNotModified
113701// was returned.
113702func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
113703	gensupport.SetOptions(c.urlParams_, opts...)
113704	res, err := c.doRequest("json")
113705	if res != nil && res.StatusCode == http.StatusNotModified {
113706		if res.Body != nil {
113707			res.Body.Close()
113708		}
113709		return nil, &googleapi.Error{
113710			Code:   res.StatusCode,
113711			Header: res.Header,
113712		}
113713	}
113714	if err != nil {
113715		return nil, err
113716	}
113717	defer googleapi.CloseBody(res)
113718	if err := googleapi.CheckResponse(res); err != nil {
113719		return nil, err
113720	}
113721	ret := &Region{
113722		ServerResponse: googleapi.ServerResponse{
113723			Header:         res.Header,
113724			HTTPStatusCode: res.StatusCode,
113725		},
113726	}
113727	target := &ret
113728	if err := gensupport.DecodeResponse(target, res); err != nil {
113729		return nil, err
113730	}
113731	return ret, nil
113732	// {
113733	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
113734	//   "httpMethod": "GET",
113735	//   "id": "compute.regions.get",
113736	//   "parameterOrder": [
113737	//     "project",
113738	//     "region"
113739	//   ],
113740	//   "parameters": {
113741	//     "project": {
113742	//       "description": "Project ID for this request.",
113743	//       "location": "path",
113744	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113745	//       "required": true,
113746	//       "type": "string"
113747	//     },
113748	//     "region": {
113749	//       "description": "Name of the region resource to return.",
113750	//       "location": "path",
113751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113752	//       "required": true,
113753	//       "type": "string"
113754	//     }
113755	//   },
113756	//   "path": "{project}/regions/{region}",
113757	//   "response": {
113758	//     "$ref": "Region"
113759	//   },
113760	//   "scopes": [
113761	//     "https://www.googleapis.com/auth/cloud-platform",
113762	//     "https://www.googleapis.com/auth/compute",
113763	//     "https://www.googleapis.com/auth/compute.readonly"
113764	//   ]
113765	// }
113766
113767}
113768
113769// method id "compute.regions.list":
113770
113771type RegionsListCall struct {
113772	s            *Service
113773	project      string
113774	urlParams_   gensupport.URLParams
113775	ifNoneMatch_ string
113776	ctx_         context.Context
113777	header_      http.Header
113778}
113779
113780// List: Retrieves the list of region resources available to the
113781// specified project.
113782// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
113783func (r *RegionsService) List(project string) *RegionsListCall {
113784	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113785	c.project = project
113786	return c
113787}
113788
113789// Filter sets the optional parameter "filter": A filter expression that
113790// filters resources listed in the response. The expression must specify
113791// the field name, a comparison operator, and the value that you want to
113792// use for filtering. The value must be a string, a number, or a
113793// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113794// `<`.
113795//
113796// For example, if you are filtering Compute Engine instances, you can
113797// exclude instances named `example-instance` by specifying `name !=
113798// example-instance`.
113799//
113800// You can also filter nested fields. For example, you could specify
113801// `scheduling.automaticRestart = false` to include instances only if
113802// they are not scheduled for automatic restarts. You can use filtering
113803// on nested fields to filter based on resource labels.
113804//
113805// To filter on multiple expressions, provide each separate expression
113806// within parentheses. For example: ``` (scheduling.automaticRestart =
113807// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
113808// is an `AND` expression. However, you can include `AND` and `OR`
113809// expressions explicitly. For example: ``` (cpuPlatform = "Intel
113810// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
113811// (scheduling.automaticRestart = true) ```
113812func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
113813	c.urlParams_.Set("filter", filter)
113814	return c
113815}
113816
113817// MaxResults sets the optional parameter "maxResults": The maximum
113818// number of results per page that should be returned. If the number of
113819// available results is larger than `maxResults`, Compute Engine returns
113820// a `nextPageToken` that can be used to get the next page of results in
113821// subsequent list requests. Acceptable values are `0` to `500`,
113822// inclusive. (Default: `500`)
113823func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
113824	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113825	return c
113826}
113827
113828// OrderBy sets the optional parameter "orderBy": Sorts list results by
113829// a certain order. By default, results are returned in alphanumerical
113830// order based on the resource name.
113831//
113832// You can also sort results in descending order based on the creation
113833// timestamp using `orderBy="creationTimestamp desc". This sorts
113834// results based on the `creationTimestamp` field in reverse
113835// chronological order (newest result first). Use this to sort resources
113836// like operations so that the newest operation is returned
113837// first.
113838//
113839// Currently, only sorting by `name` or `creationTimestamp desc` is
113840// supported.
113841func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
113842	c.urlParams_.Set("orderBy", orderBy)
113843	return c
113844}
113845
113846// PageToken sets the optional parameter "pageToken": Specifies a page
113847// token to use. Set `pageToken` to the `nextPageToken` returned by a
113848// previous list request to get the next page of results.
113849func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
113850	c.urlParams_.Set("pageToken", pageToken)
113851	return c
113852}
113853
113854// Fields allows partial responses to be retrieved. See
113855// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113856// for more information.
113857func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
113858	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113859	return c
113860}
113861
113862// IfNoneMatch sets the optional parameter which makes the operation
113863// fail if the object's ETag matches the given value. This is useful for
113864// getting updates only after the object has changed since the last
113865// request. Use googleapi.IsNotModified to check whether the response
113866// error from Do is the result of In-None-Match.
113867func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
113868	c.ifNoneMatch_ = entityTag
113869	return c
113870}
113871
113872// Context sets the context to be used in this call's Do method. Any
113873// pending HTTP request will be aborted if the provided context is
113874// canceled.
113875func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
113876	c.ctx_ = ctx
113877	return c
113878}
113879
113880// Header returns an http.Header that can be modified by the caller to
113881// add HTTP headers to the request.
113882func (c *RegionsListCall) Header() http.Header {
113883	if c.header_ == nil {
113884		c.header_ = make(http.Header)
113885	}
113886	return c.header_
113887}
113888
113889func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
113890	reqHeaders := make(http.Header)
113891	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113892	for k, v := range c.header_ {
113893		reqHeaders[k] = v
113894	}
113895	reqHeaders.Set("User-Agent", c.s.userAgent())
113896	if c.ifNoneMatch_ != "" {
113897		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113898	}
113899	var body io.Reader = nil
113900	c.urlParams_.Set("alt", alt)
113901	c.urlParams_.Set("prettyPrint", "false")
113902	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
113903	urls += "?" + c.urlParams_.Encode()
113904	req, err := http.NewRequest("GET", urls, body)
113905	if err != nil {
113906		return nil, err
113907	}
113908	req.Header = reqHeaders
113909	googleapi.Expand(req.URL, map[string]string{
113910		"project": c.project,
113911	})
113912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113913}
113914
113915// Do executes the "compute.regions.list" call.
113916// Exactly one of *RegionList or error will be non-nil. Any non-2xx
113917// status code is an error. Response headers are in either
113918// *RegionList.ServerResponse.Header or (if a response was returned at
113919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113920// to check whether the returned error was because
113921// http.StatusNotModified was returned.
113922func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
113923	gensupport.SetOptions(c.urlParams_, opts...)
113924	res, err := c.doRequest("json")
113925	if res != nil && res.StatusCode == http.StatusNotModified {
113926		if res.Body != nil {
113927			res.Body.Close()
113928		}
113929		return nil, &googleapi.Error{
113930			Code:   res.StatusCode,
113931			Header: res.Header,
113932		}
113933	}
113934	if err != nil {
113935		return nil, err
113936	}
113937	defer googleapi.CloseBody(res)
113938	if err := googleapi.CheckResponse(res); err != nil {
113939		return nil, err
113940	}
113941	ret := &RegionList{
113942		ServerResponse: googleapi.ServerResponse{
113943			Header:         res.Header,
113944			HTTPStatusCode: res.StatusCode,
113945		},
113946	}
113947	target := &ret
113948	if err := gensupport.DecodeResponse(target, res); err != nil {
113949		return nil, err
113950	}
113951	return ret, nil
113952	// {
113953	//   "description": "Retrieves the list of region resources available to the specified project.",
113954	//   "httpMethod": "GET",
113955	//   "id": "compute.regions.list",
113956	//   "parameterOrder": [
113957	//     "project"
113958	//   ],
113959	//   "parameters": {
113960	//     "filter": {
113961	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
113962	//       "location": "query",
113963	//       "type": "string"
113964	//     },
113965	//     "maxResults": {
113966	//       "default": "500",
113967	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
113968	//       "format": "uint32",
113969	//       "location": "query",
113970	//       "minimum": "0",
113971	//       "type": "integer"
113972	//     },
113973	//     "orderBy": {
113974	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
113975	//       "location": "query",
113976	//       "type": "string"
113977	//     },
113978	//     "pageToken": {
113979	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
113980	//       "location": "query",
113981	//       "type": "string"
113982	//     },
113983	//     "project": {
113984	//       "description": "Project ID for this request.",
113985	//       "location": "path",
113986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113987	//       "required": true,
113988	//       "type": "string"
113989	//     }
113990	//   },
113991	//   "path": "{project}/regions",
113992	//   "response": {
113993	//     "$ref": "RegionList"
113994	//   },
113995	//   "scopes": [
113996	//     "https://www.googleapis.com/auth/cloud-platform",
113997	//     "https://www.googleapis.com/auth/compute",
113998	//     "https://www.googleapis.com/auth/compute.readonly"
113999	//   ]
114000	// }
114001
114002}
114003
114004// Pages invokes f for each page of results.
114005// A non-nil error returned from f will halt the iteration.
114006// The provided context supersedes any context provided to the Context method.
114007func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
114008	c.ctx_ = ctx
114009	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114010	for {
114011		x, err := c.Do()
114012		if err != nil {
114013			return err
114014		}
114015		if err := f(x); err != nil {
114016			return err
114017		}
114018		if x.NextPageToken == "" {
114019			return nil
114020		}
114021		c.PageToken(x.NextPageToken)
114022	}
114023}
114024
114025// method id "compute.reservations.aggregatedList":
114026
114027type ReservationsAggregatedListCall struct {
114028	s            *Service
114029	project      string
114030	urlParams_   gensupport.URLParams
114031	ifNoneMatch_ string
114032	ctx_         context.Context
114033	header_      http.Header
114034}
114035
114036// AggregatedList: Retrieves an aggregated list of reservations.
114037func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
114038	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114039	c.project = project
114040	return c
114041}
114042
114043// Filter sets the optional parameter "filter": A filter expression that
114044// filters resources listed in the response. The expression must specify
114045// the field name, a comparison operator, and the value that you want to
114046// use for filtering. The value must be a string, a number, or a
114047// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114048// `<`.
114049//
114050// For example, if you are filtering Compute Engine instances, you can
114051// exclude instances named `example-instance` by specifying `name !=
114052// example-instance`.
114053//
114054// You can also filter nested fields. For example, you could specify
114055// `scheduling.automaticRestart = false` to include instances only if
114056// they are not scheduled for automatic restarts. You can use filtering
114057// on nested fields to filter based on resource labels.
114058//
114059// To filter on multiple expressions, provide each separate expression
114060// within parentheses. For example: ``` (scheduling.automaticRestart =
114061// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
114062// is an `AND` expression. However, you can include `AND` and `OR`
114063// expressions explicitly. For example: ``` (cpuPlatform = "Intel
114064// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
114065// (scheduling.automaticRestart = true) ```
114066func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
114067	c.urlParams_.Set("filter", filter)
114068	return c
114069}
114070
114071// IncludeAllScopes sets the optional parameter "includeAllScopes":
114072// Indicates whether every visible scope for each scope type (zone,
114073// region, global) should be included in the response. For new resource
114074// types added after this field, the flag has no effect as new resource
114075// types will always include every visible scope for each scope type in
114076// response. For resource types which predate this field, if this flag
114077// is omitted or false, only scopes of the scope types where the
114078// resource type is expected to be found will be included.
114079func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
114080	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
114081	return c
114082}
114083
114084// MaxResults sets the optional parameter "maxResults": The maximum
114085// number of results per page that should be returned. If the number of
114086// available results is larger than `maxResults`, Compute Engine returns
114087// a `nextPageToken` that can be used to get the next page of results in
114088// subsequent list requests. Acceptable values are `0` to `500`,
114089// inclusive. (Default: `500`)
114090func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
114091	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114092	return c
114093}
114094
114095// OrderBy sets the optional parameter "orderBy": Sorts list results by
114096// a certain order. By default, results are returned in alphanumerical
114097// order based on the resource name.
114098//
114099// You can also sort results in descending order based on the creation
114100// timestamp using `orderBy="creationTimestamp desc". This sorts
114101// results based on the `creationTimestamp` field in reverse
114102// chronological order (newest result first). Use this to sort resources
114103// like operations so that the newest operation is returned
114104// first.
114105//
114106// Currently, only sorting by `name` or `creationTimestamp desc` is
114107// supported.
114108func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
114109	c.urlParams_.Set("orderBy", orderBy)
114110	return c
114111}
114112
114113// PageToken sets the optional parameter "pageToken": Specifies a page
114114// token to use. Set `pageToken` to the `nextPageToken` returned by a
114115// previous list request to get the next page of results.
114116func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
114117	c.urlParams_.Set("pageToken", pageToken)
114118	return c
114119}
114120
114121// Fields allows partial responses to be retrieved. See
114122// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114123// for more information.
114124func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
114125	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114126	return c
114127}
114128
114129// IfNoneMatch sets the optional parameter which makes the operation
114130// fail if the object's ETag matches the given value. This is useful for
114131// getting updates only after the object has changed since the last
114132// request. Use googleapi.IsNotModified to check whether the response
114133// error from Do is the result of In-None-Match.
114134func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
114135	c.ifNoneMatch_ = entityTag
114136	return c
114137}
114138
114139// Context sets the context to be used in this call's Do method. Any
114140// pending HTTP request will be aborted if the provided context is
114141// canceled.
114142func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
114143	c.ctx_ = ctx
114144	return c
114145}
114146
114147// Header returns an http.Header that can be modified by the caller to
114148// add HTTP headers to the request.
114149func (c *ReservationsAggregatedListCall) Header() http.Header {
114150	if c.header_ == nil {
114151		c.header_ = make(http.Header)
114152	}
114153	return c.header_
114154}
114155
114156func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
114157	reqHeaders := make(http.Header)
114158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114159	for k, v := range c.header_ {
114160		reqHeaders[k] = v
114161	}
114162	reqHeaders.Set("User-Agent", c.s.userAgent())
114163	if c.ifNoneMatch_ != "" {
114164		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114165	}
114166	var body io.Reader = nil
114167	c.urlParams_.Set("alt", alt)
114168	c.urlParams_.Set("prettyPrint", "false")
114169	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/reservations")
114170	urls += "?" + c.urlParams_.Encode()
114171	req, err := http.NewRequest("GET", urls, body)
114172	if err != nil {
114173		return nil, err
114174	}
114175	req.Header = reqHeaders
114176	googleapi.Expand(req.URL, map[string]string{
114177		"project": c.project,
114178	})
114179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114180}
114181
114182// Do executes the "compute.reservations.aggregatedList" call.
114183// Exactly one of *ReservationAggregatedList or error will be non-nil.
114184// Any non-2xx status code is an error. Response headers are in either
114185// *ReservationAggregatedList.ServerResponse.Header or (if a response
114186// was returned at all) in error.(*googleapi.Error).Header. Use
114187// googleapi.IsNotModified to check whether the returned error was
114188// because http.StatusNotModified was returned.
114189func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
114190	gensupport.SetOptions(c.urlParams_, opts...)
114191	res, err := c.doRequest("json")
114192	if res != nil && res.StatusCode == http.StatusNotModified {
114193		if res.Body != nil {
114194			res.Body.Close()
114195		}
114196		return nil, &googleapi.Error{
114197			Code:   res.StatusCode,
114198			Header: res.Header,
114199		}
114200	}
114201	if err != nil {
114202		return nil, err
114203	}
114204	defer googleapi.CloseBody(res)
114205	if err := googleapi.CheckResponse(res); err != nil {
114206		return nil, err
114207	}
114208	ret := &ReservationAggregatedList{
114209		ServerResponse: googleapi.ServerResponse{
114210			Header:         res.Header,
114211			HTTPStatusCode: res.StatusCode,
114212		},
114213	}
114214	target := &ret
114215	if err := gensupport.DecodeResponse(target, res); err != nil {
114216		return nil, err
114217	}
114218	return ret, nil
114219	// {
114220	//   "description": "Retrieves an aggregated list of reservations.",
114221	//   "httpMethod": "GET",
114222	//   "id": "compute.reservations.aggregatedList",
114223	//   "parameterOrder": [
114224	//     "project"
114225	//   ],
114226	//   "parameters": {
114227	//     "filter": {
114228	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
114229	//       "location": "query",
114230	//       "type": "string"
114231	//     },
114232	//     "includeAllScopes": {
114233	//       "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.",
114234	//       "location": "query",
114235	//       "type": "boolean"
114236	//     },
114237	//     "maxResults": {
114238	//       "default": "500",
114239	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114240	//       "format": "uint32",
114241	//       "location": "query",
114242	//       "minimum": "0",
114243	//       "type": "integer"
114244	//     },
114245	//     "orderBy": {
114246	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
114247	//       "location": "query",
114248	//       "type": "string"
114249	//     },
114250	//     "pageToken": {
114251	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114252	//       "location": "query",
114253	//       "type": "string"
114254	//     },
114255	//     "project": {
114256	//       "description": "Project ID for this request.",
114257	//       "location": "path",
114258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114259	//       "required": true,
114260	//       "type": "string"
114261	//     }
114262	//   },
114263	//   "path": "{project}/aggregated/reservations",
114264	//   "response": {
114265	//     "$ref": "ReservationAggregatedList"
114266	//   },
114267	//   "scopes": [
114268	//     "https://www.googleapis.com/auth/cloud-platform",
114269	//     "https://www.googleapis.com/auth/compute",
114270	//     "https://www.googleapis.com/auth/compute.readonly"
114271	//   ]
114272	// }
114273
114274}
114275
114276// Pages invokes f for each page of results.
114277// A non-nil error returned from f will halt the iteration.
114278// The provided context supersedes any context provided to the Context method.
114279func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
114280	c.ctx_ = ctx
114281	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114282	for {
114283		x, err := c.Do()
114284		if err != nil {
114285			return err
114286		}
114287		if err := f(x); err != nil {
114288			return err
114289		}
114290		if x.NextPageToken == "" {
114291			return nil
114292		}
114293		c.PageToken(x.NextPageToken)
114294	}
114295}
114296
114297// method id "compute.reservations.delete":
114298
114299type ReservationsDeleteCall struct {
114300	s           *Service
114301	project     string
114302	zone        string
114303	reservation string
114304	urlParams_  gensupport.URLParams
114305	ctx_        context.Context
114306	header_     http.Header
114307}
114308
114309// Delete: Deletes the specified reservation.
114310func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
114311	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114312	c.project = project
114313	c.zone = zone
114314	c.reservation = reservation
114315	return c
114316}
114317
114318// RequestId sets the optional parameter "requestId": An optional
114319// request ID to identify requests. Specify a unique request ID so that
114320// if you must retry your request, the server will know to ignore the
114321// request if it has already been completed.
114322//
114323// For example, consider a situation where you make an initial request
114324// and the request times out. If you make the request again with the
114325// same request ID, the server can check if original operation with the
114326// same request ID was received, and if so, will ignore the second
114327// request. This prevents clients from accidentally creating duplicate
114328// commitments.
114329//
114330// The request ID must be a valid UUID with the exception that zero UUID
114331// is not supported (00000000-0000-0000-0000-000000000000).
114332func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
114333	c.urlParams_.Set("requestId", requestId)
114334	return c
114335}
114336
114337// Fields allows partial responses to be retrieved. See
114338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114339// for more information.
114340func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
114341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114342	return c
114343}
114344
114345// Context sets the context to be used in this call's Do method. Any
114346// pending HTTP request will be aborted if the provided context is
114347// canceled.
114348func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
114349	c.ctx_ = ctx
114350	return c
114351}
114352
114353// Header returns an http.Header that can be modified by the caller to
114354// add HTTP headers to the request.
114355func (c *ReservationsDeleteCall) Header() http.Header {
114356	if c.header_ == nil {
114357		c.header_ = make(http.Header)
114358	}
114359	return c.header_
114360}
114361
114362func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
114363	reqHeaders := make(http.Header)
114364	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114365	for k, v := range c.header_ {
114366		reqHeaders[k] = v
114367	}
114368	reqHeaders.Set("User-Agent", c.s.userAgent())
114369	var body io.Reader = nil
114370	c.urlParams_.Set("alt", alt)
114371	c.urlParams_.Set("prettyPrint", "false")
114372	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
114373	urls += "?" + c.urlParams_.Encode()
114374	req, err := http.NewRequest("DELETE", urls, body)
114375	if err != nil {
114376		return nil, err
114377	}
114378	req.Header = reqHeaders
114379	googleapi.Expand(req.URL, map[string]string{
114380		"project":     c.project,
114381		"zone":        c.zone,
114382		"reservation": c.reservation,
114383	})
114384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114385}
114386
114387// Do executes the "compute.reservations.delete" call.
114388// Exactly one of *Operation or error will be non-nil. Any non-2xx
114389// status code is an error. Response headers are in either
114390// *Operation.ServerResponse.Header or (if a response was returned at
114391// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114392// to check whether the returned error was because
114393// http.StatusNotModified was returned.
114394func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114395	gensupport.SetOptions(c.urlParams_, opts...)
114396	res, err := c.doRequest("json")
114397	if res != nil && res.StatusCode == http.StatusNotModified {
114398		if res.Body != nil {
114399			res.Body.Close()
114400		}
114401		return nil, &googleapi.Error{
114402			Code:   res.StatusCode,
114403			Header: res.Header,
114404		}
114405	}
114406	if err != nil {
114407		return nil, err
114408	}
114409	defer googleapi.CloseBody(res)
114410	if err := googleapi.CheckResponse(res); err != nil {
114411		return nil, err
114412	}
114413	ret := &Operation{
114414		ServerResponse: googleapi.ServerResponse{
114415			Header:         res.Header,
114416			HTTPStatusCode: res.StatusCode,
114417		},
114418	}
114419	target := &ret
114420	if err := gensupport.DecodeResponse(target, res); err != nil {
114421		return nil, err
114422	}
114423	return ret, nil
114424	// {
114425	//   "description": "Deletes the specified reservation.",
114426	//   "httpMethod": "DELETE",
114427	//   "id": "compute.reservations.delete",
114428	//   "parameterOrder": [
114429	//     "project",
114430	//     "zone",
114431	//     "reservation"
114432	//   ],
114433	//   "parameters": {
114434	//     "project": {
114435	//       "description": "Project ID for this request.",
114436	//       "location": "path",
114437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114438	//       "required": true,
114439	//       "type": "string"
114440	//     },
114441	//     "requestId": {
114442	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114443	//       "location": "query",
114444	//       "type": "string"
114445	//     },
114446	//     "reservation": {
114447	//       "description": "Name of the reservation to delete.",
114448	//       "location": "path",
114449	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114450	//       "required": true,
114451	//       "type": "string"
114452	//     },
114453	//     "zone": {
114454	//       "description": "Name of the zone for this request.",
114455	//       "location": "path",
114456	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114457	//       "required": true,
114458	//       "type": "string"
114459	//     }
114460	//   },
114461	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
114462	//   "response": {
114463	//     "$ref": "Operation"
114464	//   },
114465	//   "scopes": [
114466	//     "https://www.googleapis.com/auth/cloud-platform",
114467	//     "https://www.googleapis.com/auth/compute"
114468	//   ]
114469	// }
114470
114471}
114472
114473// method id "compute.reservations.get":
114474
114475type ReservationsGetCall struct {
114476	s            *Service
114477	project      string
114478	zone         string
114479	reservation  string
114480	urlParams_   gensupport.URLParams
114481	ifNoneMatch_ string
114482	ctx_         context.Context
114483	header_      http.Header
114484}
114485
114486// Get: Retrieves information about the specified reservation.
114487func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
114488	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114489	c.project = project
114490	c.zone = zone
114491	c.reservation = reservation
114492	return c
114493}
114494
114495// Fields allows partial responses to be retrieved. See
114496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114497// for more information.
114498func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
114499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114500	return c
114501}
114502
114503// IfNoneMatch sets the optional parameter which makes the operation
114504// fail if the object's ETag matches the given value. This is useful for
114505// getting updates only after the object has changed since the last
114506// request. Use googleapi.IsNotModified to check whether the response
114507// error from Do is the result of In-None-Match.
114508func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
114509	c.ifNoneMatch_ = entityTag
114510	return c
114511}
114512
114513// Context sets the context to be used in this call's Do method. Any
114514// pending HTTP request will be aborted if the provided context is
114515// canceled.
114516func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
114517	c.ctx_ = ctx
114518	return c
114519}
114520
114521// Header returns an http.Header that can be modified by the caller to
114522// add HTTP headers to the request.
114523func (c *ReservationsGetCall) Header() http.Header {
114524	if c.header_ == nil {
114525		c.header_ = make(http.Header)
114526	}
114527	return c.header_
114528}
114529
114530func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
114531	reqHeaders := make(http.Header)
114532	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114533	for k, v := range c.header_ {
114534		reqHeaders[k] = v
114535	}
114536	reqHeaders.Set("User-Agent", c.s.userAgent())
114537	if c.ifNoneMatch_ != "" {
114538		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114539	}
114540	var body io.Reader = nil
114541	c.urlParams_.Set("alt", alt)
114542	c.urlParams_.Set("prettyPrint", "false")
114543	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
114544	urls += "?" + c.urlParams_.Encode()
114545	req, err := http.NewRequest("GET", urls, body)
114546	if err != nil {
114547		return nil, err
114548	}
114549	req.Header = reqHeaders
114550	googleapi.Expand(req.URL, map[string]string{
114551		"project":     c.project,
114552		"zone":        c.zone,
114553		"reservation": c.reservation,
114554	})
114555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114556}
114557
114558// Do executes the "compute.reservations.get" call.
114559// Exactly one of *Reservation or error will be non-nil. Any non-2xx
114560// status code is an error. Response headers are in either
114561// *Reservation.ServerResponse.Header or (if a response was returned at
114562// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114563// to check whether the returned error was because
114564// http.StatusNotModified was returned.
114565func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
114566	gensupport.SetOptions(c.urlParams_, opts...)
114567	res, err := c.doRequest("json")
114568	if res != nil && res.StatusCode == http.StatusNotModified {
114569		if res.Body != nil {
114570			res.Body.Close()
114571		}
114572		return nil, &googleapi.Error{
114573			Code:   res.StatusCode,
114574			Header: res.Header,
114575		}
114576	}
114577	if err != nil {
114578		return nil, err
114579	}
114580	defer googleapi.CloseBody(res)
114581	if err := googleapi.CheckResponse(res); err != nil {
114582		return nil, err
114583	}
114584	ret := &Reservation{
114585		ServerResponse: googleapi.ServerResponse{
114586			Header:         res.Header,
114587			HTTPStatusCode: res.StatusCode,
114588		},
114589	}
114590	target := &ret
114591	if err := gensupport.DecodeResponse(target, res); err != nil {
114592		return nil, err
114593	}
114594	return ret, nil
114595	// {
114596	//   "description": "Retrieves information about the specified reservation.",
114597	//   "httpMethod": "GET",
114598	//   "id": "compute.reservations.get",
114599	//   "parameterOrder": [
114600	//     "project",
114601	//     "zone",
114602	//     "reservation"
114603	//   ],
114604	//   "parameters": {
114605	//     "project": {
114606	//       "description": "Project ID for this request.",
114607	//       "location": "path",
114608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114609	//       "required": true,
114610	//       "type": "string"
114611	//     },
114612	//     "reservation": {
114613	//       "description": "Name of the reservation to retrieve.",
114614	//       "location": "path",
114615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114616	//       "required": true,
114617	//       "type": "string"
114618	//     },
114619	//     "zone": {
114620	//       "description": "Name of the zone for this request.",
114621	//       "location": "path",
114622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114623	//       "required": true,
114624	//       "type": "string"
114625	//     }
114626	//   },
114627	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
114628	//   "response": {
114629	//     "$ref": "Reservation"
114630	//   },
114631	//   "scopes": [
114632	//     "https://www.googleapis.com/auth/cloud-platform",
114633	//     "https://www.googleapis.com/auth/compute",
114634	//     "https://www.googleapis.com/auth/compute.readonly"
114635	//   ]
114636	// }
114637
114638}
114639
114640// method id "compute.reservations.getIamPolicy":
114641
114642type ReservationsGetIamPolicyCall struct {
114643	s            *Service
114644	project      string
114645	zone         string
114646	resource     string
114647	urlParams_   gensupport.URLParams
114648	ifNoneMatch_ string
114649	ctx_         context.Context
114650	header_      http.Header
114651}
114652
114653// GetIamPolicy: Gets the access control policy for a resource. May be
114654// empty if no such policy or resource exists.
114655func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
114656	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114657	c.project = project
114658	c.zone = zone
114659	c.resource = resource
114660	return c
114661}
114662
114663// Fields allows partial responses to be retrieved. See
114664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114665// for more information.
114666func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
114667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114668	return c
114669}
114670
114671// IfNoneMatch sets the optional parameter which makes the operation
114672// fail if the object's ETag matches the given value. This is useful for
114673// getting updates only after the object has changed since the last
114674// request. Use googleapi.IsNotModified to check whether the response
114675// error from Do is the result of In-None-Match.
114676func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
114677	c.ifNoneMatch_ = entityTag
114678	return c
114679}
114680
114681// Context sets the context to be used in this call's Do method. Any
114682// pending HTTP request will be aborted if the provided context is
114683// canceled.
114684func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
114685	c.ctx_ = ctx
114686	return c
114687}
114688
114689// Header returns an http.Header that can be modified by the caller to
114690// add HTTP headers to the request.
114691func (c *ReservationsGetIamPolicyCall) Header() http.Header {
114692	if c.header_ == nil {
114693		c.header_ = make(http.Header)
114694	}
114695	return c.header_
114696}
114697
114698func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
114699	reqHeaders := make(http.Header)
114700	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114701	for k, v := range c.header_ {
114702		reqHeaders[k] = v
114703	}
114704	reqHeaders.Set("User-Agent", c.s.userAgent())
114705	if c.ifNoneMatch_ != "" {
114706		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114707	}
114708	var body io.Reader = nil
114709	c.urlParams_.Set("alt", alt)
114710	c.urlParams_.Set("prettyPrint", "false")
114711	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
114712	urls += "?" + c.urlParams_.Encode()
114713	req, err := http.NewRequest("GET", urls, body)
114714	if err != nil {
114715		return nil, err
114716	}
114717	req.Header = reqHeaders
114718	googleapi.Expand(req.URL, map[string]string{
114719		"project":  c.project,
114720		"zone":     c.zone,
114721		"resource": c.resource,
114722	})
114723	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114724}
114725
114726// Do executes the "compute.reservations.getIamPolicy" call.
114727// Exactly one of *Policy or error will be non-nil. Any non-2xx status
114728// code is an error. Response headers are in either
114729// *Policy.ServerResponse.Header or (if a response was returned at all)
114730// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
114731// check whether the returned error was because http.StatusNotModified
114732// was returned.
114733func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
114734	gensupport.SetOptions(c.urlParams_, opts...)
114735	res, err := c.doRequest("json")
114736	if res != nil && res.StatusCode == http.StatusNotModified {
114737		if res.Body != nil {
114738			res.Body.Close()
114739		}
114740		return nil, &googleapi.Error{
114741			Code:   res.StatusCode,
114742			Header: res.Header,
114743		}
114744	}
114745	if err != nil {
114746		return nil, err
114747	}
114748	defer googleapi.CloseBody(res)
114749	if err := googleapi.CheckResponse(res); err != nil {
114750		return nil, err
114751	}
114752	ret := &Policy{
114753		ServerResponse: googleapi.ServerResponse{
114754			Header:         res.Header,
114755			HTTPStatusCode: res.StatusCode,
114756		},
114757	}
114758	target := &ret
114759	if err := gensupport.DecodeResponse(target, res); err != nil {
114760		return nil, err
114761	}
114762	return ret, nil
114763	// {
114764	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
114765	//   "httpMethod": "GET",
114766	//   "id": "compute.reservations.getIamPolicy",
114767	//   "parameterOrder": [
114768	//     "project",
114769	//     "zone",
114770	//     "resource"
114771	//   ],
114772	//   "parameters": {
114773	//     "project": {
114774	//       "description": "Project ID for this request.",
114775	//       "location": "path",
114776	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114777	//       "required": true,
114778	//       "type": "string"
114779	//     },
114780	//     "resource": {
114781	//       "description": "Name or id of the resource for this request.",
114782	//       "location": "path",
114783	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114784	//       "required": true,
114785	//       "type": "string"
114786	//     },
114787	//     "zone": {
114788	//       "description": "The name of the zone for this request.",
114789	//       "location": "path",
114790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114791	//       "required": true,
114792	//       "type": "string"
114793	//     }
114794	//   },
114795	//   "path": "{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
114796	//   "response": {
114797	//     "$ref": "Policy"
114798	//   },
114799	//   "scopes": [
114800	//     "https://www.googleapis.com/auth/cloud-platform",
114801	//     "https://www.googleapis.com/auth/compute",
114802	//     "https://www.googleapis.com/auth/compute.readonly"
114803	//   ]
114804	// }
114805
114806}
114807
114808// method id "compute.reservations.insert":
114809
114810type ReservationsInsertCall struct {
114811	s           *Service
114812	project     string
114813	zone        string
114814	reservation *Reservation
114815	urlParams_  gensupport.URLParams
114816	ctx_        context.Context
114817	header_     http.Header
114818}
114819
114820// Insert: Creates a new reservation. For more information, read
114821// Reserving zonal resources.
114822func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
114823	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114824	c.project = project
114825	c.zone = zone
114826	c.reservation = reservation
114827	return c
114828}
114829
114830// RequestId sets the optional parameter "requestId": An optional
114831// request ID to identify requests. Specify a unique request ID so that
114832// if you must retry your request, the server will know to ignore the
114833// request if it has already been completed.
114834//
114835// For example, consider a situation where you make an initial request
114836// and the request times out. If you make the request again with the
114837// same request ID, the server can check if original operation with the
114838// same request ID was received, and if so, will ignore the second
114839// request. This prevents clients from accidentally creating duplicate
114840// commitments.
114841//
114842// The request ID must be a valid UUID with the exception that zero UUID
114843// is not supported (00000000-0000-0000-0000-000000000000).
114844func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
114845	c.urlParams_.Set("requestId", requestId)
114846	return c
114847}
114848
114849// Fields allows partial responses to be retrieved. See
114850// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114851// for more information.
114852func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
114853	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114854	return c
114855}
114856
114857// Context sets the context to be used in this call's Do method. Any
114858// pending HTTP request will be aborted if the provided context is
114859// canceled.
114860func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
114861	c.ctx_ = ctx
114862	return c
114863}
114864
114865// Header returns an http.Header that can be modified by the caller to
114866// add HTTP headers to the request.
114867func (c *ReservationsInsertCall) Header() http.Header {
114868	if c.header_ == nil {
114869		c.header_ = make(http.Header)
114870	}
114871	return c.header_
114872}
114873
114874func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
114875	reqHeaders := make(http.Header)
114876	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114877	for k, v := range c.header_ {
114878		reqHeaders[k] = v
114879	}
114880	reqHeaders.Set("User-Agent", c.s.userAgent())
114881	var body io.Reader = nil
114882	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
114883	if err != nil {
114884		return nil, err
114885	}
114886	reqHeaders.Set("Content-Type", "application/json")
114887	c.urlParams_.Set("alt", alt)
114888	c.urlParams_.Set("prettyPrint", "false")
114889	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
114890	urls += "?" + c.urlParams_.Encode()
114891	req, err := http.NewRequest("POST", urls, body)
114892	if err != nil {
114893		return nil, err
114894	}
114895	req.Header = reqHeaders
114896	googleapi.Expand(req.URL, map[string]string{
114897		"project": c.project,
114898		"zone":    c.zone,
114899	})
114900	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114901}
114902
114903// Do executes the "compute.reservations.insert" call.
114904// Exactly one of *Operation or error will be non-nil. Any non-2xx
114905// status code is an error. Response headers are in either
114906// *Operation.ServerResponse.Header or (if a response was returned at
114907// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114908// to check whether the returned error was because
114909// http.StatusNotModified was returned.
114910func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114911	gensupport.SetOptions(c.urlParams_, opts...)
114912	res, err := c.doRequest("json")
114913	if res != nil && res.StatusCode == http.StatusNotModified {
114914		if res.Body != nil {
114915			res.Body.Close()
114916		}
114917		return nil, &googleapi.Error{
114918			Code:   res.StatusCode,
114919			Header: res.Header,
114920		}
114921	}
114922	if err != nil {
114923		return nil, err
114924	}
114925	defer googleapi.CloseBody(res)
114926	if err := googleapi.CheckResponse(res); err != nil {
114927		return nil, err
114928	}
114929	ret := &Operation{
114930		ServerResponse: googleapi.ServerResponse{
114931			Header:         res.Header,
114932			HTTPStatusCode: res.StatusCode,
114933		},
114934	}
114935	target := &ret
114936	if err := gensupport.DecodeResponse(target, res); err != nil {
114937		return nil, err
114938	}
114939	return ret, nil
114940	// {
114941	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
114942	//   "httpMethod": "POST",
114943	//   "id": "compute.reservations.insert",
114944	//   "parameterOrder": [
114945	//     "project",
114946	//     "zone"
114947	//   ],
114948	//   "parameters": {
114949	//     "project": {
114950	//       "description": "Project ID for this request.",
114951	//       "location": "path",
114952	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114953	//       "required": true,
114954	//       "type": "string"
114955	//     },
114956	//     "requestId": {
114957	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114958	//       "location": "query",
114959	//       "type": "string"
114960	//     },
114961	//     "zone": {
114962	//       "description": "Name of the zone for this request.",
114963	//       "location": "path",
114964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114965	//       "required": true,
114966	//       "type": "string"
114967	//     }
114968	//   },
114969	//   "path": "{project}/zones/{zone}/reservations",
114970	//   "request": {
114971	//     "$ref": "Reservation"
114972	//   },
114973	//   "response": {
114974	//     "$ref": "Operation"
114975	//   },
114976	//   "scopes": [
114977	//     "https://www.googleapis.com/auth/cloud-platform",
114978	//     "https://www.googleapis.com/auth/compute"
114979	//   ]
114980	// }
114981
114982}
114983
114984// method id "compute.reservations.list":
114985
114986type ReservationsListCall struct {
114987	s            *Service
114988	project      string
114989	zone         string
114990	urlParams_   gensupport.URLParams
114991	ifNoneMatch_ string
114992	ctx_         context.Context
114993	header_      http.Header
114994}
114995
114996// List: A list of all the reservations that have been configured for
114997// the specified project in specified zone.
114998func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
114999	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115000	c.project = project
115001	c.zone = zone
115002	return c
115003}
115004
115005// Filter sets the optional parameter "filter": A filter expression that
115006// filters resources listed in the response. The expression must specify
115007// the field name, a comparison operator, and the value that you want to
115008// use for filtering. The value must be a string, a number, or a
115009// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115010// `<`.
115011//
115012// For example, if you are filtering Compute Engine instances, you can
115013// exclude instances named `example-instance` by specifying `name !=
115014// example-instance`.
115015//
115016// You can also filter nested fields. For example, you could specify
115017// `scheduling.automaticRestart = false` to include instances only if
115018// they are not scheduled for automatic restarts. You can use filtering
115019// on nested fields to filter based on resource labels.
115020//
115021// To filter on multiple expressions, provide each separate expression
115022// within parentheses. For example: ``` (scheduling.automaticRestart =
115023// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115024// is an `AND` expression. However, you can include `AND` and `OR`
115025// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115026// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115027// (scheduling.automaticRestart = true) ```
115028func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
115029	c.urlParams_.Set("filter", filter)
115030	return c
115031}
115032
115033// MaxResults sets the optional parameter "maxResults": The maximum
115034// number of results per page that should be returned. If the number of
115035// available results is larger than `maxResults`, Compute Engine returns
115036// a `nextPageToken` that can be used to get the next page of results in
115037// subsequent list requests. Acceptable values are `0` to `500`,
115038// inclusive. (Default: `500`)
115039func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
115040	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115041	return c
115042}
115043
115044// OrderBy sets the optional parameter "orderBy": Sorts list results by
115045// a certain order. By default, results are returned in alphanumerical
115046// order based on the resource name.
115047//
115048// You can also sort results in descending order based on the creation
115049// timestamp using `orderBy="creationTimestamp desc". This sorts
115050// results based on the `creationTimestamp` field in reverse
115051// chronological order (newest result first). Use this to sort resources
115052// like operations so that the newest operation is returned
115053// first.
115054//
115055// Currently, only sorting by `name` or `creationTimestamp desc` is
115056// supported.
115057func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
115058	c.urlParams_.Set("orderBy", orderBy)
115059	return c
115060}
115061
115062// PageToken sets the optional parameter "pageToken": Specifies a page
115063// token to use. Set `pageToken` to the `nextPageToken` returned by a
115064// previous list request to get the next page of results.
115065func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
115066	c.urlParams_.Set("pageToken", pageToken)
115067	return c
115068}
115069
115070// Fields allows partial responses to be retrieved. See
115071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115072// for more information.
115073func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
115074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115075	return c
115076}
115077
115078// IfNoneMatch sets the optional parameter which makes the operation
115079// fail if the object's ETag matches the given value. This is useful for
115080// getting updates only after the object has changed since the last
115081// request. Use googleapi.IsNotModified to check whether the response
115082// error from Do is the result of In-None-Match.
115083func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
115084	c.ifNoneMatch_ = entityTag
115085	return c
115086}
115087
115088// Context sets the context to be used in this call's Do method. Any
115089// pending HTTP request will be aborted if the provided context is
115090// canceled.
115091func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
115092	c.ctx_ = ctx
115093	return c
115094}
115095
115096// Header returns an http.Header that can be modified by the caller to
115097// add HTTP headers to the request.
115098func (c *ReservationsListCall) Header() http.Header {
115099	if c.header_ == nil {
115100		c.header_ = make(http.Header)
115101	}
115102	return c.header_
115103}
115104
115105func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
115106	reqHeaders := make(http.Header)
115107	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115108	for k, v := range c.header_ {
115109		reqHeaders[k] = v
115110	}
115111	reqHeaders.Set("User-Agent", c.s.userAgent())
115112	if c.ifNoneMatch_ != "" {
115113		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115114	}
115115	var body io.Reader = nil
115116	c.urlParams_.Set("alt", alt)
115117	c.urlParams_.Set("prettyPrint", "false")
115118	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
115119	urls += "?" + c.urlParams_.Encode()
115120	req, err := http.NewRequest("GET", urls, body)
115121	if err != nil {
115122		return nil, err
115123	}
115124	req.Header = reqHeaders
115125	googleapi.Expand(req.URL, map[string]string{
115126		"project": c.project,
115127		"zone":    c.zone,
115128	})
115129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115130}
115131
115132// Do executes the "compute.reservations.list" call.
115133// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
115134// status code is an error. Response headers are in either
115135// *ReservationList.ServerResponse.Header or (if a response was returned
115136// at all) in error.(*googleapi.Error).Header. Use
115137// googleapi.IsNotModified to check whether the returned error was
115138// because http.StatusNotModified was returned.
115139func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
115140	gensupport.SetOptions(c.urlParams_, opts...)
115141	res, err := c.doRequest("json")
115142	if res != nil && res.StatusCode == http.StatusNotModified {
115143		if res.Body != nil {
115144			res.Body.Close()
115145		}
115146		return nil, &googleapi.Error{
115147			Code:   res.StatusCode,
115148			Header: res.Header,
115149		}
115150	}
115151	if err != nil {
115152		return nil, err
115153	}
115154	defer googleapi.CloseBody(res)
115155	if err := googleapi.CheckResponse(res); err != nil {
115156		return nil, err
115157	}
115158	ret := &ReservationList{
115159		ServerResponse: googleapi.ServerResponse{
115160			Header:         res.Header,
115161			HTTPStatusCode: res.StatusCode,
115162		},
115163	}
115164	target := &ret
115165	if err := gensupport.DecodeResponse(target, res); err != nil {
115166		return nil, err
115167	}
115168	return ret, nil
115169	// {
115170	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
115171	//   "httpMethod": "GET",
115172	//   "id": "compute.reservations.list",
115173	//   "parameterOrder": [
115174	//     "project",
115175	//     "zone"
115176	//   ],
115177	//   "parameters": {
115178	//     "filter": {
115179	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115180	//       "location": "query",
115181	//       "type": "string"
115182	//     },
115183	//     "maxResults": {
115184	//       "default": "500",
115185	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115186	//       "format": "uint32",
115187	//       "location": "query",
115188	//       "minimum": "0",
115189	//       "type": "integer"
115190	//     },
115191	//     "orderBy": {
115192	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
115193	//       "location": "query",
115194	//       "type": "string"
115195	//     },
115196	//     "pageToken": {
115197	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115198	//       "location": "query",
115199	//       "type": "string"
115200	//     },
115201	//     "project": {
115202	//       "description": "Project ID for this request.",
115203	//       "location": "path",
115204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115205	//       "required": true,
115206	//       "type": "string"
115207	//     },
115208	//     "zone": {
115209	//       "description": "Name of the zone for this request.",
115210	//       "location": "path",
115211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115212	//       "required": true,
115213	//       "type": "string"
115214	//     }
115215	//   },
115216	//   "path": "{project}/zones/{zone}/reservations",
115217	//   "response": {
115218	//     "$ref": "ReservationList"
115219	//   },
115220	//   "scopes": [
115221	//     "https://www.googleapis.com/auth/cloud-platform",
115222	//     "https://www.googleapis.com/auth/compute",
115223	//     "https://www.googleapis.com/auth/compute.readonly"
115224	//   ]
115225	// }
115226
115227}
115228
115229// Pages invokes f for each page of results.
115230// A non-nil error returned from f will halt the iteration.
115231// The provided context supersedes any context provided to the Context method.
115232func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
115233	c.ctx_ = ctx
115234	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115235	for {
115236		x, err := c.Do()
115237		if err != nil {
115238			return err
115239		}
115240		if err := f(x); err != nil {
115241			return err
115242		}
115243		if x.NextPageToken == "" {
115244			return nil
115245		}
115246		c.PageToken(x.NextPageToken)
115247	}
115248}
115249
115250// method id "compute.reservations.resize":
115251
115252type ReservationsResizeCall struct {
115253	s                         *Service
115254	project                   string
115255	zone                      string
115256	reservation               string
115257	reservationsresizerequest *ReservationsResizeRequest
115258	urlParams_                gensupport.URLParams
115259	ctx_                      context.Context
115260	header_                   http.Header
115261}
115262
115263// Resize: Resizes the reservation (applicable to standalone
115264// reservations only). For more information, read Modifying
115265// reservations.
115266func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
115267	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115268	c.project = project
115269	c.zone = zone
115270	c.reservation = reservation
115271	c.reservationsresizerequest = reservationsresizerequest
115272	return c
115273}
115274
115275// RequestId sets the optional parameter "requestId": An optional
115276// request ID to identify requests. Specify a unique request ID so that
115277// if you must retry your request, the server will know to ignore the
115278// request if it has already been completed.
115279//
115280// For example, consider a situation where you make an initial request
115281// and the request times out. If you make the request again with the
115282// same request ID, the server can check if original operation with the
115283// same request ID was received, and if so, will ignore the second
115284// request. This prevents clients from accidentally creating duplicate
115285// commitments.
115286//
115287// The request ID must be a valid UUID with the exception that zero UUID
115288// is not supported (00000000-0000-0000-0000-000000000000).
115289func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
115290	c.urlParams_.Set("requestId", requestId)
115291	return c
115292}
115293
115294// Fields allows partial responses to be retrieved. See
115295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115296// for more information.
115297func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
115298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115299	return c
115300}
115301
115302// Context sets the context to be used in this call's Do method. Any
115303// pending HTTP request will be aborted if the provided context is
115304// canceled.
115305func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
115306	c.ctx_ = ctx
115307	return c
115308}
115309
115310// Header returns an http.Header that can be modified by the caller to
115311// add HTTP headers to the request.
115312func (c *ReservationsResizeCall) Header() http.Header {
115313	if c.header_ == nil {
115314		c.header_ = make(http.Header)
115315	}
115316	return c.header_
115317}
115318
115319func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
115320	reqHeaders := make(http.Header)
115321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115322	for k, v := range c.header_ {
115323		reqHeaders[k] = v
115324	}
115325	reqHeaders.Set("User-Agent", c.s.userAgent())
115326	var body io.Reader = nil
115327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
115328	if err != nil {
115329		return nil, err
115330	}
115331	reqHeaders.Set("Content-Type", "application/json")
115332	c.urlParams_.Set("alt", alt)
115333	c.urlParams_.Set("prettyPrint", "false")
115334	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}/resize")
115335	urls += "?" + c.urlParams_.Encode()
115336	req, err := http.NewRequest("POST", urls, body)
115337	if err != nil {
115338		return nil, err
115339	}
115340	req.Header = reqHeaders
115341	googleapi.Expand(req.URL, map[string]string{
115342		"project":     c.project,
115343		"zone":        c.zone,
115344		"reservation": c.reservation,
115345	})
115346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115347}
115348
115349// Do executes the "compute.reservations.resize" call.
115350// Exactly one of *Operation or error will be non-nil. Any non-2xx
115351// status code is an error. Response headers are in either
115352// *Operation.ServerResponse.Header or (if a response was returned at
115353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115354// to check whether the returned error was because
115355// http.StatusNotModified was returned.
115356func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115357	gensupport.SetOptions(c.urlParams_, opts...)
115358	res, err := c.doRequest("json")
115359	if res != nil && res.StatusCode == http.StatusNotModified {
115360		if res.Body != nil {
115361			res.Body.Close()
115362		}
115363		return nil, &googleapi.Error{
115364			Code:   res.StatusCode,
115365			Header: res.Header,
115366		}
115367	}
115368	if err != nil {
115369		return nil, err
115370	}
115371	defer googleapi.CloseBody(res)
115372	if err := googleapi.CheckResponse(res); err != nil {
115373		return nil, err
115374	}
115375	ret := &Operation{
115376		ServerResponse: googleapi.ServerResponse{
115377			Header:         res.Header,
115378			HTTPStatusCode: res.StatusCode,
115379		},
115380	}
115381	target := &ret
115382	if err := gensupport.DecodeResponse(target, res); err != nil {
115383		return nil, err
115384	}
115385	return ret, nil
115386	// {
115387	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
115388	//   "httpMethod": "POST",
115389	//   "id": "compute.reservations.resize",
115390	//   "parameterOrder": [
115391	//     "project",
115392	//     "zone",
115393	//     "reservation"
115394	//   ],
115395	//   "parameters": {
115396	//     "project": {
115397	//       "description": "Project ID for this request.",
115398	//       "location": "path",
115399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115400	//       "required": true,
115401	//       "type": "string"
115402	//     },
115403	//     "requestId": {
115404	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115405	//       "location": "query",
115406	//       "type": "string"
115407	//     },
115408	//     "reservation": {
115409	//       "description": "Name of the reservation to update.",
115410	//       "location": "path",
115411	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115412	//       "required": true,
115413	//       "type": "string"
115414	//     },
115415	//     "zone": {
115416	//       "description": "Name of the zone for this request.",
115417	//       "location": "path",
115418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115419	//       "required": true,
115420	//       "type": "string"
115421	//     }
115422	//   },
115423	//   "path": "{project}/zones/{zone}/reservations/{reservation}/resize",
115424	//   "request": {
115425	//     "$ref": "ReservationsResizeRequest"
115426	//   },
115427	//   "response": {
115428	//     "$ref": "Operation"
115429	//   },
115430	//   "scopes": [
115431	//     "https://www.googleapis.com/auth/cloud-platform",
115432	//     "https://www.googleapis.com/auth/compute"
115433	//   ]
115434	// }
115435
115436}
115437
115438// method id "compute.reservations.setIamPolicy":
115439
115440type ReservationsSetIamPolicyCall struct {
115441	s                    *Service
115442	project              string
115443	zone                 string
115444	resource             string
115445	zonesetpolicyrequest *ZoneSetPolicyRequest
115446	urlParams_           gensupport.URLParams
115447	ctx_                 context.Context
115448	header_              http.Header
115449}
115450
115451// SetIamPolicy: Sets the access control policy on the specified
115452// resource. Replaces any existing policy.
115453func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
115454	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115455	c.project = project
115456	c.zone = zone
115457	c.resource = resource
115458	c.zonesetpolicyrequest = zonesetpolicyrequest
115459	return c
115460}
115461
115462// Fields allows partial responses to be retrieved. See
115463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115464// for more information.
115465func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
115466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115467	return c
115468}
115469
115470// Context sets the context to be used in this call's Do method. Any
115471// pending HTTP request will be aborted if the provided context is
115472// canceled.
115473func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
115474	c.ctx_ = ctx
115475	return c
115476}
115477
115478// Header returns an http.Header that can be modified by the caller to
115479// add HTTP headers to the request.
115480func (c *ReservationsSetIamPolicyCall) Header() http.Header {
115481	if c.header_ == nil {
115482		c.header_ = make(http.Header)
115483	}
115484	return c.header_
115485}
115486
115487func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
115488	reqHeaders := make(http.Header)
115489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115490	for k, v := range c.header_ {
115491		reqHeaders[k] = v
115492	}
115493	reqHeaders.Set("User-Agent", c.s.userAgent())
115494	var body io.Reader = nil
115495	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
115496	if err != nil {
115497		return nil, err
115498	}
115499	reqHeaders.Set("Content-Type", "application/json")
115500	c.urlParams_.Set("alt", alt)
115501	c.urlParams_.Set("prettyPrint", "false")
115502	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
115503	urls += "?" + c.urlParams_.Encode()
115504	req, err := http.NewRequest("POST", urls, body)
115505	if err != nil {
115506		return nil, err
115507	}
115508	req.Header = reqHeaders
115509	googleapi.Expand(req.URL, map[string]string{
115510		"project":  c.project,
115511		"zone":     c.zone,
115512		"resource": c.resource,
115513	})
115514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115515}
115516
115517// Do executes the "compute.reservations.setIamPolicy" call.
115518// Exactly one of *Policy or error will be non-nil. Any non-2xx status
115519// code is an error. Response headers are in either
115520// *Policy.ServerResponse.Header or (if a response was returned at all)
115521// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
115522// check whether the returned error was because http.StatusNotModified
115523// was returned.
115524func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
115525	gensupport.SetOptions(c.urlParams_, opts...)
115526	res, err := c.doRequest("json")
115527	if res != nil && res.StatusCode == http.StatusNotModified {
115528		if res.Body != nil {
115529			res.Body.Close()
115530		}
115531		return nil, &googleapi.Error{
115532			Code:   res.StatusCode,
115533			Header: res.Header,
115534		}
115535	}
115536	if err != nil {
115537		return nil, err
115538	}
115539	defer googleapi.CloseBody(res)
115540	if err := googleapi.CheckResponse(res); err != nil {
115541		return nil, err
115542	}
115543	ret := &Policy{
115544		ServerResponse: googleapi.ServerResponse{
115545			Header:         res.Header,
115546			HTTPStatusCode: res.StatusCode,
115547		},
115548	}
115549	target := &ret
115550	if err := gensupport.DecodeResponse(target, res); err != nil {
115551		return nil, err
115552	}
115553	return ret, nil
115554	// {
115555	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
115556	//   "httpMethod": "POST",
115557	//   "id": "compute.reservations.setIamPolicy",
115558	//   "parameterOrder": [
115559	//     "project",
115560	//     "zone",
115561	//     "resource"
115562	//   ],
115563	//   "parameters": {
115564	//     "project": {
115565	//       "description": "Project ID for this request.",
115566	//       "location": "path",
115567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115568	//       "required": true,
115569	//       "type": "string"
115570	//     },
115571	//     "resource": {
115572	//       "description": "Name or id of the resource for this request.",
115573	//       "location": "path",
115574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115575	//       "required": true,
115576	//       "type": "string"
115577	//     },
115578	//     "zone": {
115579	//       "description": "The name of the zone for this request.",
115580	//       "location": "path",
115581	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115582	//       "required": true,
115583	//       "type": "string"
115584	//     }
115585	//   },
115586	//   "path": "{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
115587	//   "request": {
115588	//     "$ref": "ZoneSetPolicyRequest"
115589	//   },
115590	//   "response": {
115591	//     "$ref": "Policy"
115592	//   },
115593	//   "scopes": [
115594	//     "https://www.googleapis.com/auth/cloud-platform",
115595	//     "https://www.googleapis.com/auth/compute"
115596	//   ]
115597	// }
115598
115599}
115600
115601// method id "compute.reservations.testIamPermissions":
115602
115603type ReservationsTestIamPermissionsCall struct {
115604	s                      *Service
115605	project                string
115606	zone                   string
115607	resource               string
115608	testpermissionsrequest *TestPermissionsRequest
115609	urlParams_             gensupport.URLParams
115610	ctx_                   context.Context
115611	header_                http.Header
115612}
115613
115614// TestIamPermissions: Returns permissions that a caller has on the
115615// specified resource.
115616func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
115617	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115618	c.project = project
115619	c.zone = zone
115620	c.resource = resource
115621	c.testpermissionsrequest = testpermissionsrequest
115622	return c
115623}
115624
115625// Fields allows partial responses to be retrieved. See
115626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115627// for more information.
115628func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
115629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115630	return c
115631}
115632
115633// Context sets the context to be used in this call's Do method. Any
115634// pending HTTP request will be aborted if the provided context is
115635// canceled.
115636func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
115637	c.ctx_ = ctx
115638	return c
115639}
115640
115641// Header returns an http.Header that can be modified by the caller to
115642// add HTTP headers to the request.
115643func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
115644	if c.header_ == nil {
115645		c.header_ = make(http.Header)
115646	}
115647	return c.header_
115648}
115649
115650func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
115651	reqHeaders := make(http.Header)
115652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115653	for k, v := range c.header_ {
115654		reqHeaders[k] = v
115655	}
115656	reqHeaders.Set("User-Agent", c.s.userAgent())
115657	var body io.Reader = nil
115658	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
115659	if err != nil {
115660		return nil, err
115661	}
115662	reqHeaders.Set("Content-Type", "application/json")
115663	c.urlParams_.Set("alt", alt)
115664	c.urlParams_.Set("prettyPrint", "false")
115665	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
115666	urls += "?" + c.urlParams_.Encode()
115667	req, err := http.NewRequest("POST", urls, body)
115668	if err != nil {
115669		return nil, err
115670	}
115671	req.Header = reqHeaders
115672	googleapi.Expand(req.URL, map[string]string{
115673		"project":  c.project,
115674		"zone":     c.zone,
115675		"resource": c.resource,
115676	})
115677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115678}
115679
115680// Do executes the "compute.reservations.testIamPermissions" call.
115681// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
115682// non-2xx status code is an error. Response headers are in either
115683// *TestPermissionsResponse.ServerResponse.Header or (if a response was
115684// returned at all) in error.(*googleapi.Error).Header. Use
115685// googleapi.IsNotModified to check whether the returned error was
115686// because http.StatusNotModified was returned.
115687func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
115688	gensupport.SetOptions(c.urlParams_, opts...)
115689	res, err := c.doRequest("json")
115690	if res != nil && res.StatusCode == http.StatusNotModified {
115691		if res.Body != nil {
115692			res.Body.Close()
115693		}
115694		return nil, &googleapi.Error{
115695			Code:   res.StatusCode,
115696			Header: res.Header,
115697		}
115698	}
115699	if err != nil {
115700		return nil, err
115701	}
115702	defer googleapi.CloseBody(res)
115703	if err := googleapi.CheckResponse(res); err != nil {
115704		return nil, err
115705	}
115706	ret := &TestPermissionsResponse{
115707		ServerResponse: googleapi.ServerResponse{
115708			Header:         res.Header,
115709			HTTPStatusCode: res.StatusCode,
115710		},
115711	}
115712	target := &ret
115713	if err := gensupport.DecodeResponse(target, res); err != nil {
115714		return nil, err
115715	}
115716	return ret, nil
115717	// {
115718	//   "description": "Returns permissions that a caller has on the specified resource.",
115719	//   "httpMethod": "POST",
115720	//   "id": "compute.reservations.testIamPermissions",
115721	//   "parameterOrder": [
115722	//     "project",
115723	//     "zone",
115724	//     "resource"
115725	//   ],
115726	//   "parameters": {
115727	//     "project": {
115728	//       "description": "Project ID for this request.",
115729	//       "location": "path",
115730	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115731	//       "required": true,
115732	//       "type": "string"
115733	//     },
115734	//     "resource": {
115735	//       "description": "Name or id of the resource for this request.",
115736	//       "location": "path",
115737	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115738	//       "required": true,
115739	//       "type": "string"
115740	//     },
115741	//     "zone": {
115742	//       "description": "The name of the zone for this request.",
115743	//       "location": "path",
115744	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115745	//       "required": true,
115746	//       "type": "string"
115747	//     }
115748	//   },
115749	//   "path": "{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
115750	//   "request": {
115751	//     "$ref": "TestPermissionsRequest"
115752	//   },
115753	//   "response": {
115754	//     "$ref": "TestPermissionsResponse"
115755	//   },
115756	//   "scopes": [
115757	//     "https://www.googleapis.com/auth/cloud-platform",
115758	//     "https://www.googleapis.com/auth/compute",
115759	//     "https://www.googleapis.com/auth/compute.readonly"
115760	//   ]
115761	// }
115762
115763}
115764
115765// method id "compute.resourcePolicies.aggregatedList":
115766
115767type ResourcePoliciesAggregatedListCall struct {
115768	s            *Service
115769	project      string
115770	urlParams_   gensupport.URLParams
115771	ifNoneMatch_ string
115772	ctx_         context.Context
115773	header_      http.Header
115774}
115775
115776// AggregatedList: Retrieves an aggregated list of resource policies.
115777func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
115778	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115779	c.project = project
115780	return c
115781}
115782
115783// Filter sets the optional parameter "filter": A filter expression that
115784// filters resources listed in the response. The expression must specify
115785// the field name, a comparison operator, and the value that you want to
115786// use for filtering. The value must be a string, a number, or a
115787// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115788// `<`.
115789//
115790// For example, if you are filtering Compute Engine instances, you can
115791// exclude instances named `example-instance` by specifying `name !=
115792// example-instance`.
115793//
115794// You can also filter nested fields. For example, you could specify
115795// `scheduling.automaticRestart = false` to include instances only if
115796// they are not scheduled for automatic restarts. You can use filtering
115797// on nested fields to filter based on resource labels.
115798//
115799// To filter on multiple expressions, provide each separate expression
115800// within parentheses. For example: ``` (scheduling.automaticRestart =
115801// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115802// is an `AND` expression. However, you can include `AND` and `OR`
115803// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115804// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115805// (scheduling.automaticRestart = true) ```
115806func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
115807	c.urlParams_.Set("filter", filter)
115808	return c
115809}
115810
115811// IncludeAllScopes sets the optional parameter "includeAllScopes":
115812// Indicates whether every visible scope for each scope type (zone,
115813// region, global) should be included in the response. For new resource
115814// types added after this field, the flag has no effect as new resource
115815// types will always include every visible scope for each scope type in
115816// response. For resource types which predate this field, if this flag
115817// is omitted or false, only scopes of the scope types where the
115818// resource type is expected to be found will be included.
115819func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
115820	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
115821	return c
115822}
115823
115824// MaxResults sets the optional parameter "maxResults": The maximum
115825// number of results per page that should be returned. If the number of
115826// available results is larger than `maxResults`, Compute Engine returns
115827// a `nextPageToken` that can be used to get the next page of results in
115828// subsequent list requests. Acceptable values are `0` to `500`,
115829// inclusive. (Default: `500`)
115830func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
115831	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115832	return c
115833}
115834
115835// OrderBy sets the optional parameter "orderBy": Sorts list results by
115836// a certain order. By default, results are returned in alphanumerical
115837// order based on the resource name.
115838//
115839// You can also sort results in descending order based on the creation
115840// timestamp using `orderBy="creationTimestamp desc". This sorts
115841// results based on the `creationTimestamp` field in reverse
115842// chronological order (newest result first). Use this to sort resources
115843// like operations so that the newest operation is returned
115844// first.
115845//
115846// Currently, only sorting by `name` or `creationTimestamp desc` is
115847// supported.
115848func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
115849	c.urlParams_.Set("orderBy", orderBy)
115850	return c
115851}
115852
115853// PageToken sets the optional parameter "pageToken": Specifies a page
115854// token to use. Set `pageToken` to the `nextPageToken` returned by a
115855// previous list request to get the next page of results.
115856func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
115857	c.urlParams_.Set("pageToken", pageToken)
115858	return c
115859}
115860
115861// Fields allows partial responses to be retrieved. See
115862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115863// for more information.
115864func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
115865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115866	return c
115867}
115868
115869// IfNoneMatch sets the optional parameter which makes the operation
115870// fail if the object's ETag matches the given value. This is useful for
115871// getting updates only after the object has changed since the last
115872// request. Use googleapi.IsNotModified to check whether the response
115873// error from Do is the result of In-None-Match.
115874func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
115875	c.ifNoneMatch_ = entityTag
115876	return c
115877}
115878
115879// Context sets the context to be used in this call's Do method. Any
115880// pending HTTP request will be aborted if the provided context is
115881// canceled.
115882func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
115883	c.ctx_ = ctx
115884	return c
115885}
115886
115887// Header returns an http.Header that can be modified by the caller to
115888// add HTTP headers to the request.
115889func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
115890	if c.header_ == nil {
115891		c.header_ = make(http.Header)
115892	}
115893	return c.header_
115894}
115895
115896func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
115897	reqHeaders := make(http.Header)
115898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115899	for k, v := range c.header_ {
115900		reqHeaders[k] = v
115901	}
115902	reqHeaders.Set("User-Agent", c.s.userAgent())
115903	if c.ifNoneMatch_ != "" {
115904		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115905	}
115906	var body io.Reader = nil
115907	c.urlParams_.Set("alt", alt)
115908	c.urlParams_.Set("prettyPrint", "false")
115909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/resourcePolicies")
115910	urls += "?" + c.urlParams_.Encode()
115911	req, err := http.NewRequest("GET", urls, body)
115912	if err != nil {
115913		return nil, err
115914	}
115915	req.Header = reqHeaders
115916	googleapi.Expand(req.URL, map[string]string{
115917		"project": c.project,
115918	})
115919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115920}
115921
115922// Do executes the "compute.resourcePolicies.aggregatedList" call.
115923// Exactly one of *ResourcePolicyAggregatedList or error will be
115924// non-nil. Any non-2xx status code is an error. Response headers are in
115925// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
115926// response was returned at all) in error.(*googleapi.Error).Header. Use
115927// googleapi.IsNotModified to check whether the returned error was
115928// because http.StatusNotModified was returned.
115929func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
115930	gensupport.SetOptions(c.urlParams_, opts...)
115931	res, err := c.doRequest("json")
115932	if res != nil && res.StatusCode == http.StatusNotModified {
115933		if res.Body != nil {
115934			res.Body.Close()
115935		}
115936		return nil, &googleapi.Error{
115937			Code:   res.StatusCode,
115938			Header: res.Header,
115939		}
115940	}
115941	if err != nil {
115942		return nil, err
115943	}
115944	defer googleapi.CloseBody(res)
115945	if err := googleapi.CheckResponse(res); err != nil {
115946		return nil, err
115947	}
115948	ret := &ResourcePolicyAggregatedList{
115949		ServerResponse: googleapi.ServerResponse{
115950			Header:         res.Header,
115951			HTTPStatusCode: res.StatusCode,
115952		},
115953	}
115954	target := &ret
115955	if err := gensupport.DecodeResponse(target, res); err != nil {
115956		return nil, err
115957	}
115958	return ret, nil
115959	// {
115960	//   "description": "Retrieves an aggregated list of resource policies.",
115961	//   "httpMethod": "GET",
115962	//   "id": "compute.resourcePolicies.aggregatedList",
115963	//   "parameterOrder": [
115964	//     "project"
115965	//   ],
115966	//   "parameters": {
115967	//     "filter": {
115968	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115969	//       "location": "query",
115970	//       "type": "string"
115971	//     },
115972	//     "includeAllScopes": {
115973	//       "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.",
115974	//       "location": "query",
115975	//       "type": "boolean"
115976	//     },
115977	//     "maxResults": {
115978	//       "default": "500",
115979	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115980	//       "format": "uint32",
115981	//       "location": "query",
115982	//       "minimum": "0",
115983	//       "type": "integer"
115984	//     },
115985	//     "orderBy": {
115986	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
115987	//       "location": "query",
115988	//       "type": "string"
115989	//     },
115990	//     "pageToken": {
115991	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115992	//       "location": "query",
115993	//       "type": "string"
115994	//     },
115995	//     "project": {
115996	//       "description": "Project ID for this request.",
115997	//       "location": "path",
115998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115999	//       "required": true,
116000	//       "type": "string"
116001	//     }
116002	//   },
116003	//   "path": "{project}/aggregated/resourcePolicies",
116004	//   "response": {
116005	//     "$ref": "ResourcePolicyAggregatedList"
116006	//   },
116007	//   "scopes": [
116008	//     "https://www.googleapis.com/auth/cloud-platform",
116009	//     "https://www.googleapis.com/auth/compute",
116010	//     "https://www.googleapis.com/auth/compute.readonly"
116011	//   ]
116012	// }
116013
116014}
116015
116016// Pages invokes f for each page of results.
116017// A non-nil error returned from f will halt the iteration.
116018// The provided context supersedes any context provided to the Context method.
116019func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
116020	c.ctx_ = ctx
116021	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116022	for {
116023		x, err := c.Do()
116024		if err != nil {
116025			return err
116026		}
116027		if err := f(x); err != nil {
116028			return err
116029		}
116030		if x.NextPageToken == "" {
116031			return nil
116032		}
116033		c.PageToken(x.NextPageToken)
116034	}
116035}
116036
116037// method id "compute.resourcePolicies.delete":
116038
116039type ResourcePoliciesDeleteCall struct {
116040	s              *Service
116041	project        string
116042	region         string
116043	resourcePolicy string
116044	urlParams_     gensupport.URLParams
116045	ctx_           context.Context
116046	header_        http.Header
116047}
116048
116049// Delete: Deletes the specified resource policy.
116050func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
116051	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116052	c.project = project
116053	c.region = region
116054	c.resourcePolicy = resourcePolicy
116055	return c
116056}
116057
116058// RequestId sets the optional parameter "requestId": An optional
116059// request ID to identify requests. Specify a unique request ID so that
116060// if you must retry your request, the server will know to ignore the
116061// request if it has already been completed.
116062//
116063// For example, consider a situation where you make an initial request
116064// and the request times out. If you make the request again with the
116065// same request ID, the server can check if original operation with the
116066// same request ID was received, and if so, will ignore the second
116067// request. This prevents clients from accidentally creating duplicate
116068// commitments.
116069//
116070// The request ID must be a valid UUID with the exception that zero UUID
116071// is not supported (00000000-0000-0000-0000-000000000000).
116072func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
116073	c.urlParams_.Set("requestId", requestId)
116074	return c
116075}
116076
116077// Fields allows partial responses to be retrieved. See
116078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116079// for more information.
116080func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
116081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116082	return c
116083}
116084
116085// Context sets the context to be used in this call's Do method. Any
116086// pending HTTP request will be aborted if the provided context is
116087// canceled.
116088func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
116089	c.ctx_ = ctx
116090	return c
116091}
116092
116093// Header returns an http.Header that can be modified by the caller to
116094// add HTTP headers to the request.
116095func (c *ResourcePoliciesDeleteCall) Header() http.Header {
116096	if c.header_ == nil {
116097		c.header_ = make(http.Header)
116098	}
116099	return c.header_
116100}
116101
116102func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
116103	reqHeaders := make(http.Header)
116104	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116105	for k, v := range c.header_ {
116106		reqHeaders[k] = v
116107	}
116108	reqHeaders.Set("User-Agent", c.s.userAgent())
116109	var body io.Reader = nil
116110	c.urlParams_.Set("alt", alt)
116111	c.urlParams_.Set("prettyPrint", "false")
116112	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
116113	urls += "?" + c.urlParams_.Encode()
116114	req, err := http.NewRequest("DELETE", urls, body)
116115	if err != nil {
116116		return nil, err
116117	}
116118	req.Header = reqHeaders
116119	googleapi.Expand(req.URL, map[string]string{
116120		"project":        c.project,
116121		"region":         c.region,
116122		"resourcePolicy": c.resourcePolicy,
116123	})
116124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116125}
116126
116127// Do executes the "compute.resourcePolicies.delete" call.
116128// Exactly one of *Operation or error will be non-nil. Any non-2xx
116129// status code is an error. Response headers are in either
116130// *Operation.ServerResponse.Header or (if a response was returned at
116131// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116132// to check whether the returned error was because
116133// http.StatusNotModified was returned.
116134func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116135	gensupport.SetOptions(c.urlParams_, opts...)
116136	res, err := c.doRequest("json")
116137	if res != nil && res.StatusCode == http.StatusNotModified {
116138		if res.Body != nil {
116139			res.Body.Close()
116140		}
116141		return nil, &googleapi.Error{
116142			Code:   res.StatusCode,
116143			Header: res.Header,
116144		}
116145	}
116146	if err != nil {
116147		return nil, err
116148	}
116149	defer googleapi.CloseBody(res)
116150	if err := googleapi.CheckResponse(res); err != nil {
116151		return nil, err
116152	}
116153	ret := &Operation{
116154		ServerResponse: googleapi.ServerResponse{
116155			Header:         res.Header,
116156			HTTPStatusCode: res.StatusCode,
116157		},
116158	}
116159	target := &ret
116160	if err := gensupport.DecodeResponse(target, res); err != nil {
116161		return nil, err
116162	}
116163	return ret, nil
116164	// {
116165	//   "description": "Deletes the specified resource policy.",
116166	//   "httpMethod": "DELETE",
116167	//   "id": "compute.resourcePolicies.delete",
116168	//   "parameterOrder": [
116169	//     "project",
116170	//     "region",
116171	//     "resourcePolicy"
116172	//   ],
116173	//   "parameters": {
116174	//     "project": {
116175	//       "description": "Project ID for this request.",
116176	//       "location": "path",
116177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116178	//       "required": true,
116179	//       "type": "string"
116180	//     },
116181	//     "region": {
116182	//       "description": "Name of the region for this request.",
116183	//       "location": "path",
116184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116185	//       "required": true,
116186	//       "type": "string"
116187	//     },
116188	//     "requestId": {
116189	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116190	//       "location": "query",
116191	//       "type": "string"
116192	//     },
116193	//     "resourcePolicy": {
116194	//       "description": "Name of the resource policy to delete.",
116195	//       "location": "path",
116196	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116197	//       "required": true,
116198	//       "type": "string"
116199	//     }
116200	//   },
116201	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
116202	//   "response": {
116203	//     "$ref": "Operation"
116204	//   },
116205	//   "scopes": [
116206	//     "https://www.googleapis.com/auth/cloud-platform",
116207	//     "https://www.googleapis.com/auth/compute"
116208	//   ]
116209	// }
116210
116211}
116212
116213// method id "compute.resourcePolicies.get":
116214
116215type ResourcePoliciesGetCall struct {
116216	s              *Service
116217	project        string
116218	region         string
116219	resourcePolicy string
116220	urlParams_     gensupport.URLParams
116221	ifNoneMatch_   string
116222	ctx_           context.Context
116223	header_        http.Header
116224}
116225
116226// Get: Retrieves all information of the specified resource policy.
116227func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
116228	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116229	c.project = project
116230	c.region = region
116231	c.resourcePolicy = resourcePolicy
116232	return c
116233}
116234
116235// Fields allows partial responses to be retrieved. See
116236// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116237// for more information.
116238func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
116239	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116240	return c
116241}
116242
116243// IfNoneMatch sets the optional parameter which makes the operation
116244// fail if the object's ETag matches the given value. This is useful for
116245// getting updates only after the object has changed since the last
116246// request. Use googleapi.IsNotModified to check whether the response
116247// error from Do is the result of In-None-Match.
116248func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
116249	c.ifNoneMatch_ = entityTag
116250	return c
116251}
116252
116253// Context sets the context to be used in this call's Do method. Any
116254// pending HTTP request will be aborted if the provided context is
116255// canceled.
116256func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
116257	c.ctx_ = ctx
116258	return c
116259}
116260
116261// Header returns an http.Header that can be modified by the caller to
116262// add HTTP headers to the request.
116263func (c *ResourcePoliciesGetCall) Header() http.Header {
116264	if c.header_ == nil {
116265		c.header_ = make(http.Header)
116266	}
116267	return c.header_
116268}
116269
116270func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
116271	reqHeaders := make(http.Header)
116272	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116273	for k, v := range c.header_ {
116274		reqHeaders[k] = v
116275	}
116276	reqHeaders.Set("User-Agent", c.s.userAgent())
116277	if c.ifNoneMatch_ != "" {
116278		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116279	}
116280	var body io.Reader = nil
116281	c.urlParams_.Set("alt", alt)
116282	c.urlParams_.Set("prettyPrint", "false")
116283	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
116284	urls += "?" + c.urlParams_.Encode()
116285	req, err := http.NewRequest("GET", urls, body)
116286	if err != nil {
116287		return nil, err
116288	}
116289	req.Header = reqHeaders
116290	googleapi.Expand(req.URL, map[string]string{
116291		"project":        c.project,
116292		"region":         c.region,
116293		"resourcePolicy": c.resourcePolicy,
116294	})
116295	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116296}
116297
116298// Do executes the "compute.resourcePolicies.get" call.
116299// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
116300// status code is an error. Response headers are in either
116301// *ResourcePolicy.ServerResponse.Header or (if a response was returned
116302// at all) in error.(*googleapi.Error).Header. Use
116303// googleapi.IsNotModified to check whether the returned error was
116304// because http.StatusNotModified was returned.
116305func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
116306	gensupport.SetOptions(c.urlParams_, opts...)
116307	res, err := c.doRequest("json")
116308	if res != nil && res.StatusCode == http.StatusNotModified {
116309		if res.Body != nil {
116310			res.Body.Close()
116311		}
116312		return nil, &googleapi.Error{
116313			Code:   res.StatusCode,
116314			Header: res.Header,
116315		}
116316	}
116317	if err != nil {
116318		return nil, err
116319	}
116320	defer googleapi.CloseBody(res)
116321	if err := googleapi.CheckResponse(res); err != nil {
116322		return nil, err
116323	}
116324	ret := &ResourcePolicy{
116325		ServerResponse: googleapi.ServerResponse{
116326			Header:         res.Header,
116327			HTTPStatusCode: res.StatusCode,
116328		},
116329	}
116330	target := &ret
116331	if err := gensupport.DecodeResponse(target, res); err != nil {
116332		return nil, err
116333	}
116334	return ret, nil
116335	// {
116336	//   "description": "Retrieves all information of the specified resource policy.",
116337	//   "httpMethod": "GET",
116338	//   "id": "compute.resourcePolicies.get",
116339	//   "parameterOrder": [
116340	//     "project",
116341	//     "region",
116342	//     "resourcePolicy"
116343	//   ],
116344	//   "parameters": {
116345	//     "project": {
116346	//       "description": "Project ID for this request.",
116347	//       "location": "path",
116348	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116349	//       "required": true,
116350	//       "type": "string"
116351	//     },
116352	//     "region": {
116353	//       "description": "Name of the region for this request.",
116354	//       "location": "path",
116355	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116356	//       "required": true,
116357	//       "type": "string"
116358	//     },
116359	//     "resourcePolicy": {
116360	//       "description": "Name of the resource policy to retrieve.",
116361	//       "location": "path",
116362	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116363	//       "required": true,
116364	//       "type": "string"
116365	//     }
116366	//   },
116367	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
116368	//   "response": {
116369	//     "$ref": "ResourcePolicy"
116370	//   },
116371	//   "scopes": [
116372	//     "https://www.googleapis.com/auth/cloud-platform",
116373	//     "https://www.googleapis.com/auth/compute",
116374	//     "https://www.googleapis.com/auth/compute.readonly"
116375	//   ]
116376	// }
116377
116378}
116379
116380// method id "compute.resourcePolicies.getIamPolicy":
116381
116382type ResourcePoliciesGetIamPolicyCall struct {
116383	s            *Service
116384	project      string
116385	region       string
116386	resource     string
116387	urlParams_   gensupport.URLParams
116388	ifNoneMatch_ string
116389	ctx_         context.Context
116390	header_      http.Header
116391}
116392
116393// GetIamPolicy: Gets the access control policy for a resource. May be
116394// empty if no such policy or resource exists.
116395func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
116396	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116397	c.project = project
116398	c.region = region
116399	c.resource = resource
116400	return c
116401}
116402
116403// Fields allows partial responses to be retrieved. See
116404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116405// for more information.
116406func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
116407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116408	return c
116409}
116410
116411// IfNoneMatch sets the optional parameter which makes the operation
116412// fail if the object's ETag matches the given value. This is useful for
116413// getting updates only after the object has changed since the last
116414// request. Use googleapi.IsNotModified to check whether the response
116415// error from Do is the result of In-None-Match.
116416func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
116417	c.ifNoneMatch_ = entityTag
116418	return c
116419}
116420
116421// Context sets the context to be used in this call's Do method. Any
116422// pending HTTP request will be aborted if the provided context is
116423// canceled.
116424func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
116425	c.ctx_ = ctx
116426	return c
116427}
116428
116429// Header returns an http.Header that can be modified by the caller to
116430// add HTTP headers to the request.
116431func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
116432	if c.header_ == nil {
116433		c.header_ = make(http.Header)
116434	}
116435	return c.header_
116436}
116437
116438func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
116439	reqHeaders := make(http.Header)
116440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116441	for k, v := range c.header_ {
116442		reqHeaders[k] = v
116443	}
116444	reqHeaders.Set("User-Agent", c.s.userAgent())
116445	if c.ifNoneMatch_ != "" {
116446		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116447	}
116448	var body io.Reader = nil
116449	c.urlParams_.Set("alt", alt)
116450	c.urlParams_.Set("prettyPrint", "false")
116451	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
116452	urls += "?" + c.urlParams_.Encode()
116453	req, err := http.NewRequest("GET", urls, body)
116454	if err != nil {
116455		return nil, err
116456	}
116457	req.Header = reqHeaders
116458	googleapi.Expand(req.URL, map[string]string{
116459		"project":  c.project,
116460		"region":   c.region,
116461		"resource": c.resource,
116462	})
116463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116464}
116465
116466// Do executes the "compute.resourcePolicies.getIamPolicy" call.
116467// Exactly one of *Policy or error will be non-nil. Any non-2xx status
116468// code is an error. Response headers are in either
116469// *Policy.ServerResponse.Header or (if a response was returned at all)
116470// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
116471// check whether the returned error was because http.StatusNotModified
116472// was returned.
116473func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
116474	gensupport.SetOptions(c.urlParams_, opts...)
116475	res, err := c.doRequest("json")
116476	if res != nil && res.StatusCode == http.StatusNotModified {
116477		if res.Body != nil {
116478			res.Body.Close()
116479		}
116480		return nil, &googleapi.Error{
116481			Code:   res.StatusCode,
116482			Header: res.Header,
116483		}
116484	}
116485	if err != nil {
116486		return nil, err
116487	}
116488	defer googleapi.CloseBody(res)
116489	if err := googleapi.CheckResponse(res); err != nil {
116490		return nil, err
116491	}
116492	ret := &Policy{
116493		ServerResponse: googleapi.ServerResponse{
116494			Header:         res.Header,
116495			HTTPStatusCode: res.StatusCode,
116496		},
116497	}
116498	target := &ret
116499	if err := gensupport.DecodeResponse(target, res); err != nil {
116500		return nil, err
116501	}
116502	return ret, nil
116503	// {
116504	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
116505	//   "httpMethod": "GET",
116506	//   "id": "compute.resourcePolicies.getIamPolicy",
116507	//   "parameterOrder": [
116508	//     "project",
116509	//     "region",
116510	//     "resource"
116511	//   ],
116512	//   "parameters": {
116513	//     "project": {
116514	//       "description": "Project ID for this request.",
116515	//       "location": "path",
116516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116517	//       "required": true,
116518	//       "type": "string"
116519	//     },
116520	//     "region": {
116521	//       "description": "The name of the region for this request.",
116522	//       "location": "path",
116523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116524	//       "required": true,
116525	//       "type": "string"
116526	//     },
116527	//     "resource": {
116528	//       "description": "Name or id of the resource for this request.",
116529	//       "location": "path",
116530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116531	//       "required": true,
116532	//       "type": "string"
116533	//     }
116534	//   },
116535	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
116536	//   "response": {
116537	//     "$ref": "Policy"
116538	//   },
116539	//   "scopes": [
116540	//     "https://www.googleapis.com/auth/cloud-platform",
116541	//     "https://www.googleapis.com/auth/compute",
116542	//     "https://www.googleapis.com/auth/compute.readonly"
116543	//   ]
116544	// }
116545
116546}
116547
116548// method id "compute.resourcePolicies.insert":
116549
116550type ResourcePoliciesInsertCall struct {
116551	s              *Service
116552	project        string
116553	region         string
116554	resourcepolicy *ResourcePolicy
116555	urlParams_     gensupport.URLParams
116556	ctx_           context.Context
116557	header_        http.Header
116558}
116559
116560// Insert: Creates a new resource policy.
116561func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
116562	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116563	c.project = project
116564	c.region = region
116565	c.resourcepolicy = resourcepolicy
116566	return c
116567}
116568
116569// RequestId sets the optional parameter "requestId": An optional
116570// request ID to identify requests. Specify a unique request ID so that
116571// if you must retry your request, the server will know to ignore the
116572// request if it has already been completed.
116573//
116574// For example, consider a situation where you make an initial request
116575// and the request times out. If you make the request again with the
116576// same request ID, the server can check if original operation with the
116577// same request ID was received, and if so, will ignore the second
116578// request. This prevents clients from accidentally creating duplicate
116579// commitments.
116580//
116581// The request ID must be a valid UUID with the exception that zero UUID
116582// is not supported (00000000-0000-0000-0000-000000000000).
116583func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
116584	c.urlParams_.Set("requestId", requestId)
116585	return c
116586}
116587
116588// Fields allows partial responses to be retrieved. See
116589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116590// for more information.
116591func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
116592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116593	return c
116594}
116595
116596// Context sets the context to be used in this call's Do method. Any
116597// pending HTTP request will be aborted if the provided context is
116598// canceled.
116599func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
116600	c.ctx_ = ctx
116601	return c
116602}
116603
116604// Header returns an http.Header that can be modified by the caller to
116605// add HTTP headers to the request.
116606func (c *ResourcePoliciesInsertCall) Header() http.Header {
116607	if c.header_ == nil {
116608		c.header_ = make(http.Header)
116609	}
116610	return c.header_
116611}
116612
116613func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
116614	reqHeaders := make(http.Header)
116615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116616	for k, v := range c.header_ {
116617		reqHeaders[k] = v
116618	}
116619	reqHeaders.Set("User-Agent", c.s.userAgent())
116620	var body io.Reader = nil
116621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
116622	if err != nil {
116623		return nil, err
116624	}
116625	reqHeaders.Set("Content-Type", "application/json")
116626	c.urlParams_.Set("alt", alt)
116627	c.urlParams_.Set("prettyPrint", "false")
116628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
116629	urls += "?" + c.urlParams_.Encode()
116630	req, err := http.NewRequest("POST", urls, body)
116631	if err != nil {
116632		return nil, err
116633	}
116634	req.Header = reqHeaders
116635	googleapi.Expand(req.URL, map[string]string{
116636		"project": c.project,
116637		"region":  c.region,
116638	})
116639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116640}
116641
116642// Do executes the "compute.resourcePolicies.insert" call.
116643// Exactly one of *Operation or error will be non-nil. Any non-2xx
116644// status code is an error. Response headers are in either
116645// *Operation.ServerResponse.Header or (if a response was returned at
116646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116647// to check whether the returned error was because
116648// http.StatusNotModified was returned.
116649func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116650	gensupport.SetOptions(c.urlParams_, opts...)
116651	res, err := c.doRequest("json")
116652	if res != nil && res.StatusCode == http.StatusNotModified {
116653		if res.Body != nil {
116654			res.Body.Close()
116655		}
116656		return nil, &googleapi.Error{
116657			Code:   res.StatusCode,
116658			Header: res.Header,
116659		}
116660	}
116661	if err != nil {
116662		return nil, err
116663	}
116664	defer googleapi.CloseBody(res)
116665	if err := googleapi.CheckResponse(res); err != nil {
116666		return nil, err
116667	}
116668	ret := &Operation{
116669		ServerResponse: googleapi.ServerResponse{
116670			Header:         res.Header,
116671			HTTPStatusCode: res.StatusCode,
116672		},
116673	}
116674	target := &ret
116675	if err := gensupport.DecodeResponse(target, res); err != nil {
116676		return nil, err
116677	}
116678	return ret, nil
116679	// {
116680	//   "description": "Creates a new resource policy.",
116681	//   "httpMethod": "POST",
116682	//   "id": "compute.resourcePolicies.insert",
116683	//   "parameterOrder": [
116684	//     "project",
116685	//     "region"
116686	//   ],
116687	//   "parameters": {
116688	//     "project": {
116689	//       "description": "Project ID for this request.",
116690	//       "location": "path",
116691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116692	//       "required": true,
116693	//       "type": "string"
116694	//     },
116695	//     "region": {
116696	//       "description": "Name of the region for this request.",
116697	//       "location": "path",
116698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116699	//       "required": true,
116700	//       "type": "string"
116701	//     },
116702	//     "requestId": {
116703	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116704	//       "location": "query",
116705	//       "type": "string"
116706	//     }
116707	//   },
116708	//   "path": "{project}/regions/{region}/resourcePolicies",
116709	//   "request": {
116710	//     "$ref": "ResourcePolicy"
116711	//   },
116712	//   "response": {
116713	//     "$ref": "Operation"
116714	//   },
116715	//   "scopes": [
116716	//     "https://www.googleapis.com/auth/cloud-platform",
116717	//     "https://www.googleapis.com/auth/compute"
116718	//   ]
116719	// }
116720
116721}
116722
116723// method id "compute.resourcePolicies.list":
116724
116725type ResourcePoliciesListCall struct {
116726	s            *Service
116727	project      string
116728	region       string
116729	urlParams_   gensupport.URLParams
116730	ifNoneMatch_ string
116731	ctx_         context.Context
116732	header_      http.Header
116733}
116734
116735// List: A list all the resource policies that have been configured for
116736// the specified project in specified region.
116737func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
116738	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116739	c.project = project
116740	c.region = region
116741	return c
116742}
116743
116744// Filter sets the optional parameter "filter": A filter expression that
116745// filters resources listed in the response. The expression must specify
116746// the field name, a comparison operator, and the value that you want to
116747// use for filtering. The value must be a string, a number, or a
116748// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116749// `<`.
116750//
116751// For example, if you are filtering Compute Engine instances, you can
116752// exclude instances named `example-instance` by specifying `name !=
116753// example-instance`.
116754//
116755// You can also filter nested fields. For example, you could specify
116756// `scheduling.automaticRestart = false` to include instances only if
116757// they are not scheduled for automatic restarts. You can use filtering
116758// on nested fields to filter based on resource labels.
116759//
116760// To filter on multiple expressions, provide each separate expression
116761// within parentheses. For example: ``` (scheduling.automaticRestart =
116762// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
116763// is an `AND` expression. However, you can include `AND` and `OR`
116764// expressions explicitly. For example: ``` (cpuPlatform = "Intel
116765// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
116766// (scheduling.automaticRestart = true) ```
116767func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
116768	c.urlParams_.Set("filter", filter)
116769	return c
116770}
116771
116772// MaxResults sets the optional parameter "maxResults": The maximum
116773// number of results per page that should be returned. If the number of
116774// available results is larger than `maxResults`, Compute Engine returns
116775// a `nextPageToken` that can be used to get the next page of results in
116776// subsequent list requests. Acceptable values are `0` to `500`,
116777// inclusive. (Default: `500`)
116778func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
116779	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116780	return c
116781}
116782
116783// OrderBy sets the optional parameter "orderBy": Sorts list results by
116784// a certain order. By default, results are returned in alphanumerical
116785// order based on the resource name.
116786//
116787// You can also sort results in descending order based on the creation
116788// timestamp using `orderBy="creationTimestamp desc". This sorts
116789// results based on the `creationTimestamp` field in reverse
116790// chronological order (newest result first). Use this to sort resources
116791// like operations so that the newest operation is returned
116792// first.
116793//
116794// Currently, only sorting by `name` or `creationTimestamp desc` is
116795// supported.
116796func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
116797	c.urlParams_.Set("orderBy", orderBy)
116798	return c
116799}
116800
116801// PageToken sets the optional parameter "pageToken": Specifies a page
116802// token to use. Set `pageToken` to the `nextPageToken` returned by a
116803// previous list request to get the next page of results.
116804func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
116805	c.urlParams_.Set("pageToken", pageToken)
116806	return c
116807}
116808
116809// Fields allows partial responses to be retrieved. See
116810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116811// for more information.
116812func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
116813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116814	return c
116815}
116816
116817// IfNoneMatch sets the optional parameter which makes the operation
116818// fail if the object's ETag matches the given value. This is useful for
116819// getting updates only after the object has changed since the last
116820// request. Use googleapi.IsNotModified to check whether the response
116821// error from Do is the result of In-None-Match.
116822func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
116823	c.ifNoneMatch_ = entityTag
116824	return c
116825}
116826
116827// Context sets the context to be used in this call's Do method. Any
116828// pending HTTP request will be aborted if the provided context is
116829// canceled.
116830func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
116831	c.ctx_ = ctx
116832	return c
116833}
116834
116835// Header returns an http.Header that can be modified by the caller to
116836// add HTTP headers to the request.
116837func (c *ResourcePoliciesListCall) Header() http.Header {
116838	if c.header_ == nil {
116839		c.header_ = make(http.Header)
116840	}
116841	return c.header_
116842}
116843
116844func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
116845	reqHeaders := make(http.Header)
116846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116847	for k, v := range c.header_ {
116848		reqHeaders[k] = v
116849	}
116850	reqHeaders.Set("User-Agent", c.s.userAgent())
116851	if c.ifNoneMatch_ != "" {
116852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116853	}
116854	var body io.Reader = nil
116855	c.urlParams_.Set("alt", alt)
116856	c.urlParams_.Set("prettyPrint", "false")
116857	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
116858	urls += "?" + c.urlParams_.Encode()
116859	req, err := http.NewRequest("GET", urls, body)
116860	if err != nil {
116861		return nil, err
116862	}
116863	req.Header = reqHeaders
116864	googleapi.Expand(req.URL, map[string]string{
116865		"project": c.project,
116866		"region":  c.region,
116867	})
116868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116869}
116870
116871// Do executes the "compute.resourcePolicies.list" call.
116872// Exactly one of *ResourcePolicyList or error will be non-nil. Any
116873// non-2xx status code is an error. Response headers are in either
116874// *ResourcePolicyList.ServerResponse.Header or (if a response was
116875// returned at all) in error.(*googleapi.Error).Header. Use
116876// googleapi.IsNotModified to check whether the returned error was
116877// because http.StatusNotModified was returned.
116878func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
116879	gensupport.SetOptions(c.urlParams_, opts...)
116880	res, err := c.doRequest("json")
116881	if res != nil && res.StatusCode == http.StatusNotModified {
116882		if res.Body != nil {
116883			res.Body.Close()
116884		}
116885		return nil, &googleapi.Error{
116886			Code:   res.StatusCode,
116887			Header: res.Header,
116888		}
116889	}
116890	if err != nil {
116891		return nil, err
116892	}
116893	defer googleapi.CloseBody(res)
116894	if err := googleapi.CheckResponse(res); err != nil {
116895		return nil, err
116896	}
116897	ret := &ResourcePolicyList{
116898		ServerResponse: googleapi.ServerResponse{
116899			Header:         res.Header,
116900			HTTPStatusCode: res.StatusCode,
116901		},
116902	}
116903	target := &ret
116904	if err := gensupport.DecodeResponse(target, res); err != nil {
116905		return nil, err
116906	}
116907	return ret, nil
116908	// {
116909	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
116910	//   "httpMethod": "GET",
116911	//   "id": "compute.resourcePolicies.list",
116912	//   "parameterOrder": [
116913	//     "project",
116914	//     "region"
116915	//   ],
116916	//   "parameters": {
116917	//     "filter": {
116918	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
116919	//       "location": "query",
116920	//       "type": "string"
116921	//     },
116922	//     "maxResults": {
116923	//       "default": "500",
116924	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
116925	//       "format": "uint32",
116926	//       "location": "query",
116927	//       "minimum": "0",
116928	//       "type": "integer"
116929	//     },
116930	//     "orderBy": {
116931	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
116932	//       "location": "query",
116933	//       "type": "string"
116934	//     },
116935	//     "pageToken": {
116936	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
116937	//       "location": "query",
116938	//       "type": "string"
116939	//     },
116940	//     "project": {
116941	//       "description": "Project ID for this request.",
116942	//       "location": "path",
116943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116944	//       "required": true,
116945	//       "type": "string"
116946	//     },
116947	//     "region": {
116948	//       "description": "Name of the region for this request.",
116949	//       "location": "path",
116950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116951	//       "required": true,
116952	//       "type": "string"
116953	//     }
116954	//   },
116955	//   "path": "{project}/regions/{region}/resourcePolicies",
116956	//   "response": {
116957	//     "$ref": "ResourcePolicyList"
116958	//   },
116959	//   "scopes": [
116960	//     "https://www.googleapis.com/auth/cloud-platform",
116961	//     "https://www.googleapis.com/auth/compute",
116962	//     "https://www.googleapis.com/auth/compute.readonly"
116963	//   ]
116964	// }
116965
116966}
116967
116968// Pages invokes f for each page of results.
116969// A non-nil error returned from f will halt the iteration.
116970// The provided context supersedes any context provided to the Context method.
116971func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
116972	c.ctx_ = ctx
116973	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116974	for {
116975		x, err := c.Do()
116976		if err != nil {
116977			return err
116978		}
116979		if err := f(x); err != nil {
116980			return err
116981		}
116982		if x.NextPageToken == "" {
116983			return nil
116984		}
116985		c.PageToken(x.NextPageToken)
116986	}
116987}
116988
116989// method id "compute.resourcePolicies.setIamPolicy":
116990
116991type ResourcePoliciesSetIamPolicyCall struct {
116992	s                      *Service
116993	project                string
116994	region                 string
116995	resource               string
116996	regionsetpolicyrequest *RegionSetPolicyRequest
116997	urlParams_             gensupport.URLParams
116998	ctx_                   context.Context
116999	header_                http.Header
117000}
117001
117002// SetIamPolicy: Sets the access control policy on the specified
117003// resource. Replaces any existing policy.
117004func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
117005	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117006	c.project = project
117007	c.region = region
117008	c.resource = resource
117009	c.regionsetpolicyrequest = regionsetpolicyrequest
117010	return c
117011}
117012
117013// Fields allows partial responses to be retrieved. See
117014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117015// for more information.
117016func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
117017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117018	return c
117019}
117020
117021// Context sets the context to be used in this call's Do method. Any
117022// pending HTTP request will be aborted if the provided context is
117023// canceled.
117024func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
117025	c.ctx_ = ctx
117026	return c
117027}
117028
117029// Header returns an http.Header that can be modified by the caller to
117030// add HTTP headers to the request.
117031func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
117032	if c.header_ == nil {
117033		c.header_ = make(http.Header)
117034	}
117035	return c.header_
117036}
117037
117038func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
117039	reqHeaders := make(http.Header)
117040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117041	for k, v := range c.header_ {
117042		reqHeaders[k] = v
117043	}
117044	reqHeaders.Set("User-Agent", c.s.userAgent())
117045	var body io.Reader = nil
117046	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
117047	if err != nil {
117048		return nil, err
117049	}
117050	reqHeaders.Set("Content-Type", "application/json")
117051	c.urlParams_.Set("alt", alt)
117052	c.urlParams_.Set("prettyPrint", "false")
117053	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
117054	urls += "?" + c.urlParams_.Encode()
117055	req, err := http.NewRequest("POST", urls, body)
117056	if err != nil {
117057		return nil, err
117058	}
117059	req.Header = reqHeaders
117060	googleapi.Expand(req.URL, map[string]string{
117061		"project":  c.project,
117062		"region":   c.region,
117063		"resource": c.resource,
117064	})
117065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117066}
117067
117068// Do executes the "compute.resourcePolicies.setIamPolicy" call.
117069// Exactly one of *Policy or error will be non-nil. Any non-2xx status
117070// code is an error. Response headers are in either
117071// *Policy.ServerResponse.Header or (if a response was returned at all)
117072// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
117073// check whether the returned error was because http.StatusNotModified
117074// was returned.
117075func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
117076	gensupport.SetOptions(c.urlParams_, opts...)
117077	res, err := c.doRequest("json")
117078	if res != nil && res.StatusCode == http.StatusNotModified {
117079		if res.Body != nil {
117080			res.Body.Close()
117081		}
117082		return nil, &googleapi.Error{
117083			Code:   res.StatusCode,
117084			Header: res.Header,
117085		}
117086	}
117087	if err != nil {
117088		return nil, err
117089	}
117090	defer googleapi.CloseBody(res)
117091	if err := googleapi.CheckResponse(res); err != nil {
117092		return nil, err
117093	}
117094	ret := &Policy{
117095		ServerResponse: googleapi.ServerResponse{
117096			Header:         res.Header,
117097			HTTPStatusCode: res.StatusCode,
117098		},
117099	}
117100	target := &ret
117101	if err := gensupport.DecodeResponse(target, res); err != nil {
117102		return nil, err
117103	}
117104	return ret, nil
117105	// {
117106	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
117107	//   "httpMethod": "POST",
117108	//   "id": "compute.resourcePolicies.setIamPolicy",
117109	//   "parameterOrder": [
117110	//     "project",
117111	//     "region",
117112	//     "resource"
117113	//   ],
117114	//   "parameters": {
117115	//     "project": {
117116	//       "description": "Project ID for this request.",
117117	//       "location": "path",
117118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117119	//       "required": true,
117120	//       "type": "string"
117121	//     },
117122	//     "region": {
117123	//       "description": "The name of the region for this request.",
117124	//       "location": "path",
117125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117126	//       "required": true,
117127	//       "type": "string"
117128	//     },
117129	//     "resource": {
117130	//       "description": "Name or id of the resource for this request.",
117131	//       "location": "path",
117132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117133	//       "required": true,
117134	//       "type": "string"
117135	//     }
117136	//   },
117137	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
117138	//   "request": {
117139	//     "$ref": "RegionSetPolicyRequest"
117140	//   },
117141	//   "response": {
117142	//     "$ref": "Policy"
117143	//   },
117144	//   "scopes": [
117145	//     "https://www.googleapis.com/auth/cloud-platform",
117146	//     "https://www.googleapis.com/auth/compute"
117147	//   ]
117148	// }
117149
117150}
117151
117152// method id "compute.resourcePolicies.testIamPermissions":
117153
117154type ResourcePoliciesTestIamPermissionsCall struct {
117155	s                      *Service
117156	project                string
117157	region                 string
117158	resource               string
117159	testpermissionsrequest *TestPermissionsRequest
117160	urlParams_             gensupport.URLParams
117161	ctx_                   context.Context
117162	header_                http.Header
117163}
117164
117165// TestIamPermissions: Returns permissions that a caller has on the
117166// specified resource.
117167func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
117168	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117169	c.project = project
117170	c.region = region
117171	c.resource = resource
117172	c.testpermissionsrequest = testpermissionsrequest
117173	return c
117174}
117175
117176// Fields allows partial responses to be retrieved. See
117177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117178// for more information.
117179func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
117180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117181	return c
117182}
117183
117184// Context sets the context to be used in this call's Do method. Any
117185// pending HTTP request will be aborted if the provided context is
117186// canceled.
117187func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
117188	c.ctx_ = ctx
117189	return c
117190}
117191
117192// Header returns an http.Header that can be modified by the caller to
117193// add HTTP headers to the request.
117194func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
117195	if c.header_ == nil {
117196		c.header_ = make(http.Header)
117197	}
117198	return c.header_
117199}
117200
117201func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
117202	reqHeaders := make(http.Header)
117203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117204	for k, v := range c.header_ {
117205		reqHeaders[k] = v
117206	}
117207	reqHeaders.Set("User-Agent", c.s.userAgent())
117208	var body io.Reader = nil
117209	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
117210	if err != nil {
117211		return nil, err
117212	}
117213	reqHeaders.Set("Content-Type", "application/json")
117214	c.urlParams_.Set("alt", alt)
117215	c.urlParams_.Set("prettyPrint", "false")
117216	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
117217	urls += "?" + c.urlParams_.Encode()
117218	req, err := http.NewRequest("POST", urls, body)
117219	if err != nil {
117220		return nil, err
117221	}
117222	req.Header = reqHeaders
117223	googleapi.Expand(req.URL, map[string]string{
117224		"project":  c.project,
117225		"region":   c.region,
117226		"resource": c.resource,
117227	})
117228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117229}
117230
117231// Do executes the "compute.resourcePolicies.testIamPermissions" call.
117232// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
117233// non-2xx status code is an error. Response headers are in either
117234// *TestPermissionsResponse.ServerResponse.Header or (if a response was
117235// returned at all) in error.(*googleapi.Error).Header. Use
117236// googleapi.IsNotModified to check whether the returned error was
117237// because http.StatusNotModified was returned.
117238func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
117239	gensupport.SetOptions(c.urlParams_, opts...)
117240	res, err := c.doRequest("json")
117241	if res != nil && res.StatusCode == http.StatusNotModified {
117242		if res.Body != nil {
117243			res.Body.Close()
117244		}
117245		return nil, &googleapi.Error{
117246			Code:   res.StatusCode,
117247			Header: res.Header,
117248		}
117249	}
117250	if err != nil {
117251		return nil, err
117252	}
117253	defer googleapi.CloseBody(res)
117254	if err := googleapi.CheckResponse(res); err != nil {
117255		return nil, err
117256	}
117257	ret := &TestPermissionsResponse{
117258		ServerResponse: googleapi.ServerResponse{
117259			Header:         res.Header,
117260			HTTPStatusCode: res.StatusCode,
117261		},
117262	}
117263	target := &ret
117264	if err := gensupport.DecodeResponse(target, res); err != nil {
117265		return nil, err
117266	}
117267	return ret, nil
117268	// {
117269	//   "description": "Returns permissions that a caller has on the specified resource.",
117270	//   "httpMethod": "POST",
117271	//   "id": "compute.resourcePolicies.testIamPermissions",
117272	//   "parameterOrder": [
117273	//     "project",
117274	//     "region",
117275	//     "resource"
117276	//   ],
117277	//   "parameters": {
117278	//     "project": {
117279	//       "description": "Project ID for this request.",
117280	//       "location": "path",
117281	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117282	//       "required": true,
117283	//       "type": "string"
117284	//     },
117285	//     "region": {
117286	//       "description": "The name of the region for this request.",
117287	//       "location": "path",
117288	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117289	//       "required": true,
117290	//       "type": "string"
117291	//     },
117292	//     "resource": {
117293	//       "description": "Name or id of the resource for this request.",
117294	//       "location": "path",
117295	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117296	//       "required": true,
117297	//       "type": "string"
117298	//     }
117299	//   },
117300	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
117301	//   "request": {
117302	//     "$ref": "TestPermissionsRequest"
117303	//   },
117304	//   "response": {
117305	//     "$ref": "TestPermissionsResponse"
117306	//   },
117307	//   "scopes": [
117308	//     "https://www.googleapis.com/auth/cloud-platform",
117309	//     "https://www.googleapis.com/auth/compute",
117310	//     "https://www.googleapis.com/auth/compute.readonly"
117311	//   ]
117312	// }
117313
117314}
117315
117316// method id "compute.routers.aggregatedList":
117317
117318type RoutersAggregatedListCall struct {
117319	s            *Service
117320	project      string
117321	urlParams_   gensupport.URLParams
117322	ifNoneMatch_ string
117323	ctx_         context.Context
117324	header_      http.Header
117325}
117326
117327// AggregatedList: Retrieves an aggregated list of routers.
117328func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
117329	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117330	c.project = project
117331	return c
117332}
117333
117334// Filter sets the optional parameter "filter": A filter expression that
117335// filters resources listed in the response. The expression must specify
117336// the field name, a comparison operator, and the value that you want to
117337// use for filtering. The value must be a string, a number, or a
117338// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117339// `<`.
117340//
117341// For example, if you are filtering Compute Engine instances, you can
117342// exclude instances named `example-instance` by specifying `name !=
117343// example-instance`.
117344//
117345// You can also filter nested fields. For example, you could specify
117346// `scheduling.automaticRestart = false` to include instances only if
117347// they are not scheduled for automatic restarts. You can use filtering
117348// on nested fields to filter based on resource labels.
117349//
117350// To filter on multiple expressions, provide each separate expression
117351// within parentheses. For example: ``` (scheduling.automaticRestart =
117352// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
117353// is an `AND` expression. However, you can include `AND` and `OR`
117354// expressions explicitly. For example: ``` (cpuPlatform = "Intel
117355// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
117356// (scheduling.automaticRestart = true) ```
117357func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
117358	c.urlParams_.Set("filter", filter)
117359	return c
117360}
117361
117362// IncludeAllScopes sets the optional parameter "includeAllScopes":
117363// Indicates whether every visible scope for each scope type (zone,
117364// region, global) should be included in the response. For new resource
117365// types added after this field, the flag has no effect as new resource
117366// types will always include every visible scope for each scope type in
117367// response. For resource types which predate this field, if this flag
117368// is omitted or false, only scopes of the scope types where the
117369// resource type is expected to be found will be included.
117370func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
117371	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
117372	return c
117373}
117374
117375// MaxResults sets the optional parameter "maxResults": The maximum
117376// number of results per page that should be returned. If the number of
117377// available results is larger than `maxResults`, Compute Engine returns
117378// a `nextPageToken` that can be used to get the next page of results in
117379// subsequent list requests. Acceptable values are `0` to `500`,
117380// inclusive. (Default: `500`)
117381func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
117382	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117383	return c
117384}
117385
117386// OrderBy sets the optional parameter "orderBy": Sorts list results by
117387// a certain order. By default, results are returned in alphanumerical
117388// order based on the resource name.
117389//
117390// You can also sort results in descending order based on the creation
117391// timestamp using `orderBy="creationTimestamp desc". This sorts
117392// results based on the `creationTimestamp` field in reverse
117393// chronological order (newest result first). Use this to sort resources
117394// like operations so that the newest operation is returned
117395// first.
117396//
117397// Currently, only sorting by `name` or `creationTimestamp desc` is
117398// supported.
117399func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
117400	c.urlParams_.Set("orderBy", orderBy)
117401	return c
117402}
117403
117404// PageToken sets the optional parameter "pageToken": Specifies a page
117405// token to use. Set `pageToken` to the `nextPageToken` returned by a
117406// previous list request to get the next page of results.
117407func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
117408	c.urlParams_.Set("pageToken", pageToken)
117409	return c
117410}
117411
117412// Fields allows partial responses to be retrieved. See
117413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117414// for more information.
117415func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
117416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117417	return c
117418}
117419
117420// IfNoneMatch sets the optional parameter which makes the operation
117421// fail if the object's ETag matches the given value. This is useful for
117422// getting updates only after the object has changed since the last
117423// request. Use googleapi.IsNotModified to check whether the response
117424// error from Do is the result of In-None-Match.
117425func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
117426	c.ifNoneMatch_ = entityTag
117427	return c
117428}
117429
117430// Context sets the context to be used in this call's Do method. Any
117431// pending HTTP request will be aborted if the provided context is
117432// canceled.
117433func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
117434	c.ctx_ = ctx
117435	return c
117436}
117437
117438// Header returns an http.Header that can be modified by the caller to
117439// add HTTP headers to the request.
117440func (c *RoutersAggregatedListCall) Header() http.Header {
117441	if c.header_ == nil {
117442		c.header_ = make(http.Header)
117443	}
117444	return c.header_
117445}
117446
117447func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
117448	reqHeaders := make(http.Header)
117449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117450	for k, v := range c.header_ {
117451		reqHeaders[k] = v
117452	}
117453	reqHeaders.Set("User-Agent", c.s.userAgent())
117454	if c.ifNoneMatch_ != "" {
117455		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117456	}
117457	var body io.Reader = nil
117458	c.urlParams_.Set("alt", alt)
117459	c.urlParams_.Set("prettyPrint", "false")
117460	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
117461	urls += "?" + c.urlParams_.Encode()
117462	req, err := http.NewRequest("GET", urls, body)
117463	if err != nil {
117464		return nil, err
117465	}
117466	req.Header = reqHeaders
117467	googleapi.Expand(req.URL, map[string]string{
117468		"project": c.project,
117469	})
117470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117471}
117472
117473// Do executes the "compute.routers.aggregatedList" call.
117474// Exactly one of *RouterAggregatedList or error will be non-nil. Any
117475// non-2xx status code is an error. Response headers are in either
117476// *RouterAggregatedList.ServerResponse.Header or (if a response was
117477// returned at all) in error.(*googleapi.Error).Header. Use
117478// googleapi.IsNotModified to check whether the returned error was
117479// because http.StatusNotModified was returned.
117480func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
117481	gensupport.SetOptions(c.urlParams_, opts...)
117482	res, err := c.doRequest("json")
117483	if res != nil && res.StatusCode == http.StatusNotModified {
117484		if res.Body != nil {
117485			res.Body.Close()
117486		}
117487		return nil, &googleapi.Error{
117488			Code:   res.StatusCode,
117489			Header: res.Header,
117490		}
117491	}
117492	if err != nil {
117493		return nil, err
117494	}
117495	defer googleapi.CloseBody(res)
117496	if err := googleapi.CheckResponse(res); err != nil {
117497		return nil, err
117498	}
117499	ret := &RouterAggregatedList{
117500		ServerResponse: googleapi.ServerResponse{
117501			Header:         res.Header,
117502			HTTPStatusCode: res.StatusCode,
117503		},
117504	}
117505	target := &ret
117506	if err := gensupport.DecodeResponse(target, res); err != nil {
117507		return nil, err
117508	}
117509	return ret, nil
117510	// {
117511	//   "description": "Retrieves an aggregated list of routers.",
117512	//   "httpMethod": "GET",
117513	//   "id": "compute.routers.aggregatedList",
117514	//   "parameterOrder": [
117515	//     "project"
117516	//   ],
117517	//   "parameters": {
117518	//     "filter": {
117519	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
117520	//       "location": "query",
117521	//       "type": "string"
117522	//     },
117523	//     "includeAllScopes": {
117524	//       "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.",
117525	//       "location": "query",
117526	//       "type": "boolean"
117527	//     },
117528	//     "maxResults": {
117529	//       "default": "500",
117530	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
117531	//       "format": "uint32",
117532	//       "location": "query",
117533	//       "minimum": "0",
117534	//       "type": "integer"
117535	//     },
117536	//     "orderBy": {
117537	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
117538	//       "location": "query",
117539	//       "type": "string"
117540	//     },
117541	//     "pageToken": {
117542	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
117543	//       "location": "query",
117544	//       "type": "string"
117545	//     },
117546	//     "project": {
117547	//       "description": "Project ID for this request.",
117548	//       "location": "path",
117549	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117550	//       "required": true,
117551	//       "type": "string"
117552	//     }
117553	//   },
117554	//   "path": "{project}/aggregated/routers",
117555	//   "response": {
117556	//     "$ref": "RouterAggregatedList"
117557	//   },
117558	//   "scopes": [
117559	//     "https://www.googleapis.com/auth/cloud-platform",
117560	//     "https://www.googleapis.com/auth/compute",
117561	//     "https://www.googleapis.com/auth/compute.readonly"
117562	//   ]
117563	// }
117564
117565}
117566
117567// Pages invokes f for each page of results.
117568// A non-nil error returned from f will halt the iteration.
117569// The provided context supersedes any context provided to the Context method.
117570func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
117571	c.ctx_ = ctx
117572	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117573	for {
117574		x, err := c.Do()
117575		if err != nil {
117576			return err
117577		}
117578		if err := f(x); err != nil {
117579			return err
117580		}
117581		if x.NextPageToken == "" {
117582			return nil
117583		}
117584		c.PageToken(x.NextPageToken)
117585	}
117586}
117587
117588// method id "compute.routers.delete":
117589
117590type RoutersDeleteCall struct {
117591	s          *Service
117592	project    string
117593	region     string
117594	router     string
117595	urlParams_ gensupport.URLParams
117596	ctx_       context.Context
117597	header_    http.Header
117598}
117599
117600// Delete: Deletes the specified Router resource.
117601func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
117602	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117603	c.project = project
117604	c.region = region
117605	c.router = router
117606	return c
117607}
117608
117609// RequestId sets the optional parameter "requestId": An optional
117610// request ID to identify requests. Specify a unique request ID so that
117611// if you must retry your request, the server will know to ignore the
117612// request if it has already been completed.
117613//
117614// For example, consider a situation where you make an initial request
117615// and the request times out. If you make the request again with the
117616// same request ID, the server can check if original operation with the
117617// same request ID was received, and if so, will ignore the second
117618// request. This prevents clients from accidentally creating duplicate
117619// commitments.
117620//
117621// The request ID must be a valid UUID with the exception that zero UUID
117622// is not supported (00000000-0000-0000-0000-000000000000).
117623func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
117624	c.urlParams_.Set("requestId", requestId)
117625	return c
117626}
117627
117628// Fields allows partial responses to be retrieved. See
117629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117630// for more information.
117631func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
117632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117633	return c
117634}
117635
117636// Context sets the context to be used in this call's Do method. Any
117637// pending HTTP request will be aborted if the provided context is
117638// canceled.
117639func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
117640	c.ctx_ = ctx
117641	return c
117642}
117643
117644// Header returns an http.Header that can be modified by the caller to
117645// add HTTP headers to the request.
117646func (c *RoutersDeleteCall) Header() http.Header {
117647	if c.header_ == nil {
117648		c.header_ = make(http.Header)
117649	}
117650	return c.header_
117651}
117652
117653func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
117654	reqHeaders := make(http.Header)
117655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117656	for k, v := range c.header_ {
117657		reqHeaders[k] = v
117658	}
117659	reqHeaders.Set("User-Agent", c.s.userAgent())
117660	var body io.Reader = nil
117661	c.urlParams_.Set("alt", alt)
117662	c.urlParams_.Set("prettyPrint", "false")
117663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
117664	urls += "?" + c.urlParams_.Encode()
117665	req, err := http.NewRequest("DELETE", urls, body)
117666	if err != nil {
117667		return nil, err
117668	}
117669	req.Header = reqHeaders
117670	googleapi.Expand(req.URL, map[string]string{
117671		"project": c.project,
117672		"region":  c.region,
117673		"router":  c.router,
117674	})
117675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117676}
117677
117678// Do executes the "compute.routers.delete" call.
117679// Exactly one of *Operation or error will be non-nil. Any non-2xx
117680// status code is an error. Response headers are in either
117681// *Operation.ServerResponse.Header or (if a response was returned at
117682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117683// to check whether the returned error was because
117684// http.StatusNotModified was returned.
117685func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117686	gensupport.SetOptions(c.urlParams_, opts...)
117687	res, err := c.doRequest("json")
117688	if res != nil && res.StatusCode == http.StatusNotModified {
117689		if res.Body != nil {
117690			res.Body.Close()
117691		}
117692		return nil, &googleapi.Error{
117693			Code:   res.StatusCode,
117694			Header: res.Header,
117695		}
117696	}
117697	if err != nil {
117698		return nil, err
117699	}
117700	defer googleapi.CloseBody(res)
117701	if err := googleapi.CheckResponse(res); err != nil {
117702		return nil, err
117703	}
117704	ret := &Operation{
117705		ServerResponse: googleapi.ServerResponse{
117706			Header:         res.Header,
117707			HTTPStatusCode: res.StatusCode,
117708		},
117709	}
117710	target := &ret
117711	if err := gensupport.DecodeResponse(target, res); err != nil {
117712		return nil, err
117713	}
117714	return ret, nil
117715	// {
117716	//   "description": "Deletes the specified Router resource.",
117717	//   "httpMethod": "DELETE",
117718	//   "id": "compute.routers.delete",
117719	//   "parameterOrder": [
117720	//     "project",
117721	//     "region",
117722	//     "router"
117723	//   ],
117724	//   "parameters": {
117725	//     "project": {
117726	//       "description": "Project ID for this request.",
117727	//       "location": "path",
117728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117729	//       "required": true,
117730	//       "type": "string"
117731	//     },
117732	//     "region": {
117733	//       "description": "Name of the region for this request.",
117734	//       "location": "path",
117735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117736	//       "required": true,
117737	//       "type": "string"
117738	//     },
117739	//     "requestId": {
117740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117741	//       "location": "query",
117742	//       "type": "string"
117743	//     },
117744	//     "router": {
117745	//       "description": "Name of the Router resource to delete.",
117746	//       "location": "path",
117747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117748	//       "required": true,
117749	//       "type": "string"
117750	//     }
117751	//   },
117752	//   "path": "{project}/regions/{region}/routers/{router}",
117753	//   "response": {
117754	//     "$ref": "Operation"
117755	//   },
117756	//   "scopes": [
117757	//     "https://www.googleapis.com/auth/cloud-platform",
117758	//     "https://www.googleapis.com/auth/compute"
117759	//   ]
117760	// }
117761
117762}
117763
117764// method id "compute.routers.get":
117765
117766type RoutersGetCall struct {
117767	s            *Service
117768	project      string
117769	region       string
117770	router       string
117771	urlParams_   gensupport.URLParams
117772	ifNoneMatch_ string
117773	ctx_         context.Context
117774	header_      http.Header
117775}
117776
117777// Get: Returns the specified Router resource. Gets a list of available
117778// routers by making a list() request.
117779func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
117780	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117781	c.project = project
117782	c.region = region
117783	c.router = router
117784	return c
117785}
117786
117787// Fields allows partial responses to be retrieved. See
117788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117789// for more information.
117790func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
117791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117792	return c
117793}
117794
117795// IfNoneMatch sets the optional parameter which makes the operation
117796// fail if the object's ETag matches the given value. This is useful for
117797// getting updates only after the object has changed since the last
117798// request. Use googleapi.IsNotModified to check whether the response
117799// error from Do is the result of In-None-Match.
117800func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
117801	c.ifNoneMatch_ = entityTag
117802	return c
117803}
117804
117805// Context sets the context to be used in this call's Do method. Any
117806// pending HTTP request will be aborted if the provided context is
117807// canceled.
117808func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
117809	c.ctx_ = ctx
117810	return c
117811}
117812
117813// Header returns an http.Header that can be modified by the caller to
117814// add HTTP headers to the request.
117815func (c *RoutersGetCall) Header() http.Header {
117816	if c.header_ == nil {
117817		c.header_ = make(http.Header)
117818	}
117819	return c.header_
117820}
117821
117822func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
117823	reqHeaders := make(http.Header)
117824	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117825	for k, v := range c.header_ {
117826		reqHeaders[k] = v
117827	}
117828	reqHeaders.Set("User-Agent", c.s.userAgent())
117829	if c.ifNoneMatch_ != "" {
117830		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117831	}
117832	var body io.Reader = nil
117833	c.urlParams_.Set("alt", alt)
117834	c.urlParams_.Set("prettyPrint", "false")
117835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
117836	urls += "?" + c.urlParams_.Encode()
117837	req, err := http.NewRequest("GET", urls, body)
117838	if err != nil {
117839		return nil, err
117840	}
117841	req.Header = reqHeaders
117842	googleapi.Expand(req.URL, map[string]string{
117843		"project": c.project,
117844		"region":  c.region,
117845		"router":  c.router,
117846	})
117847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117848}
117849
117850// Do executes the "compute.routers.get" call.
117851// Exactly one of *Router or error will be non-nil. Any non-2xx status
117852// code is an error. Response headers are in either
117853// *Router.ServerResponse.Header or (if a response was returned at all)
117854// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
117855// check whether the returned error was because http.StatusNotModified
117856// was returned.
117857func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
117858	gensupport.SetOptions(c.urlParams_, opts...)
117859	res, err := c.doRequest("json")
117860	if res != nil && res.StatusCode == http.StatusNotModified {
117861		if res.Body != nil {
117862			res.Body.Close()
117863		}
117864		return nil, &googleapi.Error{
117865			Code:   res.StatusCode,
117866			Header: res.Header,
117867		}
117868	}
117869	if err != nil {
117870		return nil, err
117871	}
117872	defer googleapi.CloseBody(res)
117873	if err := googleapi.CheckResponse(res); err != nil {
117874		return nil, err
117875	}
117876	ret := &Router{
117877		ServerResponse: googleapi.ServerResponse{
117878			Header:         res.Header,
117879			HTTPStatusCode: res.StatusCode,
117880		},
117881	}
117882	target := &ret
117883	if err := gensupport.DecodeResponse(target, res); err != nil {
117884		return nil, err
117885	}
117886	return ret, nil
117887	// {
117888	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
117889	//   "httpMethod": "GET",
117890	//   "id": "compute.routers.get",
117891	//   "parameterOrder": [
117892	//     "project",
117893	//     "region",
117894	//     "router"
117895	//   ],
117896	//   "parameters": {
117897	//     "project": {
117898	//       "description": "Project ID for this request.",
117899	//       "location": "path",
117900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117901	//       "required": true,
117902	//       "type": "string"
117903	//     },
117904	//     "region": {
117905	//       "description": "Name of the region for this request.",
117906	//       "location": "path",
117907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117908	//       "required": true,
117909	//       "type": "string"
117910	//     },
117911	//     "router": {
117912	//       "description": "Name of the Router resource to return.",
117913	//       "location": "path",
117914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117915	//       "required": true,
117916	//       "type": "string"
117917	//     }
117918	//   },
117919	//   "path": "{project}/regions/{region}/routers/{router}",
117920	//   "response": {
117921	//     "$ref": "Router"
117922	//   },
117923	//   "scopes": [
117924	//     "https://www.googleapis.com/auth/cloud-platform",
117925	//     "https://www.googleapis.com/auth/compute",
117926	//     "https://www.googleapis.com/auth/compute.readonly"
117927	//   ]
117928	// }
117929
117930}
117931
117932// method id "compute.routers.getNatMappingInfo":
117933
117934type RoutersGetNatMappingInfoCall struct {
117935	s            *Service
117936	project      string
117937	region       string
117938	router       string
117939	urlParams_   gensupport.URLParams
117940	ifNoneMatch_ string
117941	ctx_         context.Context
117942	header_      http.Header
117943}
117944
117945// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
117946// endpoints.
117947func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
117948	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117949	c.project = project
117950	c.region = region
117951	c.router = router
117952	return c
117953}
117954
117955// Filter sets the optional parameter "filter": A filter expression that
117956// filters resources listed in the response. The expression must specify
117957// the field name, a comparison operator, and the value that you want to
117958// use for filtering. The value must be a string, a number, or a
117959// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117960// `<`.
117961//
117962// For example, if you are filtering Compute Engine instances, you can
117963// exclude instances named `example-instance` by specifying `name !=
117964// example-instance`.
117965//
117966// You can also filter nested fields. For example, you could specify
117967// `scheduling.automaticRestart = false` to include instances only if
117968// they are not scheduled for automatic restarts. You can use filtering
117969// on nested fields to filter based on resource labels.
117970//
117971// To filter on multiple expressions, provide each separate expression
117972// within parentheses. For example: ``` (scheduling.automaticRestart =
117973// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
117974// is an `AND` expression. However, you can include `AND` and `OR`
117975// expressions explicitly. For example: ``` (cpuPlatform = "Intel
117976// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
117977// (scheduling.automaticRestart = true) ```
117978func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
117979	c.urlParams_.Set("filter", filter)
117980	return c
117981}
117982
117983// MaxResults sets the optional parameter "maxResults": The maximum
117984// number of results per page that should be returned. If the number of
117985// available results is larger than `maxResults`, Compute Engine returns
117986// a `nextPageToken` that can be used to get the next page of results in
117987// subsequent list requests. Acceptable values are `0` to `500`,
117988// inclusive. (Default: `500`)
117989func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
117990	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117991	return c
117992}
117993
117994// OrderBy sets the optional parameter "orderBy": Sorts list results by
117995// a certain order. By default, results are returned in alphanumerical
117996// order based on the resource name.
117997//
117998// You can also sort results in descending order based on the creation
117999// timestamp using `orderBy="creationTimestamp desc". This sorts
118000// results based on the `creationTimestamp` field in reverse
118001// chronological order (newest result first). Use this to sort resources
118002// like operations so that the newest operation is returned
118003// first.
118004//
118005// Currently, only sorting by `name` or `creationTimestamp desc` is
118006// supported.
118007func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
118008	c.urlParams_.Set("orderBy", orderBy)
118009	return c
118010}
118011
118012// PageToken sets the optional parameter "pageToken": Specifies a page
118013// token to use. Set `pageToken` to the `nextPageToken` returned by a
118014// previous list request to get the next page of results.
118015func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
118016	c.urlParams_.Set("pageToken", pageToken)
118017	return c
118018}
118019
118020// Fields allows partial responses to be retrieved. See
118021// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118022// for more information.
118023func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
118024	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118025	return c
118026}
118027
118028// IfNoneMatch sets the optional parameter which makes the operation
118029// fail if the object's ETag matches the given value. This is useful for
118030// getting updates only after the object has changed since the last
118031// request. Use googleapi.IsNotModified to check whether the response
118032// error from Do is the result of In-None-Match.
118033func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
118034	c.ifNoneMatch_ = entityTag
118035	return c
118036}
118037
118038// Context sets the context to be used in this call's Do method. Any
118039// pending HTTP request will be aborted if the provided context is
118040// canceled.
118041func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
118042	c.ctx_ = ctx
118043	return c
118044}
118045
118046// Header returns an http.Header that can be modified by the caller to
118047// add HTTP headers to the request.
118048func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
118049	if c.header_ == nil {
118050		c.header_ = make(http.Header)
118051	}
118052	return c.header_
118053}
118054
118055func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
118056	reqHeaders := make(http.Header)
118057	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118058	for k, v := range c.header_ {
118059		reqHeaders[k] = v
118060	}
118061	reqHeaders.Set("User-Agent", c.s.userAgent())
118062	if c.ifNoneMatch_ != "" {
118063		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118064	}
118065	var body io.Reader = nil
118066	c.urlParams_.Set("alt", alt)
118067	c.urlParams_.Set("prettyPrint", "false")
118068	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
118069	urls += "?" + c.urlParams_.Encode()
118070	req, err := http.NewRequest("GET", urls, body)
118071	if err != nil {
118072		return nil, err
118073	}
118074	req.Header = reqHeaders
118075	googleapi.Expand(req.URL, map[string]string{
118076		"project": c.project,
118077		"region":  c.region,
118078		"router":  c.router,
118079	})
118080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118081}
118082
118083// Do executes the "compute.routers.getNatMappingInfo" call.
118084// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
118085// Any non-2xx status code is an error. Response headers are in either
118086// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
118087// was returned at all) in error.(*googleapi.Error).Header. Use
118088// googleapi.IsNotModified to check whether the returned error was
118089// because http.StatusNotModified was returned.
118090func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
118091	gensupport.SetOptions(c.urlParams_, opts...)
118092	res, err := c.doRequest("json")
118093	if res != nil && res.StatusCode == http.StatusNotModified {
118094		if res.Body != nil {
118095			res.Body.Close()
118096		}
118097		return nil, &googleapi.Error{
118098			Code:   res.StatusCode,
118099			Header: res.Header,
118100		}
118101	}
118102	if err != nil {
118103		return nil, err
118104	}
118105	defer googleapi.CloseBody(res)
118106	if err := googleapi.CheckResponse(res); err != nil {
118107		return nil, err
118108	}
118109	ret := &VmEndpointNatMappingsList{
118110		ServerResponse: googleapi.ServerResponse{
118111			Header:         res.Header,
118112			HTTPStatusCode: res.StatusCode,
118113		},
118114	}
118115	target := &ret
118116	if err := gensupport.DecodeResponse(target, res); err != nil {
118117		return nil, err
118118	}
118119	return ret, nil
118120	// {
118121	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
118122	//   "httpMethod": "GET",
118123	//   "id": "compute.routers.getNatMappingInfo",
118124	//   "parameterOrder": [
118125	//     "project",
118126	//     "region",
118127	//     "router"
118128	//   ],
118129	//   "parameters": {
118130	//     "filter": {
118131	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
118132	//       "location": "query",
118133	//       "type": "string"
118134	//     },
118135	//     "maxResults": {
118136	//       "default": "500",
118137	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118138	//       "format": "uint32",
118139	//       "location": "query",
118140	//       "minimum": "0",
118141	//       "type": "integer"
118142	//     },
118143	//     "orderBy": {
118144	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
118145	//       "location": "query",
118146	//       "type": "string"
118147	//     },
118148	//     "pageToken": {
118149	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118150	//       "location": "query",
118151	//       "type": "string"
118152	//     },
118153	//     "project": {
118154	//       "description": "Project ID for this request.",
118155	//       "location": "path",
118156	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118157	//       "required": true,
118158	//       "type": "string"
118159	//     },
118160	//     "region": {
118161	//       "description": "Name of the region for this request.",
118162	//       "location": "path",
118163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118164	//       "required": true,
118165	//       "type": "string"
118166	//     },
118167	//     "router": {
118168	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
118169	//       "location": "path",
118170	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118171	//       "required": true,
118172	//       "type": "string"
118173	//     }
118174	//   },
118175	//   "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
118176	//   "response": {
118177	//     "$ref": "VmEndpointNatMappingsList"
118178	//   },
118179	//   "scopes": [
118180	//     "https://www.googleapis.com/auth/cloud-platform",
118181	//     "https://www.googleapis.com/auth/compute",
118182	//     "https://www.googleapis.com/auth/compute.readonly"
118183	//   ]
118184	// }
118185
118186}
118187
118188// Pages invokes f for each page of results.
118189// A non-nil error returned from f will halt the iteration.
118190// The provided context supersedes any context provided to the Context method.
118191func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
118192	c.ctx_ = ctx
118193	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118194	for {
118195		x, err := c.Do()
118196		if err != nil {
118197			return err
118198		}
118199		if err := f(x); err != nil {
118200			return err
118201		}
118202		if x.NextPageToken == "" {
118203			return nil
118204		}
118205		c.PageToken(x.NextPageToken)
118206	}
118207}
118208
118209// method id "compute.routers.getRouterStatus":
118210
118211type RoutersGetRouterStatusCall struct {
118212	s            *Service
118213	project      string
118214	region       string
118215	router       string
118216	urlParams_   gensupport.URLParams
118217	ifNoneMatch_ string
118218	ctx_         context.Context
118219	header_      http.Header
118220}
118221
118222// GetRouterStatus: Retrieves runtime information of the specified
118223// router.
118224func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
118225	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118226	c.project = project
118227	c.region = region
118228	c.router = router
118229	return c
118230}
118231
118232// Fields allows partial responses to be retrieved. See
118233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118234// for more information.
118235func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
118236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118237	return c
118238}
118239
118240// IfNoneMatch sets the optional parameter which makes the operation
118241// fail if the object's ETag matches the given value. This is useful for
118242// getting updates only after the object has changed since the last
118243// request. Use googleapi.IsNotModified to check whether the response
118244// error from Do is the result of In-None-Match.
118245func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
118246	c.ifNoneMatch_ = entityTag
118247	return c
118248}
118249
118250// Context sets the context to be used in this call's Do method. Any
118251// pending HTTP request will be aborted if the provided context is
118252// canceled.
118253func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
118254	c.ctx_ = ctx
118255	return c
118256}
118257
118258// Header returns an http.Header that can be modified by the caller to
118259// add HTTP headers to the request.
118260func (c *RoutersGetRouterStatusCall) Header() http.Header {
118261	if c.header_ == nil {
118262		c.header_ = make(http.Header)
118263	}
118264	return c.header_
118265}
118266
118267func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
118268	reqHeaders := make(http.Header)
118269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118270	for k, v := range c.header_ {
118271		reqHeaders[k] = v
118272	}
118273	reqHeaders.Set("User-Agent", c.s.userAgent())
118274	if c.ifNoneMatch_ != "" {
118275		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118276	}
118277	var body io.Reader = nil
118278	c.urlParams_.Set("alt", alt)
118279	c.urlParams_.Set("prettyPrint", "false")
118280	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
118281	urls += "?" + c.urlParams_.Encode()
118282	req, err := http.NewRequest("GET", urls, body)
118283	if err != nil {
118284		return nil, err
118285	}
118286	req.Header = reqHeaders
118287	googleapi.Expand(req.URL, map[string]string{
118288		"project": c.project,
118289		"region":  c.region,
118290		"router":  c.router,
118291	})
118292	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118293}
118294
118295// Do executes the "compute.routers.getRouterStatus" call.
118296// Exactly one of *RouterStatusResponse or error will be non-nil. Any
118297// non-2xx status code is an error. Response headers are in either
118298// *RouterStatusResponse.ServerResponse.Header or (if a response was
118299// returned at all) in error.(*googleapi.Error).Header. Use
118300// googleapi.IsNotModified to check whether the returned error was
118301// because http.StatusNotModified was returned.
118302func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
118303	gensupport.SetOptions(c.urlParams_, opts...)
118304	res, err := c.doRequest("json")
118305	if res != nil && res.StatusCode == http.StatusNotModified {
118306		if res.Body != nil {
118307			res.Body.Close()
118308		}
118309		return nil, &googleapi.Error{
118310			Code:   res.StatusCode,
118311			Header: res.Header,
118312		}
118313	}
118314	if err != nil {
118315		return nil, err
118316	}
118317	defer googleapi.CloseBody(res)
118318	if err := googleapi.CheckResponse(res); err != nil {
118319		return nil, err
118320	}
118321	ret := &RouterStatusResponse{
118322		ServerResponse: googleapi.ServerResponse{
118323			Header:         res.Header,
118324			HTTPStatusCode: res.StatusCode,
118325		},
118326	}
118327	target := &ret
118328	if err := gensupport.DecodeResponse(target, res); err != nil {
118329		return nil, err
118330	}
118331	return ret, nil
118332	// {
118333	//   "description": "Retrieves runtime information of the specified router.",
118334	//   "httpMethod": "GET",
118335	//   "id": "compute.routers.getRouterStatus",
118336	//   "parameterOrder": [
118337	//     "project",
118338	//     "region",
118339	//     "router"
118340	//   ],
118341	//   "parameters": {
118342	//     "project": {
118343	//       "description": "Project ID for this request.",
118344	//       "location": "path",
118345	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118346	//       "required": true,
118347	//       "type": "string"
118348	//     },
118349	//     "region": {
118350	//       "description": "Name of the region for this request.",
118351	//       "location": "path",
118352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118353	//       "required": true,
118354	//       "type": "string"
118355	//     },
118356	//     "router": {
118357	//       "description": "Name of the Router resource to query.",
118358	//       "location": "path",
118359	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118360	//       "required": true,
118361	//       "type": "string"
118362	//     }
118363	//   },
118364	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
118365	//   "response": {
118366	//     "$ref": "RouterStatusResponse"
118367	//   },
118368	//   "scopes": [
118369	//     "https://www.googleapis.com/auth/cloud-platform",
118370	//     "https://www.googleapis.com/auth/compute",
118371	//     "https://www.googleapis.com/auth/compute.readonly"
118372	//   ]
118373	// }
118374
118375}
118376
118377// method id "compute.routers.insert":
118378
118379type RoutersInsertCall struct {
118380	s          *Service
118381	project    string
118382	region     string
118383	router     *Router
118384	urlParams_ gensupport.URLParams
118385	ctx_       context.Context
118386	header_    http.Header
118387}
118388
118389// Insert: Creates a Router resource in the specified project and region
118390// using the data included in the request.
118391func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
118392	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118393	c.project = project
118394	c.region = region
118395	c.router = router
118396	return c
118397}
118398
118399// RequestId sets the optional parameter "requestId": An optional
118400// request ID to identify requests. Specify a unique request ID so that
118401// if you must retry your request, the server will know to ignore the
118402// request if it has already been completed.
118403//
118404// For example, consider a situation where you make an initial request
118405// and the request times out. If you make the request again with the
118406// same request ID, the server can check if original operation with the
118407// same request ID was received, and if so, will ignore the second
118408// request. This prevents clients from accidentally creating duplicate
118409// commitments.
118410//
118411// The request ID must be a valid UUID with the exception that zero UUID
118412// is not supported (00000000-0000-0000-0000-000000000000).
118413func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
118414	c.urlParams_.Set("requestId", requestId)
118415	return c
118416}
118417
118418// Fields allows partial responses to be retrieved. See
118419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118420// for more information.
118421func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
118422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118423	return c
118424}
118425
118426// Context sets the context to be used in this call's Do method. Any
118427// pending HTTP request will be aborted if the provided context is
118428// canceled.
118429func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
118430	c.ctx_ = ctx
118431	return c
118432}
118433
118434// Header returns an http.Header that can be modified by the caller to
118435// add HTTP headers to the request.
118436func (c *RoutersInsertCall) Header() http.Header {
118437	if c.header_ == nil {
118438		c.header_ = make(http.Header)
118439	}
118440	return c.header_
118441}
118442
118443func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
118444	reqHeaders := make(http.Header)
118445	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118446	for k, v := range c.header_ {
118447		reqHeaders[k] = v
118448	}
118449	reqHeaders.Set("User-Agent", c.s.userAgent())
118450	var body io.Reader = nil
118451	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
118452	if err != nil {
118453		return nil, err
118454	}
118455	reqHeaders.Set("Content-Type", "application/json")
118456	c.urlParams_.Set("alt", alt)
118457	c.urlParams_.Set("prettyPrint", "false")
118458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
118459	urls += "?" + c.urlParams_.Encode()
118460	req, err := http.NewRequest("POST", urls, body)
118461	if err != nil {
118462		return nil, err
118463	}
118464	req.Header = reqHeaders
118465	googleapi.Expand(req.URL, map[string]string{
118466		"project": c.project,
118467		"region":  c.region,
118468	})
118469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118470}
118471
118472// Do executes the "compute.routers.insert" call.
118473// Exactly one of *Operation or error will be non-nil. Any non-2xx
118474// status code is an error. Response headers are in either
118475// *Operation.ServerResponse.Header or (if a response was returned at
118476// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118477// to check whether the returned error was because
118478// http.StatusNotModified was returned.
118479func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118480	gensupport.SetOptions(c.urlParams_, opts...)
118481	res, err := c.doRequest("json")
118482	if res != nil && res.StatusCode == http.StatusNotModified {
118483		if res.Body != nil {
118484			res.Body.Close()
118485		}
118486		return nil, &googleapi.Error{
118487			Code:   res.StatusCode,
118488			Header: res.Header,
118489		}
118490	}
118491	if err != nil {
118492		return nil, err
118493	}
118494	defer googleapi.CloseBody(res)
118495	if err := googleapi.CheckResponse(res); err != nil {
118496		return nil, err
118497	}
118498	ret := &Operation{
118499		ServerResponse: googleapi.ServerResponse{
118500			Header:         res.Header,
118501			HTTPStatusCode: res.StatusCode,
118502		},
118503	}
118504	target := &ret
118505	if err := gensupport.DecodeResponse(target, res); err != nil {
118506		return nil, err
118507	}
118508	return ret, nil
118509	// {
118510	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
118511	//   "httpMethod": "POST",
118512	//   "id": "compute.routers.insert",
118513	//   "parameterOrder": [
118514	//     "project",
118515	//     "region"
118516	//   ],
118517	//   "parameters": {
118518	//     "project": {
118519	//       "description": "Project ID for this request.",
118520	//       "location": "path",
118521	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118522	//       "required": true,
118523	//       "type": "string"
118524	//     },
118525	//     "region": {
118526	//       "description": "Name of the region for this request.",
118527	//       "location": "path",
118528	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118529	//       "required": true,
118530	//       "type": "string"
118531	//     },
118532	//     "requestId": {
118533	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118534	//       "location": "query",
118535	//       "type": "string"
118536	//     }
118537	//   },
118538	//   "path": "{project}/regions/{region}/routers",
118539	//   "request": {
118540	//     "$ref": "Router"
118541	//   },
118542	//   "response": {
118543	//     "$ref": "Operation"
118544	//   },
118545	//   "scopes": [
118546	//     "https://www.googleapis.com/auth/cloud-platform",
118547	//     "https://www.googleapis.com/auth/compute"
118548	//   ]
118549	// }
118550
118551}
118552
118553// method id "compute.routers.list":
118554
118555type RoutersListCall struct {
118556	s            *Service
118557	project      string
118558	region       string
118559	urlParams_   gensupport.URLParams
118560	ifNoneMatch_ string
118561	ctx_         context.Context
118562	header_      http.Header
118563}
118564
118565// List: Retrieves a list of Router resources available to the specified
118566// project.
118567func (r *RoutersService) List(project string, region string) *RoutersListCall {
118568	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118569	c.project = project
118570	c.region = region
118571	return c
118572}
118573
118574// Filter sets the optional parameter "filter": A filter expression that
118575// filters resources listed in the response. The expression must specify
118576// the field name, a comparison operator, and the value that you want to
118577// use for filtering. The value must be a string, a number, or a
118578// boolean. The comparison operator must be either `=`, `!=`, `>`, or
118579// `<`.
118580//
118581// For example, if you are filtering Compute Engine instances, you can
118582// exclude instances named `example-instance` by specifying `name !=
118583// example-instance`.
118584//
118585// You can also filter nested fields. For example, you could specify
118586// `scheduling.automaticRestart = false` to include instances only if
118587// they are not scheduled for automatic restarts. You can use filtering
118588// on nested fields to filter based on resource labels.
118589//
118590// To filter on multiple expressions, provide each separate expression
118591// within parentheses. For example: ``` (scheduling.automaticRestart =
118592// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
118593// is an `AND` expression. However, you can include `AND` and `OR`
118594// expressions explicitly. For example: ``` (cpuPlatform = "Intel
118595// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
118596// (scheduling.automaticRestart = true) ```
118597func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
118598	c.urlParams_.Set("filter", filter)
118599	return c
118600}
118601
118602// MaxResults sets the optional parameter "maxResults": The maximum
118603// number of results per page that should be returned. If the number of
118604// available results is larger than `maxResults`, Compute Engine returns
118605// a `nextPageToken` that can be used to get the next page of results in
118606// subsequent list requests. Acceptable values are `0` to `500`,
118607// inclusive. (Default: `500`)
118608func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
118609	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118610	return c
118611}
118612
118613// OrderBy sets the optional parameter "orderBy": Sorts list results by
118614// a certain order. By default, results are returned in alphanumerical
118615// order based on the resource name.
118616//
118617// You can also sort results in descending order based on the creation
118618// timestamp using `orderBy="creationTimestamp desc". This sorts
118619// results based on the `creationTimestamp` field in reverse
118620// chronological order (newest result first). Use this to sort resources
118621// like operations so that the newest operation is returned
118622// first.
118623//
118624// Currently, only sorting by `name` or `creationTimestamp desc` is
118625// supported.
118626func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
118627	c.urlParams_.Set("orderBy", orderBy)
118628	return c
118629}
118630
118631// PageToken sets the optional parameter "pageToken": Specifies a page
118632// token to use. Set `pageToken` to the `nextPageToken` returned by a
118633// previous list request to get the next page of results.
118634func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
118635	c.urlParams_.Set("pageToken", pageToken)
118636	return c
118637}
118638
118639// Fields allows partial responses to be retrieved. See
118640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118641// for more information.
118642func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
118643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118644	return c
118645}
118646
118647// IfNoneMatch sets the optional parameter which makes the operation
118648// fail if the object's ETag matches the given value. This is useful for
118649// getting updates only after the object has changed since the last
118650// request. Use googleapi.IsNotModified to check whether the response
118651// error from Do is the result of In-None-Match.
118652func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
118653	c.ifNoneMatch_ = entityTag
118654	return c
118655}
118656
118657// Context sets the context to be used in this call's Do method. Any
118658// pending HTTP request will be aborted if the provided context is
118659// canceled.
118660func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
118661	c.ctx_ = ctx
118662	return c
118663}
118664
118665// Header returns an http.Header that can be modified by the caller to
118666// add HTTP headers to the request.
118667func (c *RoutersListCall) Header() http.Header {
118668	if c.header_ == nil {
118669		c.header_ = make(http.Header)
118670	}
118671	return c.header_
118672}
118673
118674func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
118675	reqHeaders := make(http.Header)
118676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118677	for k, v := range c.header_ {
118678		reqHeaders[k] = v
118679	}
118680	reqHeaders.Set("User-Agent", c.s.userAgent())
118681	if c.ifNoneMatch_ != "" {
118682		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118683	}
118684	var body io.Reader = nil
118685	c.urlParams_.Set("alt", alt)
118686	c.urlParams_.Set("prettyPrint", "false")
118687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
118688	urls += "?" + c.urlParams_.Encode()
118689	req, err := http.NewRequest("GET", urls, body)
118690	if err != nil {
118691		return nil, err
118692	}
118693	req.Header = reqHeaders
118694	googleapi.Expand(req.URL, map[string]string{
118695		"project": c.project,
118696		"region":  c.region,
118697	})
118698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118699}
118700
118701// Do executes the "compute.routers.list" call.
118702// Exactly one of *RouterList or error will be non-nil. Any non-2xx
118703// status code is an error. Response headers are in either
118704// *RouterList.ServerResponse.Header or (if a response was returned at
118705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118706// to check whether the returned error was because
118707// http.StatusNotModified was returned.
118708func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
118709	gensupport.SetOptions(c.urlParams_, opts...)
118710	res, err := c.doRequest("json")
118711	if res != nil && res.StatusCode == http.StatusNotModified {
118712		if res.Body != nil {
118713			res.Body.Close()
118714		}
118715		return nil, &googleapi.Error{
118716			Code:   res.StatusCode,
118717			Header: res.Header,
118718		}
118719	}
118720	if err != nil {
118721		return nil, err
118722	}
118723	defer googleapi.CloseBody(res)
118724	if err := googleapi.CheckResponse(res); err != nil {
118725		return nil, err
118726	}
118727	ret := &RouterList{
118728		ServerResponse: googleapi.ServerResponse{
118729			Header:         res.Header,
118730			HTTPStatusCode: res.StatusCode,
118731		},
118732	}
118733	target := &ret
118734	if err := gensupport.DecodeResponse(target, res); err != nil {
118735		return nil, err
118736	}
118737	return ret, nil
118738	// {
118739	//   "description": "Retrieves a list of Router resources available to the specified project.",
118740	//   "httpMethod": "GET",
118741	//   "id": "compute.routers.list",
118742	//   "parameterOrder": [
118743	//     "project",
118744	//     "region"
118745	//   ],
118746	//   "parameters": {
118747	//     "filter": {
118748	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
118749	//       "location": "query",
118750	//       "type": "string"
118751	//     },
118752	//     "maxResults": {
118753	//       "default": "500",
118754	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118755	//       "format": "uint32",
118756	//       "location": "query",
118757	//       "minimum": "0",
118758	//       "type": "integer"
118759	//     },
118760	//     "orderBy": {
118761	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
118762	//       "location": "query",
118763	//       "type": "string"
118764	//     },
118765	//     "pageToken": {
118766	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118767	//       "location": "query",
118768	//       "type": "string"
118769	//     },
118770	//     "project": {
118771	//       "description": "Project ID for this request.",
118772	//       "location": "path",
118773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118774	//       "required": true,
118775	//       "type": "string"
118776	//     },
118777	//     "region": {
118778	//       "description": "Name of the region for this request.",
118779	//       "location": "path",
118780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118781	//       "required": true,
118782	//       "type": "string"
118783	//     }
118784	//   },
118785	//   "path": "{project}/regions/{region}/routers",
118786	//   "response": {
118787	//     "$ref": "RouterList"
118788	//   },
118789	//   "scopes": [
118790	//     "https://www.googleapis.com/auth/cloud-platform",
118791	//     "https://www.googleapis.com/auth/compute",
118792	//     "https://www.googleapis.com/auth/compute.readonly"
118793	//   ]
118794	// }
118795
118796}
118797
118798// Pages invokes f for each page of results.
118799// A non-nil error returned from f will halt the iteration.
118800// The provided context supersedes any context provided to the Context method.
118801func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
118802	c.ctx_ = ctx
118803	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118804	for {
118805		x, err := c.Do()
118806		if err != nil {
118807			return err
118808		}
118809		if err := f(x); err != nil {
118810			return err
118811		}
118812		if x.NextPageToken == "" {
118813			return nil
118814		}
118815		c.PageToken(x.NextPageToken)
118816	}
118817}
118818
118819// method id "compute.routers.patch":
118820
118821type RoutersPatchCall struct {
118822	s          *Service
118823	project    string
118824	region     string
118825	router     string
118826	router2    *Router
118827	urlParams_ gensupport.URLParams
118828	ctx_       context.Context
118829	header_    http.Header
118830}
118831
118832// Patch: Patches the specified Router resource with the data included
118833// in the request. This method supports PATCH semantics and uses JSON
118834// merge patch format and processing rules.
118835func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
118836	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118837	c.project = project
118838	c.region = region
118839	c.router = router
118840	c.router2 = router2
118841	return c
118842}
118843
118844// RequestId sets the optional parameter "requestId": An optional
118845// request ID to identify requests. Specify a unique request ID so that
118846// if you must retry your request, the server will know to ignore the
118847// request if it has already been completed.
118848//
118849// For example, consider a situation where you make an initial request
118850// and the request times out. If you make the request again with the
118851// same request ID, the server can check if original operation with the
118852// same request ID was received, and if so, will ignore the second
118853// request. This prevents clients from accidentally creating duplicate
118854// commitments.
118855//
118856// The request ID must be a valid UUID with the exception that zero UUID
118857// is not supported (00000000-0000-0000-0000-000000000000).
118858func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
118859	c.urlParams_.Set("requestId", requestId)
118860	return c
118861}
118862
118863// Fields allows partial responses to be retrieved. See
118864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118865// for more information.
118866func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
118867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118868	return c
118869}
118870
118871// Context sets the context to be used in this call's Do method. Any
118872// pending HTTP request will be aborted if the provided context is
118873// canceled.
118874func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
118875	c.ctx_ = ctx
118876	return c
118877}
118878
118879// Header returns an http.Header that can be modified by the caller to
118880// add HTTP headers to the request.
118881func (c *RoutersPatchCall) Header() http.Header {
118882	if c.header_ == nil {
118883		c.header_ = make(http.Header)
118884	}
118885	return c.header_
118886}
118887
118888func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
118889	reqHeaders := make(http.Header)
118890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118891	for k, v := range c.header_ {
118892		reqHeaders[k] = v
118893	}
118894	reqHeaders.Set("User-Agent", c.s.userAgent())
118895	var body io.Reader = nil
118896	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
118897	if err != nil {
118898		return nil, err
118899	}
118900	reqHeaders.Set("Content-Type", "application/json")
118901	c.urlParams_.Set("alt", alt)
118902	c.urlParams_.Set("prettyPrint", "false")
118903	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
118904	urls += "?" + c.urlParams_.Encode()
118905	req, err := http.NewRequest("PATCH", urls, body)
118906	if err != nil {
118907		return nil, err
118908	}
118909	req.Header = reqHeaders
118910	googleapi.Expand(req.URL, map[string]string{
118911		"project": c.project,
118912		"region":  c.region,
118913		"router":  c.router,
118914	})
118915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118916}
118917
118918// Do executes the "compute.routers.patch" call.
118919// Exactly one of *Operation or error will be non-nil. Any non-2xx
118920// status code is an error. Response headers are in either
118921// *Operation.ServerResponse.Header or (if a response was returned at
118922// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118923// to check whether the returned error was because
118924// http.StatusNotModified was returned.
118925func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118926	gensupport.SetOptions(c.urlParams_, opts...)
118927	res, err := c.doRequest("json")
118928	if res != nil && res.StatusCode == http.StatusNotModified {
118929		if res.Body != nil {
118930			res.Body.Close()
118931		}
118932		return nil, &googleapi.Error{
118933			Code:   res.StatusCode,
118934			Header: res.Header,
118935		}
118936	}
118937	if err != nil {
118938		return nil, err
118939	}
118940	defer googleapi.CloseBody(res)
118941	if err := googleapi.CheckResponse(res); err != nil {
118942		return nil, err
118943	}
118944	ret := &Operation{
118945		ServerResponse: googleapi.ServerResponse{
118946			Header:         res.Header,
118947			HTTPStatusCode: res.StatusCode,
118948		},
118949	}
118950	target := &ret
118951	if err := gensupport.DecodeResponse(target, res); err != nil {
118952		return nil, err
118953	}
118954	return ret, nil
118955	// {
118956	//   "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.",
118957	//   "httpMethod": "PATCH",
118958	//   "id": "compute.routers.patch",
118959	//   "parameterOrder": [
118960	//     "project",
118961	//     "region",
118962	//     "router"
118963	//   ],
118964	//   "parameters": {
118965	//     "project": {
118966	//       "description": "Project ID for this request.",
118967	//       "location": "path",
118968	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118969	//       "required": true,
118970	//       "type": "string"
118971	//     },
118972	//     "region": {
118973	//       "description": "Name of the region for this request.",
118974	//       "location": "path",
118975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118976	//       "required": true,
118977	//       "type": "string"
118978	//     },
118979	//     "requestId": {
118980	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118981	//       "location": "query",
118982	//       "type": "string"
118983	//     },
118984	//     "router": {
118985	//       "description": "Name of the Router resource to patch.",
118986	//       "location": "path",
118987	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118988	//       "required": true,
118989	//       "type": "string"
118990	//     }
118991	//   },
118992	//   "path": "{project}/regions/{region}/routers/{router}",
118993	//   "request": {
118994	//     "$ref": "Router"
118995	//   },
118996	//   "response": {
118997	//     "$ref": "Operation"
118998	//   },
118999	//   "scopes": [
119000	//     "https://www.googleapis.com/auth/cloud-platform",
119001	//     "https://www.googleapis.com/auth/compute"
119002	//   ]
119003	// }
119004
119005}
119006
119007// method id "compute.routers.preview":
119008
119009type RoutersPreviewCall struct {
119010	s          *Service
119011	project    string
119012	region     string
119013	router     string
119014	router2    *Router
119015	urlParams_ gensupport.URLParams
119016	ctx_       context.Context
119017	header_    http.Header
119018}
119019
119020// Preview: Preview fields auto-generated during router create and
119021// update operations. Calling this method does NOT create or update the
119022// router.
119023func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
119024	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119025	c.project = project
119026	c.region = region
119027	c.router = router
119028	c.router2 = router2
119029	return c
119030}
119031
119032// Fields allows partial responses to be retrieved. See
119033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119034// for more information.
119035func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
119036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119037	return c
119038}
119039
119040// Context sets the context to be used in this call's Do method. Any
119041// pending HTTP request will be aborted if the provided context is
119042// canceled.
119043func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
119044	c.ctx_ = ctx
119045	return c
119046}
119047
119048// Header returns an http.Header that can be modified by the caller to
119049// add HTTP headers to the request.
119050func (c *RoutersPreviewCall) Header() http.Header {
119051	if c.header_ == nil {
119052		c.header_ = make(http.Header)
119053	}
119054	return c.header_
119055}
119056
119057func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
119058	reqHeaders := make(http.Header)
119059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119060	for k, v := range c.header_ {
119061		reqHeaders[k] = v
119062	}
119063	reqHeaders.Set("User-Agent", c.s.userAgent())
119064	var body io.Reader = nil
119065	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
119066	if err != nil {
119067		return nil, err
119068	}
119069	reqHeaders.Set("Content-Type", "application/json")
119070	c.urlParams_.Set("alt", alt)
119071	c.urlParams_.Set("prettyPrint", "false")
119072	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
119073	urls += "?" + c.urlParams_.Encode()
119074	req, err := http.NewRequest("POST", urls, body)
119075	if err != nil {
119076		return nil, err
119077	}
119078	req.Header = reqHeaders
119079	googleapi.Expand(req.URL, map[string]string{
119080		"project": c.project,
119081		"region":  c.region,
119082		"router":  c.router,
119083	})
119084	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119085}
119086
119087// Do executes the "compute.routers.preview" call.
119088// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
119089// non-2xx status code is an error. Response headers are in either
119090// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
119091// returned at all) in error.(*googleapi.Error).Header. Use
119092// googleapi.IsNotModified to check whether the returned error was
119093// because http.StatusNotModified was returned.
119094func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
119095	gensupport.SetOptions(c.urlParams_, opts...)
119096	res, err := c.doRequest("json")
119097	if res != nil && res.StatusCode == http.StatusNotModified {
119098		if res.Body != nil {
119099			res.Body.Close()
119100		}
119101		return nil, &googleapi.Error{
119102			Code:   res.StatusCode,
119103			Header: res.Header,
119104		}
119105	}
119106	if err != nil {
119107		return nil, err
119108	}
119109	defer googleapi.CloseBody(res)
119110	if err := googleapi.CheckResponse(res); err != nil {
119111		return nil, err
119112	}
119113	ret := &RoutersPreviewResponse{
119114		ServerResponse: googleapi.ServerResponse{
119115			Header:         res.Header,
119116			HTTPStatusCode: res.StatusCode,
119117		},
119118	}
119119	target := &ret
119120	if err := gensupport.DecodeResponse(target, res); err != nil {
119121		return nil, err
119122	}
119123	return ret, nil
119124	// {
119125	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
119126	//   "httpMethod": "POST",
119127	//   "id": "compute.routers.preview",
119128	//   "parameterOrder": [
119129	//     "project",
119130	//     "region",
119131	//     "router"
119132	//   ],
119133	//   "parameters": {
119134	//     "project": {
119135	//       "description": "Project ID for this request.",
119136	//       "location": "path",
119137	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119138	//       "required": true,
119139	//       "type": "string"
119140	//     },
119141	//     "region": {
119142	//       "description": "Name of the region for this request.",
119143	//       "location": "path",
119144	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119145	//       "required": true,
119146	//       "type": "string"
119147	//     },
119148	//     "router": {
119149	//       "description": "Name of the Router resource to query.",
119150	//       "location": "path",
119151	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119152	//       "required": true,
119153	//       "type": "string"
119154	//     }
119155	//   },
119156	//   "path": "{project}/regions/{region}/routers/{router}/preview",
119157	//   "request": {
119158	//     "$ref": "Router"
119159	//   },
119160	//   "response": {
119161	//     "$ref": "RoutersPreviewResponse"
119162	//   },
119163	//   "scopes": [
119164	//     "https://www.googleapis.com/auth/cloud-platform",
119165	//     "https://www.googleapis.com/auth/compute",
119166	//     "https://www.googleapis.com/auth/compute.readonly"
119167	//   ]
119168	// }
119169
119170}
119171
119172// method id "compute.routers.update":
119173
119174type RoutersUpdateCall struct {
119175	s          *Service
119176	project    string
119177	region     string
119178	router     string
119179	router2    *Router
119180	urlParams_ gensupport.URLParams
119181	ctx_       context.Context
119182	header_    http.Header
119183}
119184
119185// Update: Updates the specified Router resource with the data included
119186// in the request. This method conforms to PUT semantics, which requests
119187// that the state of the target resource be created or replaced with the
119188// state defined by the representation enclosed in the request message
119189// payload.
119190func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
119191	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119192	c.project = project
119193	c.region = region
119194	c.router = router
119195	c.router2 = router2
119196	return c
119197}
119198
119199// RequestId sets the optional parameter "requestId": An optional
119200// request ID to identify requests. Specify a unique request ID so that
119201// if you must retry your request, the server will know to ignore the
119202// request if it has already been completed.
119203//
119204// For example, consider a situation where you make an initial request
119205// and the request times out. If you make the request again with the
119206// same request ID, the server can check if original operation with the
119207// same request ID was received, and if so, will ignore the second
119208// request. This prevents clients from accidentally creating duplicate
119209// commitments.
119210//
119211// The request ID must be a valid UUID with the exception that zero UUID
119212// is not supported (00000000-0000-0000-0000-000000000000).
119213func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
119214	c.urlParams_.Set("requestId", requestId)
119215	return c
119216}
119217
119218// Fields allows partial responses to be retrieved. See
119219// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119220// for more information.
119221func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
119222	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119223	return c
119224}
119225
119226// Context sets the context to be used in this call's Do method. Any
119227// pending HTTP request will be aborted if the provided context is
119228// canceled.
119229func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
119230	c.ctx_ = ctx
119231	return c
119232}
119233
119234// Header returns an http.Header that can be modified by the caller to
119235// add HTTP headers to the request.
119236func (c *RoutersUpdateCall) Header() http.Header {
119237	if c.header_ == nil {
119238		c.header_ = make(http.Header)
119239	}
119240	return c.header_
119241}
119242
119243func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
119244	reqHeaders := make(http.Header)
119245	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119246	for k, v := range c.header_ {
119247		reqHeaders[k] = v
119248	}
119249	reqHeaders.Set("User-Agent", c.s.userAgent())
119250	var body io.Reader = nil
119251	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
119252	if err != nil {
119253		return nil, err
119254	}
119255	reqHeaders.Set("Content-Type", "application/json")
119256	c.urlParams_.Set("alt", alt)
119257	c.urlParams_.Set("prettyPrint", "false")
119258	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
119259	urls += "?" + c.urlParams_.Encode()
119260	req, err := http.NewRequest("PUT", urls, body)
119261	if err != nil {
119262		return nil, err
119263	}
119264	req.Header = reqHeaders
119265	googleapi.Expand(req.URL, map[string]string{
119266		"project": c.project,
119267		"region":  c.region,
119268		"router":  c.router,
119269	})
119270	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119271}
119272
119273// Do executes the "compute.routers.update" call.
119274// Exactly one of *Operation or error will be non-nil. Any non-2xx
119275// status code is an error. Response headers are in either
119276// *Operation.ServerResponse.Header or (if a response was returned at
119277// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119278// to check whether the returned error was because
119279// http.StatusNotModified was returned.
119280func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119281	gensupport.SetOptions(c.urlParams_, opts...)
119282	res, err := c.doRequest("json")
119283	if res != nil && res.StatusCode == http.StatusNotModified {
119284		if res.Body != nil {
119285			res.Body.Close()
119286		}
119287		return nil, &googleapi.Error{
119288			Code:   res.StatusCode,
119289			Header: res.Header,
119290		}
119291	}
119292	if err != nil {
119293		return nil, err
119294	}
119295	defer googleapi.CloseBody(res)
119296	if err := googleapi.CheckResponse(res); err != nil {
119297		return nil, err
119298	}
119299	ret := &Operation{
119300		ServerResponse: googleapi.ServerResponse{
119301			Header:         res.Header,
119302			HTTPStatusCode: res.StatusCode,
119303		},
119304	}
119305	target := &ret
119306	if err := gensupport.DecodeResponse(target, res); err != nil {
119307		return nil, err
119308	}
119309	return ret, nil
119310	// {
119311	//   "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.",
119312	//   "httpMethod": "PUT",
119313	//   "id": "compute.routers.update",
119314	//   "parameterOrder": [
119315	//     "project",
119316	//     "region",
119317	//     "router"
119318	//   ],
119319	//   "parameters": {
119320	//     "project": {
119321	//       "description": "Project ID for this request.",
119322	//       "location": "path",
119323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119324	//       "required": true,
119325	//       "type": "string"
119326	//     },
119327	//     "region": {
119328	//       "description": "Name of the region for this request.",
119329	//       "location": "path",
119330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119331	//       "required": true,
119332	//       "type": "string"
119333	//     },
119334	//     "requestId": {
119335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119336	//       "location": "query",
119337	//       "type": "string"
119338	//     },
119339	//     "router": {
119340	//       "description": "Name of the Router resource to update.",
119341	//       "location": "path",
119342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119343	//       "required": true,
119344	//       "type": "string"
119345	//     }
119346	//   },
119347	//   "path": "{project}/regions/{region}/routers/{router}",
119348	//   "request": {
119349	//     "$ref": "Router"
119350	//   },
119351	//   "response": {
119352	//     "$ref": "Operation"
119353	//   },
119354	//   "scopes": [
119355	//     "https://www.googleapis.com/auth/cloud-platform",
119356	//     "https://www.googleapis.com/auth/compute"
119357	//   ]
119358	// }
119359
119360}
119361
119362// method id "compute.routes.delete":
119363
119364type RoutesDeleteCall struct {
119365	s          *Service
119366	project    string
119367	route      string
119368	urlParams_ gensupport.URLParams
119369	ctx_       context.Context
119370	header_    http.Header
119371}
119372
119373// Delete: Deletes the specified Route resource.
119374// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
119375func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
119376	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119377	c.project = project
119378	c.route = route
119379	return c
119380}
119381
119382// RequestId sets the optional parameter "requestId": An optional
119383// request ID to identify requests. Specify a unique request ID so that
119384// if you must retry your request, the server will know to ignore the
119385// request if it has already been completed.
119386//
119387// For example, consider a situation where you make an initial request
119388// and the request times out. If you make the request again with the
119389// same request ID, the server can check if original operation with the
119390// same request ID was received, and if so, will ignore the second
119391// request. This prevents clients from accidentally creating duplicate
119392// commitments.
119393//
119394// The request ID must be a valid UUID with the exception that zero UUID
119395// is not supported (00000000-0000-0000-0000-000000000000).
119396func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
119397	c.urlParams_.Set("requestId", requestId)
119398	return c
119399}
119400
119401// Fields allows partial responses to be retrieved. See
119402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119403// for more information.
119404func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
119405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119406	return c
119407}
119408
119409// Context sets the context to be used in this call's Do method. Any
119410// pending HTTP request will be aborted if the provided context is
119411// canceled.
119412func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
119413	c.ctx_ = ctx
119414	return c
119415}
119416
119417// Header returns an http.Header that can be modified by the caller to
119418// add HTTP headers to the request.
119419func (c *RoutesDeleteCall) Header() http.Header {
119420	if c.header_ == nil {
119421		c.header_ = make(http.Header)
119422	}
119423	return c.header_
119424}
119425
119426func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
119427	reqHeaders := make(http.Header)
119428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119429	for k, v := range c.header_ {
119430		reqHeaders[k] = v
119431	}
119432	reqHeaders.Set("User-Agent", c.s.userAgent())
119433	var body io.Reader = nil
119434	c.urlParams_.Set("alt", alt)
119435	c.urlParams_.Set("prettyPrint", "false")
119436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
119437	urls += "?" + c.urlParams_.Encode()
119438	req, err := http.NewRequest("DELETE", urls, body)
119439	if err != nil {
119440		return nil, err
119441	}
119442	req.Header = reqHeaders
119443	googleapi.Expand(req.URL, map[string]string{
119444		"project": c.project,
119445		"route":   c.route,
119446	})
119447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119448}
119449
119450// Do executes the "compute.routes.delete" call.
119451// Exactly one of *Operation or error will be non-nil. Any non-2xx
119452// status code is an error. Response headers are in either
119453// *Operation.ServerResponse.Header or (if a response was returned at
119454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119455// to check whether the returned error was because
119456// http.StatusNotModified was returned.
119457func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119458	gensupport.SetOptions(c.urlParams_, opts...)
119459	res, err := c.doRequest("json")
119460	if res != nil && res.StatusCode == http.StatusNotModified {
119461		if res.Body != nil {
119462			res.Body.Close()
119463		}
119464		return nil, &googleapi.Error{
119465			Code:   res.StatusCode,
119466			Header: res.Header,
119467		}
119468	}
119469	if err != nil {
119470		return nil, err
119471	}
119472	defer googleapi.CloseBody(res)
119473	if err := googleapi.CheckResponse(res); err != nil {
119474		return nil, err
119475	}
119476	ret := &Operation{
119477		ServerResponse: googleapi.ServerResponse{
119478			Header:         res.Header,
119479			HTTPStatusCode: res.StatusCode,
119480		},
119481	}
119482	target := &ret
119483	if err := gensupport.DecodeResponse(target, res); err != nil {
119484		return nil, err
119485	}
119486	return ret, nil
119487	// {
119488	//   "description": "Deletes the specified Route resource.",
119489	//   "httpMethod": "DELETE",
119490	//   "id": "compute.routes.delete",
119491	//   "parameterOrder": [
119492	//     "project",
119493	//     "route"
119494	//   ],
119495	//   "parameters": {
119496	//     "project": {
119497	//       "description": "Project ID for this request.",
119498	//       "location": "path",
119499	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119500	//       "required": true,
119501	//       "type": "string"
119502	//     },
119503	//     "requestId": {
119504	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119505	//       "location": "query",
119506	//       "type": "string"
119507	//     },
119508	//     "route": {
119509	//       "description": "Name of the Route resource to delete.",
119510	//       "location": "path",
119511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119512	//       "required": true,
119513	//       "type": "string"
119514	//     }
119515	//   },
119516	//   "path": "{project}/global/routes/{route}",
119517	//   "response": {
119518	//     "$ref": "Operation"
119519	//   },
119520	//   "scopes": [
119521	//     "https://www.googleapis.com/auth/cloud-platform",
119522	//     "https://www.googleapis.com/auth/compute"
119523	//   ]
119524	// }
119525
119526}
119527
119528// method id "compute.routes.get":
119529
119530type RoutesGetCall struct {
119531	s            *Service
119532	project      string
119533	route        string
119534	urlParams_   gensupport.URLParams
119535	ifNoneMatch_ string
119536	ctx_         context.Context
119537	header_      http.Header
119538}
119539
119540// Get: Returns the specified Route resource. Gets a list of available
119541// routes by making a list() request.
119542// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
119543func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
119544	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119545	c.project = project
119546	c.route = route
119547	return c
119548}
119549
119550// Fields allows partial responses to be retrieved. See
119551// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119552// for more information.
119553func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
119554	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119555	return c
119556}
119557
119558// IfNoneMatch sets the optional parameter which makes the operation
119559// fail if the object's ETag matches the given value. This is useful for
119560// getting updates only after the object has changed since the last
119561// request. Use googleapi.IsNotModified to check whether the response
119562// error from Do is the result of In-None-Match.
119563func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
119564	c.ifNoneMatch_ = entityTag
119565	return c
119566}
119567
119568// Context sets the context to be used in this call's Do method. Any
119569// pending HTTP request will be aborted if the provided context is
119570// canceled.
119571func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
119572	c.ctx_ = ctx
119573	return c
119574}
119575
119576// Header returns an http.Header that can be modified by the caller to
119577// add HTTP headers to the request.
119578func (c *RoutesGetCall) Header() http.Header {
119579	if c.header_ == nil {
119580		c.header_ = make(http.Header)
119581	}
119582	return c.header_
119583}
119584
119585func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
119586	reqHeaders := make(http.Header)
119587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119588	for k, v := range c.header_ {
119589		reqHeaders[k] = v
119590	}
119591	reqHeaders.Set("User-Agent", c.s.userAgent())
119592	if c.ifNoneMatch_ != "" {
119593		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119594	}
119595	var body io.Reader = nil
119596	c.urlParams_.Set("alt", alt)
119597	c.urlParams_.Set("prettyPrint", "false")
119598	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
119599	urls += "?" + c.urlParams_.Encode()
119600	req, err := http.NewRequest("GET", urls, body)
119601	if err != nil {
119602		return nil, err
119603	}
119604	req.Header = reqHeaders
119605	googleapi.Expand(req.URL, map[string]string{
119606		"project": c.project,
119607		"route":   c.route,
119608	})
119609	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119610}
119611
119612// Do executes the "compute.routes.get" call.
119613// Exactly one of *Route or error will be non-nil. Any non-2xx status
119614// code is an error. Response headers are in either
119615// *Route.ServerResponse.Header or (if a response was returned at all)
119616// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
119617// check whether the returned error was because http.StatusNotModified
119618// was returned.
119619func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
119620	gensupport.SetOptions(c.urlParams_, opts...)
119621	res, err := c.doRequest("json")
119622	if res != nil && res.StatusCode == http.StatusNotModified {
119623		if res.Body != nil {
119624			res.Body.Close()
119625		}
119626		return nil, &googleapi.Error{
119627			Code:   res.StatusCode,
119628			Header: res.Header,
119629		}
119630	}
119631	if err != nil {
119632		return nil, err
119633	}
119634	defer googleapi.CloseBody(res)
119635	if err := googleapi.CheckResponse(res); err != nil {
119636		return nil, err
119637	}
119638	ret := &Route{
119639		ServerResponse: googleapi.ServerResponse{
119640			Header:         res.Header,
119641			HTTPStatusCode: res.StatusCode,
119642		},
119643	}
119644	target := &ret
119645	if err := gensupport.DecodeResponse(target, res); err != nil {
119646		return nil, err
119647	}
119648	return ret, nil
119649	// {
119650	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
119651	//   "httpMethod": "GET",
119652	//   "id": "compute.routes.get",
119653	//   "parameterOrder": [
119654	//     "project",
119655	//     "route"
119656	//   ],
119657	//   "parameters": {
119658	//     "project": {
119659	//       "description": "Project ID for this request.",
119660	//       "location": "path",
119661	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119662	//       "required": true,
119663	//       "type": "string"
119664	//     },
119665	//     "route": {
119666	//       "description": "Name of the Route resource to return.",
119667	//       "location": "path",
119668	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119669	//       "required": true,
119670	//       "type": "string"
119671	//     }
119672	//   },
119673	//   "path": "{project}/global/routes/{route}",
119674	//   "response": {
119675	//     "$ref": "Route"
119676	//   },
119677	//   "scopes": [
119678	//     "https://www.googleapis.com/auth/cloud-platform",
119679	//     "https://www.googleapis.com/auth/compute",
119680	//     "https://www.googleapis.com/auth/compute.readonly"
119681	//   ]
119682	// }
119683
119684}
119685
119686// method id "compute.routes.insert":
119687
119688type RoutesInsertCall struct {
119689	s          *Service
119690	project    string
119691	route      *Route
119692	urlParams_ gensupport.URLParams
119693	ctx_       context.Context
119694	header_    http.Header
119695}
119696
119697// Insert: Creates a Route resource in the specified project using the
119698// data included in the request.
119699// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
119700func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
119701	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119702	c.project = project
119703	c.route = route
119704	return c
119705}
119706
119707// RequestId sets the optional parameter "requestId": An optional
119708// request ID to identify requests. Specify a unique request ID so that
119709// if you must retry your request, the server will know to ignore the
119710// request if it has already been completed.
119711//
119712// For example, consider a situation where you make an initial request
119713// and the request times out. If you make the request again with the
119714// same request ID, the server can check if original operation with the
119715// same request ID was received, and if so, will ignore the second
119716// request. This prevents clients from accidentally creating duplicate
119717// commitments.
119718//
119719// The request ID must be a valid UUID with the exception that zero UUID
119720// is not supported (00000000-0000-0000-0000-000000000000).
119721func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
119722	c.urlParams_.Set("requestId", requestId)
119723	return c
119724}
119725
119726// Fields allows partial responses to be retrieved. See
119727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119728// for more information.
119729func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
119730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119731	return c
119732}
119733
119734// Context sets the context to be used in this call's Do method. Any
119735// pending HTTP request will be aborted if the provided context is
119736// canceled.
119737func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
119738	c.ctx_ = ctx
119739	return c
119740}
119741
119742// Header returns an http.Header that can be modified by the caller to
119743// add HTTP headers to the request.
119744func (c *RoutesInsertCall) Header() http.Header {
119745	if c.header_ == nil {
119746		c.header_ = make(http.Header)
119747	}
119748	return c.header_
119749}
119750
119751func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
119752	reqHeaders := make(http.Header)
119753	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119754	for k, v := range c.header_ {
119755		reqHeaders[k] = v
119756	}
119757	reqHeaders.Set("User-Agent", c.s.userAgent())
119758	var body io.Reader = nil
119759	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
119760	if err != nil {
119761		return nil, err
119762	}
119763	reqHeaders.Set("Content-Type", "application/json")
119764	c.urlParams_.Set("alt", alt)
119765	c.urlParams_.Set("prettyPrint", "false")
119766	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
119767	urls += "?" + c.urlParams_.Encode()
119768	req, err := http.NewRequest("POST", urls, body)
119769	if err != nil {
119770		return nil, err
119771	}
119772	req.Header = reqHeaders
119773	googleapi.Expand(req.URL, map[string]string{
119774		"project": c.project,
119775	})
119776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119777}
119778
119779// Do executes the "compute.routes.insert" call.
119780// Exactly one of *Operation or error will be non-nil. Any non-2xx
119781// status code is an error. Response headers are in either
119782// *Operation.ServerResponse.Header or (if a response was returned at
119783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119784// to check whether the returned error was because
119785// http.StatusNotModified was returned.
119786func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119787	gensupport.SetOptions(c.urlParams_, opts...)
119788	res, err := c.doRequest("json")
119789	if res != nil && res.StatusCode == http.StatusNotModified {
119790		if res.Body != nil {
119791			res.Body.Close()
119792		}
119793		return nil, &googleapi.Error{
119794			Code:   res.StatusCode,
119795			Header: res.Header,
119796		}
119797	}
119798	if err != nil {
119799		return nil, err
119800	}
119801	defer googleapi.CloseBody(res)
119802	if err := googleapi.CheckResponse(res); err != nil {
119803		return nil, err
119804	}
119805	ret := &Operation{
119806		ServerResponse: googleapi.ServerResponse{
119807			Header:         res.Header,
119808			HTTPStatusCode: res.StatusCode,
119809		},
119810	}
119811	target := &ret
119812	if err := gensupport.DecodeResponse(target, res); err != nil {
119813		return nil, err
119814	}
119815	return ret, nil
119816	// {
119817	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
119818	//   "httpMethod": "POST",
119819	//   "id": "compute.routes.insert",
119820	//   "parameterOrder": [
119821	//     "project"
119822	//   ],
119823	//   "parameters": {
119824	//     "project": {
119825	//       "description": "Project ID for this request.",
119826	//       "location": "path",
119827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119828	//       "required": true,
119829	//       "type": "string"
119830	//     },
119831	//     "requestId": {
119832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119833	//       "location": "query",
119834	//       "type": "string"
119835	//     }
119836	//   },
119837	//   "path": "{project}/global/routes",
119838	//   "request": {
119839	//     "$ref": "Route"
119840	//   },
119841	//   "response": {
119842	//     "$ref": "Operation"
119843	//   },
119844	//   "scopes": [
119845	//     "https://www.googleapis.com/auth/cloud-platform",
119846	//     "https://www.googleapis.com/auth/compute"
119847	//   ]
119848	// }
119849
119850}
119851
119852// method id "compute.routes.list":
119853
119854type RoutesListCall struct {
119855	s            *Service
119856	project      string
119857	urlParams_   gensupport.URLParams
119858	ifNoneMatch_ string
119859	ctx_         context.Context
119860	header_      http.Header
119861}
119862
119863// List: Retrieves the list of Route resources available to the
119864// specified project.
119865// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
119866func (r *RoutesService) List(project string) *RoutesListCall {
119867	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119868	c.project = project
119869	return c
119870}
119871
119872// Filter sets the optional parameter "filter": A filter expression that
119873// filters resources listed in the response. The expression must specify
119874// the field name, a comparison operator, and the value that you want to
119875// use for filtering. The value must be a string, a number, or a
119876// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119877// `<`.
119878//
119879// For example, if you are filtering Compute Engine instances, you can
119880// exclude instances named `example-instance` by specifying `name !=
119881// example-instance`.
119882//
119883// You can also filter nested fields. For example, you could specify
119884// `scheduling.automaticRestart = false` to include instances only if
119885// they are not scheduled for automatic restarts. You can use filtering
119886// on nested fields to filter based on resource labels.
119887//
119888// To filter on multiple expressions, provide each separate expression
119889// within parentheses. For example: ``` (scheduling.automaticRestart =
119890// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
119891// is an `AND` expression. However, you can include `AND` and `OR`
119892// expressions explicitly. For example: ``` (cpuPlatform = "Intel
119893// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
119894// (scheduling.automaticRestart = true) ```
119895func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
119896	c.urlParams_.Set("filter", filter)
119897	return c
119898}
119899
119900// MaxResults sets the optional parameter "maxResults": The maximum
119901// number of results per page that should be returned. If the number of
119902// available results is larger than `maxResults`, Compute Engine returns
119903// a `nextPageToken` that can be used to get the next page of results in
119904// subsequent list requests. Acceptable values are `0` to `500`,
119905// inclusive. (Default: `500`)
119906func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
119907	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119908	return c
119909}
119910
119911// OrderBy sets the optional parameter "orderBy": Sorts list results by
119912// a certain order. By default, results are returned in alphanumerical
119913// order based on the resource name.
119914//
119915// You can also sort results in descending order based on the creation
119916// timestamp using `orderBy="creationTimestamp desc". This sorts
119917// results based on the `creationTimestamp` field in reverse
119918// chronological order (newest result first). Use this to sort resources
119919// like operations so that the newest operation is returned
119920// first.
119921//
119922// Currently, only sorting by `name` or `creationTimestamp desc` is
119923// supported.
119924func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
119925	c.urlParams_.Set("orderBy", orderBy)
119926	return c
119927}
119928
119929// PageToken sets the optional parameter "pageToken": Specifies a page
119930// token to use. Set `pageToken` to the `nextPageToken` returned by a
119931// previous list request to get the next page of results.
119932func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
119933	c.urlParams_.Set("pageToken", pageToken)
119934	return c
119935}
119936
119937// Fields allows partial responses to be retrieved. See
119938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119939// for more information.
119940func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
119941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119942	return c
119943}
119944
119945// IfNoneMatch sets the optional parameter which makes the operation
119946// fail if the object's ETag matches the given value. This is useful for
119947// getting updates only after the object has changed since the last
119948// request. Use googleapi.IsNotModified to check whether the response
119949// error from Do is the result of In-None-Match.
119950func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
119951	c.ifNoneMatch_ = entityTag
119952	return c
119953}
119954
119955// Context sets the context to be used in this call's Do method. Any
119956// pending HTTP request will be aborted if the provided context is
119957// canceled.
119958func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
119959	c.ctx_ = ctx
119960	return c
119961}
119962
119963// Header returns an http.Header that can be modified by the caller to
119964// add HTTP headers to the request.
119965func (c *RoutesListCall) Header() http.Header {
119966	if c.header_ == nil {
119967		c.header_ = make(http.Header)
119968	}
119969	return c.header_
119970}
119971
119972func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
119973	reqHeaders := make(http.Header)
119974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119975	for k, v := range c.header_ {
119976		reqHeaders[k] = v
119977	}
119978	reqHeaders.Set("User-Agent", c.s.userAgent())
119979	if c.ifNoneMatch_ != "" {
119980		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119981	}
119982	var body io.Reader = nil
119983	c.urlParams_.Set("alt", alt)
119984	c.urlParams_.Set("prettyPrint", "false")
119985	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
119986	urls += "?" + c.urlParams_.Encode()
119987	req, err := http.NewRequest("GET", urls, body)
119988	if err != nil {
119989		return nil, err
119990	}
119991	req.Header = reqHeaders
119992	googleapi.Expand(req.URL, map[string]string{
119993		"project": c.project,
119994	})
119995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119996}
119997
119998// Do executes the "compute.routes.list" call.
119999// Exactly one of *RouteList or error will be non-nil. Any non-2xx
120000// status code is an error. Response headers are in either
120001// *RouteList.ServerResponse.Header or (if a response was returned at
120002// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120003// to check whether the returned error was because
120004// http.StatusNotModified was returned.
120005func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
120006	gensupport.SetOptions(c.urlParams_, opts...)
120007	res, err := c.doRequest("json")
120008	if res != nil && res.StatusCode == http.StatusNotModified {
120009		if res.Body != nil {
120010			res.Body.Close()
120011		}
120012		return nil, &googleapi.Error{
120013			Code:   res.StatusCode,
120014			Header: res.Header,
120015		}
120016	}
120017	if err != nil {
120018		return nil, err
120019	}
120020	defer googleapi.CloseBody(res)
120021	if err := googleapi.CheckResponse(res); err != nil {
120022		return nil, err
120023	}
120024	ret := &RouteList{
120025		ServerResponse: googleapi.ServerResponse{
120026			Header:         res.Header,
120027			HTTPStatusCode: res.StatusCode,
120028		},
120029	}
120030	target := &ret
120031	if err := gensupport.DecodeResponse(target, res); err != nil {
120032		return nil, err
120033	}
120034	return ret, nil
120035	// {
120036	//   "description": "Retrieves the list of Route resources available to the specified project.",
120037	//   "httpMethod": "GET",
120038	//   "id": "compute.routes.list",
120039	//   "parameterOrder": [
120040	//     "project"
120041	//   ],
120042	//   "parameters": {
120043	//     "filter": {
120044	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
120045	//       "location": "query",
120046	//       "type": "string"
120047	//     },
120048	//     "maxResults": {
120049	//       "default": "500",
120050	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
120051	//       "format": "uint32",
120052	//       "location": "query",
120053	//       "minimum": "0",
120054	//       "type": "integer"
120055	//     },
120056	//     "orderBy": {
120057	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
120058	//       "location": "query",
120059	//       "type": "string"
120060	//     },
120061	//     "pageToken": {
120062	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120063	//       "location": "query",
120064	//       "type": "string"
120065	//     },
120066	//     "project": {
120067	//       "description": "Project ID for this request.",
120068	//       "location": "path",
120069	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120070	//       "required": true,
120071	//       "type": "string"
120072	//     }
120073	//   },
120074	//   "path": "{project}/global/routes",
120075	//   "response": {
120076	//     "$ref": "RouteList"
120077	//   },
120078	//   "scopes": [
120079	//     "https://www.googleapis.com/auth/cloud-platform",
120080	//     "https://www.googleapis.com/auth/compute",
120081	//     "https://www.googleapis.com/auth/compute.readonly"
120082	//   ]
120083	// }
120084
120085}
120086
120087// Pages invokes f for each page of results.
120088// A non-nil error returned from f will halt the iteration.
120089// The provided context supersedes any context provided to the Context method.
120090func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
120091	c.ctx_ = ctx
120092	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120093	for {
120094		x, err := c.Do()
120095		if err != nil {
120096			return err
120097		}
120098		if err := f(x); err != nil {
120099			return err
120100		}
120101		if x.NextPageToken == "" {
120102			return nil
120103		}
120104		c.PageToken(x.NextPageToken)
120105	}
120106}
120107
120108// method id "compute.securityPolicies.addRule":
120109
120110type SecurityPoliciesAddRuleCall struct {
120111	s                  *Service
120112	project            string
120113	securityPolicy     string
120114	securitypolicyrule *SecurityPolicyRule
120115	urlParams_         gensupport.URLParams
120116	ctx_               context.Context
120117	header_            http.Header
120118}
120119
120120// AddRule: Inserts a rule into a security policy.
120121func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
120122	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120123	c.project = project
120124	c.securityPolicy = securityPolicy
120125	c.securitypolicyrule = securitypolicyrule
120126	return c
120127}
120128
120129// Fields allows partial responses to be retrieved. See
120130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120131// for more information.
120132func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
120133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120134	return c
120135}
120136
120137// Context sets the context to be used in this call's Do method. Any
120138// pending HTTP request will be aborted if the provided context is
120139// canceled.
120140func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
120141	c.ctx_ = ctx
120142	return c
120143}
120144
120145// Header returns an http.Header that can be modified by the caller to
120146// add HTTP headers to the request.
120147func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
120148	if c.header_ == nil {
120149		c.header_ = make(http.Header)
120150	}
120151	return c.header_
120152}
120153
120154func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
120155	reqHeaders := make(http.Header)
120156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120157	for k, v := range c.header_ {
120158		reqHeaders[k] = v
120159	}
120160	reqHeaders.Set("User-Agent", c.s.userAgent())
120161	var body io.Reader = nil
120162	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
120163	if err != nil {
120164		return nil, err
120165	}
120166	reqHeaders.Set("Content-Type", "application/json")
120167	c.urlParams_.Set("alt", alt)
120168	c.urlParams_.Set("prettyPrint", "false")
120169	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule")
120170	urls += "?" + c.urlParams_.Encode()
120171	req, err := http.NewRequest("POST", urls, body)
120172	if err != nil {
120173		return nil, err
120174	}
120175	req.Header = reqHeaders
120176	googleapi.Expand(req.URL, map[string]string{
120177		"project":        c.project,
120178		"securityPolicy": c.securityPolicy,
120179	})
120180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120181}
120182
120183// Do executes the "compute.securityPolicies.addRule" call.
120184// Exactly one of *Operation or error will be non-nil. Any non-2xx
120185// status code is an error. Response headers are in either
120186// *Operation.ServerResponse.Header or (if a response was returned at
120187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120188// to check whether the returned error was because
120189// http.StatusNotModified was returned.
120190func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120191	gensupport.SetOptions(c.urlParams_, opts...)
120192	res, err := c.doRequest("json")
120193	if res != nil && res.StatusCode == http.StatusNotModified {
120194		if res.Body != nil {
120195			res.Body.Close()
120196		}
120197		return nil, &googleapi.Error{
120198			Code:   res.StatusCode,
120199			Header: res.Header,
120200		}
120201	}
120202	if err != nil {
120203		return nil, err
120204	}
120205	defer googleapi.CloseBody(res)
120206	if err := googleapi.CheckResponse(res); err != nil {
120207		return nil, err
120208	}
120209	ret := &Operation{
120210		ServerResponse: googleapi.ServerResponse{
120211			Header:         res.Header,
120212			HTTPStatusCode: res.StatusCode,
120213		},
120214	}
120215	target := &ret
120216	if err := gensupport.DecodeResponse(target, res); err != nil {
120217		return nil, err
120218	}
120219	return ret, nil
120220	// {
120221	//   "description": "Inserts a rule into a security policy.",
120222	//   "httpMethod": "POST",
120223	//   "id": "compute.securityPolicies.addRule",
120224	//   "parameterOrder": [
120225	//     "project",
120226	//     "securityPolicy"
120227	//   ],
120228	//   "parameters": {
120229	//     "project": {
120230	//       "description": "Project ID for this request.",
120231	//       "location": "path",
120232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120233	//       "required": true,
120234	//       "type": "string"
120235	//     },
120236	//     "securityPolicy": {
120237	//       "description": "Name of the security policy to update.",
120238	//       "location": "path",
120239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120240	//       "required": true,
120241	//       "type": "string"
120242	//     }
120243	//   },
120244	//   "path": "{project}/global/securityPolicies/{securityPolicy}/addRule",
120245	//   "request": {
120246	//     "$ref": "SecurityPolicyRule"
120247	//   },
120248	//   "response": {
120249	//     "$ref": "Operation"
120250	//   },
120251	//   "scopes": [
120252	//     "https://www.googleapis.com/auth/cloud-platform",
120253	//     "https://www.googleapis.com/auth/compute"
120254	//   ]
120255	// }
120256
120257}
120258
120259// method id "compute.securityPolicies.delete":
120260
120261type SecurityPoliciesDeleteCall struct {
120262	s              *Service
120263	project        string
120264	securityPolicy string
120265	urlParams_     gensupport.URLParams
120266	ctx_           context.Context
120267	header_        http.Header
120268}
120269
120270// Delete: Deletes the specified policy.
120271func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
120272	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120273	c.project = project
120274	c.securityPolicy = securityPolicy
120275	return c
120276}
120277
120278// RequestId sets the optional parameter "requestId": An optional
120279// request ID to identify requests. Specify a unique request ID so that
120280// if you must retry your request, the server will know to ignore the
120281// request if it has already been completed.
120282//
120283// For example, consider a situation where you make an initial request
120284// and the request times out. If you make the request again with the
120285// same request ID, the server can check if original operation with the
120286// same request ID was received, and if so, will ignore the second
120287// request. This prevents clients from accidentally creating duplicate
120288// commitments.
120289//
120290// The request ID must be a valid UUID with the exception that zero UUID
120291// is not supported (00000000-0000-0000-0000-000000000000).
120292func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
120293	c.urlParams_.Set("requestId", requestId)
120294	return c
120295}
120296
120297// Fields allows partial responses to be retrieved. See
120298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120299// for more information.
120300func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
120301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120302	return c
120303}
120304
120305// Context sets the context to be used in this call's Do method. Any
120306// pending HTTP request will be aborted if the provided context is
120307// canceled.
120308func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
120309	c.ctx_ = ctx
120310	return c
120311}
120312
120313// Header returns an http.Header that can be modified by the caller to
120314// add HTTP headers to the request.
120315func (c *SecurityPoliciesDeleteCall) Header() http.Header {
120316	if c.header_ == nil {
120317		c.header_ = make(http.Header)
120318	}
120319	return c.header_
120320}
120321
120322func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
120323	reqHeaders := make(http.Header)
120324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120325	for k, v := range c.header_ {
120326		reqHeaders[k] = v
120327	}
120328	reqHeaders.Set("User-Agent", c.s.userAgent())
120329	var body io.Reader = nil
120330	c.urlParams_.Set("alt", alt)
120331	c.urlParams_.Set("prettyPrint", "false")
120332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
120333	urls += "?" + c.urlParams_.Encode()
120334	req, err := http.NewRequest("DELETE", urls, body)
120335	if err != nil {
120336		return nil, err
120337	}
120338	req.Header = reqHeaders
120339	googleapi.Expand(req.URL, map[string]string{
120340		"project":        c.project,
120341		"securityPolicy": c.securityPolicy,
120342	})
120343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120344}
120345
120346// Do executes the "compute.securityPolicies.delete" call.
120347// Exactly one of *Operation or error will be non-nil. Any non-2xx
120348// status code is an error. Response headers are in either
120349// *Operation.ServerResponse.Header or (if a response was returned at
120350// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120351// to check whether the returned error was because
120352// http.StatusNotModified was returned.
120353func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120354	gensupport.SetOptions(c.urlParams_, opts...)
120355	res, err := c.doRequest("json")
120356	if res != nil && res.StatusCode == http.StatusNotModified {
120357		if res.Body != nil {
120358			res.Body.Close()
120359		}
120360		return nil, &googleapi.Error{
120361			Code:   res.StatusCode,
120362			Header: res.Header,
120363		}
120364	}
120365	if err != nil {
120366		return nil, err
120367	}
120368	defer googleapi.CloseBody(res)
120369	if err := googleapi.CheckResponse(res); err != nil {
120370		return nil, err
120371	}
120372	ret := &Operation{
120373		ServerResponse: googleapi.ServerResponse{
120374			Header:         res.Header,
120375			HTTPStatusCode: res.StatusCode,
120376		},
120377	}
120378	target := &ret
120379	if err := gensupport.DecodeResponse(target, res); err != nil {
120380		return nil, err
120381	}
120382	return ret, nil
120383	// {
120384	//   "description": "Deletes the specified policy.",
120385	//   "httpMethod": "DELETE",
120386	//   "id": "compute.securityPolicies.delete",
120387	//   "parameterOrder": [
120388	//     "project",
120389	//     "securityPolicy"
120390	//   ],
120391	//   "parameters": {
120392	//     "project": {
120393	//       "description": "Project ID for this request.",
120394	//       "location": "path",
120395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120396	//       "required": true,
120397	//       "type": "string"
120398	//     },
120399	//     "requestId": {
120400	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120401	//       "location": "query",
120402	//       "type": "string"
120403	//     },
120404	//     "securityPolicy": {
120405	//       "description": "Name of the security policy to delete.",
120406	//       "location": "path",
120407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120408	//       "required": true,
120409	//       "type": "string"
120410	//     }
120411	//   },
120412	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
120413	//   "response": {
120414	//     "$ref": "Operation"
120415	//   },
120416	//   "scopes": [
120417	//     "https://www.googleapis.com/auth/cloud-platform",
120418	//     "https://www.googleapis.com/auth/compute"
120419	//   ]
120420	// }
120421
120422}
120423
120424// method id "compute.securityPolicies.get":
120425
120426type SecurityPoliciesGetCall struct {
120427	s              *Service
120428	project        string
120429	securityPolicy string
120430	urlParams_     gensupport.URLParams
120431	ifNoneMatch_   string
120432	ctx_           context.Context
120433	header_        http.Header
120434}
120435
120436// Get: List all of the ordered rules present in a single specified
120437// policy.
120438func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
120439	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120440	c.project = project
120441	c.securityPolicy = securityPolicy
120442	return c
120443}
120444
120445// Fields allows partial responses to be retrieved. See
120446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120447// for more information.
120448func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
120449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120450	return c
120451}
120452
120453// IfNoneMatch sets the optional parameter which makes the operation
120454// fail if the object's ETag matches the given value. This is useful for
120455// getting updates only after the object has changed since the last
120456// request. Use googleapi.IsNotModified to check whether the response
120457// error from Do is the result of In-None-Match.
120458func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
120459	c.ifNoneMatch_ = entityTag
120460	return c
120461}
120462
120463// Context sets the context to be used in this call's Do method. Any
120464// pending HTTP request will be aborted if the provided context is
120465// canceled.
120466func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
120467	c.ctx_ = ctx
120468	return c
120469}
120470
120471// Header returns an http.Header that can be modified by the caller to
120472// add HTTP headers to the request.
120473func (c *SecurityPoliciesGetCall) Header() http.Header {
120474	if c.header_ == nil {
120475		c.header_ = make(http.Header)
120476	}
120477	return c.header_
120478}
120479
120480func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
120481	reqHeaders := make(http.Header)
120482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120483	for k, v := range c.header_ {
120484		reqHeaders[k] = v
120485	}
120486	reqHeaders.Set("User-Agent", c.s.userAgent())
120487	if c.ifNoneMatch_ != "" {
120488		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120489	}
120490	var body io.Reader = nil
120491	c.urlParams_.Set("alt", alt)
120492	c.urlParams_.Set("prettyPrint", "false")
120493	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
120494	urls += "?" + c.urlParams_.Encode()
120495	req, err := http.NewRequest("GET", urls, body)
120496	if err != nil {
120497		return nil, err
120498	}
120499	req.Header = reqHeaders
120500	googleapi.Expand(req.URL, map[string]string{
120501		"project":        c.project,
120502		"securityPolicy": c.securityPolicy,
120503	})
120504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120505}
120506
120507// Do executes the "compute.securityPolicies.get" call.
120508// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
120509// status code is an error. Response headers are in either
120510// *SecurityPolicy.ServerResponse.Header or (if a response was returned
120511// at all) in error.(*googleapi.Error).Header. Use
120512// googleapi.IsNotModified to check whether the returned error was
120513// because http.StatusNotModified was returned.
120514func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
120515	gensupport.SetOptions(c.urlParams_, opts...)
120516	res, err := c.doRequest("json")
120517	if res != nil && res.StatusCode == http.StatusNotModified {
120518		if res.Body != nil {
120519			res.Body.Close()
120520		}
120521		return nil, &googleapi.Error{
120522			Code:   res.StatusCode,
120523			Header: res.Header,
120524		}
120525	}
120526	if err != nil {
120527		return nil, err
120528	}
120529	defer googleapi.CloseBody(res)
120530	if err := googleapi.CheckResponse(res); err != nil {
120531		return nil, err
120532	}
120533	ret := &SecurityPolicy{
120534		ServerResponse: googleapi.ServerResponse{
120535			Header:         res.Header,
120536			HTTPStatusCode: res.StatusCode,
120537		},
120538	}
120539	target := &ret
120540	if err := gensupport.DecodeResponse(target, res); err != nil {
120541		return nil, err
120542	}
120543	return ret, nil
120544	// {
120545	//   "description": "List all of the ordered rules present in a single specified policy.",
120546	//   "httpMethod": "GET",
120547	//   "id": "compute.securityPolicies.get",
120548	//   "parameterOrder": [
120549	//     "project",
120550	//     "securityPolicy"
120551	//   ],
120552	//   "parameters": {
120553	//     "project": {
120554	//       "description": "Project ID for this request.",
120555	//       "location": "path",
120556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120557	//       "required": true,
120558	//       "type": "string"
120559	//     },
120560	//     "securityPolicy": {
120561	//       "description": "Name of the security policy to get.",
120562	//       "location": "path",
120563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120564	//       "required": true,
120565	//       "type": "string"
120566	//     }
120567	//   },
120568	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
120569	//   "response": {
120570	//     "$ref": "SecurityPolicy"
120571	//   },
120572	//   "scopes": [
120573	//     "https://www.googleapis.com/auth/cloud-platform",
120574	//     "https://www.googleapis.com/auth/compute",
120575	//     "https://www.googleapis.com/auth/compute.readonly"
120576	//   ]
120577	// }
120578
120579}
120580
120581// method id "compute.securityPolicies.getRule":
120582
120583type SecurityPoliciesGetRuleCall struct {
120584	s              *Service
120585	project        string
120586	securityPolicy string
120587	urlParams_     gensupport.URLParams
120588	ifNoneMatch_   string
120589	ctx_           context.Context
120590	header_        http.Header
120591}
120592
120593// GetRule: Gets a rule at the specified priority.
120594func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
120595	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120596	c.project = project
120597	c.securityPolicy = securityPolicy
120598	return c
120599}
120600
120601// Priority sets the optional parameter "priority": The priority of the
120602// rule to get from the security policy.
120603func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
120604	c.urlParams_.Set("priority", fmt.Sprint(priority))
120605	return c
120606}
120607
120608// Fields allows partial responses to be retrieved. See
120609// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120610// for more information.
120611func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
120612	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120613	return c
120614}
120615
120616// IfNoneMatch sets the optional parameter which makes the operation
120617// fail if the object's ETag matches the given value. This is useful for
120618// getting updates only after the object has changed since the last
120619// request. Use googleapi.IsNotModified to check whether the response
120620// error from Do is the result of In-None-Match.
120621func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
120622	c.ifNoneMatch_ = entityTag
120623	return c
120624}
120625
120626// Context sets the context to be used in this call's Do method. Any
120627// pending HTTP request will be aborted if the provided context is
120628// canceled.
120629func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
120630	c.ctx_ = ctx
120631	return c
120632}
120633
120634// Header returns an http.Header that can be modified by the caller to
120635// add HTTP headers to the request.
120636func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
120637	if c.header_ == nil {
120638		c.header_ = make(http.Header)
120639	}
120640	return c.header_
120641}
120642
120643func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
120644	reqHeaders := make(http.Header)
120645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120646	for k, v := range c.header_ {
120647		reqHeaders[k] = v
120648	}
120649	reqHeaders.Set("User-Agent", c.s.userAgent())
120650	if c.ifNoneMatch_ != "" {
120651		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120652	}
120653	var body io.Reader = nil
120654	c.urlParams_.Set("alt", alt)
120655	c.urlParams_.Set("prettyPrint", "false")
120656	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule")
120657	urls += "?" + c.urlParams_.Encode()
120658	req, err := http.NewRequest("GET", urls, body)
120659	if err != nil {
120660		return nil, err
120661	}
120662	req.Header = reqHeaders
120663	googleapi.Expand(req.URL, map[string]string{
120664		"project":        c.project,
120665		"securityPolicy": c.securityPolicy,
120666	})
120667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120668}
120669
120670// Do executes the "compute.securityPolicies.getRule" call.
120671// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
120672// non-2xx status code is an error. Response headers are in either
120673// *SecurityPolicyRule.ServerResponse.Header or (if a response was
120674// returned at all) in error.(*googleapi.Error).Header. Use
120675// googleapi.IsNotModified to check whether the returned error was
120676// because http.StatusNotModified was returned.
120677func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
120678	gensupport.SetOptions(c.urlParams_, opts...)
120679	res, err := c.doRequest("json")
120680	if res != nil && res.StatusCode == http.StatusNotModified {
120681		if res.Body != nil {
120682			res.Body.Close()
120683		}
120684		return nil, &googleapi.Error{
120685			Code:   res.StatusCode,
120686			Header: res.Header,
120687		}
120688	}
120689	if err != nil {
120690		return nil, err
120691	}
120692	defer googleapi.CloseBody(res)
120693	if err := googleapi.CheckResponse(res); err != nil {
120694		return nil, err
120695	}
120696	ret := &SecurityPolicyRule{
120697		ServerResponse: googleapi.ServerResponse{
120698			Header:         res.Header,
120699			HTTPStatusCode: res.StatusCode,
120700		},
120701	}
120702	target := &ret
120703	if err := gensupport.DecodeResponse(target, res); err != nil {
120704		return nil, err
120705	}
120706	return ret, nil
120707	// {
120708	//   "description": "Gets a rule at the specified priority.",
120709	//   "httpMethod": "GET",
120710	//   "id": "compute.securityPolicies.getRule",
120711	//   "parameterOrder": [
120712	//     "project",
120713	//     "securityPolicy"
120714	//   ],
120715	//   "parameters": {
120716	//     "priority": {
120717	//       "description": "The priority of the rule to get from the security policy.",
120718	//       "format": "int32",
120719	//       "location": "query",
120720	//       "type": "integer"
120721	//     },
120722	//     "project": {
120723	//       "description": "Project ID for this request.",
120724	//       "location": "path",
120725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120726	//       "required": true,
120727	//       "type": "string"
120728	//     },
120729	//     "securityPolicy": {
120730	//       "description": "Name of the security policy to which the queried rule belongs.",
120731	//       "location": "path",
120732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120733	//       "required": true,
120734	//       "type": "string"
120735	//     }
120736	//   },
120737	//   "path": "{project}/global/securityPolicies/{securityPolicy}/getRule",
120738	//   "response": {
120739	//     "$ref": "SecurityPolicyRule"
120740	//   },
120741	//   "scopes": [
120742	//     "https://www.googleapis.com/auth/cloud-platform",
120743	//     "https://www.googleapis.com/auth/compute",
120744	//     "https://www.googleapis.com/auth/compute.readonly"
120745	//   ]
120746	// }
120747
120748}
120749
120750// method id "compute.securityPolicies.insert":
120751
120752type SecurityPoliciesInsertCall struct {
120753	s              *Service
120754	project        string
120755	securitypolicy *SecurityPolicy
120756	urlParams_     gensupport.URLParams
120757	ctx_           context.Context
120758	header_        http.Header
120759}
120760
120761// Insert: Creates a new policy in the specified project using the data
120762// included in the request.
120763func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
120764	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120765	c.project = project
120766	c.securitypolicy = securitypolicy
120767	return c
120768}
120769
120770// RequestId sets the optional parameter "requestId": An optional
120771// request ID to identify requests. Specify a unique request ID so that
120772// if you must retry your request, the server will know to ignore the
120773// request if it has already been completed.
120774//
120775// For example, consider a situation where you make an initial request
120776// and the request times out. If you make the request again with the
120777// same request ID, the server can check if original operation with the
120778// same request ID was received, and if so, will ignore the second
120779// request. This prevents clients from accidentally creating duplicate
120780// commitments.
120781//
120782// The request ID must be a valid UUID with the exception that zero UUID
120783// is not supported (00000000-0000-0000-0000-000000000000).
120784func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
120785	c.urlParams_.Set("requestId", requestId)
120786	return c
120787}
120788
120789// Fields allows partial responses to be retrieved. See
120790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120791// for more information.
120792func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
120793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120794	return c
120795}
120796
120797// Context sets the context to be used in this call's Do method. Any
120798// pending HTTP request will be aborted if the provided context is
120799// canceled.
120800func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
120801	c.ctx_ = ctx
120802	return c
120803}
120804
120805// Header returns an http.Header that can be modified by the caller to
120806// add HTTP headers to the request.
120807func (c *SecurityPoliciesInsertCall) Header() http.Header {
120808	if c.header_ == nil {
120809		c.header_ = make(http.Header)
120810	}
120811	return c.header_
120812}
120813
120814func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
120815	reqHeaders := make(http.Header)
120816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120817	for k, v := range c.header_ {
120818		reqHeaders[k] = v
120819	}
120820	reqHeaders.Set("User-Agent", c.s.userAgent())
120821	var body io.Reader = nil
120822	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
120823	if err != nil {
120824		return nil, err
120825	}
120826	reqHeaders.Set("Content-Type", "application/json")
120827	c.urlParams_.Set("alt", alt)
120828	c.urlParams_.Set("prettyPrint", "false")
120829	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
120830	urls += "?" + c.urlParams_.Encode()
120831	req, err := http.NewRequest("POST", urls, body)
120832	if err != nil {
120833		return nil, err
120834	}
120835	req.Header = reqHeaders
120836	googleapi.Expand(req.URL, map[string]string{
120837		"project": c.project,
120838	})
120839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120840}
120841
120842// Do executes the "compute.securityPolicies.insert" call.
120843// Exactly one of *Operation or error will be non-nil. Any non-2xx
120844// status code is an error. Response headers are in either
120845// *Operation.ServerResponse.Header or (if a response was returned at
120846// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120847// to check whether the returned error was because
120848// http.StatusNotModified was returned.
120849func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120850	gensupport.SetOptions(c.urlParams_, opts...)
120851	res, err := c.doRequest("json")
120852	if res != nil && res.StatusCode == http.StatusNotModified {
120853		if res.Body != nil {
120854			res.Body.Close()
120855		}
120856		return nil, &googleapi.Error{
120857			Code:   res.StatusCode,
120858			Header: res.Header,
120859		}
120860	}
120861	if err != nil {
120862		return nil, err
120863	}
120864	defer googleapi.CloseBody(res)
120865	if err := googleapi.CheckResponse(res); err != nil {
120866		return nil, err
120867	}
120868	ret := &Operation{
120869		ServerResponse: googleapi.ServerResponse{
120870			Header:         res.Header,
120871			HTTPStatusCode: res.StatusCode,
120872		},
120873	}
120874	target := &ret
120875	if err := gensupport.DecodeResponse(target, res); err != nil {
120876		return nil, err
120877	}
120878	return ret, nil
120879	// {
120880	//   "description": "Creates a new policy in the specified project using the data included in the request.",
120881	//   "httpMethod": "POST",
120882	//   "id": "compute.securityPolicies.insert",
120883	//   "parameterOrder": [
120884	//     "project"
120885	//   ],
120886	//   "parameters": {
120887	//     "project": {
120888	//       "description": "Project ID for this request.",
120889	//       "location": "path",
120890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120891	//       "required": true,
120892	//       "type": "string"
120893	//     },
120894	//     "requestId": {
120895	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120896	//       "location": "query",
120897	//       "type": "string"
120898	//     }
120899	//   },
120900	//   "path": "{project}/global/securityPolicies",
120901	//   "request": {
120902	//     "$ref": "SecurityPolicy"
120903	//   },
120904	//   "response": {
120905	//     "$ref": "Operation"
120906	//   },
120907	//   "scopes": [
120908	//     "https://www.googleapis.com/auth/cloud-platform",
120909	//     "https://www.googleapis.com/auth/compute"
120910	//   ]
120911	// }
120912
120913}
120914
120915// method id "compute.securityPolicies.list":
120916
120917type SecurityPoliciesListCall struct {
120918	s            *Service
120919	project      string
120920	urlParams_   gensupport.URLParams
120921	ifNoneMatch_ string
120922	ctx_         context.Context
120923	header_      http.Header
120924}
120925
120926// List: List all the policies that have been configured for the
120927// specified project.
120928func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
120929	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120930	c.project = project
120931	return c
120932}
120933
120934// Filter sets the optional parameter "filter": A filter expression that
120935// filters resources listed in the response. The expression must specify
120936// the field name, a comparison operator, and the value that you want to
120937// use for filtering. The value must be a string, a number, or a
120938// boolean. The comparison operator must be either `=`, `!=`, `>`, or
120939// `<`.
120940//
120941// For example, if you are filtering Compute Engine instances, you can
120942// exclude instances named `example-instance` by specifying `name !=
120943// example-instance`.
120944//
120945// You can also filter nested fields. For example, you could specify
120946// `scheduling.automaticRestart = false` to include instances only if
120947// they are not scheduled for automatic restarts. You can use filtering
120948// on nested fields to filter based on resource labels.
120949//
120950// To filter on multiple expressions, provide each separate expression
120951// within parentheses. For example: ``` (scheduling.automaticRestart =
120952// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
120953// is an `AND` expression. However, you can include `AND` and `OR`
120954// expressions explicitly. For example: ``` (cpuPlatform = "Intel
120955// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
120956// (scheduling.automaticRestart = true) ```
120957func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
120958	c.urlParams_.Set("filter", filter)
120959	return c
120960}
120961
120962// MaxResults sets the optional parameter "maxResults": The maximum
120963// number of results per page that should be returned. If the number of
120964// available results is larger than `maxResults`, Compute Engine returns
120965// a `nextPageToken` that can be used to get the next page of results in
120966// subsequent list requests. Acceptable values are `0` to `500`,
120967// inclusive. (Default: `500`)
120968func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
120969	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120970	return c
120971}
120972
120973// OrderBy sets the optional parameter "orderBy": Sorts list results by
120974// a certain order. By default, results are returned in alphanumerical
120975// order based on the resource name.
120976//
120977// You can also sort results in descending order based on the creation
120978// timestamp using `orderBy="creationTimestamp desc". This sorts
120979// results based on the `creationTimestamp` field in reverse
120980// chronological order (newest result first). Use this to sort resources
120981// like operations so that the newest operation is returned
120982// first.
120983//
120984// Currently, only sorting by `name` or `creationTimestamp desc` is
120985// supported.
120986func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
120987	c.urlParams_.Set("orderBy", orderBy)
120988	return c
120989}
120990
120991// PageToken sets the optional parameter "pageToken": Specifies a page
120992// token to use. Set `pageToken` to the `nextPageToken` returned by a
120993// previous list request to get the next page of results.
120994func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
120995	c.urlParams_.Set("pageToken", pageToken)
120996	return c
120997}
120998
120999// Fields allows partial responses to be retrieved. See
121000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121001// for more information.
121002func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
121003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121004	return c
121005}
121006
121007// IfNoneMatch sets the optional parameter which makes the operation
121008// fail if the object's ETag matches the given value. This is useful for
121009// getting updates only after the object has changed since the last
121010// request. Use googleapi.IsNotModified to check whether the response
121011// error from Do is the result of In-None-Match.
121012func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
121013	c.ifNoneMatch_ = entityTag
121014	return c
121015}
121016
121017// Context sets the context to be used in this call's Do method. Any
121018// pending HTTP request will be aborted if the provided context is
121019// canceled.
121020func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
121021	c.ctx_ = ctx
121022	return c
121023}
121024
121025// Header returns an http.Header that can be modified by the caller to
121026// add HTTP headers to the request.
121027func (c *SecurityPoliciesListCall) Header() http.Header {
121028	if c.header_ == nil {
121029		c.header_ = make(http.Header)
121030	}
121031	return c.header_
121032}
121033
121034func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
121035	reqHeaders := make(http.Header)
121036	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121037	for k, v := range c.header_ {
121038		reqHeaders[k] = v
121039	}
121040	reqHeaders.Set("User-Agent", c.s.userAgent())
121041	if c.ifNoneMatch_ != "" {
121042		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121043	}
121044	var body io.Reader = nil
121045	c.urlParams_.Set("alt", alt)
121046	c.urlParams_.Set("prettyPrint", "false")
121047	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
121048	urls += "?" + c.urlParams_.Encode()
121049	req, err := http.NewRequest("GET", urls, body)
121050	if err != nil {
121051		return nil, err
121052	}
121053	req.Header = reqHeaders
121054	googleapi.Expand(req.URL, map[string]string{
121055		"project": c.project,
121056	})
121057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121058}
121059
121060// Do executes the "compute.securityPolicies.list" call.
121061// Exactly one of *SecurityPolicyList or error will be non-nil. Any
121062// non-2xx status code is an error. Response headers are in either
121063// *SecurityPolicyList.ServerResponse.Header or (if a response was
121064// returned at all) in error.(*googleapi.Error).Header. Use
121065// googleapi.IsNotModified to check whether the returned error was
121066// because http.StatusNotModified was returned.
121067func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
121068	gensupport.SetOptions(c.urlParams_, opts...)
121069	res, err := c.doRequest("json")
121070	if res != nil && res.StatusCode == http.StatusNotModified {
121071		if res.Body != nil {
121072			res.Body.Close()
121073		}
121074		return nil, &googleapi.Error{
121075			Code:   res.StatusCode,
121076			Header: res.Header,
121077		}
121078	}
121079	if err != nil {
121080		return nil, err
121081	}
121082	defer googleapi.CloseBody(res)
121083	if err := googleapi.CheckResponse(res); err != nil {
121084		return nil, err
121085	}
121086	ret := &SecurityPolicyList{
121087		ServerResponse: googleapi.ServerResponse{
121088			Header:         res.Header,
121089			HTTPStatusCode: res.StatusCode,
121090		},
121091	}
121092	target := &ret
121093	if err := gensupport.DecodeResponse(target, res); err != nil {
121094		return nil, err
121095	}
121096	return ret, nil
121097	// {
121098	//   "description": "List all the policies that have been configured for the specified project.",
121099	//   "httpMethod": "GET",
121100	//   "id": "compute.securityPolicies.list",
121101	//   "parameterOrder": [
121102	//     "project"
121103	//   ],
121104	//   "parameters": {
121105	//     "filter": {
121106	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
121107	//       "location": "query",
121108	//       "type": "string"
121109	//     },
121110	//     "maxResults": {
121111	//       "default": "500",
121112	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
121113	//       "format": "uint32",
121114	//       "location": "query",
121115	//       "minimum": "0",
121116	//       "type": "integer"
121117	//     },
121118	//     "orderBy": {
121119	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
121120	//       "location": "query",
121121	//       "type": "string"
121122	//     },
121123	//     "pageToken": {
121124	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
121125	//       "location": "query",
121126	//       "type": "string"
121127	//     },
121128	//     "project": {
121129	//       "description": "Project ID for this request.",
121130	//       "location": "path",
121131	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121132	//       "required": true,
121133	//       "type": "string"
121134	//     }
121135	//   },
121136	//   "path": "{project}/global/securityPolicies",
121137	//   "response": {
121138	//     "$ref": "SecurityPolicyList"
121139	//   },
121140	//   "scopes": [
121141	//     "https://www.googleapis.com/auth/cloud-platform",
121142	//     "https://www.googleapis.com/auth/compute",
121143	//     "https://www.googleapis.com/auth/compute.readonly"
121144	//   ]
121145	// }
121146
121147}
121148
121149// Pages invokes f for each page of results.
121150// A non-nil error returned from f will halt the iteration.
121151// The provided context supersedes any context provided to the Context method.
121152func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
121153	c.ctx_ = ctx
121154	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121155	for {
121156		x, err := c.Do()
121157		if err != nil {
121158			return err
121159		}
121160		if err := f(x); err != nil {
121161			return err
121162		}
121163		if x.NextPageToken == "" {
121164			return nil
121165		}
121166		c.PageToken(x.NextPageToken)
121167	}
121168}
121169
121170// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
121171
121172type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
121173	s            *Service
121174	project      string
121175	urlParams_   gensupport.URLParams
121176	ifNoneMatch_ string
121177	ctx_         context.Context
121178	header_      http.Header
121179}
121180
121181// ListPreconfiguredExpressionSets: Gets the current list of
121182// preconfigured Web Application Firewall (WAF) expressions.
121183func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121184	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121185	c.project = project
121186	return c
121187}
121188
121189// Filter sets the optional parameter "filter": A filter expression that
121190// filters resources listed in the response. The expression must specify
121191// the field name, a comparison operator, and the value that you want to
121192// use for filtering. The value must be a string, a number, or a
121193// boolean. The comparison operator must be either `=`, `!=`, `>`, or
121194// `<`.
121195//
121196// For example, if you are filtering Compute Engine instances, you can
121197// exclude instances named `example-instance` by specifying `name !=
121198// example-instance`.
121199//
121200// You can also filter nested fields. For example, you could specify
121201// `scheduling.automaticRestart = false` to include instances only if
121202// they are not scheduled for automatic restarts. You can use filtering
121203// on nested fields to filter based on resource labels.
121204//
121205// To filter on multiple expressions, provide each separate expression
121206// within parentheses. For example: ``` (scheduling.automaticRestart =
121207// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
121208// is an `AND` expression. However, you can include `AND` and `OR`
121209// expressions explicitly. For example: ``` (cpuPlatform = "Intel
121210// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
121211// (scheduling.automaticRestart = true) ```
121212func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121213	c.urlParams_.Set("filter", filter)
121214	return c
121215}
121216
121217// MaxResults sets the optional parameter "maxResults": The maximum
121218// number of results per page that should be returned. If the number of
121219// available results is larger than `maxResults`, Compute Engine returns
121220// a `nextPageToken` that can be used to get the next page of results in
121221// subsequent list requests. Acceptable values are `0` to `500`,
121222// inclusive. (Default: `500`)
121223func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121224	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121225	return c
121226}
121227
121228// OrderBy sets the optional parameter "orderBy": Sorts list results by
121229// a certain order. By default, results are returned in alphanumerical
121230// order based on the resource name.
121231//
121232// You can also sort results in descending order based on the creation
121233// timestamp using `orderBy="creationTimestamp desc". This sorts
121234// results based on the `creationTimestamp` field in reverse
121235// chronological order (newest result first). Use this to sort resources
121236// like operations so that the newest operation is returned
121237// first.
121238//
121239// Currently, only sorting by `name` or `creationTimestamp desc` is
121240// supported.
121241func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121242	c.urlParams_.Set("orderBy", orderBy)
121243	return c
121244}
121245
121246// PageToken sets the optional parameter "pageToken": Specifies a page
121247// token to use. Set `pageToken` to the `nextPageToken` returned by a
121248// previous list request to get the next page of results.
121249func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121250	c.urlParams_.Set("pageToken", pageToken)
121251	return c
121252}
121253
121254// Fields allows partial responses to be retrieved. See
121255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121256// for more information.
121257func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121259	return c
121260}
121261
121262// IfNoneMatch sets the optional parameter which makes the operation
121263// fail if the object's ETag matches the given value. This is useful for
121264// getting updates only after the object has changed since the last
121265// request. Use googleapi.IsNotModified to check whether the response
121266// error from Do is the result of In-None-Match.
121267func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121268	c.ifNoneMatch_ = entityTag
121269	return c
121270}
121271
121272// Context sets the context to be used in this call's Do method. Any
121273// pending HTTP request will be aborted if the provided context is
121274// canceled.
121275func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
121276	c.ctx_ = ctx
121277	return c
121278}
121279
121280// Header returns an http.Header that can be modified by the caller to
121281// add HTTP headers to the request.
121282func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
121283	if c.header_ == nil {
121284		c.header_ = make(http.Header)
121285	}
121286	return c.header_
121287}
121288
121289func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
121290	reqHeaders := make(http.Header)
121291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121292	for k, v := range c.header_ {
121293		reqHeaders[k] = v
121294	}
121295	reqHeaders.Set("User-Agent", c.s.userAgent())
121296	if c.ifNoneMatch_ != "" {
121297		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121298	}
121299	var body io.Reader = nil
121300	c.urlParams_.Set("alt", alt)
121301	c.urlParams_.Set("prettyPrint", "false")
121302	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/listPreconfiguredExpressionSets")
121303	urls += "?" + c.urlParams_.Encode()
121304	req, err := http.NewRequest("GET", urls, body)
121305	if err != nil {
121306		return nil, err
121307	}
121308	req.Header = reqHeaders
121309	googleapi.Expand(req.URL, map[string]string{
121310		"project": c.project,
121311	})
121312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121313}
121314
121315// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
121316// Exactly one of
121317// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
121318// will be non-nil. Any non-2xx status code is an error. Response
121319// headers are in either
121320// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
121321// e.Header or (if a response was returned at all) in
121322// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
121323// whether the returned error was because http.StatusNotModified was
121324// returned.
121325func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
121326	gensupport.SetOptions(c.urlParams_, opts...)
121327	res, err := c.doRequest("json")
121328	if res != nil && res.StatusCode == http.StatusNotModified {
121329		if res.Body != nil {
121330			res.Body.Close()
121331		}
121332		return nil, &googleapi.Error{
121333			Code:   res.StatusCode,
121334			Header: res.Header,
121335		}
121336	}
121337	if err != nil {
121338		return nil, err
121339	}
121340	defer googleapi.CloseBody(res)
121341	if err := googleapi.CheckResponse(res); err != nil {
121342		return nil, err
121343	}
121344	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
121345		ServerResponse: googleapi.ServerResponse{
121346			Header:         res.Header,
121347			HTTPStatusCode: res.StatusCode,
121348		},
121349	}
121350	target := &ret
121351	if err := gensupport.DecodeResponse(target, res); err != nil {
121352		return nil, err
121353	}
121354	return ret, nil
121355	// {
121356	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
121357	//   "httpMethod": "GET",
121358	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
121359	//   "parameterOrder": [
121360	//     "project"
121361	//   ],
121362	//   "parameters": {
121363	//     "filter": {
121364	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
121365	//       "location": "query",
121366	//       "type": "string"
121367	//     },
121368	//     "maxResults": {
121369	//       "default": "500",
121370	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
121371	//       "format": "uint32",
121372	//       "location": "query",
121373	//       "minimum": "0",
121374	//       "type": "integer"
121375	//     },
121376	//     "orderBy": {
121377	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
121378	//       "location": "query",
121379	//       "type": "string"
121380	//     },
121381	//     "pageToken": {
121382	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
121383	//       "location": "query",
121384	//       "type": "string"
121385	//     },
121386	//     "project": {
121387	//       "description": "Project ID for this request.",
121388	//       "location": "path",
121389	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121390	//       "required": true,
121391	//       "type": "string"
121392	//     }
121393	//   },
121394	//   "path": "{project}/global/securityPolicies/listPreconfiguredExpressionSets",
121395	//   "response": {
121396	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
121397	//   },
121398	//   "scopes": [
121399	//     "https://www.googleapis.com/auth/cloud-platform",
121400	//     "https://www.googleapis.com/auth/compute"
121401	//   ]
121402	// }
121403
121404}
121405
121406// method id "compute.securityPolicies.patch":
121407
121408type SecurityPoliciesPatchCall struct {
121409	s              *Service
121410	project        string
121411	securityPolicy string
121412	securitypolicy *SecurityPolicy
121413	urlParams_     gensupport.URLParams
121414	ctx_           context.Context
121415	header_        http.Header
121416}
121417
121418// Patch: Patches the specified policy with the data included in the
121419// request.
121420func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
121421	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121422	c.project = project
121423	c.securityPolicy = securityPolicy
121424	c.securitypolicy = securitypolicy
121425	return c
121426}
121427
121428// RequestId sets the optional parameter "requestId": An optional
121429// request ID to identify requests. Specify a unique request ID so that
121430// if you must retry your request, the server will know to ignore the
121431// request if it has already been completed.
121432//
121433// For example, consider a situation where you make an initial request
121434// and the request times out. If you make the request again with the
121435// same request ID, the server can check if original operation with the
121436// same request ID was received, and if so, will ignore the second
121437// request. This prevents clients from accidentally creating duplicate
121438// commitments.
121439//
121440// The request ID must be a valid UUID with the exception that zero UUID
121441// is not supported (00000000-0000-0000-0000-000000000000).
121442func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
121443	c.urlParams_.Set("requestId", requestId)
121444	return c
121445}
121446
121447// Fields allows partial responses to be retrieved. See
121448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121449// for more information.
121450func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
121451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121452	return c
121453}
121454
121455// Context sets the context to be used in this call's Do method. Any
121456// pending HTTP request will be aborted if the provided context is
121457// canceled.
121458func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
121459	c.ctx_ = ctx
121460	return c
121461}
121462
121463// Header returns an http.Header that can be modified by the caller to
121464// add HTTP headers to the request.
121465func (c *SecurityPoliciesPatchCall) Header() http.Header {
121466	if c.header_ == nil {
121467		c.header_ = make(http.Header)
121468	}
121469	return c.header_
121470}
121471
121472func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
121473	reqHeaders := make(http.Header)
121474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121475	for k, v := range c.header_ {
121476		reqHeaders[k] = v
121477	}
121478	reqHeaders.Set("User-Agent", c.s.userAgent())
121479	var body io.Reader = nil
121480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
121481	if err != nil {
121482		return nil, err
121483	}
121484	reqHeaders.Set("Content-Type", "application/json")
121485	c.urlParams_.Set("alt", alt)
121486	c.urlParams_.Set("prettyPrint", "false")
121487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
121488	urls += "?" + c.urlParams_.Encode()
121489	req, err := http.NewRequest("PATCH", urls, body)
121490	if err != nil {
121491		return nil, err
121492	}
121493	req.Header = reqHeaders
121494	googleapi.Expand(req.URL, map[string]string{
121495		"project":        c.project,
121496		"securityPolicy": c.securityPolicy,
121497	})
121498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121499}
121500
121501// Do executes the "compute.securityPolicies.patch" call.
121502// Exactly one of *Operation or error will be non-nil. Any non-2xx
121503// status code is an error. Response headers are in either
121504// *Operation.ServerResponse.Header or (if a response was returned at
121505// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121506// to check whether the returned error was because
121507// http.StatusNotModified was returned.
121508func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121509	gensupport.SetOptions(c.urlParams_, opts...)
121510	res, err := c.doRequest("json")
121511	if res != nil && res.StatusCode == http.StatusNotModified {
121512		if res.Body != nil {
121513			res.Body.Close()
121514		}
121515		return nil, &googleapi.Error{
121516			Code:   res.StatusCode,
121517			Header: res.Header,
121518		}
121519	}
121520	if err != nil {
121521		return nil, err
121522	}
121523	defer googleapi.CloseBody(res)
121524	if err := googleapi.CheckResponse(res); err != nil {
121525		return nil, err
121526	}
121527	ret := &Operation{
121528		ServerResponse: googleapi.ServerResponse{
121529			Header:         res.Header,
121530			HTTPStatusCode: res.StatusCode,
121531		},
121532	}
121533	target := &ret
121534	if err := gensupport.DecodeResponse(target, res); err != nil {
121535		return nil, err
121536	}
121537	return ret, nil
121538	// {
121539	//   "description": "Patches the specified policy with the data included in the request.",
121540	//   "httpMethod": "PATCH",
121541	//   "id": "compute.securityPolicies.patch",
121542	//   "parameterOrder": [
121543	//     "project",
121544	//     "securityPolicy"
121545	//   ],
121546	//   "parameters": {
121547	//     "project": {
121548	//       "description": "Project ID for this request.",
121549	//       "location": "path",
121550	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121551	//       "required": true,
121552	//       "type": "string"
121553	//     },
121554	//     "requestId": {
121555	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121556	//       "location": "query",
121557	//       "type": "string"
121558	//     },
121559	//     "securityPolicy": {
121560	//       "description": "Name of the security policy to update.",
121561	//       "location": "path",
121562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121563	//       "required": true,
121564	//       "type": "string"
121565	//     }
121566	//   },
121567	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
121568	//   "request": {
121569	//     "$ref": "SecurityPolicy"
121570	//   },
121571	//   "response": {
121572	//     "$ref": "Operation"
121573	//   },
121574	//   "scopes": [
121575	//     "https://www.googleapis.com/auth/cloud-platform",
121576	//     "https://www.googleapis.com/auth/compute"
121577	//   ]
121578	// }
121579
121580}
121581
121582// method id "compute.securityPolicies.patchRule":
121583
121584type SecurityPoliciesPatchRuleCall struct {
121585	s                  *Service
121586	project            string
121587	securityPolicy     string
121588	securitypolicyrule *SecurityPolicyRule
121589	urlParams_         gensupport.URLParams
121590	ctx_               context.Context
121591	header_            http.Header
121592}
121593
121594// PatchRule: Patches a rule at the specified priority.
121595func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
121596	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121597	c.project = project
121598	c.securityPolicy = securityPolicy
121599	c.securitypolicyrule = securitypolicyrule
121600	return c
121601}
121602
121603// Priority sets the optional parameter "priority": The priority of the
121604// rule to patch.
121605func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
121606	c.urlParams_.Set("priority", fmt.Sprint(priority))
121607	return c
121608}
121609
121610// Fields allows partial responses to be retrieved. See
121611// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121612// for more information.
121613func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
121614	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121615	return c
121616}
121617
121618// Context sets the context to be used in this call's Do method. Any
121619// pending HTTP request will be aborted if the provided context is
121620// canceled.
121621func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
121622	c.ctx_ = ctx
121623	return c
121624}
121625
121626// Header returns an http.Header that can be modified by the caller to
121627// add HTTP headers to the request.
121628func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
121629	if c.header_ == nil {
121630		c.header_ = make(http.Header)
121631	}
121632	return c.header_
121633}
121634
121635func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
121636	reqHeaders := make(http.Header)
121637	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121638	for k, v := range c.header_ {
121639		reqHeaders[k] = v
121640	}
121641	reqHeaders.Set("User-Agent", c.s.userAgent())
121642	var body io.Reader = nil
121643	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
121644	if err != nil {
121645		return nil, err
121646	}
121647	reqHeaders.Set("Content-Type", "application/json")
121648	c.urlParams_.Set("alt", alt)
121649	c.urlParams_.Set("prettyPrint", "false")
121650	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule")
121651	urls += "?" + c.urlParams_.Encode()
121652	req, err := http.NewRequest("POST", urls, body)
121653	if err != nil {
121654		return nil, err
121655	}
121656	req.Header = reqHeaders
121657	googleapi.Expand(req.URL, map[string]string{
121658		"project":        c.project,
121659		"securityPolicy": c.securityPolicy,
121660	})
121661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121662}
121663
121664// Do executes the "compute.securityPolicies.patchRule" call.
121665// Exactly one of *Operation or error will be non-nil. Any non-2xx
121666// status code is an error. Response headers are in either
121667// *Operation.ServerResponse.Header or (if a response was returned at
121668// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121669// to check whether the returned error was because
121670// http.StatusNotModified was returned.
121671func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121672	gensupport.SetOptions(c.urlParams_, opts...)
121673	res, err := c.doRequest("json")
121674	if res != nil && res.StatusCode == http.StatusNotModified {
121675		if res.Body != nil {
121676			res.Body.Close()
121677		}
121678		return nil, &googleapi.Error{
121679			Code:   res.StatusCode,
121680			Header: res.Header,
121681		}
121682	}
121683	if err != nil {
121684		return nil, err
121685	}
121686	defer googleapi.CloseBody(res)
121687	if err := googleapi.CheckResponse(res); err != nil {
121688		return nil, err
121689	}
121690	ret := &Operation{
121691		ServerResponse: googleapi.ServerResponse{
121692			Header:         res.Header,
121693			HTTPStatusCode: res.StatusCode,
121694		},
121695	}
121696	target := &ret
121697	if err := gensupport.DecodeResponse(target, res); err != nil {
121698		return nil, err
121699	}
121700	return ret, nil
121701	// {
121702	//   "description": "Patches a rule at the specified priority.",
121703	//   "httpMethod": "POST",
121704	//   "id": "compute.securityPolicies.patchRule",
121705	//   "parameterOrder": [
121706	//     "project",
121707	//     "securityPolicy"
121708	//   ],
121709	//   "parameters": {
121710	//     "priority": {
121711	//       "description": "The priority of the rule to patch.",
121712	//       "format": "int32",
121713	//       "location": "query",
121714	//       "type": "integer"
121715	//     },
121716	//     "project": {
121717	//       "description": "Project ID for this request.",
121718	//       "location": "path",
121719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121720	//       "required": true,
121721	//       "type": "string"
121722	//     },
121723	//     "securityPolicy": {
121724	//       "description": "Name of the security policy to update.",
121725	//       "location": "path",
121726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121727	//       "required": true,
121728	//       "type": "string"
121729	//     }
121730	//   },
121731	//   "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule",
121732	//   "request": {
121733	//     "$ref": "SecurityPolicyRule"
121734	//   },
121735	//   "response": {
121736	//     "$ref": "Operation"
121737	//   },
121738	//   "scopes": [
121739	//     "https://www.googleapis.com/auth/cloud-platform",
121740	//     "https://www.googleapis.com/auth/compute"
121741	//   ]
121742	// }
121743
121744}
121745
121746// method id "compute.securityPolicies.removeRule":
121747
121748type SecurityPoliciesRemoveRuleCall struct {
121749	s              *Service
121750	project        string
121751	securityPolicy string
121752	urlParams_     gensupport.URLParams
121753	ctx_           context.Context
121754	header_        http.Header
121755}
121756
121757// RemoveRule: Deletes a rule at the specified priority.
121758func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
121759	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121760	c.project = project
121761	c.securityPolicy = securityPolicy
121762	return c
121763}
121764
121765// Priority sets the optional parameter "priority": The priority of the
121766// rule to remove from the security policy.
121767func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
121768	c.urlParams_.Set("priority", fmt.Sprint(priority))
121769	return c
121770}
121771
121772// Fields allows partial responses to be retrieved. See
121773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121774// for more information.
121775func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
121776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121777	return c
121778}
121779
121780// Context sets the context to be used in this call's Do method. Any
121781// pending HTTP request will be aborted if the provided context is
121782// canceled.
121783func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
121784	c.ctx_ = ctx
121785	return c
121786}
121787
121788// Header returns an http.Header that can be modified by the caller to
121789// add HTTP headers to the request.
121790func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
121791	if c.header_ == nil {
121792		c.header_ = make(http.Header)
121793	}
121794	return c.header_
121795}
121796
121797func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
121798	reqHeaders := make(http.Header)
121799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121800	for k, v := range c.header_ {
121801		reqHeaders[k] = v
121802	}
121803	reqHeaders.Set("User-Agent", c.s.userAgent())
121804	var body io.Reader = nil
121805	c.urlParams_.Set("alt", alt)
121806	c.urlParams_.Set("prettyPrint", "false")
121807	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule")
121808	urls += "?" + c.urlParams_.Encode()
121809	req, err := http.NewRequest("POST", urls, body)
121810	if err != nil {
121811		return nil, err
121812	}
121813	req.Header = reqHeaders
121814	googleapi.Expand(req.URL, map[string]string{
121815		"project":        c.project,
121816		"securityPolicy": c.securityPolicy,
121817	})
121818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121819}
121820
121821// Do executes the "compute.securityPolicies.removeRule" call.
121822// Exactly one of *Operation or error will be non-nil. Any non-2xx
121823// status code is an error. Response headers are in either
121824// *Operation.ServerResponse.Header or (if a response was returned at
121825// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121826// to check whether the returned error was because
121827// http.StatusNotModified was returned.
121828func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121829	gensupport.SetOptions(c.urlParams_, opts...)
121830	res, err := c.doRequest("json")
121831	if res != nil && res.StatusCode == http.StatusNotModified {
121832		if res.Body != nil {
121833			res.Body.Close()
121834		}
121835		return nil, &googleapi.Error{
121836			Code:   res.StatusCode,
121837			Header: res.Header,
121838		}
121839	}
121840	if err != nil {
121841		return nil, err
121842	}
121843	defer googleapi.CloseBody(res)
121844	if err := googleapi.CheckResponse(res); err != nil {
121845		return nil, err
121846	}
121847	ret := &Operation{
121848		ServerResponse: googleapi.ServerResponse{
121849			Header:         res.Header,
121850			HTTPStatusCode: res.StatusCode,
121851		},
121852	}
121853	target := &ret
121854	if err := gensupport.DecodeResponse(target, res); err != nil {
121855		return nil, err
121856	}
121857	return ret, nil
121858	// {
121859	//   "description": "Deletes a rule at the specified priority.",
121860	//   "httpMethod": "POST",
121861	//   "id": "compute.securityPolicies.removeRule",
121862	//   "parameterOrder": [
121863	//     "project",
121864	//     "securityPolicy"
121865	//   ],
121866	//   "parameters": {
121867	//     "priority": {
121868	//       "description": "The priority of the rule to remove from the security policy.",
121869	//       "format": "int32",
121870	//       "location": "query",
121871	//       "type": "integer"
121872	//     },
121873	//     "project": {
121874	//       "description": "Project ID for this request.",
121875	//       "location": "path",
121876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121877	//       "required": true,
121878	//       "type": "string"
121879	//     },
121880	//     "securityPolicy": {
121881	//       "description": "Name of the security policy to update.",
121882	//       "location": "path",
121883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121884	//       "required": true,
121885	//       "type": "string"
121886	//     }
121887	//   },
121888	//   "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule",
121889	//   "response": {
121890	//     "$ref": "Operation"
121891	//   },
121892	//   "scopes": [
121893	//     "https://www.googleapis.com/auth/cloud-platform",
121894	//     "https://www.googleapis.com/auth/compute"
121895	//   ]
121896	// }
121897
121898}
121899
121900// method id "compute.snapshots.delete":
121901
121902type SnapshotsDeleteCall struct {
121903	s          *Service
121904	project    string
121905	snapshot   string
121906	urlParams_ gensupport.URLParams
121907	ctx_       context.Context
121908	header_    http.Header
121909}
121910
121911// Delete: Deletes the specified Snapshot resource. Keep in mind that
121912// deleting a single snapshot might not necessarily delete all the data
121913// on that snapshot. If any data on the snapshot that is marked for
121914// deletion is needed for subsequent snapshots, the data will be moved
121915// to the next corresponding snapshot.
121916//
121917// For more information, see Deleting snapshots.
121918// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
121919func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
121920	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121921	c.project = project
121922	c.snapshot = snapshot
121923	return c
121924}
121925
121926// RequestId sets the optional parameter "requestId": An optional
121927// request ID to identify requests. Specify a unique request ID so that
121928// if you must retry your request, the server will know to ignore the
121929// request if it has already been completed.
121930//
121931// For example, consider a situation where you make an initial request
121932// and the request times out. If you make the request again with the
121933// same request ID, the server can check if original operation with the
121934// same request ID was received, and if so, will ignore the second
121935// request. This prevents clients from accidentally creating duplicate
121936// commitments.
121937//
121938// The request ID must be a valid UUID with the exception that zero UUID
121939// is not supported (00000000-0000-0000-0000-000000000000).
121940func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
121941	c.urlParams_.Set("requestId", requestId)
121942	return c
121943}
121944
121945// Fields allows partial responses to be retrieved. See
121946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121947// for more information.
121948func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
121949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121950	return c
121951}
121952
121953// Context sets the context to be used in this call's Do method. Any
121954// pending HTTP request will be aborted if the provided context is
121955// canceled.
121956func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
121957	c.ctx_ = ctx
121958	return c
121959}
121960
121961// Header returns an http.Header that can be modified by the caller to
121962// add HTTP headers to the request.
121963func (c *SnapshotsDeleteCall) Header() http.Header {
121964	if c.header_ == nil {
121965		c.header_ = make(http.Header)
121966	}
121967	return c.header_
121968}
121969
121970func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
121971	reqHeaders := make(http.Header)
121972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121973	for k, v := range c.header_ {
121974		reqHeaders[k] = v
121975	}
121976	reqHeaders.Set("User-Agent", c.s.userAgent())
121977	var body io.Reader = nil
121978	c.urlParams_.Set("alt", alt)
121979	c.urlParams_.Set("prettyPrint", "false")
121980	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
121981	urls += "?" + c.urlParams_.Encode()
121982	req, err := http.NewRequest("DELETE", urls, body)
121983	if err != nil {
121984		return nil, err
121985	}
121986	req.Header = reqHeaders
121987	googleapi.Expand(req.URL, map[string]string{
121988		"project":  c.project,
121989		"snapshot": c.snapshot,
121990	})
121991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121992}
121993
121994// Do executes the "compute.snapshots.delete" call.
121995// Exactly one of *Operation or error will be non-nil. Any non-2xx
121996// status code is an error. Response headers are in either
121997// *Operation.ServerResponse.Header or (if a response was returned at
121998// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121999// to check whether the returned error was because
122000// http.StatusNotModified was returned.
122001func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122002	gensupport.SetOptions(c.urlParams_, opts...)
122003	res, err := c.doRequest("json")
122004	if res != nil && res.StatusCode == http.StatusNotModified {
122005		if res.Body != nil {
122006			res.Body.Close()
122007		}
122008		return nil, &googleapi.Error{
122009			Code:   res.StatusCode,
122010			Header: res.Header,
122011		}
122012	}
122013	if err != nil {
122014		return nil, err
122015	}
122016	defer googleapi.CloseBody(res)
122017	if err := googleapi.CheckResponse(res); err != nil {
122018		return nil, err
122019	}
122020	ret := &Operation{
122021		ServerResponse: googleapi.ServerResponse{
122022			Header:         res.Header,
122023			HTTPStatusCode: res.StatusCode,
122024		},
122025	}
122026	target := &ret
122027	if err := gensupport.DecodeResponse(target, res); err != nil {
122028		return nil, err
122029	}
122030	return ret, nil
122031	// {
122032	//   "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.",
122033	//   "httpMethod": "DELETE",
122034	//   "id": "compute.snapshots.delete",
122035	//   "parameterOrder": [
122036	//     "project",
122037	//     "snapshot"
122038	//   ],
122039	//   "parameters": {
122040	//     "project": {
122041	//       "description": "Project ID for this request.",
122042	//       "location": "path",
122043	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122044	//       "required": true,
122045	//       "type": "string"
122046	//     },
122047	//     "requestId": {
122048	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122049	//       "location": "query",
122050	//       "type": "string"
122051	//     },
122052	//     "snapshot": {
122053	//       "description": "Name of the Snapshot resource to delete.",
122054	//       "location": "path",
122055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122056	//       "required": true,
122057	//       "type": "string"
122058	//     }
122059	//   },
122060	//   "path": "{project}/global/snapshots/{snapshot}",
122061	//   "response": {
122062	//     "$ref": "Operation"
122063	//   },
122064	//   "scopes": [
122065	//     "https://www.googleapis.com/auth/cloud-platform",
122066	//     "https://www.googleapis.com/auth/compute"
122067	//   ]
122068	// }
122069
122070}
122071
122072// method id "compute.snapshots.get":
122073
122074type SnapshotsGetCall struct {
122075	s            *Service
122076	project      string
122077	snapshot     string
122078	urlParams_   gensupport.URLParams
122079	ifNoneMatch_ string
122080	ctx_         context.Context
122081	header_      http.Header
122082}
122083
122084// Get: Returns the specified Snapshot resource. Gets a list of
122085// available snapshots by making a list() request.
122086// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
122087func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
122088	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122089	c.project = project
122090	c.snapshot = snapshot
122091	return c
122092}
122093
122094// Fields allows partial responses to be retrieved. See
122095// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122096// for more information.
122097func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
122098	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122099	return c
122100}
122101
122102// IfNoneMatch sets the optional parameter which makes the operation
122103// fail if the object's ETag matches the given value. This is useful for
122104// getting updates only after the object has changed since the last
122105// request. Use googleapi.IsNotModified to check whether the response
122106// error from Do is the result of In-None-Match.
122107func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
122108	c.ifNoneMatch_ = entityTag
122109	return c
122110}
122111
122112// Context sets the context to be used in this call's Do method. Any
122113// pending HTTP request will be aborted if the provided context is
122114// canceled.
122115func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
122116	c.ctx_ = ctx
122117	return c
122118}
122119
122120// Header returns an http.Header that can be modified by the caller to
122121// add HTTP headers to the request.
122122func (c *SnapshotsGetCall) Header() http.Header {
122123	if c.header_ == nil {
122124		c.header_ = make(http.Header)
122125	}
122126	return c.header_
122127}
122128
122129func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
122130	reqHeaders := make(http.Header)
122131	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122132	for k, v := range c.header_ {
122133		reqHeaders[k] = v
122134	}
122135	reqHeaders.Set("User-Agent", c.s.userAgent())
122136	if c.ifNoneMatch_ != "" {
122137		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122138	}
122139	var body io.Reader = nil
122140	c.urlParams_.Set("alt", alt)
122141	c.urlParams_.Set("prettyPrint", "false")
122142	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
122143	urls += "?" + c.urlParams_.Encode()
122144	req, err := http.NewRequest("GET", urls, body)
122145	if err != nil {
122146		return nil, err
122147	}
122148	req.Header = reqHeaders
122149	googleapi.Expand(req.URL, map[string]string{
122150		"project":  c.project,
122151		"snapshot": c.snapshot,
122152	})
122153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122154}
122155
122156// Do executes the "compute.snapshots.get" call.
122157// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
122158// code is an error. Response headers are in either
122159// *Snapshot.ServerResponse.Header or (if a response was returned at
122160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122161// to check whether the returned error was because
122162// http.StatusNotModified was returned.
122163func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
122164	gensupport.SetOptions(c.urlParams_, opts...)
122165	res, err := c.doRequest("json")
122166	if res != nil && res.StatusCode == http.StatusNotModified {
122167		if res.Body != nil {
122168			res.Body.Close()
122169		}
122170		return nil, &googleapi.Error{
122171			Code:   res.StatusCode,
122172			Header: res.Header,
122173		}
122174	}
122175	if err != nil {
122176		return nil, err
122177	}
122178	defer googleapi.CloseBody(res)
122179	if err := googleapi.CheckResponse(res); err != nil {
122180		return nil, err
122181	}
122182	ret := &Snapshot{
122183		ServerResponse: googleapi.ServerResponse{
122184			Header:         res.Header,
122185			HTTPStatusCode: res.StatusCode,
122186		},
122187	}
122188	target := &ret
122189	if err := gensupport.DecodeResponse(target, res); err != nil {
122190		return nil, err
122191	}
122192	return ret, nil
122193	// {
122194	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
122195	//   "httpMethod": "GET",
122196	//   "id": "compute.snapshots.get",
122197	//   "parameterOrder": [
122198	//     "project",
122199	//     "snapshot"
122200	//   ],
122201	//   "parameters": {
122202	//     "project": {
122203	//       "description": "Project ID for this request.",
122204	//       "location": "path",
122205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122206	//       "required": true,
122207	//       "type": "string"
122208	//     },
122209	//     "snapshot": {
122210	//       "description": "Name of the Snapshot resource to return.",
122211	//       "location": "path",
122212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122213	//       "required": true,
122214	//       "type": "string"
122215	//     }
122216	//   },
122217	//   "path": "{project}/global/snapshots/{snapshot}",
122218	//   "response": {
122219	//     "$ref": "Snapshot"
122220	//   },
122221	//   "scopes": [
122222	//     "https://www.googleapis.com/auth/cloud-platform",
122223	//     "https://www.googleapis.com/auth/compute",
122224	//     "https://www.googleapis.com/auth/compute.readonly"
122225	//   ]
122226	// }
122227
122228}
122229
122230// method id "compute.snapshots.getIamPolicy":
122231
122232type SnapshotsGetIamPolicyCall struct {
122233	s            *Service
122234	project      string
122235	resource     string
122236	urlParams_   gensupport.URLParams
122237	ifNoneMatch_ string
122238	ctx_         context.Context
122239	header_      http.Header
122240}
122241
122242// GetIamPolicy: Gets the access control policy for a resource. May be
122243// empty if no such policy or resource exists.
122244func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
122245	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122246	c.project = project
122247	c.resource = resource
122248	return c
122249}
122250
122251// Fields allows partial responses to be retrieved. See
122252// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122253// for more information.
122254func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
122255	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122256	return c
122257}
122258
122259// IfNoneMatch sets the optional parameter which makes the operation
122260// fail if the object's ETag matches the given value. This is useful for
122261// getting updates only after the object has changed since the last
122262// request. Use googleapi.IsNotModified to check whether the response
122263// error from Do is the result of In-None-Match.
122264func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
122265	c.ifNoneMatch_ = entityTag
122266	return c
122267}
122268
122269// Context sets the context to be used in this call's Do method. Any
122270// pending HTTP request will be aborted if the provided context is
122271// canceled.
122272func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
122273	c.ctx_ = ctx
122274	return c
122275}
122276
122277// Header returns an http.Header that can be modified by the caller to
122278// add HTTP headers to the request.
122279func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
122280	if c.header_ == nil {
122281		c.header_ = make(http.Header)
122282	}
122283	return c.header_
122284}
122285
122286func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
122287	reqHeaders := make(http.Header)
122288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122289	for k, v := range c.header_ {
122290		reqHeaders[k] = v
122291	}
122292	reqHeaders.Set("User-Agent", c.s.userAgent())
122293	if c.ifNoneMatch_ != "" {
122294		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122295	}
122296	var body io.Reader = nil
122297	c.urlParams_.Set("alt", alt)
122298	c.urlParams_.Set("prettyPrint", "false")
122299	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/getIamPolicy")
122300	urls += "?" + c.urlParams_.Encode()
122301	req, err := http.NewRequest("GET", urls, body)
122302	if err != nil {
122303		return nil, err
122304	}
122305	req.Header = reqHeaders
122306	googleapi.Expand(req.URL, map[string]string{
122307		"project":  c.project,
122308		"resource": c.resource,
122309	})
122310	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122311}
122312
122313// Do executes the "compute.snapshots.getIamPolicy" call.
122314// Exactly one of *Policy or error will be non-nil. Any non-2xx status
122315// code is an error. Response headers are in either
122316// *Policy.ServerResponse.Header or (if a response was returned at all)
122317// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
122318// check whether the returned error was because http.StatusNotModified
122319// was returned.
122320func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
122321	gensupport.SetOptions(c.urlParams_, opts...)
122322	res, err := c.doRequest("json")
122323	if res != nil && res.StatusCode == http.StatusNotModified {
122324		if res.Body != nil {
122325			res.Body.Close()
122326		}
122327		return nil, &googleapi.Error{
122328			Code:   res.StatusCode,
122329			Header: res.Header,
122330		}
122331	}
122332	if err != nil {
122333		return nil, err
122334	}
122335	defer googleapi.CloseBody(res)
122336	if err := googleapi.CheckResponse(res); err != nil {
122337		return nil, err
122338	}
122339	ret := &Policy{
122340		ServerResponse: googleapi.ServerResponse{
122341			Header:         res.Header,
122342			HTTPStatusCode: res.StatusCode,
122343		},
122344	}
122345	target := &ret
122346	if err := gensupport.DecodeResponse(target, res); err != nil {
122347		return nil, err
122348	}
122349	return ret, nil
122350	// {
122351	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
122352	//   "httpMethod": "GET",
122353	//   "id": "compute.snapshots.getIamPolicy",
122354	//   "parameterOrder": [
122355	//     "project",
122356	//     "resource"
122357	//   ],
122358	//   "parameters": {
122359	//     "project": {
122360	//       "description": "Project ID for this request.",
122361	//       "location": "path",
122362	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122363	//       "required": true,
122364	//       "type": "string"
122365	//     },
122366	//     "resource": {
122367	//       "description": "Name or id of the resource for this request.",
122368	//       "location": "path",
122369	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122370	//       "required": true,
122371	//       "type": "string"
122372	//     }
122373	//   },
122374	//   "path": "{project}/global/snapshots/{resource}/getIamPolicy",
122375	//   "response": {
122376	//     "$ref": "Policy"
122377	//   },
122378	//   "scopes": [
122379	//     "https://www.googleapis.com/auth/cloud-platform",
122380	//     "https://www.googleapis.com/auth/compute",
122381	//     "https://www.googleapis.com/auth/compute.readonly"
122382	//   ]
122383	// }
122384
122385}
122386
122387// method id "compute.snapshots.list":
122388
122389type SnapshotsListCall struct {
122390	s            *Service
122391	project      string
122392	urlParams_   gensupport.URLParams
122393	ifNoneMatch_ string
122394	ctx_         context.Context
122395	header_      http.Header
122396}
122397
122398// List: Retrieves the list of Snapshot resources contained within the
122399// specified project.
122400// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
122401func (r *SnapshotsService) List(project string) *SnapshotsListCall {
122402	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122403	c.project = project
122404	return c
122405}
122406
122407// Filter sets the optional parameter "filter": A filter expression that
122408// filters resources listed in the response. The expression must specify
122409// the field name, a comparison operator, and the value that you want to
122410// use for filtering. The value must be a string, a number, or a
122411// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122412// `<`.
122413//
122414// For example, if you are filtering Compute Engine instances, you can
122415// exclude instances named `example-instance` by specifying `name !=
122416// example-instance`.
122417//
122418// You can also filter nested fields. For example, you could specify
122419// `scheduling.automaticRestart = false` to include instances only if
122420// they are not scheduled for automatic restarts. You can use filtering
122421// on nested fields to filter based on resource labels.
122422//
122423// To filter on multiple expressions, provide each separate expression
122424// within parentheses. For example: ``` (scheduling.automaticRestart =
122425// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122426// is an `AND` expression. However, you can include `AND` and `OR`
122427// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122428// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122429// (scheduling.automaticRestart = true) ```
122430func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
122431	c.urlParams_.Set("filter", filter)
122432	return c
122433}
122434
122435// MaxResults sets the optional parameter "maxResults": The maximum
122436// number of results per page that should be returned. If the number of
122437// available results is larger than `maxResults`, Compute Engine returns
122438// a `nextPageToken` that can be used to get the next page of results in
122439// subsequent list requests. Acceptable values are `0` to `500`,
122440// inclusive. (Default: `500`)
122441func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
122442	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122443	return c
122444}
122445
122446// OrderBy sets the optional parameter "orderBy": Sorts list results by
122447// a certain order. By default, results are returned in alphanumerical
122448// order based on the resource name.
122449//
122450// You can also sort results in descending order based on the creation
122451// timestamp using `orderBy="creationTimestamp desc". This sorts
122452// results based on the `creationTimestamp` field in reverse
122453// chronological order (newest result first). Use this to sort resources
122454// like operations so that the newest operation is returned
122455// first.
122456//
122457// Currently, only sorting by `name` or `creationTimestamp desc` is
122458// supported.
122459func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
122460	c.urlParams_.Set("orderBy", orderBy)
122461	return c
122462}
122463
122464// PageToken sets the optional parameter "pageToken": Specifies a page
122465// token to use. Set `pageToken` to the `nextPageToken` returned by a
122466// previous list request to get the next page of results.
122467func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
122468	c.urlParams_.Set("pageToken", pageToken)
122469	return c
122470}
122471
122472// Fields allows partial responses to be retrieved. See
122473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122474// for more information.
122475func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
122476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122477	return c
122478}
122479
122480// IfNoneMatch sets the optional parameter which makes the operation
122481// fail if the object's ETag matches the given value. This is useful for
122482// getting updates only after the object has changed since the last
122483// request. Use googleapi.IsNotModified to check whether the response
122484// error from Do is the result of In-None-Match.
122485func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
122486	c.ifNoneMatch_ = entityTag
122487	return c
122488}
122489
122490// Context sets the context to be used in this call's Do method. Any
122491// pending HTTP request will be aborted if the provided context is
122492// canceled.
122493func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
122494	c.ctx_ = ctx
122495	return c
122496}
122497
122498// Header returns an http.Header that can be modified by the caller to
122499// add HTTP headers to the request.
122500func (c *SnapshotsListCall) Header() http.Header {
122501	if c.header_ == nil {
122502		c.header_ = make(http.Header)
122503	}
122504	return c.header_
122505}
122506
122507func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
122508	reqHeaders := make(http.Header)
122509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122510	for k, v := range c.header_ {
122511		reqHeaders[k] = v
122512	}
122513	reqHeaders.Set("User-Agent", c.s.userAgent())
122514	if c.ifNoneMatch_ != "" {
122515		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122516	}
122517	var body io.Reader = nil
122518	c.urlParams_.Set("alt", alt)
122519	c.urlParams_.Set("prettyPrint", "false")
122520	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
122521	urls += "?" + c.urlParams_.Encode()
122522	req, err := http.NewRequest("GET", urls, body)
122523	if err != nil {
122524		return nil, err
122525	}
122526	req.Header = reqHeaders
122527	googleapi.Expand(req.URL, map[string]string{
122528		"project": c.project,
122529	})
122530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122531}
122532
122533// Do executes the "compute.snapshots.list" call.
122534// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
122535// status code is an error. Response headers are in either
122536// *SnapshotList.ServerResponse.Header or (if a response was returned at
122537// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122538// to check whether the returned error was because
122539// http.StatusNotModified was returned.
122540func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
122541	gensupport.SetOptions(c.urlParams_, opts...)
122542	res, err := c.doRequest("json")
122543	if res != nil && res.StatusCode == http.StatusNotModified {
122544		if res.Body != nil {
122545			res.Body.Close()
122546		}
122547		return nil, &googleapi.Error{
122548			Code:   res.StatusCode,
122549			Header: res.Header,
122550		}
122551	}
122552	if err != nil {
122553		return nil, err
122554	}
122555	defer googleapi.CloseBody(res)
122556	if err := googleapi.CheckResponse(res); err != nil {
122557		return nil, err
122558	}
122559	ret := &SnapshotList{
122560		ServerResponse: googleapi.ServerResponse{
122561			Header:         res.Header,
122562			HTTPStatusCode: res.StatusCode,
122563		},
122564	}
122565	target := &ret
122566	if err := gensupport.DecodeResponse(target, res); err != nil {
122567		return nil, err
122568	}
122569	return ret, nil
122570	// {
122571	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
122572	//   "httpMethod": "GET",
122573	//   "id": "compute.snapshots.list",
122574	//   "parameterOrder": [
122575	//     "project"
122576	//   ],
122577	//   "parameters": {
122578	//     "filter": {
122579	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122580	//       "location": "query",
122581	//       "type": "string"
122582	//     },
122583	//     "maxResults": {
122584	//       "default": "500",
122585	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122586	//       "format": "uint32",
122587	//       "location": "query",
122588	//       "minimum": "0",
122589	//       "type": "integer"
122590	//     },
122591	//     "orderBy": {
122592	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
122593	//       "location": "query",
122594	//       "type": "string"
122595	//     },
122596	//     "pageToken": {
122597	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122598	//       "location": "query",
122599	//       "type": "string"
122600	//     },
122601	//     "project": {
122602	//       "description": "Project ID for this request.",
122603	//       "location": "path",
122604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122605	//       "required": true,
122606	//       "type": "string"
122607	//     }
122608	//   },
122609	//   "path": "{project}/global/snapshots",
122610	//   "response": {
122611	//     "$ref": "SnapshotList"
122612	//   },
122613	//   "scopes": [
122614	//     "https://www.googleapis.com/auth/cloud-platform",
122615	//     "https://www.googleapis.com/auth/compute",
122616	//     "https://www.googleapis.com/auth/compute.readonly"
122617	//   ]
122618	// }
122619
122620}
122621
122622// Pages invokes f for each page of results.
122623// A non-nil error returned from f will halt the iteration.
122624// The provided context supersedes any context provided to the Context method.
122625func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
122626	c.ctx_ = ctx
122627	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122628	for {
122629		x, err := c.Do()
122630		if err != nil {
122631			return err
122632		}
122633		if err := f(x); err != nil {
122634			return err
122635		}
122636		if x.NextPageToken == "" {
122637			return nil
122638		}
122639		c.PageToken(x.NextPageToken)
122640	}
122641}
122642
122643// method id "compute.snapshots.setIamPolicy":
122644
122645type SnapshotsSetIamPolicyCall struct {
122646	s                      *Service
122647	project                string
122648	resource               string
122649	globalsetpolicyrequest *GlobalSetPolicyRequest
122650	urlParams_             gensupport.URLParams
122651	ctx_                   context.Context
122652	header_                http.Header
122653}
122654
122655// SetIamPolicy: Sets the access control policy on the specified
122656// resource. Replaces any existing policy.
122657func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
122658	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122659	c.project = project
122660	c.resource = resource
122661	c.globalsetpolicyrequest = globalsetpolicyrequest
122662	return c
122663}
122664
122665// Fields allows partial responses to be retrieved. See
122666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122667// for more information.
122668func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
122669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122670	return c
122671}
122672
122673// Context sets the context to be used in this call's Do method. Any
122674// pending HTTP request will be aborted if the provided context is
122675// canceled.
122676func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
122677	c.ctx_ = ctx
122678	return c
122679}
122680
122681// Header returns an http.Header that can be modified by the caller to
122682// add HTTP headers to the request.
122683func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
122684	if c.header_ == nil {
122685		c.header_ = make(http.Header)
122686	}
122687	return c.header_
122688}
122689
122690func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
122691	reqHeaders := make(http.Header)
122692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122693	for k, v := range c.header_ {
122694		reqHeaders[k] = v
122695	}
122696	reqHeaders.Set("User-Agent", c.s.userAgent())
122697	var body io.Reader = nil
122698	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
122699	if err != nil {
122700		return nil, err
122701	}
122702	reqHeaders.Set("Content-Type", "application/json")
122703	c.urlParams_.Set("alt", alt)
122704	c.urlParams_.Set("prettyPrint", "false")
122705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setIamPolicy")
122706	urls += "?" + c.urlParams_.Encode()
122707	req, err := http.NewRequest("POST", urls, body)
122708	if err != nil {
122709		return nil, err
122710	}
122711	req.Header = reqHeaders
122712	googleapi.Expand(req.URL, map[string]string{
122713		"project":  c.project,
122714		"resource": c.resource,
122715	})
122716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122717}
122718
122719// Do executes the "compute.snapshots.setIamPolicy" call.
122720// Exactly one of *Policy or error will be non-nil. Any non-2xx status
122721// code is an error. Response headers are in either
122722// *Policy.ServerResponse.Header or (if a response was returned at all)
122723// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
122724// check whether the returned error was because http.StatusNotModified
122725// was returned.
122726func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
122727	gensupport.SetOptions(c.urlParams_, opts...)
122728	res, err := c.doRequest("json")
122729	if res != nil && res.StatusCode == http.StatusNotModified {
122730		if res.Body != nil {
122731			res.Body.Close()
122732		}
122733		return nil, &googleapi.Error{
122734			Code:   res.StatusCode,
122735			Header: res.Header,
122736		}
122737	}
122738	if err != nil {
122739		return nil, err
122740	}
122741	defer googleapi.CloseBody(res)
122742	if err := googleapi.CheckResponse(res); err != nil {
122743		return nil, err
122744	}
122745	ret := &Policy{
122746		ServerResponse: googleapi.ServerResponse{
122747			Header:         res.Header,
122748			HTTPStatusCode: res.StatusCode,
122749		},
122750	}
122751	target := &ret
122752	if err := gensupport.DecodeResponse(target, res); err != nil {
122753		return nil, err
122754	}
122755	return ret, nil
122756	// {
122757	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
122758	//   "httpMethod": "POST",
122759	//   "id": "compute.snapshots.setIamPolicy",
122760	//   "parameterOrder": [
122761	//     "project",
122762	//     "resource"
122763	//   ],
122764	//   "parameters": {
122765	//     "project": {
122766	//       "description": "Project ID for this request.",
122767	//       "location": "path",
122768	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122769	//       "required": true,
122770	//       "type": "string"
122771	//     },
122772	//     "resource": {
122773	//       "description": "Name or id of the resource for this request.",
122774	//       "location": "path",
122775	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122776	//       "required": true,
122777	//       "type": "string"
122778	//     }
122779	//   },
122780	//   "path": "{project}/global/snapshots/{resource}/setIamPolicy",
122781	//   "request": {
122782	//     "$ref": "GlobalSetPolicyRequest"
122783	//   },
122784	//   "response": {
122785	//     "$ref": "Policy"
122786	//   },
122787	//   "scopes": [
122788	//     "https://www.googleapis.com/auth/cloud-platform",
122789	//     "https://www.googleapis.com/auth/compute"
122790	//   ]
122791	// }
122792
122793}
122794
122795// method id "compute.snapshots.setLabels":
122796
122797type SnapshotsSetLabelsCall struct {
122798	s                      *Service
122799	project                string
122800	resource               string
122801	globalsetlabelsrequest *GlobalSetLabelsRequest
122802	urlParams_             gensupport.URLParams
122803	ctx_                   context.Context
122804	header_                http.Header
122805}
122806
122807// SetLabels: Sets the labels on a snapshot. To learn more about labels,
122808// read the Labeling Resources documentation.
122809func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
122810	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122811	c.project = project
122812	c.resource = resource
122813	c.globalsetlabelsrequest = globalsetlabelsrequest
122814	return c
122815}
122816
122817// Fields allows partial responses to be retrieved. See
122818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122819// for more information.
122820func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
122821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122822	return c
122823}
122824
122825// Context sets the context to be used in this call's Do method. Any
122826// pending HTTP request will be aborted if the provided context is
122827// canceled.
122828func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
122829	c.ctx_ = ctx
122830	return c
122831}
122832
122833// Header returns an http.Header that can be modified by the caller to
122834// add HTTP headers to the request.
122835func (c *SnapshotsSetLabelsCall) Header() http.Header {
122836	if c.header_ == nil {
122837		c.header_ = make(http.Header)
122838	}
122839	return c.header_
122840}
122841
122842func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
122843	reqHeaders := make(http.Header)
122844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122845	for k, v := range c.header_ {
122846		reqHeaders[k] = v
122847	}
122848	reqHeaders.Set("User-Agent", c.s.userAgent())
122849	var body io.Reader = nil
122850	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
122851	if err != nil {
122852		return nil, err
122853	}
122854	reqHeaders.Set("Content-Type", "application/json")
122855	c.urlParams_.Set("alt", alt)
122856	c.urlParams_.Set("prettyPrint", "false")
122857	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
122858	urls += "?" + c.urlParams_.Encode()
122859	req, err := http.NewRequest("POST", urls, body)
122860	if err != nil {
122861		return nil, err
122862	}
122863	req.Header = reqHeaders
122864	googleapi.Expand(req.URL, map[string]string{
122865		"project":  c.project,
122866		"resource": c.resource,
122867	})
122868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122869}
122870
122871// Do executes the "compute.snapshots.setLabels" call.
122872// Exactly one of *Operation or error will be non-nil. Any non-2xx
122873// status code is an error. Response headers are in either
122874// *Operation.ServerResponse.Header or (if a response was returned at
122875// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122876// to check whether the returned error was because
122877// http.StatusNotModified was returned.
122878func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122879	gensupport.SetOptions(c.urlParams_, opts...)
122880	res, err := c.doRequest("json")
122881	if res != nil && res.StatusCode == http.StatusNotModified {
122882		if res.Body != nil {
122883			res.Body.Close()
122884		}
122885		return nil, &googleapi.Error{
122886			Code:   res.StatusCode,
122887			Header: res.Header,
122888		}
122889	}
122890	if err != nil {
122891		return nil, err
122892	}
122893	defer googleapi.CloseBody(res)
122894	if err := googleapi.CheckResponse(res); err != nil {
122895		return nil, err
122896	}
122897	ret := &Operation{
122898		ServerResponse: googleapi.ServerResponse{
122899			Header:         res.Header,
122900			HTTPStatusCode: res.StatusCode,
122901		},
122902	}
122903	target := &ret
122904	if err := gensupport.DecodeResponse(target, res); err != nil {
122905		return nil, err
122906	}
122907	return ret, nil
122908	// {
122909	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
122910	//   "httpMethod": "POST",
122911	//   "id": "compute.snapshots.setLabels",
122912	//   "parameterOrder": [
122913	//     "project",
122914	//     "resource"
122915	//   ],
122916	//   "parameters": {
122917	//     "project": {
122918	//       "description": "Project ID for this request.",
122919	//       "location": "path",
122920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122921	//       "required": true,
122922	//       "type": "string"
122923	//     },
122924	//     "resource": {
122925	//       "description": "Name or id of the resource for this request.",
122926	//       "location": "path",
122927	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122928	//       "required": true,
122929	//       "type": "string"
122930	//     }
122931	//   },
122932	//   "path": "{project}/global/snapshots/{resource}/setLabels",
122933	//   "request": {
122934	//     "$ref": "GlobalSetLabelsRequest"
122935	//   },
122936	//   "response": {
122937	//     "$ref": "Operation"
122938	//   },
122939	//   "scopes": [
122940	//     "https://www.googleapis.com/auth/cloud-platform",
122941	//     "https://www.googleapis.com/auth/compute"
122942	//   ]
122943	// }
122944
122945}
122946
122947// method id "compute.snapshots.testIamPermissions":
122948
122949type SnapshotsTestIamPermissionsCall struct {
122950	s                      *Service
122951	project                string
122952	resource               string
122953	testpermissionsrequest *TestPermissionsRequest
122954	urlParams_             gensupport.URLParams
122955	ctx_                   context.Context
122956	header_                http.Header
122957}
122958
122959// TestIamPermissions: Returns permissions that a caller has on the
122960// specified resource.
122961func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
122962	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122963	c.project = project
122964	c.resource = resource
122965	c.testpermissionsrequest = testpermissionsrequest
122966	return c
122967}
122968
122969// Fields allows partial responses to be retrieved. See
122970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122971// for more information.
122972func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
122973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122974	return c
122975}
122976
122977// Context sets the context to be used in this call's Do method. Any
122978// pending HTTP request will be aborted if the provided context is
122979// canceled.
122980func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
122981	c.ctx_ = ctx
122982	return c
122983}
122984
122985// Header returns an http.Header that can be modified by the caller to
122986// add HTTP headers to the request.
122987func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
122988	if c.header_ == nil {
122989		c.header_ = make(http.Header)
122990	}
122991	return c.header_
122992}
122993
122994func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
122995	reqHeaders := make(http.Header)
122996	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122997	for k, v := range c.header_ {
122998		reqHeaders[k] = v
122999	}
123000	reqHeaders.Set("User-Agent", c.s.userAgent())
123001	var body io.Reader = nil
123002	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
123003	if err != nil {
123004		return nil, err
123005	}
123006	reqHeaders.Set("Content-Type", "application/json")
123007	c.urlParams_.Set("alt", alt)
123008	c.urlParams_.Set("prettyPrint", "false")
123009	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/testIamPermissions")
123010	urls += "?" + c.urlParams_.Encode()
123011	req, err := http.NewRequest("POST", urls, body)
123012	if err != nil {
123013		return nil, err
123014	}
123015	req.Header = reqHeaders
123016	googleapi.Expand(req.URL, map[string]string{
123017		"project":  c.project,
123018		"resource": c.resource,
123019	})
123020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123021}
123022
123023// Do executes the "compute.snapshots.testIamPermissions" call.
123024// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
123025// non-2xx status code is an error. Response headers are in either
123026// *TestPermissionsResponse.ServerResponse.Header or (if a response was
123027// returned at all) in error.(*googleapi.Error).Header. Use
123028// googleapi.IsNotModified to check whether the returned error was
123029// because http.StatusNotModified was returned.
123030func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
123031	gensupport.SetOptions(c.urlParams_, opts...)
123032	res, err := c.doRequest("json")
123033	if res != nil && res.StatusCode == http.StatusNotModified {
123034		if res.Body != nil {
123035			res.Body.Close()
123036		}
123037		return nil, &googleapi.Error{
123038			Code:   res.StatusCode,
123039			Header: res.Header,
123040		}
123041	}
123042	if err != nil {
123043		return nil, err
123044	}
123045	defer googleapi.CloseBody(res)
123046	if err := googleapi.CheckResponse(res); err != nil {
123047		return nil, err
123048	}
123049	ret := &TestPermissionsResponse{
123050		ServerResponse: googleapi.ServerResponse{
123051			Header:         res.Header,
123052			HTTPStatusCode: res.StatusCode,
123053		},
123054	}
123055	target := &ret
123056	if err := gensupport.DecodeResponse(target, res); err != nil {
123057		return nil, err
123058	}
123059	return ret, nil
123060	// {
123061	//   "description": "Returns permissions that a caller has on the specified resource.",
123062	//   "httpMethod": "POST",
123063	//   "id": "compute.snapshots.testIamPermissions",
123064	//   "parameterOrder": [
123065	//     "project",
123066	//     "resource"
123067	//   ],
123068	//   "parameters": {
123069	//     "project": {
123070	//       "description": "Project ID for this request.",
123071	//       "location": "path",
123072	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123073	//       "required": true,
123074	//       "type": "string"
123075	//     },
123076	//     "resource": {
123077	//       "description": "Name or id of the resource for this request.",
123078	//       "location": "path",
123079	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123080	//       "required": true,
123081	//       "type": "string"
123082	//     }
123083	//   },
123084	//   "path": "{project}/global/snapshots/{resource}/testIamPermissions",
123085	//   "request": {
123086	//     "$ref": "TestPermissionsRequest"
123087	//   },
123088	//   "response": {
123089	//     "$ref": "TestPermissionsResponse"
123090	//   },
123091	//   "scopes": [
123092	//     "https://www.googleapis.com/auth/cloud-platform",
123093	//     "https://www.googleapis.com/auth/compute",
123094	//     "https://www.googleapis.com/auth/compute.readonly"
123095	//   ]
123096	// }
123097
123098}
123099
123100// method id "compute.sslCertificates.aggregatedList":
123101
123102type SslCertificatesAggregatedListCall struct {
123103	s            *Service
123104	project      string
123105	urlParams_   gensupport.URLParams
123106	ifNoneMatch_ string
123107	ctx_         context.Context
123108	header_      http.Header
123109}
123110
123111// AggregatedList: Retrieves the list of all SslCertificate resources,
123112// regional and global, available to the specified project.
123113func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
123114	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123115	c.project = project
123116	return c
123117}
123118
123119// Filter sets the optional parameter "filter": A filter expression that
123120// filters resources listed in the response. The expression must specify
123121// the field name, a comparison operator, and the value that you want to
123122// use for filtering. The value must be a string, a number, or a
123123// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123124// `<`.
123125//
123126// For example, if you are filtering Compute Engine instances, you can
123127// exclude instances named `example-instance` by specifying `name !=
123128// example-instance`.
123129//
123130// You can also filter nested fields. For example, you could specify
123131// `scheduling.automaticRestart = false` to include instances only if
123132// they are not scheduled for automatic restarts. You can use filtering
123133// on nested fields to filter based on resource labels.
123134//
123135// To filter on multiple expressions, provide each separate expression
123136// within parentheses. For example: ``` (scheduling.automaticRestart =
123137// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
123138// is an `AND` expression. However, you can include `AND` and `OR`
123139// expressions explicitly. For example: ``` (cpuPlatform = "Intel
123140// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
123141// (scheduling.automaticRestart = true) ```
123142func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
123143	c.urlParams_.Set("filter", filter)
123144	return c
123145}
123146
123147// IncludeAllScopes sets the optional parameter "includeAllScopes":
123148// Indicates whether every visible scope for each scope type (zone,
123149// region, global) should be included in the response. For new resource
123150// types added after this field, the flag has no effect as new resource
123151// types will always include every visible scope for each scope type in
123152// response. For resource types which predate this field, if this flag
123153// is omitted or false, only scopes of the scope types where the
123154// resource type is expected to be found will be included.
123155func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
123156	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
123157	return c
123158}
123159
123160// MaxResults sets the optional parameter "maxResults": The maximum
123161// number of results per page that should be returned. If the number of
123162// available results is larger than `maxResults`, Compute Engine returns
123163// a `nextPageToken` that can be used to get the next page of results in
123164// subsequent list requests. Acceptable values are `0` to `500`,
123165// inclusive. (Default: `500`)
123166func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
123167	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123168	return c
123169}
123170
123171// OrderBy sets the optional parameter "orderBy": Sorts list results by
123172// a certain order. By default, results are returned in alphanumerical
123173// order based on the resource name.
123174//
123175// You can also sort results in descending order based on the creation
123176// timestamp using `orderBy="creationTimestamp desc". This sorts
123177// results based on the `creationTimestamp` field in reverse
123178// chronological order (newest result first). Use this to sort resources
123179// like operations so that the newest operation is returned
123180// first.
123181//
123182// Currently, only sorting by `name` or `creationTimestamp desc` is
123183// supported.
123184func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
123185	c.urlParams_.Set("orderBy", orderBy)
123186	return c
123187}
123188
123189// PageToken sets the optional parameter "pageToken": Specifies a page
123190// token to use. Set `pageToken` to the `nextPageToken` returned by a
123191// previous list request to get the next page of results.
123192func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
123193	c.urlParams_.Set("pageToken", pageToken)
123194	return c
123195}
123196
123197// Fields allows partial responses to be retrieved. See
123198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123199// for more information.
123200func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
123201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123202	return c
123203}
123204
123205// IfNoneMatch sets the optional parameter which makes the operation
123206// fail if the object's ETag matches the given value. This is useful for
123207// getting updates only after the object has changed since the last
123208// request. Use googleapi.IsNotModified to check whether the response
123209// error from Do is the result of In-None-Match.
123210func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
123211	c.ifNoneMatch_ = entityTag
123212	return c
123213}
123214
123215// Context sets the context to be used in this call's Do method. Any
123216// pending HTTP request will be aborted if the provided context is
123217// canceled.
123218func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
123219	c.ctx_ = ctx
123220	return c
123221}
123222
123223// Header returns an http.Header that can be modified by the caller to
123224// add HTTP headers to the request.
123225func (c *SslCertificatesAggregatedListCall) Header() http.Header {
123226	if c.header_ == nil {
123227		c.header_ = make(http.Header)
123228	}
123229	return c.header_
123230}
123231
123232func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
123233	reqHeaders := make(http.Header)
123234	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123235	for k, v := range c.header_ {
123236		reqHeaders[k] = v
123237	}
123238	reqHeaders.Set("User-Agent", c.s.userAgent())
123239	if c.ifNoneMatch_ != "" {
123240		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123241	}
123242	var body io.Reader = nil
123243	c.urlParams_.Set("alt", alt)
123244	c.urlParams_.Set("prettyPrint", "false")
123245	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/sslCertificates")
123246	urls += "?" + c.urlParams_.Encode()
123247	req, err := http.NewRequest("GET", urls, body)
123248	if err != nil {
123249		return nil, err
123250	}
123251	req.Header = reqHeaders
123252	googleapi.Expand(req.URL, map[string]string{
123253		"project": c.project,
123254	})
123255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123256}
123257
123258// Do executes the "compute.sslCertificates.aggregatedList" call.
123259// Exactly one of *SslCertificateAggregatedList or error will be
123260// non-nil. Any non-2xx status code is an error. Response headers are in
123261// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
123262// response was returned at all) in error.(*googleapi.Error).Header. Use
123263// googleapi.IsNotModified to check whether the returned error was
123264// because http.StatusNotModified was returned.
123265func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
123266	gensupport.SetOptions(c.urlParams_, opts...)
123267	res, err := c.doRequest("json")
123268	if res != nil && res.StatusCode == http.StatusNotModified {
123269		if res.Body != nil {
123270			res.Body.Close()
123271		}
123272		return nil, &googleapi.Error{
123273			Code:   res.StatusCode,
123274			Header: res.Header,
123275		}
123276	}
123277	if err != nil {
123278		return nil, err
123279	}
123280	defer googleapi.CloseBody(res)
123281	if err := googleapi.CheckResponse(res); err != nil {
123282		return nil, err
123283	}
123284	ret := &SslCertificateAggregatedList{
123285		ServerResponse: googleapi.ServerResponse{
123286			Header:         res.Header,
123287			HTTPStatusCode: res.StatusCode,
123288		},
123289	}
123290	target := &ret
123291	if err := gensupport.DecodeResponse(target, res); err != nil {
123292		return nil, err
123293	}
123294	return ret, nil
123295	// {
123296	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
123297	//   "httpMethod": "GET",
123298	//   "id": "compute.sslCertificates.aggregatedList",
123299	//   "parameterOrder": [
123300	//     "project"
123301	//   ],
123302	//   "parameters": {
123303	//     "filter": {
123304	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
123305	//       "location": "query",
123306	//       "type": "string"
123307	//     },
123308	//     "includeAllScopes": {
123309	//       "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.",
123310	//       "location": "query",
123311	//       "type": "boolean"
123312	//     },
123313	//     "maxResults": {
123314	//       "default": "500",
123315	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
123316	//       "format": "uint32",
123317	//       "location": "query",
123318	//       "minimum": "0",
123319	//       "type": "integer"
123320	//     },
123321	//     "orderBy": {
123322	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
123323	//       "location": "query",
123324	//       "type": "string"
123325	//     },
123326	//     "pageToken": {
123327	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
123328	//       "location": "query",
123329	//       "type": "string"
123330	//     },
123331	//     "project": {
123332	//       "description": "Name of the project scoping this request.",
123333	//       "location": "path",
123334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123335	//       "required": true,
123336	//       "type": "string"
123337	//     }
123338	//   },
123339	//   "path": "{project}/aggregated/sslCertificates",
123340	//   "response": {
123341	//     "$ref": "SslCertificateAggregatedList"
123342	//   },
123343	//   "scopes": [
123344	//     "https://www.googleapis.com/auth/cloud-platform",
123345	//     "https://www.googleapis.com/auth/compute",
123346	//     "https://www.googleapis.com/auth/compute.readonly"
123347	//   ]
123348	// }
123349
123350}
123351
123352// Pages invokes f for each page of results.
123353// A non-nil error returned from f will halt the iteration.
123354// The provided context supersedes any context provided to the Context method.
123355func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
123356	c.ctx_ = ctx
123357	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123358	for {
123359		x, err := c.Do()
123360		if err != nil {
123361			return err
123362		}
123363		if err := f(x); err != nil {
123364			return err
123365		}
123366		if x.NextPageToken == "" {
123367			return nil
123368		}
123369		c.PageToken(x.NextPageToken)
123370	}
123371}
123372
123373// method id "compute.sslCertificates.delete":
123374
123375type SslCertificatesDeleteCall struct {
123376	s              *Service
123377	project        string
123378	sslCertificate string
123379	urlParams_     gensupport.URLParams
123380	ctx_           context.Context
123381	header_        http.Header
123382}
123383
123384// Delete: Deletes the specified SslCertificate resource.
123385func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
123386	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123387	c.project = project
123388	c.sslCertificate = sslCertificate
123389	return c
123390}
123391
123392// RequestId sets the optional parameter "requestId": An optional
123393// request ID to identify requests. Specify a unique request ID so that
123394// if you must retry your request, the server will know to ignore the
123395// request if it has already been completed.
123396//
123397// For example, consider a situation where you make an initial request
123398// and the request times out. If you make the request again with the
123399// same request ID, the server can check if original operation with the
123400// same request ID was received, and if so, will ignore the second
123401// request. This prevents clients from accidentally creating duplicate
123402// commitments.
123403//
123404// The request ID must be a valid UUID with the exception that zero UUID
123405// is not supported (00000000-0000-0000-0000-000000000000).
123406func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
123407	c.urlParams_.Set("requestId", requestId)
123408	return c
123409}
123410
123411// Fields allows partial responses to be retrieved. See
123412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123413// for more information.
123414func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
123415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123416	return c
123417}
123418
123419// Context sets the context to be used in this call's Do method. Any
123420// pending HTTP request will be aborted if the provided context is
123421// canceled.
123422func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
123423	c.ctx_ = ctx
123424	return c
123425}
123426
123427// Header returns an http.Header that can be modified by the caller to
123428// add HTTP headers to the request.
123429func (c *SslCertificatesDeleteCall) Header() http.Header {
123430	if c.header_ == nil {
123431		c.header_ = make(http.Header)
123432	}
123433	return c.header_
123434}
123435
123436func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
123437	reqHeaders := make(http.Header)
123438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123439	for k, v := range c.header_ {
123440		reqHeaders[k] = v
123441	}
123442	reqHeaders.Set("User-Agent", c.s.userAgent())
123443	var body io.Reader = nil
123444	c.urlParams_.Set("alt", alt)
123445	c.urlParams_.Set("prettyPrint", "false")
123446	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
123447	urls += "?" + c.urlParams_.Encode()
123448	req, err := http.NewRequest("DELETE", urls, body)
123449	if err != nil {
123450		return nil, err
123451	}
123452	req.Header = reqHeaders
123453	googleapi.Expand(req.URL, map[string]string{
123454		"project":        c.project,
123455		"sslCertificate": c.sslCertificate,
123456	})
123457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123458}
123459
123460// Do executes the "compute.sslCertificates.delete" call.
123461// Exactly one of *Operation or error will be non-nil. Any non-2xx
123462// status code is an error. Response headers are in either
123463// *Operation.ServerResponse.Header or (if a response was returned at
123464// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123465// to check whether the returned error was because
123466// http.StatusNotModified was returned.
123467func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123468	gensupport.SetOptions(c.urlParams_, opts...)
123469	res, err := c.doRequest("json")
123470	if res != nil && res.StatusCode == http.StatusNotModified {
123471		if res.Body != nil {
123472			res.Body.Close()
123473		}
123474		return nil, &googleapi.Error{
123475			Code:   res.StatusCode,
123476			Header: res.Header,
123477		}
123478	}
123479	if err != nil {
123480		return nil, err
123481	}
123482	defer googleapi.CloseBody(res)
123483	if err := googleapi.CheckResponse(res); err != nil {
123484		return nil, err
123485	}
123486	ret := &Operation{
123487		ServerResponse: googleapi.ServerResponse{
123488			Header:         res.Header,
123489			HTTPStatusCode: res.StatusCode,
123490		},
123491	}
123492	target := &ret
123493	if err := gensupport.DecodeResponse(target, res); err != nil {
123494		return nil, err
123495	}
123496	return ret, nil
123497	// {
123498	//   "description": "Deletes the specified SslCertificate resource.",
123499	//   "httpMethod": "DELETE",
123500	//   "id": "compute.sslCertificates.delete",
123501	//   "parameterOrder": [
123502	//     "project",
123503	//     "sslCertificate"
123504	//   ],
123505	//   "parameters": {
123506	//     "project": {
123507	//       "description": "Project ID for this request.",
123508	//       "location": "path",
123509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123510	//       "required": true,
123511	//       "type": "string"
123512	//     },
123513	//     "requestId": {
123514	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123515	//       "location": "query",
123516	//       "type": "string"
123517	//     },
123518	//     "sslCertificate": {
123519	//       "description": "Name of the SslCertificate resource to delete.",
123520	//       "location": "path",
123521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123522	//       "required": true,
123523	//       "type": "string"
123524	//     }
123525	//   },
123526	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
123527	//   "response": {
123528	//     "$ref": "Operation"
123529	//   },
123530	//   "scopes": [
123531	//     "https://www.googleapis.com/auth/cloud-platform",
123532	//     "https://www.googleapis.com/auth/compute"
123533	//   ]
123534	// }
123535
123536}
123537
123538// method id "compute.sslCertificates.get":
123539
123540type SslCertificatesGetCall struct {
123541	s              *Service
123542	project        string
123543	sslCertificate string
123544	urlParams_     gensupport.URLParams
123545	ifNoneMatch_   string
123546	ctx_           context.Context
123547	header_        http.Header
123548}
123549
123550// Get: Returns the specified SslCertificate resource. Gets a list of
123551// available SSL certificates by making a list() request.
123552func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
123553	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123554	c.project = project
123555	c.sslCertificate = sslCertificate
123556	return c
123557}
123558
123559// Fields allows partial responses to be retrieved. See
123560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123561// for more information.
123562func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
123563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123564	return c
123565}
123566
123567// IfNoneMatch sets the optional parameter which makes the operation
123568// fail if the object's ETag matches the given value. This is useful for
123569// getting updates only after the object has changed since the last
123570// request. Use googleapi.IsNotModified to check whether the response
123571// error from Do is the result of In-None-Match.
123572func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
123573	c.ifNoneMatch_ = entityTag
123574	return c
123575}
123576
123577// Context sets the context to be used in this call's Do method. Any
123578// pending HTTP request will be aborted if the provided context is
123579// canceled.
123580func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
123581	c.ctx_ = ctx
123582	return c
123583}
123584
123585// Header returns an http.Header that can be modified by the caller to
123586// add HTTP headers to the request.
123587func (c *SslCertificatesGetCall) Header() http.Header {
123588	if c.header_ == nil {
123589		c.header_ = make(http.Header)
123590	}
123591	return c.header_
123592}
123593
123594func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
123595	reqHeaders := make(http.Header)
123596	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123597	for k, v := range c.header_ {
123598		reqHeaders[k] = v
123599	}
123600	reqHeaders.Set("User-Agent", c.s.userAgent())
123601	if c.ifNoneMatch_ != "" {
123602		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123603	}
123604	var body io.Reader = nil
123605	c.urlParams_.Set("alt", alt)
123606	c.urlParams_.Set("prettyPrint", "false")
123607	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
123608	urls += "?" + c.urlParams_.Encode()
123609	req, err := http.NewRequest("GET", urls, body)
123610	if err != nil {
123611		return nil, err
123612	}
123613	req.Header = reqHeaders
123614	googleapi.Expand(req.URL, map[string]string{
123615		"project":        c.project,
123616		"sslCertificate": c.sslCertificate,
123617	})
123618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123619}
123620
123621// Do executes the "compute.sslCertificates.get" call.
123622// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
123623// status code is an error. Response headers are in either
123624// *SslCertificate.ServerResponse.Header or (if a response was returned
123625// at all) in error.(*googleapi.Error).Header. Use
123626// googleapi.IsNotModified to check whether the returned error was
123627// because http.StatusNotModified was returned.
123628func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
123629	gensupport.SetOptions(c.urlParams_, opts...)
123630	res, err := c.doRequest("json")
123631	if res != nil && res.StatusCode == http.StatusNotModified {
123632		if res.Body != nil {
123633			res.Body.Close()
123634		}
123635		return nil, &googleapi.Error{
123636			Code:   res.StatusCode,
123637			Header: res.Header,
123638		}
123639	}
123640	if err != nil {
123641		return nil, err
123642	}
123643	defer googleapi.CloseBody(res)
123644	if err := googleapi.CheckResponse(res); err != nil {
123645		return nil, err
123646	}
123647	ret := &SslCertificate{
123648		ServerResponse: googleapi.ServerResponse{
123649			Header:         res.Header,
123650			HTTPStatusCode: res.StatusCode,
123651		},
123652	}
123653	target := &ret
123654	if err := gensupport.DecodeResponse(target, res); err != nil {
123655		return nil, err
123656	}
123657	return ret, nil
123658	// {
123659	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
123660	//   "httpMethod": "GET",
123661	//   "id": "compute.sslCertificates.get",
123662	//   "parameterOrder": [
123663	//     "project",
123664	//     "sslCertificate"
123665	//   ],
123666	//   "parameters": {
123667	//     "project": {
123668	//       "description": "Project ID for this request.",
123669	//       "location": "path",
123670	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123671	//       "required": true,
123672	//       "type": "string"
123673	//     },
123674	//     "sslCertificate": {
123675	//       "description": "Name of the SslCertificate resource to return.",
123676	//       "location": "path",
123677	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123678	//       "required": true,
123679	//       "type": "string"
123680	//     }
123681	//   },
123682	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
123683	//   "response": {
123684	//     "$ref": "SslCertificate"
123685	//   },
123686	//   "scopes": [
123687	//     "https://www.googleapis.com/auth/cloud-platform",
123688	//     "https://www.googleapis.com/auth/compute",
123689	//     "https://www.googleapis.com/auth/compute.readonly"
123690	//   ]
123691	// }
123692
123693}
123694
123695// method id "compute.sslCertificates.insert":
123696
123697type SslCertificatesInsertCall struct {
123698	s              *Service
123699	project        string
123700	sslcertificate *SslCertificate
123701	urlParams_     gensupport.URLParams
123702	ctx_           context.Context
123703	header_        http.Header
123704}
123705
123706// Insert: Creates a SslCertificate resource in the specified project
123707// using the data included in the request.
123708func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
123709	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123710	c.project = project
123711	c.sslcertificate = sslcertificate
123712	return c
123713}
123714
123715// RequestId sets the optional parameter "requestId": An optional
123716// request ID to identify requests. Specify a unique request ID so that
123717// if you must retry your request, the server will know to ignore the
123718// request if it has already been completed.
123719//
123720// For example, consider a situation where you make an initial request
123721// and the request times out. If you make the request again with the
123722// same request ID, the server can check if original operation with the
123723// same request ID was received, and if so, will ignore the second
123724// request. This prevents clients from accidentally creating duplicate
123725// commitments.
123726//
123727// The request ID must be a valid UUID with the exception that zero UUID
123728// is not supported (00000000-0000-0000-0000-000000000000).
123729func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
123730	c.urlParams_.Set("requestId", requestId)
123731	return c
123732}
123733
123734// Fields allows partial responses to be retrieved. See
123735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123736// for more information.
123737func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
123738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123739	return c
123740}
123741
123742// Context sets the context to be used in this call's Do method. Any
123743// pending HTTP request will be aborted if the provided context is
123744// canceled.
123745func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
123746	c.ctx_ = ctx
123747	return c
123748}
123749
123750// Header returns an http.Header that can be modified by the caller to
123751// add HTTP headers to the request.
123752func (c *SslCertificatesInsertCall) Header() http.Header {
123753	if c.header_ == nil {
123754		c.header_ = make(http.Header)
123755	}
123756	return c.header_
123757}
123758
123759func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
123760	reqHeaders := make(http.Header)
123761	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123762	for k, v := range c.header_ {
123763		reqHeaders[k] = v
123764	}
123765	reqHeaders.Set("User-Agent", c.s.userAgent())
123766	var body io.Reader = nil
123767	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
123768	if err != nil {
123769		return nil, err
123770	}
123771	reqHeaders.Set("Content-Type", "application/json")
123772	c.urlParams_.Set("alt", alt)
123773	c.urlParams_.Set("prettyPrint", "false")
123774	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
123775	urls += "?" + c.urlParams_.Encode()
123776	req, err := http.NewRequest("POST", urls, body)
123777	if err != nil {
123778		return nil, err
123779	}
123780	req.Header = reqHeaders
123781	googleapi.Expand(req.URL, map[string]string{
123782		"project": c.project,
123783	})
123784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123785}
123786
123787// Do executes the "compute.sslCertificates.insert" call.
123788// Exactly one of *Operation or error will be non-nil. Any non-2xx
123789// status code is an error. Response headers are in either
123790// *Operation.ServerResponse.Header or (if a response was returned at
123791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123792// to check whether the returned error was because
123793// http.StatusNotModified was returned.
123794func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123795	gensupport.SetOptions(c.urlParams_, opts...)
123796	res, err := c.doRequest("json")
123797	if res != nil && res.StatusCode == http.StatusNotModified {
123798		if res.Body != nil {
123799			res.Body.Close()
123800		}
123801		return nil, &googleapi.Error{
123802			Code:   res.StatusCode,
123803			Header: res.Header,
123804		}
123805	}
123806	if err != nil {
123807		return nil, err
123808	}
123809	defer googleapi.CloseBody(res)
123810	if err := googleapi.CheckResponse(res); err != nil {
123811		return nil, err
123812	}
123813	ret := &Operation{
123814		ServerResponse: googleapi.ServerResponse{
123815			Header:         res.Header,
123816			HTTPStatusCode: res.StatusCode,
123817		},
123818	}
123819	target := &ret
123820	if err := gensupport.DecodeResponse(target, res); err != nil {
123821		return nil, err
123822	}
123823	return ret, nil
123824	// {
123825	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
123826	//   "httpMethod": "POST",
123827	//   "id": "compute.sslCertificates.insert",
123828	//   "parameterOrder": [
123829	//     "project"
123830	//   ],
123831	//   "parameters": {
123832	//     "project": {
123833	//       "description": "Project ID for this request.",
123834	//       "location": "path",
123835	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123836	//       "required": true,
123837	//       "type": "string"
123838	//     },
123839	//     "requestId": {
123840	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123841	//       "location": "query",
123842	//       "type": "string"
123843	//     }
123844	//   },
123845	//   "path": "{project}/global/sslCertificates",
123846	//   "request": {
123847	//     "$ref": "SslCertificate"
123848	//   },
123849	//   "response": {
123850	//     "$ref": "Operation"
123851	//   },
123852	//   "scopes": [
123853	//     "https://www.googleapis.com/auth/cloud-platform",
123854	//     "https://www.googleapis.com/auth/compute"
123855	//   ]
123856	// }
123857
123858}
123859
123860// method id "compute.sslCertificates.list":
123861
123862type SslCertificatesListCall struct {
123863	s            *Service
123864	project      string
123865	urlParams_   gensupport.URLParams
123866	ifNoneMatch_ string
123867	ctx_         context.Context
123868	header_      http.Header
123869}
123870
123871// List: Retrieves the list of SslCertificate resources available to the
123872// specified project.
123873func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
123874	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123875	c.project = project
123876	return c
123877}
123878
123879// Filter sets the optional parameter "filter": A filter expression that
123880// filters resources listed in the response. The expression must specify
123881// the field name, a comparison operator, and the value that you want to
123882// use for filtering. The value must be a string, a number, or a
123883// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123884// `<`.
123885//
123886// For example, if you are filtering Compute Engine instances, you can
123887// exclude instances named `example-instance` by specifying `name !=
123888// example-instance`.
123889//
123890// You can also filter nested fields. For example, you could specify
123891// `scheduling.automaticRestart = false` to include instances only if
123892// they are not scheduled for automatic restarts. You can use filtering
123893// on nested fields to filter based on resource labels.
123894//
123895// To filter on multiple expressions, provide each separate expression
123896// within parentheses. For example: ``` (scheduling.automaticRestart =
123897// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
123898// is an `AND` expression. However, you can include `AND` and `OR`
123899// expressions explicitly. For example: ``` (cpuPlatform = "Intel
123900// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
123901// (scheduling.automaticRestart = true) ```
123902func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
123903	c.urlParams_.Set("filter", filter)
123904	return c
123905}
123906
123907// MaxResults sets the optional parameter "maxResults": The maximum
123908// number of results per page that should be returned. If the number of
123909// available results is larger than `maxResults`, Compute Engine returns
123910// a `nextPageToken` that can be used to get the next page of results in
123911// subsequent list requests. Acceptable values are `0` to `500`,
123912// inclusive. (Default: `500`)
123913func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
123914	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123915	return c
123916}
123917
123918// OrderBy sets the optional parameter "orderBy": Sorts list results by
123919// a certain order. By default, results are returned in alphanumerical
123920// order based on the resource name.
123921//
123922// You can also sort results in descending order based on the creation
123923// timestamp using `orderBy="creationTimestamp desc". This sorts
123924// results based on the `creationTimestamp` field in reverse
123925// chronological order (newest result first). Use this to sort resources
123926// like operations so that the newest operation is returned
123927// first.
123928//
123929// Currently, only sorting by `name` or `creationTimestamp desc` is
123930// supported.
123931func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
123932	c.urlParams_.Set("orderBy", orderBy)
123933	return c
123934}
123935
123936// PageToken sets the optional parameter "pageToken": Specifies a page
123937// token to use. Set `pageToken` to the `nextPageToken` returned by a
123938// previous list request to get the next page of results.
123939func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
123940	c.urlParams_.Set("pageToken", pageToken)
123941	return c
123942}
123943
123944// Fields allows partial responses to be retrieved. See
123945// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123946// for more information.
123947func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
123948	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123949	return c
123950}
123951
123952// IfNoneMatch sets the optional parameter which makes the operation
123953// fail if the object's ETag matches the given value. This is useful for
123954// getting updates only after the object has changed since the last
123955// request. Use googleapi.IsNotModified to check whether the response
123956// error from Do is the result of In-None-Match.
123957func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
123958	c.ifNoneMatch_ = entityTag
123959	return c
123960}
123961
123962// Context sets the context to be used in this call's Do method. Any
123963// pending HTTP request will be aborted if the provided context is
123964// canceled.
123965func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
123966	c.ctx_ = ctx
123967	return c
123968}
123969
123970// Header returns an http.Header that can be modified by the caller to
123971// add HTTP headers to the request.
123972func (c *SslCertificatesListCall) Header() http.Header {
123973	if c.header_ == nil {
123974		c.header_ = make(http.Header)
123975	}
123976	return c.header_
123977}
123978
123979func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
123980	reqHeaders := make(http.Header)
123981	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123982	for k, v := range c.header_ {
123983		reqHeaders[k] = v
123984	}
123985	reqHeaders.Set("User-Agent", c.s.userAgent())
123986	if c.ifNoneMatch_ != "" {
123987		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123988	}
123989	var body io.Reader = nil
123990	c.urlParams_.Set("alt", alt)
123991	c.urlParams_.Set("prettyPrint", "false")
123992	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
123993	urls += "?" + c.urlParams_.Encode()
123994	req, err := http.NewRequest("GET", urls, body)
123995	if err != nil {
123996		return nil, err
123997	}
123998	req.Header = reqHeaders
123999	googleapi.Expand(req.URL, map[string]string{
124000		"project": c.project,
124001	})
124002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124003}
124004
124005// Do executes the "compute.sslCertificates.list" call.
124006// Exactly one of *SslCertificateList or error will be non-nil. Any
124007// non-2xx status code is an error. Response headers are in either
124008// *SslCertificateList.ServerResponse.Header or (if a response was
124009// returned at all) in error.(*googleapi.Error).Header. Use
124010// googleapi.IsNotModified to check whether the returned error was
124011// because http.StatusNotModified was returned.
124012func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
124013	gensupport.SetOptions(c.urlParams_, opts...)
124014	res, err := c.doRequest("json")
124015	if res != nil && res.StatusCode == http.StatusNotModified {
124016		if res.Body != nil {
124017			res.Body.Close()
124018		}
124019		return nil, &googleapi.Error{
124020			Code:   res.StatusCode,
124021			Header: res.Header,
124022		}
124023	}
124024	if err != nil {
124025		return nil, err
124026	}
124027	defer googleapi.CloseBody(res)
124028	if err := googleapi.CheckResponse(res); err != nil {
124029		return nil, err
124030	}
124031	ret := &SslCertificateList{
124032		ServerResponse: googleapi.ServerResponse{
124033			Header:         res.Header,
124034			HTTPStatusCode: res.StatusCode,
124035		},
124036	}
124037	target := &ret
124038	if err := gensupport.DecodeResponse(target, res); err != nil {
124039		return nil, err
124040	}
124041	return ret, nil
124042	// {
124043	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
124044	//   "httpMethod": "GET",
124045	//   "id": "compute.sslCertificates.list",
124046	//   "parameterOrder": [
124047	//     "project"
124048	//   ],
124049	//   "parameters": {
124050	//     "filter": {
124051	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
124052	//       "location": "query",
124053	//       "type": "string"
124054	//     },
124055	//     "maxResults": {
124056	//       "default": "500",
124057	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
124058	//       "format": "uint32",
124059	//       "location": "query",
124060	//       "minimum": "0",
124061	//       "type": "integer"
124062	//     },
124063	//     "orderBy": {
124064	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
124065	//       "location": "query",
124066	//       "type": "string"
124067	//     },
124068	//     "pageToken": {
124069	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
124070	//       "location": "query",
124071	//       "type": "string"
124072	//     },
124073	//     "project": {
124074	//       "description": "Project ID for this request.",
124075	//       "location": "path",
124076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124077	//       "required": true,
124078	//       "type": "string"
124079	//     }
124080	//   },
124081	//   "path": "{project}/global/sslCertificates",
124082	//   "response": {
124083	//     "$ref": "SslCertificateList"
124084	//   },
124085	//   "scopes": [
124086	//     "https://www.googleapis.com/auth/cloud-platform",
124087	//     "https://www.googleapis.com/auth/compute",
124088	//     "https://www.googleapis.com/auth/compute.readonly"
124089	//   ]
124090	// }
124091
124092}
124093
124094// Pages invokes f for each page of results.
124095// A non-nil error returned from f will halt the iteration.
124096// The provided context supersedes any context provided to the Context method.
124097func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
124098	c.ctx_ = ctx
124099	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124100	for {
124101		x, err := c.Do()
124102		if err != nil {
124103			return err
124104		}
124105		if err := f(x); err != nil {
124106			return err
124107		}
124108		if x.NextPageToken == "" {
124109			return nil
124110		}
124111		c.PageToken(x.NextPageToken)
124112	}
124113}
124114
124115// method id "compute.sslPolicies.delete":
124116
124117type SslPoliciesDeleteCall struct {
124118	s          *Service
124119	project    string
124120	sslPolicy  string
124121	urlParams_ gensupport.URLParams
124122	ctx_       context.Context
124123	header_    http.Header
124124}
124125
124126// Delete: Deletes the specified SSL policy. The SSL policy resource can
124127// be deleted only if it is not in use by any TargetHttpsProxy or
124128// TargetSslProxy resources.
124129func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
124130	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124131	c.project = project
124132	c.sslPolicy = sslPolicy
124133	return c
124134}
124135
124136// RequestId sets the optional parameter "requestId": An optional
124137// request ID to identify requests. Specify a unique request ID so that
124138// if you must retry your request, the server will know to ignore the
124139// request if it has already been completed.
124140//
124141// For example, consider a situation where you make an initial request
124142// and the request times out. If you make the request again with the
124143// same request ID, the server can check if original operation with the
124144// same request ID was received, and if so, will ignore the second
124145// request. This prevents clients from accidentally creating duplicate
124146// commitments.
124147//
124148// The request ID must be a valid UUID with the exception that zero UUID
124149// is not supported (00000000-0000-0000-0000-000000000000).
124150func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
124151	c.urlParams_.Set("requestId", requestId)
124152	return c
124153}
124154
124155// Fields allows partial responses to be retrieved. See
124156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124157// for more information.
124158func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
124159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124160	return c
124161}
124162
124163// Context sets the context to be used in this call's Do method. Any
124164// pending HTTP request will be aborted if the provided context is
124165// canceled.
124166func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
124167	c.ctx_ = ctx
124168	return c
124169}
124170
124171// Header returns an http.Header that can be modified by the caller to
124172// add HTTP headers to the request.
124173func (c *SslPoliciesDeleteCall) Header() http.Header {
124174	if c.header_ == nil {
124175		c.header_ = make(http.Header)
124176	}
124177	return c.header_
124178}
124179
124180func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
124181	reqHeaders := make(http.Header)
124182	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124183	for k, v := range c.header_ {
124184		reqHeaders[k] = v
124185	}
124186	reqHeaders.Set("User-Agent", c.s.userAgent())
124187	var body io.Reader = nil
124188	c.urlParams_.Set("alt", alt)
124189	c.urlParams_.Set("prettyPrint", "false")
124190	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
124191	urls += "?" + c.urlParams_.Encode()
124192	req, err := http.NewRequest("DELETE", urls, body)
124193	if err != nil {
124194		return nil, err
124195	}
124196	req.Header = reqHeaders
124197	googleapi.Expand(req.URL, map[string]string{
124198		"project":   c.project,
124199		"sslPolicy": c.sslPolicy,
124200	})
124201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124202}
124203
124204// Do executes the "compute.sslPolicies.delete" call.
124205// Exactly one of *Operation or error will be non-nil. Any non-2xx
124206// status code is an error. Response headers are in either
124207// *Operation.ServerResponse.Header or (if a response was returned at
124208// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124209// to check whether the returned error was because
124210// http.StatusNotModified was returned.
124211func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124212	gensupport.SetOptions(c.urlParams_, opts...)
124213	res, err := c.doRequest("json")
124214	if res != nil && res.StatusCode == http.StatusNotModified {
124215		if res.Body != nil {
124216			res.Body.Close()
124217		}
124218		return nil, &googleapi.Error{
124219			Code:   res.StatusCode,
124220			Header: res.Header,
124221		}
124222	}
124223	if err != nil {
124224		return nil, err
124225	}
124226	defer googleapi.CloseBody(res)
124227	if err := googleapi.CheckResponse(res); err != nil {
124228		return nil, err
124229	}
124230	ret := &Operation{
124231		ServerResponse: googleapi.ServerResponse{
124232			Header:         res.Header,
124233			HTTPStatusCode: res.StatusCode,
124234		},
124235	}
124236	target := &ret
124237	if err := gensupport.DecodeResponse(target, res); err != nil {
124238		return nil, err
124239	}
124240	return ret, nil
124241	// {
124242	//   "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.",
124243	//   "httpMethod": "DELETE",
124244	//   "id": "compute.sslPolicies.delete",
124245	//   "parameterOrder": [
124246	//     "project",
124247	//     "sslPolicy"
124248	//   ],
124249	//   "parameters": {
124250	//     "project": {
124251	//       "description": "Project ID for this request.",
124252	//       "location": "path",
124253	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124254	//       "required": true,
124255	//       "type": "string"
124256	//     },
124257	//     "requestId": {
124258	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124259	//       "location": "query",
124260	//       "type": "string"
124261	//     },
124262	//     "sslPolicy": {
124263	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
124264	//       "location": "path",
124265	//       "required": true,
124266	//       "type": "string"
124267	//     }
124268	//   },
124269	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
124270	//   "response": {
124271	//     "$ref": "Operation"
124272	//   },
124273	//   "scopes": [
124274	//     "https://www.googleapis.com/auth/cloud-platform",
124275	//     "https://www.googleapis.com/auth/compute"
124276	//   ]
124277	// }
124278
124279}
124280
124281// method id "compute.sslPolicies.get":
124282
124283type SslPoliciesGetCall struct {
124284	s            *Service
124285	project      string
124286	sslPolicy    string
124287	urlParams_   gensupport.URLParams
124288	ifNoneMatch_ string
124289	ctx_         context.Context
124290	header_      http.Header
124291}
124292
124293// Get: Lists all of the ordered rules present in a single specified
124294// policy.
124295func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
124296	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124297	c.project = project
124298	c.sslPolicy = sslPolicy
124299	return c
124300}
124301
124302// Fields allows partial responses to be retrieved. See
124303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124304// for more information.
124305func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
124306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124307	return c
124308}
124309
124310// IfNoneMatch sets the optional parameter which makes the operation
124311// fail if the object's ETag matches the given value. This is useful for
124312// getting updates only after the object has changed since the last
124313// request. Use googleapi.IsNotModified to check whether the response
124314// error from Do is the result of In-None-Match.
124315func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
124316	c.ifNoneMatch_ = entityTag
124317	return c
124318}
124319
124320// Context sets the context to be used in this call's Do method. Any
124321// pending HTTP request will be aborted if the provided context is
124322// canceled.
124323func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
124324	c.ctx_ = ctx
124325	return c
124326}
124327
124328// Header returns an http.Header that can be modified by the caller to
124329// add HTTP headers to the request.
124330func (c *SslPoliciesGetCall) Header() http.Header {
124331	if c.header_ == nil {
124332		c.header_ = make(http.Header)
124333	}
124334	return c.header_
124335}
124336
124337func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
124338	reqHeaders := make(http.Header)
124339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124340	for k, v := range c.header_ {
124341		reqHeaders[k] = v
124342	}
124343	reqHeaders.Set("User-Agent", c.s.userAgent())
124344	if c.ifNoneMatch_ != "" {
124345		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124346	}
124347	var body io.Reader = nil
124348	c.urlParams_.Set("alt", alt)
124349	c.urlParams_.Set("prettyPrint", "false")
124350	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
124351	urls += "?" + c.urlParams_.Encode()
124352	req, err := http.NewRequest("GET", urls, body)
124353	if err != nil {
124354		return nil, err
124355	}
124356	req.Header = reqHeaders
124357	googleapi.Expand(req.URL, map[string]string{
124358		"project":   c.project,
124359		"sslPolicy": c.sslPolicy,
124360	})
124361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124362}
124363
124364// Do executes the "compute.sslPolicies.get" call.
124365// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
124366// status code is an error. Response headers are in either
124367// *SslPolicy.ServerResponse.Header or (if a response was returned at
124368// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124369// to check whether the returned error was because
124370// http.StatusNotModified was returned.
124371func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
124372	gensupport.SetOptions(c.urlParams_, opts...)
124373	res, err := c.doRequest("json")
124374	if res != nil && res.StatusCode == http.StatusNotModified {
124375		if res.Body != nil {
124376			res.Body.Close()
124377		}
124378		return nil, &googleapi.Error{
124379			Code:   res.StatusCode,
124380			Header: res.Header,
124381		}
124382	}
124383	if err != nil {
124384		return nil, err
124385	}
124386	defer googleapi.CloseBody(res)
124387	if err := googleapi.CheckResponse(res); err != nil {
124388		return nil, err
124389	}
124390	ret := &SslPolicy{
124391		ServerResponse: googleapi.ServerResponse{
124392			Header:         res.Header,
124393			HTTPStatusCode: res.StatusCode,
124394		},
124395	}
124396	target := &ret
124397	if err := gensupport.DecodeResponse(target, res); err != nil {
124398		return nil, err
124399	}
124400	return ret, nil
124401	// {
124402	//   "description": "Lists all of the ordered rules present in a single specified policy.",
124403	//   "httpMethod": "GET",
124404	//   "id": "compute.sslPolicies.get",
124405	//   "parameterOrder": [
124406	//     "project",
124407	//     "sslPolicy"
124408	//   ],
124409	//   "parameters": {
124410	//     "project": {
124411	//       "description": "Project ID for this request.",
124412	//       "location": "path",
124413	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124414	//       "required": true,
124415	//       "type": "string"
124416	//     },
124417	//     "sslPolicy": {
124418	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
124419	//       "location": "path",
124420	//       "required": true,
124421	//       "type": "string"
124422	//     }
124423	//   },
124424	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
124425	//   "response": {
124426	//     "$ref": "SslPolicy"
124427	//   },
124428	//   "scopes": [
124429	//     "https://www.googleapis.com/auth/cloud-platform",
124430	//     "https://www.googleapis.com/auth/compute",
124431	//     "https://www.googleapis.com/auth/compute.readonly"
124432	//   ]
124433	// }
124434
124435}
124436
124437// method id "compute.sslPolicies.insert":
124438
124439type SslPoliciesInsertCall struct {
124440	s          *Service
124441	project    string
124442	sslpolicy  *SslPolicy
124443	urlParams_ gensupport.URLParams
124444	ctx_       context.Context
124445	header_    http.Header
124446}
124447
124448// Insert: Returns the specified SSL policy resource. Gets a list of
124449// available SSL policies by making a list() request.
124450func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
124451	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124452	c.project = project
124453	c.sslpolicy = sslpolicy
124454	return c
124455}
124456
124457// RequestId sets the optional parameter "requestId": An optional
124458// request ID to identify requests. Specify a unique request ID so that
124459// if you must retry your request, the server will know to ignore the
124460// request if it has already been completed.
124461//
124462// For example, consider a situation where you make an initial request
124463// and the request times out. If you make the request again with the
124464// same request ID, the server can check if original operation with the
124465// same request ID was received, and if so, will ignore the second
124466// request. This prevents clients from accidentally creating duplicate
124467// commitments.
124468//
124469// The request ID must be a valid UUID with the exception that zero UUID
124470// is not supported (00000000-0000-0000-0000-000000000000).
124471func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
124472	c.urlParams_.Set("requestId", requestId)
124473	return c
124474}
124475
124476// Fields allows partial responses to be retrieved. See
124477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124478// for more information.
124479func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
124480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124481	return c
124482}
124483
124484// Context sets the context to be used in this call's Do method. Any
124485// pending HTTP request will be aborted if the provided context is
124486// canceled.
124487func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
124488	c.ctx_ = ctx
124489	return c
124490}
124491
124492// Header returns an http.Header that can be modified by the caller to
124493// add HTTP headers to the request.
124494func (c *SslPoliciesInsertCall) Header() http.Header {
124495	if c.header_ == nil {
124496		c.header_ = make(http.Header)
124497	}
124498	return c.header_
124499}
124500
124501func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
124502	reqHeaders := make(http.Header)
124503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124504	for k, v := range c.header_ {
124505		reqHeaders[k] = v
124506	}
124507	reqHeaders.Set("User-Agent", c.s.userAgent())
124508	var body io.Reader = nil
124509	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
124510	if err != nil {
124511		return nil, err
124512	}
124513	reqHeaders.Set("Content-Type", "application/json")
124514	c.urlParams_.Set("alt", alt)
124515	c.urlParams_.Set("prettyPrint", "false")
124516	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
124517	urls += "?" + c.urlParams_.Encode()
124518	req, err := http.NewRequest("POST", urls, body)
124519	if err != nil {
124520		return nil, err
124521	}
124522	req.Header = reqHeaders
124523	googleapi.Expand(req.URL, map[string]string{
124524		"project": c.project,
124525	})
124526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124527}
124528
124529// Do executes the "compute.sslPolicies.insert" call.
124530// Exactly one of *Operation or error will be non-nil. Any non-2xx
124531// status code is an error. Response headers are in either
124532// *Operation.ServerResponse.Header or (if a response was returned at
124533// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124534// to check whether the returned error was because
124535// http.StatusNotModified was returned.
124536func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124537	gensupport.SetOptions(c.urlParams_, opts...)
124538	res, err := c.doRequest("json")
124539	if res != nil && res.StatusCode == http.StatusNotModified {
124540		if res.Body != nil {
124541			res.Body.Close()
124542		}
124543		return nil, &googleapi.Error{
124544			Code:   res.StatusCode,
124545			Header: res.Header,
124546		}
124547	}
124548	if err != nil {
124549		return nil, err
124550	}
124551	defer googleapi.CloseBody(res)
124552	if err := googleapi.CheckResponse(res); err != nil {
124553		return nil, err
124554	}
124555	ret := &Operation{
124556		ServerResponse: googleapi.ServerResponse{
124557			Header:         res.Header,
124558			HTTPStatusCode: res.StatusCode,
124559		},
124560	}
124561	target := &ret
124562	if err := gensupport.DecodeResponse(target, res); err != nil {
124563		return nil, err
124564	}
124565	return ret, nil
124566	// {
124567	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
124568	//   "httpMethod": "POST",
124569	//   "id": "compute.sslPolicies.insert",
124570	//   "parameterOrder": [
124571	//     "project"
124572	//   ],
124573	//   "parameters": {
124574	//     "project": {
124575	//       "description": "Project ID for this request.",
124576	//       "location": "path",
124577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124578	//       "required": true,
124579	//       "type": "string"
124580	//     },
124581	//     "requestId": {
124582	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124583	//       "location": "query",
124584	//       "type": "string"
124585	//     }
124586	//   },
124587	//   "path": "{project}/global/sslPolicies",
124588	//   "request": {
124589	//     "$ref": "SslPolicy"
124590	//   },
124591	//   "response": {
124592	//     "$ref": "Operation"
124593	//   },
124594	//   "scopes": [
124595	//     "https://www.googleapis.com/auth/cloud-platform",
124596	//     "https://www.googleapis.com/auth/compute"
124597	//   ]
124598	// }
124599
124600}
124601
124602// method id "compute.sslPolicies.list":
124603
124604type SslPoliciesListCall struct {
124605	s            *Service
124606	project      string
124607	urlParams_   gensupport.URLParams
124608	ifNoneMatch_ string
124609	ctx_         context.Context
124610	header_      http.Header
124611}
124612
124613// List: Lists all the SSL policies that have been configured for the
124614// specified project.
124615func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
124616	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124617	c.project = project
124618	return c
124619}
124620
124621// Filter sets the optional parameter "filter": A filter expression that
124622// filters resources listed in the response. The expression must specify
124623// the field name, a comparison operator, and the value that you want to
124624// use for filtering. The value must be a string, a number, or a
124625// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124626// `<`.
124627//
124628// For example, if you are filtering Compute Engine instances, you can
124629// exclude instances named `example-instance` by specifying `name !=
124630// example-instance`.
124631//
124632// You can also filter nested fields. For example, you could specify
124633// `scheduling.automaticRestart = false` to include instances only if
124634// they are not scheduled for automatic restarts. You can use filtering
124635// on nested fields to filter based on resource labels.
124636//
124637// To filter on multiple expressions, provide each separate expression
124638// within parentheses. For example: ``` (scheduling.automaticRestart =
124639// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124640// is an `AND` expression. However, you can include `AND` and `OR`
124641// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124642// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124643// (scheduling.automaticRestart = true) ```
124644func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
124645	c.urlParams_.Set("filter", filter)
124646	return c
124647}
124648
124649// MaxResults sets the optional parameter "maxResults": The maximum
124650// number of results per page that should be returned. If the number of
124651// available results is larger than `maxResults`, Compute Engine returns
124652// a `nextPageToken` that can be used to get the next page of results in
124653// subsequent list requests. Acceptable values are `0` to `500`,
124654// inclusive. (Default: `500`)
124655func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
124656	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124657	return c
124658}
124659
124660// OrderBy sets the optional parameter "orderBy": Sorts list results by
124661// a certain order. By default, results are returned in alphanumerical
124662// order based on the resource name.
124663//
124664// You can also sort results in descending order based on the creation
124665// timestamp using `orderBy="creationTimestamp desc". This sorts
124666// results based on the `creationTimestamp` field in reverse
124667// chronological order (newest result first). Use this to sort resources
124668// like operations so that the newest operation is returned
124669// first.
124670//
124671// Currently, only sorting by `name` or `creationTimestamp desc` is
124672// supported.
124673func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
124674	c.urlParams_.Set("orderBy", orderBy)
124675	return c
124676}
124677
124678// PageToken sets the optional parameter "pageToken": Specifies a page
124679// token to use. Set `pageToken` to the `nextPageToken` returned by a
124680// previous list request to get the next page of results.
124681func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
124682	c.urlParams_.Set("pageToken", pageToken)
124683	return c
124684}
124685
124686// Fields allows partial responses to be retrieved. See
124687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124688// for more information.
124689func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
124690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124691	return c
124692}
124693
124694// IfNoneMatch sets the optional parameter which makes the operation
124695// fail if the object's ETag matches the given value. This is useful for
124696// getting updates only after the object has changed since the last
124697// request. Use googleapi.IsNotModified to check whether the response
124698// error from Do is the result of In-None-Match.
124699func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
124700	c.ifNoneMatch_ = entityTag
124701	return c
124702}
124703
124704// Context sets the context to be used in this call's Do method. Any
124705// pending HTTP request will be aborted if the provided context is
124706// canceled.
124707func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
124708	c.ctx_ = ctx
124709	return c
124710}
124711
124712// Header returns an http.Header that can be modified by the caller to
124713// add HTTP headers to the request.
124714func (c *SslPoliciesListCall) Header() http.Header {
124715	if c.header_ == nil {
124716		c.header_ = make(http.Header)
124717	}
124718	return c.header_
124719}
124720
124721func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
124722	reqHeaders := make(http.Header)
124723	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124724	for k, v := range c.header_ {
124725		reqHeaders[k] = v
124726	}
124727	reqHeaders.Set("User-Agent", c.s.userAgent())
124728	if c.ifNoneMatch_ != "" {
124729		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124730	}
124731	var body io.Reader = nil
124732	c.urlParams_.Set("alt", alt)
124733	c.urlParams_.Set("prettyPrint", "false")
124734	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
124735	urls += "?" + c.urlParams_.Encode()
124736	req, err := http.NewRequest("GET", urls, body)
124737	if err != nil {
124738		return nil, err
124739	}
124740	req.Header = reqHeaders
124741	googleapi.Expand(req.URL, map[string]string{
124742		"project": c.project,
124743	})
124744	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124745}
124746
124747// Do executes the "compute.sslPolicies.list" call.
124748// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
124749// status code is an error. Response headers are in either
124750// *SslPoliciesList.ServerResponse.Header or (if a response was returned
124751// at all) in error.(*googleapi.Error).Header. Use
124752// googleapi.IsNotModified to check whether the returned error was
124753// because http.StatusNotModified was returned.
124754func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
124755	gensupport.SetOptions(c.urlParams_, opts...)
124756	res, err := c.doRequest("json")
124757	if res != nil && res.StatusCode == http.StatusNotModified {
124758		if res.Body != nil {
124759			res.Body.Close()
124760		}
124761		return nil, &googleapi.Error{
124762			Code:   res.StatusCode,
124763			Header: res.Header,
124764		}
124765	}
124766	if err != nil {
124767		return nil, err
124768	}
124769	defer googleapi.CloseBody(res)
124770	if err := googleapi.CheckResponse(res); err != nil {
124771		return nil, err
124772	}
124773	ret := &SslPoliciesList{
124774		ServerResponse: googleapi.ServerResponse{
124775			Header:         res.Header,
124776			HTTPStatusCode: res.StatusCode,
124777		},
124778	}
124779	target := &ret
124780	if err := gensupport.DecodeResponse(target, res); err != nil {
124781		return nil, err
124782	}
124783	return ret, nil
124784	// {
124785	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
124786	//   "httpMethod": "GET",
124787	//   "id": "compute.sslPolicies.list",
124788	//   "parameterOrder": [
124789	//     "project"
124790	//   ],
124791	//   "parameters": {
124792	//     "filter": {
124793	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
124794	//       "location": "query",
124795	//       "type": "string"
124796	//     },
124797	//     "maxResults": {
124798	//       "default": "500",
124799	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
124800	//       "format": "uint32",
124801	//       "location": "query",
124802	//       "minimum": "0",
124803	//       "type": "integer"
124804	//     },
124805	//     "orderBy": {
124806	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
124807	//       "location": "query",
124808	//       "type": "string"
124809	//     },
124810	//     "pageToken": {
124811	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
124812	//       "location": "query",
124813	//       "type": "string"
124814	//     },
124815	//     "project": {
124816	//       "description": "Project ID for this request.",
124817	//       "location": "path",
124818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124819	//       "required": true,
124820	//       "type": "string"
124821	//     }
124822	//   },
124823	//   "path": "{project}/global/sslPolicies",
124824	//   "response": {
124825	//     "$ref": "SslPoliciesList"
124826	//   },
124827	//   "scopes": [
124828	//     "https://www.googleapis.com/auth/cloud-platform",
124829	//     "https://www.googleapis.com/auth/compute",
124830	//     "https://www.googleapis.com/auth/compute.readonly"
124831	//   ]
124832	// }
124833
124834}
124835
124836// Pages invokes f for each page of results.
124837// A non-nil error returned from f will halt the iteration.
124838// The provided context supersedes any context provided to the Context method.
124839func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
124840	c.ctx_ = ctx
124841	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124842	for {
124843		x, err := c.Do()
124844		if err != nil {
124845			return err
124846		}
124847		if err := f(x); err != nil {
124848			return err
124849		}
124850		if x.NextPageToken == "" {
124851			return nil
124852		}
124853		c.PageToken(x.NextPageToken)
124854	}
124855}
124856
124857// method id "compute.sslPolicies.listAvailableFeatures":
124858
124859type SslPoliciesListAvailableFeaturesCall struct {
124860	s            *Service
124861	project      string
124862	urlParams_   gensupport.URLParams
124863	ifNoneMatch_ string
124864	ctx_         context.Context
124865	header_      http.Header
124866}
124867
124868// ListAvailableFeatures: Lists all features that can be specified in
124869// the SSL policy when using custom profile.
124870func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
124871	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124872	c.project = project
124873	return c
124874}
124875
124876// Filter sets the optional parameter "filter": A filter expression that
124877// filters resources listed in the response. The expression must specify
124878// the field name, a comparison operator, and the value that you want to
124879// use for filtering. The value must be a string, a number, or a
124880// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124881// `<`.
124882//
124883// For example, if you are filtering Compute Engine instances, you can
124884// exclude instances named `example-instance` by specifying `name !=
124885// example-instance`.
124886//
124887// You can also filter nested fields. For example, you could specify
124888// `scheduling.automaticRestart = false` to include instances only if
124889// they are not scheduled for automatic restarts. You can use filtering
124890// on nested fields to filter based on resource labels.
124891//
124892// To filter on multiple expressions, provide each separate expression
124893// within parentheses. For example: ``` (scheduling.automaticRestart =
124894// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124895// is an `AND` expression. However, you can include `AND` and `OR`
124896// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124897// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124898// (scheduling.automaticRestart = true) ```
124899func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
124900	c.urlParams_.Set("filter", filter)
124901	return c
124902}
124903
124904// MaxResults sets the optional parameter "maxResults": The maximum
124905// number of results per page that should be returned. If the number of
124906// available results is larger than `maxResults`, Compute Engine returns
124907// a `nextPageToken` that can be used to get the next page of results in
124908// subsequent list requests. Acceptable values are `0` to `500`,
124909// inclusive. (Default: `500`)
124910func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
124911	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124912	return c
124913}
124914
124915// OrderBy sets the optional parameter "orderBy": Sorts list results by
124916// a certain order. By default, results are returned in alphanumerical
124917// order based on the resource name.
124918//
124919// You can also sort results in descending order based on the creation
124920// timestamp using `orderBy="creationTimestamp desc". This sorts
124921// results based on the `creationTimestamp` field in reverse
124922// chronological order (newest result first). Use this to sort resources
124923// like operations so that the newest operation is returned
124924// first.
124925//
124926// Currently, only sorting by `name` or `creationTimestamp desc` is
124927// supported.
124928func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
124929	c.urlParams_.Set("orderBy", orderBy)
124930	return c
124931}
124932
124933// PageToken sets the optional parameter "pageToken": Specifies a page
124934// token to use. Set `pageToken` to the `nextPageToken` returned by a
124935// previous list request to get the next page of results.
124936func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
124937	c.urlParams_.Set("pageToken", pageToken)
124938	return c
124939}
124940
124941// Fields allows partial responses to be retrieved. See
124942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124943// for more information.
124944func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
124945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124946	return c
124947}
124948
124949// IfNoneMatch sets the optional parameter which makes the operation
124950// fail if the object's ETag matches the given value. This is useful for
124951// getting updates only after the object has changed since the last
124952// request. Use googleapi.IsNotModified to check whether the response
124953// error from Do is the result of In-None-Match.
124954func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
124955	c.ifNoneMatch_ = entityTag
124956	return c
124957}
124958
124959// Context sets the context to be used in this call's Do method. Any
124960// pending HTTP request will be aborted if the provided context is
124961// canceled.
124962func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
124963	c.ctx_ = ctx
124964	return c
124965}
124966
124967// Header returns an http.Header that can be modified by the caller to
124968// add HTTP headers to the request.
124969func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
124970	if c.header_ == nil {
124971		c.header_ = make(http.Header)
124972	}
124973	return c.header_
124974}
124975
124976func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
124977	reqHeaders := make(http.Header)
124978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124979	for k, v := range c.header_ {
124980		reqHeaders[k] = v
124981	}
124982	reqHeaders.Set("User-Agent", c.s.userAgent())
124983	if c.ifNoneMatch_ != "" {
124984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124985	}
124986	var body io.Reader = nil
124987	c.urlParams_.Set("alt", alt)
124988	c.urlParams_.Set("prettyPrint", "false")
124989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
124990	urls += "?" + c.urlParams_.Encode()
124991	req, err := http.NewRequest("GET", urls, body)
124992	if err != nil {
124993		return nil, err
124994	}
124995	req.Header = reqHeaders
124996	googleapi.Expand(req.URL, map[string]string{
124997		"project": c.project,
124998	})
124999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125000}
125001
125002// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
125003// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
125004// will be non-nil. Any non-2xx status code is an error. Response
125005// headers are in either
125006// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
125007// (if a response was returned at all) in
125008// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
125009// whether the returned error was because http.StatusNotModified was
125010// returned.
125011func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, 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 := &SslPoliciesListAvailableFeaturesResponse{
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": "Lists all features that can be specified in the SSL policy when using custom profile.",
125043	//   "httpMethod": "GET",
125044	//   "id": "compute.sslPolicies.listAvailableFeatures",
125045	//   "parameterOrder": [
125046	//     "project"
125047	//   ],
125048	//   "parameters": {
125049	//     "filter": {
125050	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125051	//       "location": "query",
125052	//       "type": "string"
125053	//     },
125054	//     "maxResults": {
125055	//       "default": "500",
125056	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125057	//       "format": "uint32",
125058	//       "location": "query",
125059	//       "minimum": "0",
125060	//       "type": "integer"
125061	//     },
125062	//     "orderBy": {
125063	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125064	//       "location": "query",
125065	//       "type": "string"
125066	//     },
125067	//     "pageToken": {
125068	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125069	//       "location": "query",
125070	//       "type": "string"
125071	//     },
125072	//     "project": {
125073	//       "description": "Project ID for this request.",
125074	//       "location": "path",
125075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125076	//       "required": true,
125077	//       "type": "string"
125078	//     }
125079	//   },
125080	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
125081	//   "response": {
125082	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
125083	//   },
125084	//   "scopes": [
125085	//     "https://www.googleapis.com/auth/cloud-platform",
125086	//     "https://www.googleapis.com/auth/compute",
125087	//     "https://www.googleapis.com/auth/compute.readonly"
125088	//   ]
125089	// }
125090
125091}
125092
125093// method id "compute.sslPolicies.patch":
125094
125095type SslPoliciesPatchCall struct {
125096	s          *Service
125097	project    string
125098	sslPolicy  string
125099	sslpolicy  *SslPolicy
125100	urlParams_ gensupport.URLParams
125101	ctx_       context.Context
125102	header_    http.Header
125103}
125104
125105// Patch: Patches the specified SSL policy with the data included in the
125106// request.
125107func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
125108	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125109	c.project = project
125110	c.sslPolicy = sslPolicy
125111	c.sslpolicy = sslpolicy
125112	return c
125113}
125114
125115// RequestId sets the optional parameter "requestId": An optional
125116// request ID to identify requests. Specify a unique request ID so that
125117// if you must retry your request, the server will know to ignore the
125118// request if it has already been completed.
125119//
125120// For example, consider a situation where you make an initial request
125121// and the request times out. If you make the request again with the
125122// same request ID, the server can check if original operation with the
125123// same request ID was received, and if so, will ignore the second
125124// request. This prevents clients from accidentally creating duplicate
125125// commitments.
125126//
125127// The request ID must be a valid UUID with the exception that zero UUID
125128// is not supported (00000000-0000-0000-0000-000000000000).
125129func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
125130	c.urlParams_.Set("requestId", requestId)
125131	return c
125132}
125133
125134// Fields allows partial responses to be retrieved. See
125135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125136// for more information.
125137func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
125138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125139	return c
125140}
125141
125142// Context sets the context to be used in this call's Do method. Any
125143// pending HTTP request will be aborted if the provided context is
125144// canceled.
125145func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
125146	c.ctx_ = ctx
125147	return c
125148}
125149
125150// Header returns an http.Header that can be modified by the caller to
125151// add HTTP headers to the request.
125152func (c *SslPoliciesPatchCall) Header() http.Header {
125153	if c.header_ == nil {
125154		c.header_ = make(http.Header)
125155	}
125156	return c.header_
125157}
125158
125159func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
125160	reqHeaders := make(http.Header)
125161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125162	for k, v := range c.header_ {
125163		reqHeaders[k] = v
125164	}
125165	reqHeaders.Set("User-Agent", c.s.userAgent())
125166	var body io.Reader = nil
125167	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
125168	if err != nil {
125169		return nil, err
125170	}
125171	reqHeaders.Set("Content-Type", "application/json")
125172	c.urlParams_.Set("alt", alt)
125173	c.urlParams_.Set("prettyPrint", "false")
125174	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
125175	urls += "?" + c.urlParams_.Encode()
125176	req, err := http.NewRequest("PATCH", urls, body)
125177	if err != nil {
125178		return nil, err
125179	}
125180	req.Header = reqHeaders
125181	googleapi.Expand(req.URL, map[string]string{
125182		"project":   c.project,
125183		"sslPolicy": c.sslPolicy,
125184	})
125185	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125186}
125187
125188// Do executes the "compute.sslPolicies.patch" call.
125189// Exactly one of *Operation or error will be non-nil. Any non-2xx
125190// status code is an error. Response headers are in either
125191// *Operation.ServerResponse.Header or (if a response was returned at
125192// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125193// to check whether the returned error was because
125194// http.StatusNotModified was returned.
125195func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125196	gensupport.SetOptions(c.urlParams_, opts...)
125197	res, err := c.doRequest("json")
125198	if res != nil && res.StatusCode == http.StatusNotModified {
125199		if res.Body != nil {
125200			res.Body.Close()
125201		}
125202		return nil, &googleapi.Error{
125203			Code:   res.StatusCode,
125204			Header: res.Header,
125205		}
125206	}
125207	if err != nil {
125208		return nil, err
125209	}
125210	defer googleapi.CloseBody(res)
125211	if err := googleapi.CheckResponse(res); err != nil {
125212		return nil, err
125213	}
125214	ret := &Operation{
125215		ServerResponse: googleapi.ServerResponse{
125216			Header:         res.Header,
125217			HTTPStatusCode: res.StatusCode,
125218		},
125219	}
125220	target := &ret
125221	if err := gensupport.DecodeResponse(target, res); err != nil {
125222		return nil, err
125223	}
125224	return ret, nil
125225	// {
125226	//   "description": "Patches the specified SSL policy with the data included in the request.",
125227	//   "httpMethod": "PATCH",
125228	//   "id": "compute.sslPolicies.patch",
125229	//   "parameterOrder": [
125230	//     "project",
125231	//     "sslPolicy"
125232	//   ],
125233	//   "parameters": {
125234	//     "project": {
125235	//       "description": "Project ID for this request.",
125236	//       "location": "path",
125237	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125238	//       "required": true,
125239	//       "type": "string"
125240	//     },
125241	//     "requestId": {
125242	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125243	//       "location": "query",
125244	//       "type": "string"
125245	//     },
125246	//     "sslPolicy": {
125247	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
125248	//       "location": "path",
125249	//       "required": true,
125250	//       "type": "string"
125251	//     }
125252	//   },
125253	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
125254	//   "request": {
125255	//     "$ref": "SslPolicy"
125256	//   },
125257	//   "response": {
125258	//     "$ref": "Operation"
125259	//   },
125260	//   "scopes": [
125261	//     "https://www.googleapis.com/auth/cloud-platform",
125262	//     "https://www.googleapis.com/auth/compute"
125263	//   ]
125264	// }
125265
125266}
125267
125268// method id "compute.subnetworks.aggregatedList":
125269
125270type SubnetworksAggregatedListCall struct {
125271	s            *Service
125272	project      string
125273	urlParams_   gensupport.URLParams
125274	ifNoneMatch_ string
125275	ctx_         context.Context
125276	header_      http.Header
125277}
125278
125279// AggregatedList: Retrieves an aggregated list of subnetworks.
125280func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
125281	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125282	c.project = project
125283	return c
125284}
125285
125286// Filter sets the optional parameter "filter": A filter expression that
125287// filters resources listed in the response. The expression must specify
125288// the field name, a comparison operator, and the value that you want to
125289// use for filtering. The value must be a string, a number, or a
125290// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125291// `<`.
125292//
125293// For example, if you are filtering Compute Engine instances, you can
125294// exclude instances named `example-instance` by specifying `name !=
125295// example-instance`.
125296//
125297// You can also filter nested fields. For example, you could specify
125298// `scheduling.automaticRestart = false` to include instances only if
125299// they are not scheduled for automatic restarts. You can use filtering
125300// on nested fields to filter based on resource labels.
125301//
125302// To filter on multiple expressions, provide each separate expression
125303// within parentheses. For example: ``` (scheduling.automaticRestart =
125304// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
125305// is an `AND` expression. However, you can include `AND` and `OR`
125306// expressions explicitly. For example: ``` (cpuPlatform = "Intel
125307// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
125308// (scheduling.automaticRestart = true) ```
125309func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
125310	c.urlParams_.Set("filter", filter)
125311	return c
125312}
125313
125314// IncludeAllScopes sets the optional parameter "includeAllScopes":
125315// Indicates whether every visible scope for each scope type (zone,
125316// region, global) should be included in the response. For new resource
125317// types added after this field, the flag has no effect as new resource
125318// types will always include every visible scope for each scope type in
125319// response. For resource types which predate this field, if this flag
125320// is omitted or false, only scopes of the scope types where the
125321// resource type is expected to be found will be included.
125322func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
125323	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
125324	return c
125325}
125326
125327// MaxResults sets the optional parameter "maxResults": The maximum
125328// number of results per page that should be returned. If the number of
125329// available results is larger than `maxResults`, Compute Engine returns
125330// a `nextPageToken` that can be used to get the next page of results in
125331// subsequent list requests. Acceptable values are `0` to `500`,
125332// inclusive. (Default: `500`)
125333func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
125334	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125335	return c
125336}
125337
125338// OrderBy sets the optional parameter "orderBy": Sorts list results by
125339// a certain order. By default, results are returned in alphanumerical
125340// order based on the resource name.
125341//
125342// You can also sort results in descending order based on the creation
125343// timestamp using `orderBy="creationTimestamp desc". This sorts
125344// results based on the `creationTimestamp` field in reverse
125345// chronological order (newest result first). Use this to sort resources
125346// like operations so that the newest operation is returned
125347// first.
125348//
125349// Currently, only sorting by `name` or `creationTimestamp desc` is
125350// supported.
125351func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
125352	c.urlParams_.Set("orderBy", orderBy)
125353	return c
125354}
125355
125356// PageToken sets the optional parameter "pageToken": Specifies a page
125357// token to use. Set `pageToken` to the `nextPageToken` returned by a
125358// previous list request to get the next page of results.
125359func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
125360	c.urlParams_.Set("pageToken", pageToken)
125361	return c
125362}
125363
125364// Fields allows partial responses to be retrieved. See
125365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125366// for more information.
125367func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
125368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125369	return c
125370}
125371
125372// IfNoneMatch sets the optional parameter which makes the operation
125373// fail if the object's ETag matches the given value. This is useful for
125374// getting updates only after the object has changed since the last
125375// request. Use googleapi.IsNotModified to check whether the response
125376// error from Do is the result of In-None-Match.
125377func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
125378	c.ifNoneMatch_ = entityTag
125379	return c
125380}
125381
125382// Context sets the context to be used in this call's Do method. Any
125383// pending HTTP request will be aborted if the provided context is
125384// canceled.
125385func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
125386	c.ctx_ = ctx
125387	return c
125388}
125389
125390// Header returns an http.Header that can be modified by the caller to
125391// add HTTP headers to the request.
125392func (c *SubnetworksAggregatedListCall) Header() http.Header {
125393	if c.header_ == nil {
125394		c.header_ = make(http.Header)
125395	}
125396	return c.header_
125397}
125398
125399func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
125400	reqHeaders := make(http.Header)
125401	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125402	for k, v := range c.header_ {
125403		reqHeaders[k] = v
125404	}
125405	reqHeaders.Set("User-Agent", c.s.userAgent())
125406	if c.ifNoneMatch_ != "" {
125407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125408	}
125409	var body io.Reader = nil
125410	c.urlParams_.Set("alt", alt)
125411	c.urlParams_.Set("prettyPrint", "false")
125412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
125413	urls += "?" + c.urlParams_.Encode()
125414	req, err := http.NewRequest("GET", urls, body)
125415	if err != nil {
125416		return nil, err
125417	}
125418	req.Header = reqHeaders
125419	googleapi.Expand(req.URL, map[string]string{
125420		"project": c.project,
125421	})
125422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125423}
125424
125425// Do executes the "compute.subnetworks.aggregatedList" call.
125426// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
125427// Any non-2xx status code is an error. Response headers are in either
125428// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
125429// returned at all) in error.(*googleapi.Error).Header. Use
125430// googleapi.IsNotModified to check whether the returned error was
125431// because http.StatusNotModified was returned.
125432func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
125433	gensupport.SetOptions(c.urlParams_, opts...)
125434	res, err := c.doRequest("json")
125435	if res != nil && res.StatusCode == http.StatusNotModified {
125436		if res.Body != nil {
125437			res.Body.Close()
125438		}
125439		return nil, &googleapi.Error{
125440			Code:   res.StatusCode,
125441			Header: res.Header,
125442		}
125443	}
125444	if err != nil {
125445		return nil, err
125446	}
125447	defer googleapi.CloseBody(res)
125448	if err := googleapi.CheckResponse(res); err != nil {
125449		return nil, err
125450	}
125451	ret := &SubnetworkAggregatedList{
125452		ServerResponse: googleapi.ServerResponse{
125453			Header:         res.Header,
125454			HTTPStatusCode: res.StatusCode,
125455		},
125456	}
125457	target := &ret
125458	if err := gensupport.DecodeResponse(target, res); err != nil {
125459		return nil, err
125460	}
125461	return ret, nil
125462	// {
125463	//   "description": "Retrieves an aggregated list of subnetworks.",
125464	//   "httpMethod": "GET",
125465	//   "id": "compute.subnetworks.aggregatedList",
125466	//   "parameterOrder": [
125467	//     "project"
125468	//   ],
125469	//   "parameters": {
125470	//     "filter": {
125471	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125472	//       "location": "query",
125473	//       "type": "string"
125474	//     },
125475	//     "includeAllScopes": {
125476	//       "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.",
125477	//       "location": "query",
125478	//       "type": "boolean"
125479	//     },
125480	//     "maxResults": {
125481	//       "default": "500",
125482	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125483	//       "format": "uint32",
125484	//       "location": "query",
125485	//       "minimum": "0",
125486	//       "type": "integer"
125487	//     },
125488	//     "orderBy": {
125489	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125490	//       "location": "query",
125491	//       "type": "string"
125492	//     },
125493	//     "pageToken": {
125494	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125495	//       "location": "query",
125496	//       "type": "string"
125497	//     },
125498	//     "project": {
125499	//       "description": "Project ID for this request.",
125500	//       "location": "path",
125501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125502	//       "required": true,
125503	//       "type": "string"
125504	//     }
125505	//   },
125506	//   "path": "{project}/aggregated/subnetworks",
125507	//   "response": {
125508	//     "$ref": "SubnetworkAggregatedList"
125509	//   },
125510	//   "scopes": [
125511	//     "https://www.googleapis.com/auth/cloud-platform",
125512	//     "https://www.googleapis.com/auth/compute",
125513	//     "https://www.googleapis.com/auth/compute.readonly"
125514	//   ]
125515	// }
125516
125517}
125518
125519// Pages invokes f for each page of results.
125520// A non-nil error returned from f will halt the iteration.
125521// The provided context supersedes any context provided to the Context method.
125522func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
125523	c.ctx_ = ctx
125524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125525	for {
125526		x, err := c.Do()
125527		if err != nil {
125528			return err
125529		}
125530		if err := f(x); err != nil {
125531			return err
125532		}
125533		if x.NextPageToken == "" {
125534			return nil
125535		}
125536		c.PageToken(x.NextPageToken)
125537	}
125538}
125539
125540// method id "compute.subnetworks.delete":
125541
125542type SubnetworksDeleteCall struct {
125543	s          *Service
125544	project    string
125545	region     string
125546	subnetwork string
125547	urlParams_ gensupport.URLParams
125548	ctx_       context.Context
125549	header_    http.Header
125550}
125551
125552// Delete: Deletes the specified subnetwork.
125553func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
125554	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125555	c.project = project
125556	c.region = region
125557	c.subnetwork = subnetwork
125558	return c
125559}
125560
125561// RequestId sets the optional parameter "requestId": An optional
125562// request ID to identify requests. Specify a unique request ID so that
125563// if you must retry your request, the server will know to ignore the
125564// request if it has already been completed.
125565//
125566// For example, consider a situation where you make an initial request
125567// and the request times out. If you make the request again with the
125568// same request ID, the server can check if original operation with the
125569// same request ID was received, and if so, will ignore the second
125570// request. This prevents clients from accidentally creating duplicate
125571// commitments.
125572//
125573// The request ID must be a valid UUID with the exception that zero UUID
125574// is not supported (00000000-0000-0000-0000-000000000000).
125575func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
125576	c.urlParams_.Set("requestId", requestId)
125577	return c
125578}
125579
125580// Fields allows partial responses to be retrieved. See
125581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125582// for more information.
125583func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
125584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125585	return c
125586}
125587
125588// Context sets the context to be used in this call's Do method. Any
125589// pending HTTP request will be aborted if the provided context is
125590// canceled.
125591func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
125592	c.ctx_ = ctx
125593	return c
125594}
125595
125596// Header returns an http.Header that can be modified by the caller to
125597// add HTTP headers to the request.
125598func (c *SubnetworksDeleteCall) Header() http.Header {
125599	if c.header_ == nil {
125600		c.header_ = make(http.Header)
125601	}
125602	return c.header_
125603}
125604
125605func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
125606	reqHeaders := make(http.Header)
125607	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125608	for k, v := range c.header_ {
125609		reqHeaders[k] = v
125610	}
125611	reqHeaders.Set("User-Agent", c.s.userAgent())
125612	var body io.Reader = nil
125613	c.urlParams_.Set("alt", alt)
125614	c.urlParams_.Set("prettyPrint", "false")
125615	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
125616	urls += "?" + c.urlParams_.Encode()
125617	req, err := http.NewRequest("DELETE", urls, body)
125618	if err != nil {
125619		return nil, err
125620	}
125621	req.Header = reqHeaders
125622	googleapi.Expand(req.URL, map[string]string{
125623		"project":    c.project,
125624		"region":     c.region,
125625		"subnetwork": c.subnetwork,
125626	})
125627	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125628}
125629
125630// Do executes the "compute.subnetworks.delete" call.
125631// Exactly one of *Operation or error will be non-nil. Any non-2xx
125632// status code is an error. Response headers are in either
125633// *Operation.ServerResponse.Header or (if a response was returned at
125634// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125635// to check whether the returned error was because
125636// http.StatusNotModified was returned.
125637func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125638	gensupport.SetOptions(c.urlParams_, opts...)
125639	res, err := c.doRequest("json")
125640	if res != nil && res.StatusCode == http.StatusNotModified {
125641		if res.Body != nil {
125642			res.Body.Close()
125643		}
125644		return nil, &googleapi.Error{
125645			Code:   res.StatusCode,
125646			Header: res.Header,
125647		}
125648	}
125649	if err != nil {
125650		return nil, err
125651	}
125652	defer googleapi.CloseBody(res)
125653	if err := googleapi.CheckResponse(res); err != nil {
125654		return nil, err
125655	}
125656	ret := &Operation{
125657		ServerResponse: googleapi.ServerResponse{
125658			Header:         res.Header,
125659			HTTPStatusCode: res.StatusCode,
125660		},
125661	}
125662	target := &ret
125663	if err := gensupport.DecodeResponse(target, res); err != nil {
125664		return nil, err
125665	}
125666	return ret, nil
125667	// {
125668	//   "description": "Deletes the specified subnetwork.",
125669	//   "httpMethod": "DELETE",
125670	//   "id": "compute.subnetworks.delete",
125671	//   "parameterOrder": [
125672	//     "project",
125673	//     "region",
125674	//     "subnetwork"
125675	//   ],
125676	//   "parameters": {
125677	//     "project": {
125678	//       "description": "Project ID for this request.",
125679	//       "location": "path",
125680	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125681	//       "required": true,
125682	//       "type": "string"
125683	//     },
125684	//     "region": {
125685	//       "description": "Name of the region scoping this request.",
125686	//       "location": "path",
125687	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125688	//       "required": true,
125689	//       "type": "string"
125690	//     },
125691	//     "requestId": {
125692	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125693	//       "location": "query",
125694	//       "type": "string"
125695	//     },
125696	//     "subnetwork": {
125697	//       "description": "Name of the Subnetwork resource to delete.",
125698	//       "location": "path",
125699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125700	//       "required": true,
125701	//       "type": "string"
125702	//     }
125703	//   },
125704	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
125705	//   "response": {
125706	//     "$ref": "Operation"
125707	//   },
125708	//   "scopes": [
125709	//     "https://www.googleapis.com/auth/cloud-platform",
125710	//     "https://www.googleapis.com/auth/compute"
125711	//   ]
125712	// }
125713
125714}
125715
125716// method id "compute.subnetworks.expandIpCidrRange":
125717
125718type SubnetworksExpandIpCidrRangeCall struct {
125719	s                                   *Service
125720	project                             string
125721	region                              string
125722	subnetwork                          string
125723	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
125724	urlParams_                          gensupport.URLParams
125725	ctx_                                context.Context
125726	header_                             http.Header
125727}
125728
125729// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
125730// specified value.
125731func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
125732	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125733	c.project = project
125734	c.region = region
125735	c.subnetwork = subnetwork
125736	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
125737	return c
125738}
125739
125740// RequestId sets the optional parameter "requestId": An optional
125741// request ID to identify requests. Specify a unique request ID so that
125742// if you must retry your request, the server will know to ignore the
125743// request if it has already been completed.
125744//
125745// For example, consider a situation where you make an initial request
125746// and the request times out. If you make the request again with the
125747// same request ID, the server can check if original operation with the
125748// same request ID was received, and if so, will ignore the second
125749// request. This prevents clients from accidentally creating duplicate
125750// commitments.
125751//
125752// The request ID must be a valid UUID with the exception that zero UUID
125753// is not supported (00000000-0000-0000-0000-000000000000).
125754func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
125755	c.urlParams_.Set("requestId", requestId)
125756	return c
125757}
125758
125759// Fields allows partial responses to be retrieved. See
125760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125761// for more information.
125762func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
125763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125764	return c
125765}
125766
125767// Context sets the context to be used in this call's Do method. Any
125768// pending HTTP request will be aborted if the provided context is
125769// canceled.
125770func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
125771	c.ctx_ = ctx
125772	return c
125773}
125774
125775// Header returns an http.Header that can be modified by the caller to
125776// add HTTP headers to the request.
125777func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
125778	if c.header_ == nil {
125779		c.header_ = make(http.Header)
125780	}
125781	return c.header_
125782}
125783
125784func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
125785	reqHeaders := make(http.Header)
125786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125787	for k, v := range c.header_ {
125788		reqHeaders[k] = v
125789	}
125790	reqHeaders.Set("User-Agent", c.s.userAgent())
125791	var body io.Reader = nil
125792	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
125793	if err != nil {
125794		return nil, err
125795	}
125796	reqHeaders.Set("Content-Type", "application/json")
125797	c.urlParams_.Set("alt", alt)
125798	c.urlParams_.Set("prettyPrint", "false")
125799	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
125800	urls += "?" + c.urlParams_.Encode()
125801	req, err := http.NewRequest("POST", urls, body)
125802	if err != nil {
125803		return nil, err
125804	}
125805	req.Header = reqHeaders
125806	googleapi.Expand(req.URL, map[string]string{
125807		"project":    c.project,
125808		"region":     c.region,
125809		"subnetwork": c.subnetwork,
125810	})
125811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125812}
125813
125814// Do executes the "compute.subnetworks.expandIpCidrRange" call.
125815// Exactly one of *Operation or error will be non-nil. Any non-2xx
125816// status code is an error. Response headers are in either
125817// *Operation.ServerResponse.Header or (if a response was returned at
125818// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125819// to check whether the returned error was because
125820// http.StatusNotModified was returned.
125821func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125822	gensupport.SetOptions(c.urlParams_, opts...)
125823	res, err := c.doRequest("json")
125824	if res != nil && res.StatusCode == http.StatusNotModified {
125825		if res.Body != nil {
125826			res.Body.Close()
125827		}
125828		return nil, &googleapi.Error{
125829			Code:   res.StatusCode,
125830			Header: res.Header,
125831		}
125832	}
125833	if err != nil {
125834		return nil, err
125835	}
125836	defer googleapi.CloseBody(res)
125837	if err := googleapi.CheckResponse(res); err != nil {
125838		return nil, err
125839	}
125840	ret := &Operation{
125841		ServerResponse: googleapi.ServerResponse{
125842			Header:         res.Header,
125843			HTTPStatusCode: res.StatusCode,
125844		},
125845	}
125846	target := &ret
125847	if err := gensupport.DecodeResponse(target, res); err != nil {
125848		return nil, err
125849	}
125850	return ret, nil
125851	// {
125852	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
125853	//   "httpMethod": "POST",
125854	//   "id": "compute.subnetworks.expandIpCidrRange",
125855	//   "parameterOrder": [
125856	//     "project",
125857	//     "region",
125858	//     "subnetwork"
125859	//   ],
125860	//   "parameters": {
125861	//     "project": {
125862	//       "description": "Project ID for this request.",
125863	//       "location": "path",
125864	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125865	//       "required": true,
125866	//       "type": "string"
125867	//     },
125868	//     "region": {
125869	//       "description": "Name of the region scoping this request.",
125870	//       "location": "path",
125871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125872	//       "required": true,
125873	//       "type": "string"
125874	//     },
125875	//     "requestId": {
125876	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125877	//       "location": "query",
125878	//       "type": "string"
125879	//     },
125880	//     "subnetwork": {
125881	//       "description": "Name of the Subnetwork resource to update.",
125882	//       "location": "path",
125883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125884	//       "required": true,
125885	//       "type": "string"
125886	//     }
125887	//   },
125888	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
125889	//   "request": {
125890	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
125891	//   },
125892	//   "response": {
125893	//     "$ref": "Operation"
125894	//   },
125895	//   "scopes": [
125896	//     "https://www.googleapis.com/auth/cloud-platform",
125897	//     "https://www.googleapis.com/auth/compute"
125898	//   ]
125899	// }
125900
125901}
125902
125903// method id "compute.subnetworks.get":
125904
125905type SubnetworksGetCall struct {
125906	s            *Service
125907	project      string
125908	region       string
125909	subnetwork   string
125910	urlParams_   gensupport.URLParams
125911	ifNoneMatch_ string
125912	ctx_         context.Context
125913	header_      http.Header
125914}
125915
125916// Get: Returns the specified subnetwork. Gets a list of available
125917// subnetworks list() request.
125918func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
125919	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125920	c.project = project
125921	c.region = region
125922	c.subnetwork = subnetwork
125923	return c
125924}
125925
125926// Fields allows partial responses to be retrieved. See
125927// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125928// for more information.
125929func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
125930	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125931	return c
125932}
125933
125934// IfNoneMatch sets the optional parameter which makes the operation
125935// fail if the object's ETag matches the given value. This is useful for
125936// getting updates only after the object has changed since the last
125937// request. Use googleapi.IsNotModified to check whether the response
125938// error from Do is the result of In-None-Match.
125939func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
125940	c.ifNoneMatch_ = entityTag
125941	return c
125942}
125943
125944// Context sets the context to be used in this call's Do method. Any
125945// pending HTTP request will be aborted if the provided context is
125946// canceled.
125947func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
125948	c.ctx_ = ctx
125949	return c
125950}
125951
125952// Header returns an http.Header that can be modified by the caller to
125953// add HTTP headers to the request.
125954func (c *SubnetworksGetCall) Header() http.Header {
125955	if c.header_ == nil {
125956		c.header_ = make(http.Header)
125957	}
125958	return c.header_
125959}
125960
125961func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
125962	reqHeaders := make(http.Header)
125963	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125964	for k, v := range c.header_ {
125965		reqHeaders[k] = v
125966	}
125967	reqHeaders.Set("User-Agent", c.s.userAgent())
125968	if c.ifNoneMatch_ != "" {
125969		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125970	}
125971	var body io.Reader = nil
125972	c.urlParams_.Set("alt", alt)
125973	c.urlParams_.Set("prettyPrint", "false")
125974	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
125975	urls += "?" + c.urlParams_.Encode()
125976	req, err := http.NewRequest("GET", urls, body)
125977	if err != nil {
125978		return nil, err
125979	}
125980	req.Header = reqHeaders
125981	googleapi.Expand(req.URL, map[string]string{
125982		"project":    c.project,
125983		"region":     c.region,
125984		"subnetwork": c.subnetwork,
125985	})
125986	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125987}
125988
125989// Do executes the "compute.subnetworks.get" call.
125990// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
125991// status code is an error. Response headers are in either
125992// *Subnetwork.ServerResponse.Header or (if a response was returned at
125993// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125994// to check whether the returned error was because
125995// http.StatusNotModified was returned.
125996func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
125997	gensupport.SetOptions(c.urlParams_, opts...)
125998	res, err := c.doRequest("json")
125999	if res != nil && res.StatusCode == http.StatusNotModified {
126000		if res.Body != nil {
126001			res.Body.Close()
126002		}
126003		return nil, &googleapi.Error{
126004			Code:   res.StatusCode,
126005			Header: res.Header,
126006		}
126007	}
126008	if err != nil {
126009		return nil, err
126010	}
126011	defer googleapi.CloseBody(res)
126012	if err := googleapi.CheckResponse(res); err != nil {
126013		return nil, err
126014	}
126015	ret := &Subnetwork{
126016		ServerResponse: googleapi.ServerResponse{
126017			Header:         res.Header,
126018			HTTPStatusCode: res.StatusCode,
126019		},
126020	}
126021	target := &ret
126022	if err := gensupport.DecodeResponse(target, res); err != nil {
126023		return nil, err
126024	}
126025	return ret, nil
126026	// {
126027	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
126028	//   "httpMethod": "GET",
126029	//   "id": "compute.subnetworks.get",
126030	//   "parameterOrder": [
126031	//     "project",
126032	//     "region",
126033	//     "subnetwork"
126034	//   ],
126035	//   "parameters": {
126036	//     "project": {
126037	//       "description": "Project ID for this request.",
126038	//       "location": "path",
126039	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126040	//       "required": true,
126041	//       "type": "string"
126042	//     },
126043	//     "region": {
126044	//       "description": "Name of the region scoping this request.",
126045	//       "location": "path",
126046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126047	//       "required": true,
126048	//       "type": "string"
126049	//     },
126050	//     "subnetwork": {
126051	//       "description": "Name of the Subnetwork resource to return.",
126052	//       "location": "path",
126053	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126054	//       "required": true,
126055	//       "type": "string"
126056	//     }
126057	//   },
126058	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
126059	//   "response": {
126060	//     "$ref": "Subnetwork"
126061	//   },
126062	//   "scopes": [
126063	//     "https://www.googleapis.com/auth/cloud-platform",
126064	//     "https://www.googleapis.com/auth/compute",
126065	//     "https://www.googleapis.com/auth/compute.readonly"
126066	//   ]
126067	// }
126068
126069}
126070
126071// method id "compute.subnetworks.getIamPolicy":
126072
126073type SubnetworksGetIamPolicyCall struct {
126074	s            *Service
126075	project      string
126076	region       string
126077	resource     string
126078	urlParams_   gensupport.URLParams
126079	ifNoneMatch_ string
126080	ctx_         context.Context
126081	header_      http.Header
126082}
126083
126084// GetIamPolicy: Gets the access control policy for a resource. May be
126085// empty if no such policy or resource exists.
126086func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
126087	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126088	c.project = project
126089	c.region = region
126090	c.resource = resource
126091	return c
126092}
126093
126094// Fields allows partial responses to be retrieved. See
126095// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126096// for more information.
126097func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
126098	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126099	return c
126100}
126101
126102// IfNoneMatch sets the optional parameter which makes the operation
126103// fail if the object's ETag matches the given value. This is useful for
126104// getting updates only after the object has changed since the last
126105// request. Use googleapi.IsNotModified to check whether the response
126106// error from Do is the result of In-None-Match.
126107func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
126108	c.ifNoneMatch_ = entityTag
126109	return c
126110}
126111
126112// Context sets the context to be used in this call's Do method. Any
126113// pending HTTP request will be aborted if the provided context is
126114// canceled.
126115func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
126116	c.ctx_ = ctx
126117	return c
126118}
126119
126120// Header returns an http.Header that can be modified by the caller to
126121// add HTTP headers to the request.
126122func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
126123	if c.header_ == nil {
126124		c.header_ = make(http.Header)
126125	}
126126	return c.header_
126127}
126128
126129func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
126130	reqHeaders := make(http.Header)
126131	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126132	for k, v := range c.header_ {
126133		reqHeaders[k] = v
126134	}
126135	reqHeaders.Set("User-Agent", c.s.userAgent())
126136	if c.ifNoneMatch_ != "" {
126137		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126138	}
126139	var body io.Reader = nil
126140	c.urlParams_.Set("alt", alt)
126141	c.urlParams_.Set("prettyPrint", "false")
126142	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
126143	urls += "?" + c.urlParams_.Encode()
126144	req, err := http.NewRequest("GET", urls, body)
126145	if err != nil {
126146		return nil, err
126147	}
126148	req.Header = reqHeaders
126149	googleapi.Expand(req.URL, map[string]string{
126150		"project":  c.project,
126151		"region":   c.region,
126152		"resource": c.resource,
126153	})
126154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126155}
126156
126157// Do executes the "compute.subnetworks.getIamPolicy" call.
126158// Exactly one of *Policy or error will be non-nil. Any non-2xx status
126159// code is an error. Response headers are in either
126160// *Policy.ServerResponse.Header or (if a response was returned at all)
126161// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
126162// check whether the returned error was because http.StatusNotModified
126163// was returned.
126164func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
126165	gensupport.SetOptions(c.urlParams_, opts...)
126166	res, err := c.doRequest("json")
126167	if res != nil && res.StatusCode == http.StatusNotModified {
126168		if res.Body != nil {
126169			res.Body.Close()
126170		}
126171		return nil, &googleapi.Error{
126172			Code:   res.StatusCode,
126173			Header: res.Header,
126174		}
126175	}
126176	if err != nil {
126177		return nil, err
126178	}
126179	defer googleapi.CloseBody(res)
126180	if err := googleapi.CheckResponse(res); err != nil {
126181		return nil, err
126182	}
126183	ret := &Policy{
126184		ServerResponse: googleapi.ServerResponse{
126185			Header:         res.Header,
126186			HTTPStatusCode: res.StatusCode,
126187		},
126188	}
126189	target := &ret
126190	if err := gensupport.DecodeResponse(target, res); err != nil {
126191		return nil, err
126192	}
126193	return ret, nil
126194	// {
126195	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
126196	//   "httpMethod": "GET",
126197	//   "id": "compute.subnetworks.getIamPolicy",
126198	//   "parameterOrder": [
126199	//     "project",
126200	//     "region",
126201	//     "resource"
126202	//   ],
126203	//   "parameters": {
126204	//     "project": {
126205	//       "description": "Project ID for this request.",
126206	//       "location": "path",
126207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126208	//       "required": true,
126209	//       "type": "string"
126210	//     },
126211	//     "region": {
126212	//       "description": "The name of the region for this request.",
126213	//       "location": "path",
126214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126215	//       "required": true,
126216	//       "type": "string"
126217	//     },
126218	//     "resource": {
126219	//       "description": "Name or id of the resource for this request.",
126220	//       "location": "path",
126221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126222	//       "required": true,
126223	//       "type": "string"
126224	//     }
126225	//   },
126226	//   "path": "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
126227	//   "response": {
126228	//     "$ref": "Policy"
126229	//   },
126230	//   "scopes": [
126231	//     "https://www.googleapis.com/auth/cloud-platform",
126232	//     "https://www.googleapis.com/auth/compute",
126233	//     "https://www.googleapis.com/auth/compute.readonly"
126234	//   ]
126235	// }
126236
126237}
126238
126239// method id "compute.subnetworks.insert":
126240
126241type SubnetworksInsertCall struct {
126242	s          *Service
126243	project    string
126244	region     string
126245	subnetwork *Subnetwork
126246	urlParams_ gensupport.URLParams
126247	ctx_       context.Context
126248	header_    http.Header
126249}
126250
126251// Insert: Creates a subnetwork in the specified project using the data
126252// included in the request.
126253func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
126254	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126255	c.project = project
126256	c.region = region
126257	c.subnetwork = subnetwork
126258	return c
126259}
126260
126261// RequestId sets the optional parameter "requestId": An optional
126262// request ID to identify requests. Specify a unique request ID so that
126263// if you must retry your request, the server will know to ignore the
126264// request if it has already been completed.
126265//
126266// For example, consider a situation where you make an initial request
126267// and the request times out. If you make the request again with the
126268// same request ID, the server can check if original operation with the
126269// same request ID was received, and if so, will ignore the second
126270// request. This prevents clients from accidentally creating duplicate
126271// commitments.
126272//
126273// The request ID must be a valid UUID with the exception that zero UUID
126274// is not supported (00000000-0000-0000-0000-000000000000).
126275func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
126276	c.urlParams_.Set("requestId", requestId)
126277	return c
126278}
126279
126280// Fields allows partial responses to be retrieved. See
126281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126282// for more information.
126283func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
126284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126285	return c
126286}
126287
126288// Context sets the context to be used in this call's Do method. Any
126289// pending HTTP request will be aborted if the provided context is
126290// canceled.
126291func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
126292	c.ctx_ = ctx
126293	return c
126294}
126295
126296// Header returns an http.Header that can be modified by the caller to
126297// add HTTP headers to the request.
126298func (c *SubnetworksInsertCall) Header() http.Header {
126299	if c.header_ == nil {
126300		c.header_ = make(http.Header)
126301	}
126302	return c.header_
126303}
126304
126305func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
126306	reqHeaders := make(http.Header)
126307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126308	for k, v := range c.header_ {
126309		reqHeaders[k] = v
126310	}
126311	reqHeaders.Set("User-Agent", c.s.userAgent())
126312	var body io.Reader = nil
126313	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
126314	if err != nil {
126315		return nil, err
126316	}
126317	reqHeaders.Set("Content-Type", "application/json")
126318	c.urlParams_.Set("alt", alt)
126319	c.urlParams_.Set("prettyPrint", "false")
126320	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
126321	urls += "?" + c.urlParams_.Encode()
126322	req, err := http.NewRequest("POST", urls, body)
126323	if err != nil {
126324		return nil, err
126325	}
126326	req.Header = reqHeaders
126327	googleapi.Expand(req.URL, map[string]string{
126328		"project": c.project,
126329		"region":  c.region,
126330	})
126331	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126332}
126333
126334// Do executes the "compute.subnetworks.insert" call.
126335// Exactly one of *Operation or error will be non-nil. Any non-2xx
126336// status code is an error. Response headers are in either
126337// *Operation.ServerResponse.Header or (if a response was returned at
126338// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126339// to check whether the returned error was because
126340// http.StatusNotModified was returned.
126341func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126342	gensupport.SetOptions(c.urlParams_, opts...)
126343	res, err := c.doRequest("json")
126344	if res != nil && res.StatusCode == http.StatusNotModified {
126345		if res.Body != nil {
126346			res.Body.Close()
126347		}
126348		return nil, &googleapi.Error{
126349			Code:   res.StatusCode,
126350			Header: res.Header,
126351		}
126352	}
126353	if err != nil {
126354		return nil, err
126355	}
126356	defer googleapi.CloseBody(res)
126357	if err := googleapi.CheckResponse(res); err != nil {
126358		return nil, err
126359	}
126360	ret := &Operation{
126361		ServerResponse: googleapi.ServerResponse{
126362			Header:         res.Header,
126363			HTTPStatusCode: res.StatusCode,
126364		},
126365	}
126366	target := &ret
126367	if err := gensupport.DecodeResponse(target, res); err != nil {
126368		return nil, err
126369	}
126370	return ret, nil
126371	// {
126372	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
126373	//   "httpMethod": "POST",
126374	//   "id": "compute.subnetworks.insert",
126375	//   "parameterOrder": [
126376	//     "project",
126377	//     "region"
126378	//   ],
126379	//   "parameters": {
126380	//     "project": {
126381	//       "description": "Project ID for this request.",
126382	//       "location": "path",
126383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126384	//       "required": true,
126385	//       "type": "string"
126386	//     },
126387	//     "region": {
126388	//       "description": "Name of the region scoping this request.",
126389	//       "location": "path",
126390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126391	//       "required": true,
126392	//       "type": "string"
126393	//     },
126394	//     "requestId": {
126395	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126396	//       "location": "query",
126397	//       "type": "string"
126398	//     }
126399	//   },
126400	//   "path": "{project}/regions/{region}/subnetworks",
126401	//   "request": {
126402	//     "$ref": "Subnetwork"
126403	//   },
126404	//   "response": {
126405	//     "$ref": "Operation"
126406	//   },
126407	//   "scopes": [
126408	//     "https://www.googleapis.com/auth/cloud-platform",
126409	//     "https://www.googleapis.com/auth/compute"
126410	//   ]
126411	// }
126412
126413}
126414
126415// method id "compute.subnetworks.list":
126416
126417type SubnetworksListCall struct {
126418	s            *Service
126419	project      string
126420	region       string
126421	urlParams_   gensupport.URLParams
126422	ifNoneMatch_ string
126423	ctx_         context.Context
126424	header_      http.Header
126425}
126426
126427// List: Retrieves a list of subnetworks available to the specified
126428// project.
126429func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
126430	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126431	c.project = project
126432	c.region = region
126433	return c
126434}
126435
126436// Filter sets the optional parameter "filter": A filter expression that
126437// filters resources listed in the response. The expression must specify
126438// the field name, a comparison operator, and the value that you want to
126439// use for filtering. The value must be a string, a number, or a
126440// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126441// `<`.
126442//
126443// For example, if you are filtering Compute Engine instances, you can
126444// exclude instances named `example-instance` by specifying `name !=
126445// example-instance`.
126446//
126447// You can also filter nested fields. For example, you could specify
126448// `scheduling.automaticRestart = false` to include instances only if
126449// they are not scheduled for automatic restarts. You can use filtering
126450// on nested fields to filter based on resource labels.
126451//
126452// To filter on multiple expressions, provide each separate expression
126453// within parentheses. For example: ``` (scheduling.automaticRestart =
126454// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
126455// is an `AND` expression. However, you can include `AND` and `OR`
126456// expressions explicitly. For example: ``` (cpuPlatform = "Intel
126457// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
126458// (scheduling.automaticRestart = true) ```
126459func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
126460	c.urlParams_.Set("filter", filter)
126461	return c
126462}
126463
126464// MaxResults sets the optional parameter "maxResults": The maximum
126465// number of results per page that should be returned. If the number of
126466// available results is larger than `maxResults`, Compute Engine returns
126467// a `nextPageToken` that can be used to get the next page of results in
126468// subsequent list requests. Acceptable values are `0` to `500`,
126469// inclusive. (Default: `500`)
126470func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
126471	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126472	return c
126473}
126474
126475// OrderBy sets the optional parameter "orderBy": Sorts list results by
126476// a certain order. By default, results are returned in alphanumerical
126477// order based on the resource name.
126478//
126479// You can also sort results in descending order based on the creation
126480// timestamp using `orderBy="creationTimestamp desc". This sorts
126481// results based on the `creationTimestamp` field in reverse
126482// chronological order (newest result first). Use this to sort resources
126483// like operations so that the newest operation is returned
126484// first.
126485//
126486// Currently, only sorting by `name` or `creationTimestamp desc` is
126487// supported.
126488func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
126489	c.urlParams_.Set("orderBy", orderBy)
126490	return c
126491}
126492
126493// PageToken sets the optional parameter "pageToken": Specifies a page
126494// token to use. Set `pageToken` to the `nextPageToken` returned by a
126495// previous list request to get the next page of results.
126496func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
126497	c.urlParams_.Set("pageToken", pageToken)
126498	return c
126499}
126500
126501// Fields allows partial responses to be retrieved. See
126502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126503// for more information.
126504func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
126505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126506	return c
126507}
126508
126509// IfNoneMatch sets the optional parameter which makes the operation
126510// fail if the object's ETag matches the given value. This is useful for
126511// getting updates only after the object has changed since the last
126512// request. Use googleapi.IsNotModified to check whether the response
126513// error from Do is the result of In-None-Match.
126514func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
126515	c.ifNoneMatch_ = entityTag
126516	return c
126517}
126518
126519// Context sets the context to be used in this call's Do method. Any
126520// pending HTTP request will be aborted if the provided context is
126521// canceled.
126522func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
126523	c.ctx_ = ctx
126524	return c
126525}
126526
126527// Header returns an http.Header that can be modified by the caller to
126528// add HTTP headers to the request.
126529func (c *SubnetworksListCall) Header() http.Header {
126530	if c.header_ == nil {
126531		c.header_ = make(http.Header)
126532	}
126533	return c.header_
126534}
126535
126536func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
126537	reqHeaders := make(http.Header)
126538	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126539	for k, v := range c.header_ {
126540		reqHeaders[k] = v
126541	}
126542	reqHeaders.Set("User-Agent", c.s.userAgent())
126543	if c.ifNoneMatch_ != "" {
126544		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126545	}
126546	var body io.Reader = nil
126547	c.urlParams_.Set("alt", alt)
126548	c.urlParams_.Set("prettyPrint", "false")
126549	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
126550	urls += "?" + c.urlParams_.Encode()
126551	req, err := http.NewRequest("GET", urls, body)
126552	if err != nil {
126553		return nil, err
126554	}
126555	req.Header = reqHeaders
126556	googleapi.Expand(req.URL, map[string]string{
126557		"project": c.project,
126558		"region":  c.region,
126559	})
126560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126561}
126562
126563// Do executes the "compute.subnetworks.list" call.
126564// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
126565// status code is an error. Response headers are in either
126566// *SubnetworkList.ServerResponse.Header or (if a response was returned
126567// at all) in error.(*googleapi.Error).Header. Use
126568// googleapi.IsNotModified to check whether the returned error was
126569// because http.StatusNotModified was returned.
126570func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
126571	gensupport.SetOptions(c.urlParams_, opts...)
126572	res, err := c.doRequest("json")
126573	if res != nil && res.StatusCode == http.StatusNotModified {
126574		if res.Body != nil {
126575			res.Body.Close()
126576		}
126577		return nil, &googleapi.Error{
126578			Code:   res.StatusCode,
126579			Header: res.Header,
126580		}
126581	}
126582	if err != nil {
126583		return nil, err
126584	}
126585	defer googleapi.CloseBody(res)
126586	if err := googleapi.CheckResponse(res); err != nil {
126587		return nil, err
126588	}
126589	ret := &SubnetworkList{
126590		ServerResponse: googleapi.ServerResponse{
126591			Header:         res.Header,
126592			HTTPStatusCode: res.StatusCode,
126593		},
126594	}
126595	target := &ret
126596	if err := gensupport.DecodeResponse(target, res); err != nil {
126597		return nil, err
126598	}
126599	return ret, nil
126600	// {
126601	//   "description": "Retrieves a list of subnetworks available to the specified project.",
126602	//   "httpMethod": "GET",
126603	//   "id": "compute.subnetworks.list",
126604	//   "parameterOrder": [
126605	//     "project",
126606	//     "region"
126607	//   ],
126608	//   "parameters": {
126609	//     "filter": {
126610	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126611	//       "location": "query",
126612	//       "type": "string"
126613	//     },
126614	//     "maxResults": {
126615	//       "default": "500",
126616	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126617	//       "format": "uint32",
126618	//       "location": "query",
126619	//       "minimum": "0",
126620	//       "type": "integer"
126621	//     },
126622	//     "orderBy": {
126623	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
126624	//       "location": "query",
126625	//       "type": "string"
126626	//     },
126627	//     "pageToken": {
126628	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126629	//       "location": "query",
126630	//       "type": "string"
126631	//     },
126632	//     "project": {
126633	//       "description": "Project ID for this request.",
126634	//       "location": "path",
126635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126636	//       "required": true,
126637	//       "type": "string"
126638	//     },
126639	//     "region": {
126640	//       "description": "Name of the region scoping this request.",
126641	//       "location": "path",
126642	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126643	//       "required": true,
126644	//       "type": "string"
126645	//     }
126646	//   },
126647	//   "path": "{project}/regions/{region}/subnetworks",
126648	//   "response": {
126649	//     "$ref": "SubnetworkList"
126650	//   },
126651	//   "scopes": [
126652	//     "https://www.googleapis.com/auth/cloud-platform",
126653	//     "https://www.googleapis.com/auth/compute",
126654	//     "https://www.googleapis.com/auth/compute.readonly"
126655	//   ]
126656	// }
126657
126658}
126659
126660// Pages invokes f for each page of results.
126661// A non-nil error returned from f will halt the iteration.
126662// The provided context supersedes any context provided to the Context method.
126663func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
126664	c.ctx_ = ctx
126665	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126666	for {
126667		x, err := c.Do()
126668		if err != nil {
126669			return err
126670		}
126671		if err := f(x); err != nil {
126672			return err
126673		}
126674		if x.NextPageToken == "" {
126675			return nil
126676		}
126677		c.PageToken(x.NextPageToken)
126678	}
126679}
126680
126681// method id "compute.subnetworks.listUsable":
126682
126683type SubnetworksListUsableCall struct {
126684	s            *Service
126685	project      string
126686	urlParams_   gensupport.URLParams
126687	ifNoneMatch_ string
126688	ctx_         context.Context
126689	header_      http.Header
126690}
126691
126692// ListUsable: Retrieves an aggregated list of all usable subnetworks in
126693// the project.
126694func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
126695	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126696	c.project = project
126697	return c
126698}
126699
126700// Filter sets the optional parameter "filter": A filter expression that
126701// filters resources listed in the response. The expression must specify
126702// the field name, a comparison operator, and the value that you want to
126703// use for filtering. The value must be a string, a number, or a
126704// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126705// `<`.
126706//
126707// For example, if you are filtering Compute Engine instances, you can
126708// exclude instances named `example-instance` by specifying `name !=
126709// example-instance`.
126710//
126711// You can also filter nested fields. For example, you could specify
126712// `scheduling.automaticRestart = false` to include instances only if
126713// they are not scheduled for automatic restarts. You can use filtering
126714// on nested fields to filter based on resource labels.
126715//
126716// To filter on multiple expressions, provide each separate expression
126717// within parentheses. For example: ``` (scheduling.automaticRestart =
126718// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
126719// is an `AND` expression. However, you can include `AND` and `OR`
126720// expressions explicitly. For example: ``` (cpuPlatform = "Intel
126721// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
126722// (scheduling.automaticRestart = true) ```
126723func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
126724	c.urlParams_.Set("filter", filter)
126725	return c
126726}
126727
126728// MaxResults sets the optional parameter "maxResults": The maximum
126729// number of results per page that should be returned. If the number of
126730// available results is larger than `maxResults`, Compute Engine returns
126731// a `nextPageToken` that can be used to get the next page of results in
126732// subsequent list requests. Acceptable values are `0` to `500`,
126733// inclusive. (Default: `500`)
126734func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
126735	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126736	return c
126737}
126738
126739// OrderBy sets the optional parameter "orderBy": Sorts list results by
126740// a certain order. By default, results are returned in alphanumerical
126741// order based on the resource name.
126742//
126743// You can also sort results in descending order based on the creation
126744// timestamp using `orderBy="creationTimestamp desc". This sorts
126745// results based on the `creationTimestamp` field in reverse
126746// chronological order (newest result first). Use this to sort resources
126747// like operations so that the newest operation is returned
126748// first.
126749//
126750// Currently, only sorting by `name` or `creationTimestamp desc` is
126751// supported.
126752func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
126753	c.urlParams_.Set("orderBy", orderBy)
126754	return c
126755}
126756
126757// PageToken sets the optional parameter "pageToken": Specifies a page
126758// token to use. Set `pageToken` to the `nextPageToken` returned by a
126759// previous list request to get the next page of results.
126760func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
126761	c.urlParams_.Set("pageToken", pageToken)
126762	return c
126763}
126764
126765// Fields allows partial responses to be retrieved. See
126766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126767// for more information.
126768func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
126769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126770	return c
126771}
126772
126773// IfNoneMatch sets the optional parameter which makes the operation
126774// fail if the object's ETag matches the given value. This is useful for
126775// getting updates only after the object has changed since the last
126776// request. Use googleapi.IsNotModified to check whether the response
126777// error from Do is the result of In-None-Match.
126778func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
126779	c.ifNoneMatch_ = entityTag
126780	return c
126781}
126782
126783// Context sets the context to be used in this call's Do method. Any
126784// pending HTTP request will be aborted if the provided context is
126785// canceled.
126786func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
126787	c.ctx_ = ctx
126788	return c
126789}
126790
126791// Header returns an http.Header that can be modified by the caller to
126792// add HTTP headers to the request.
126793func (c *SubnetworksListUsableCall) Header() http.Header {
126794	if c.header_ == nil {
126795		c.header_ = make(http.Header)
126796	}
126797	return c.header_
126798}
126799
126800func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
126801	reqHeaders := make(http.Header)
126802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126803	for k, v := range c.header_ {
126804		reqHeaders[k] = v
126805	}
126806	reqHeaders.Set("User-Agent", c.s.userAgent())
126807	if c.ifNoneMatch_ != "" {
126808		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126809	}
126810	var body io.Reader = nil
126811	c.urlParams_.Set("alt", alt)
126812	c.urlParams_.Set("prettyPrint", "false")
126813	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks/listUsable")
126814	urls += "?" + c.urlParams_.Encode()
126815	req, err := http.NewRequest("GET", urls, body)
126816	if err != nil {
126817		return nil, err
126818	}
126819	req.Header = reqHeaders
126820	googleapi.Expand(req.URL, map[string]string{
126821		"project": c.project,
126822	})
126823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126824}
126825
126826// Do executes the "compute.subnetworks.listUsable" call.
126827// Exactly one of *UsableSubnetworksAggregatedList or error will be
126828// non-nil. Any non-2xx status code is an error. Response headers are in
126829// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
126830// a response was returned at all) in error.(*googleapi.Error).Header.
126831// Use googleapi.IsNotModified to check whether the returned error was
126832// because http.StatusNotModified was returned.
126833func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
126834	gensupport.SetOptions(c.urlParams_, opts...)
126835	res, err := c.doRequest("json")
126836	if res != nil && res.StatusCode == http.StatusNotModified {
126837		if res.Body != nil {
126838			res.Body.Close()
126839		}
126840		return nil, &googleapi.Error{
126841			Code:   res.StatusCode,
126842			Header: res.Header,
126843		}
126844	}
126845	if err != nil {
126846		return nil, err
126847	}
126848	defer googleapi.CloseBody(res)
126849	if err := googleapi.CheckResponse(res); err != nil {
126850		return nil, err
126851	}
126852	ret := &UsableSubnetworksAggregatedList{
126853		ServerResponse: googleapi.ServerResponse{
126854			Header:         res.Header,
126855			HTTPStatusCode: res.StatusCode,
126856		},
126857	}
126858	target := &ret
126859	if err := gensupport.DecodeResponse(target, res); err != nil {
126860		return nil, err
126861	}
126862	return ret, nil
126863	// {
126864	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
126865	//   "httpMethod": "GET",
126866	//   "id": "compute.subnetworks.listUsable",
126867	//   "parameterOrder": [
126868	//     "project"
126869	//   ],
126870	//   "parameters": {
126871	//     "filter": {
126872	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126873	//       "location": "query",
126874	//       "type": "string"
126875	//     },
126876	//     "maxResults": {
126877	//       "default": "500",
126878	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126879	//       "format": "uint32",
126880	//       "location": "query",
126881	//       "minimum": "0",
126882	//       "type": "integer"
126883	//     },
126884	//     "orderBy": {
126885	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
126886	//       "location": "query",
126887	//       "type": "string"
126888	//     },
126889	//     "pageToken": {
126890	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126891	//       "location": "query",
126892	//       "type": "string"
126893	//     },
126894	//     "project": {
126895	//       "description": "Project ID for this request.",
126896	//       "location": "path",
126897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126898	//       "required": true,
126899	//       "type": "string"
126900	//     }
126901	//   },
126902	//   "path": "{project}/aggregated/subnetworks/listUsable",
126903	//   "response": {
126904	//     "$ref": "UsableSubnetworksAggregatedList"
126905	//   },
126906	//   "scopes": [
126907	//     "https://www.googleapis.com/auth/cloud-platform",
126908	//     "https://www.googleapis.com/auth/compute",
126909	//     "https://www.googleapis.com/auth/compute.readonly"
126910	//   ]
126911	// }
126912
126913}
126914
126915// Pages invokes f for each page of results.
126916// A non-nil error returned from f will halt the iteration.
126917// The provided context supersedes any context provided to the Context method.
126918func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
126919	c.ctx_ = ctx
126920	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126921	for {
126922		x, err := c.Do()
126923		if err != nil {
126924			return err
126925		}
126926		if err := f(x); err != nil {
126927			return err
126928		}
126929		if x.NextPageToken == "" {
126930			return nil
126931		}
126932		c.PageToken(x.NextPageToken)
126933	}
126934}
126935
126936// method id "compute.subnetworks.patch":
126937
126938type SubnetworksPatchCall struct {
126939	s           *Service
126940	project     string
126941	region      string
126942	subnetwork  string
126943	subnetwork2 *Subnetwork
126944	urlParams_  gensupport.URLParams
126945	ctx_        context.Context
126946	header_     http.Header
126947}
126948
126949// Patch: Patches the specified subnetwork with the data included in the
126950// request. Only certain fields can up updated with a patch request as
126951// indicated in the field descriptions. You must specify the current
126952// fingerprint of the subnetwork resource being patched.
126953func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
126954	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126955	c.project = project
126956	c.region = region
126957	c.subnetwork = subnetwork
126958	c.subnetwork2 = subnetwork2
126959	return c
126960}
126961
126962// DrainTimeoutSeconds sets the optional parameter
126963// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
126964// seconds on the amount of time allowed to drain connections from the
126965// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
126966// timeout is only applicable when the following conditions are true: -
126967// the subnetwork being patched has purpose =
126968// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
126969// = BACKUP - the patch request is setting the role to ACTIVE. Note that
126970// after this patch operation the roles of the ACTIVE and BACKUP
126971// subnetworks will be swapped.
126972func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
126973	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
126974	return c
126975}
126976
126977// RequestId sets the optional parameter "requestId": An optional
126978// request ID to identify requests. Specify a unique request ID so that
126979// if you must retry your request, the server will know to ignore the
126980// request if it has already been completed.
126981//
126982// For example, consider a situation where you make an initial request
126983// and the request times out. If you make the request again with the
126984// same request ID, the server can check if original operation with the
126985// same request ID was received, and if so, will ignore the second
126986// request. This prevents clients from accidentally creating duplicate
126987// commitments.
126988//
126989// The request ID must be a valid UUID with the exception that zero UUID
126990// is not supported (00000000-0000-0000-0000-000000000000).
126991func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
126992	c.urlParams_.Set("requestId", requestId)
126993	return c
126994}
126995
126996// Fields allows partial responses to be retrieved. See
126997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126998// for more information.
126999func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
127000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127001	return c
127002}
127003
127004// Context sets the context to be used in this call's Do method. Any
127005// pending HTTP request will be aborted if the provided context is
127006// canceled.
127007func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
127008	c.ctx_ = ctx
127009	return c
127010}
127011
127012// Header returns an http.Header that can be modified by the caller to
127013// add HTTP headers to the request.
127014func (c *SubnetworksPatchCall) Header() http.Header {
127015	if c.header_ == nil {
127016		c.header_ = make(http.Header)
127017	}
127018	return c.header_
127019}
127020
127021func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
127022	reqHeaders := make(http.Header)
127023	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127024	for k, v := range c.header_ {
127025		reqHeaders[k] = v
127026	}
127027	reqHeaders.Set("User-Agent", c.s.userAgent())
127028	var body io.Reader = nil
127029	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
127030	if err != nil {
127031		return nil, err
127032	}
127033	reqHeaders.Set("Content-Type", "application/json")
127034	c.urlParams_.Set("alt", alt)
127035	c.urlParams_.Set("prettyPrint", "false")
127036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
127037	urls += "?" + c.urlParams_.Encode()
127038	req, err := http.NewRequest("PATCH", urls, body)
127039	if err != nil {
127040		return nil, err
127041	}
127042	req.Header = reqHeaders
127043	googleapi.Expand(req.URL, map[string]string{
127044		"project":    c.project,
127045		"region":     c.region,
127046		"subnetwork": c.subnetwork,
127047	})
127048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127049}
127050
127051// Do executes the "compute.subnetworks.patch" call.
127052// Exactly one of *Operation or error will be non-nil. Any non-2xx
127053// status code is an error. Response headers are in either
127054// *Operation.ServerResponse.Header or (if a response was returned at
127055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127056// to check whether the returned error was because
127057// http.StatusNotModified was returned.
127058func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127059	gensupport.SetOptions(c.urlParams_, opts...)
127060	res, err := c.doRequest("json")
127061	if res != nil && res.StatusCode == http.StatusNotModified {
127062		if res.Body != nil {
127063			res.Body.Close()
127064		}
127065		return nil, &googleapi.Error{
127066			Code:   res.StatusCode,
127067			Header: res.Header,
127068		}
127069	}
127070	if err != nil {
127071		return nil, err
127072	}
127073	defer googleapi.CloseBody(res)
127074	if err := googleapi.CheckResponse(res); err != nil {
127075		return nil, err
127076	}
127077	ret := &Operation{
127078		ServerResponse: googleapi.ServerResponse{
127079			Header:         res.Header,
127080			HTTPStatusCode: res.StatusCode,
127081		},
127082	}
127083	target := &ret
127084	if err := gensupport.DecodeResponse(target, res); err != nil {
127085		return nil, err
127086	}
127087	return ret, nil
127088	// {
127089	//   "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.",
127090	//   "httpMethod": "PATCH",
127091	//   "id": "compute.subnetworks.patch",
127092	//   "parameterOrder": [
127093	//     "project",
127094	//     "region",
127095	//     "subnetwork"
127096	//   ],
127097	//   "parameters": {
127098	//     "drainTimeoutSeconds": {
127099	//       "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.",
127100	//       "format": "int32",
127101	//       "location": "query",
127102	//       "type": "integer"
127103	//     },
127104	//     "project": {
127105	//       "description": "Project ID for this request.",
127106	//       "location": "path",
127107	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127108	//       "required": true,
127109	//       "type": "string"
127110	//     },
127111	//     "region": {
127112	//       "description": "Name of the region scoping this request.",
127113	//       "location": "path",
127114	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127115	//       "required": true,
127116	//       "type": "string"
127117	//     },
127118	//     "requestId": {
127119	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127120	//       "location": "query",
127121	//       "type": "string"
127122	//     },
127123	//     "subnetwork": {
127124	//       "description": "Name of the Subnetwork resource to patch.",
127125	//       "location": "path",
127126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127127	//       "required": true,
127128	//       "type": "string"
127129	//     }
127130	//   },
127131	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
127132	//   "request": {
127133	//     "$ref": "Subnetwork"
127134	//   },
127135	//   "response": {
127136	//     "$ref": "Operation"
127137	//   },
127138	//   "scopes": [
127139	//     "https://www.googleapis.com/auth/cloud-platform",
127140	//     "https://www.googleapis.com/auth/compute"
127141	//   ]
127142	// }
127143
127144}
127145
127146// method id "compute.subnetworks.setIamPolicy":
127147
127148type SubnetworksSetIamPolicyCall struct {
127149	s                      *Service
127150	project                string
127151	region                 string
127152	resource               string
127153	regionsetpolicyrequest *RegionSetPolicyRequest
127154	urlParams_             gensupport.URLParams
127155	ctx_                   context.Context
127156	header_                http.Header
127157}
127158
127159// SetIamPolicy: Sets the access control policy on the specified
127160// resource. Replaces any existing policy.
127161func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
127162	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127163	c.project = project
127164	c.region = region
127165	c.resource = resource
127166	c.regionsetpolicyrequest = regionsetpolicyrequest
127167	return c
127168}
127169
127170// Fields allows partial responses to be retrieved. See
127171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127172// for more information.
127173func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
127174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127175	return c
127176}
127177
127178// Context sets the context to be used in this call's Do method. Any
127179// pending HTTP request will be aborted if the provided context is
127180// canceled.
127181func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
127182	c.ctx_ = ctx
127183	return c
127184}
127185
127186// Header returns an http.Header that can be modified by the caller to
127187// add HTTP headers to the request.
127188func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
127189	if c.header_ == nil {
127190		c.header_ = make(http.Header)
127191	}
127192	return c.header_
127193}
127194
127195func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
127196	reqHeaders := make(http.Header)
127197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127198	for k, v := range c.header_ {
127199		reqHeaders[k] = v
127200	}
127201	reqHeaders.Set("User-Agent", c.s.userAgent())
127202	var body io.Reader = nil
127203	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
127204	if err != nil {
127205		return nil, err
127206	}
127207	reqHeaders.Set("Content-Type", "application/json")
127208	c.urlParams_.Set("alt", alt)
127209	c.urlParams_.Set("prettyPrint", "false")
127210	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
127211	urls += "?" + c.urlParams_.Encode()
127212	req, err := http.NewRequest("POST", urls, body)
127213	if err != nil {
127214		return nil, err
127215	}
127216	req.Header = reqHeaders
127217	googleapi.Expand(req.URL, map[string]string{
127218		"project":  c.project,
127219		"region":   c.region,
127220		"resource": c.resource,
127221	})
127222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127223}
127224
127225// Do executes the "compute.subnetworks.setIamPolicy" call.
127226// Exactly one of *Policy or error will be non-nil. Any non-2xx status
127227// code is an error. Response headers are in either
127228// *Policy.ServerResponse.Header or (if a response was returned at all)
127229// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
127230// check whether the returned error was because http.StatusNotModified
127231// was returned.
127232func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
127233	gensupport.SetOptions(c.urlParams_, opts...)
127234	res, err := c.doRequest("json")
127235	if res != nil && res.StatusCode == http.StatusNotModified {
127236		if res.Body != nil {
127237			res.Body.Close()
127238		}
127239		return nil, &googleapi.Error{
127240			Code:   res.StatusCode,
127241			Header: res.Header,
127242		}
127243	}
127244	if err != nil {
127245		return nil, err
127246	}
127247	defer googleapi.CloseBody(res)
127248	if err := googleapi.CheckResponse(res); err != nil {
127249		return nil, err
127250	}
127251	ret := &Policy{
127252		ServerResponse: googleapi.ServerResponse{
127253			Header:         res.Header,
127254			HTTPStatusCode: res.StatusCode,
127255		},
127256	}
127257	target := &ret
127258	if err := gensupport.DecodeResponse(target, res); err != nil {
127259		return nil, err
127260	}
127261	return ret, nil
127262	// {
127263	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
127264	//   "httpMethod": "POST",
127265	//   "id": "compute.subnetworks.setIamPolicy",
127266	//   "parameterOrder": [
127267	//     "project",
127268	//     "region",
127269	//     "resource"
127270	//   ],
127271	//   "parameters": {
127272	//     "project": {
127273	//       "description": "Project ID for this request.",
127274	//       "location": "path",
127275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127276	//       "required": true,
127277	//       "type": "string"
127278	//     },
127279	//     "region": {
127280	//       "description": "The name of the region for this request.",
127281	//       "location": "path",
127282	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127283	//       "required": true,
127284	//       "type": "string"
127285	//     },
127286	//     "resource": {
127287	//       "description": "Name or id of the resource for this request.",
127288	//       "location": "path",
127289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127290	//       "required": true,
127291	//       "type": "string"
127292	//     }
127293	//   },
127294	//   "path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
127295	//   "request": {
127296	//     "$ref": "RegionSetPolicyRequest"
127297	//   },
127298	//   "response": {
127299	//     "$ref": "Policy"
127300	//   },
127301	//   "scopes": [
127302	//     "https://www.googleapis.com/auth/cloud-platform",
127303	//     "https://www.googleapis.com/auth/compute"
127304	//   ]
127305	// }
127306
127307}
127308
127309// method id "compute.subnetworks.setPrivateIpGoogleAccess":
127310
127311type SubnetworksSetPrivateIpGoogleAccessCall struct {
127312	s                                          *Service
127313	project                                    string
127314	region                                     string
127315	subnetwork                                 string
127316	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
127317	urlParams_                                 gensupport.URLParams
127318	ctx_                                       context.Context
127319	header_                                    http.Header
127320}
127321
127322// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
127323// Google services without assigning external IP addresses through
127324// Private Google Access.
127325func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
127326	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127327	c.project = project
127328	c.region = region
127329	c.subnetwork = subnetwork
127330	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
127331	return c
127332}
127333
127334// RequestId sets the optional parameter "requestId": An optional
127335// request ID to identify requests. Specify a unique request ID so that
127336// if you must retry your request, the server will know to ignore the
127337// request if it has already been completed.
127338//
127339// For example, consider a situation where you make an initial request
127340// and the request times out. If you make the request again with the
127341// same request ID, the server can check if original operation with the
127342// same request ID was received, and if so, will ignore the second
127343// request. This prevents clients from accidentally creating duplicate
127344// commitments.
127345//
127346// The request ID must be a valid UUID with the exception that zero UUID
127347// is not supported (00000000-0000-0000-0000-000000000000).
127348func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
127349	c.urlParams_.Set("requestId", requestId)
127350	return c
127351}
127352
127353// Fields allows partial responses to be retrieved. See
127354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127355// for more information.
127356func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
127357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127358	return c
127359}
127360
127361// Context sets the context to be used in this call's Do method. Any
127362// pending HTTP request will be aborted if the provided context is
127363// canceled.
127364func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
127365	c.ctx_ = ctx
127366	return c
127367}
127368
127369// Header returns an http.Header that can be modified by the caller to
127370// add HTTP headers to the request.
127371func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
127372	if c.header_ == nil {
127373		c.header_ = make(http.Header)
127374	}
127375	return c.header_
127376}
127377
127378func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
127379	reqHeaders := make(http.Header)
127380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127381	for k, v := range c.header_ {
127382		reqHeaders[k] = v
127383	}
127384	reqHeaders.Set("User-Agent", c.s.userAgent())
127385	var body io.Reader = nil
127386	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
127387	if err != nil {
127388		return nil, err
127389	}
127390	reqHeaders.Set("Content-Type", "application/json")
127391	c.urlParams_.Set("alt", alt)
127392	c.urlParams_.Set("prettyPrint", "false")
127393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
127394	urls += "?" + c.urlParams_.Encode()
127395	req, err := http.NewRequest("POST", urls, body)
127396	if err != nil {
127397		return nil, err
127398	}
127399	req.Header = reqHeaders
127400	googleapi.Expand(req.URL, map[string]string{
127401		"project":    c.project,
127402		"region":     c.region,
127403		"subnetwork": c.subnetwork,
127404	})
127405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127406}
127407
127408// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
127409// Exactly one of *Operation or error will be non-nil. Any non-2xx
127410// status code is an error. Response headers are in either
127411// *Operation.ServerResponse.Header or (if a response was returned at
127412// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127413// to check whether the returned error was because
127414// http.StatusNotModified was returned.
127415func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127416	gensupport.SetOptions(c.urlParams_, opts...)
127417	res, err := c.doRequest("json")
127418	if res != nil && res.StatusCode == http.StatusNotModified {
127419		if res.Body != nil {
127420			res.Body.Close()
127421		}
127422		return nil, &googleapi.Error{
127423			Code:   res.StatusCode,
127424			Header: res.Header,
127425		}
127426	}
127427	if err != nil {
127428		return nil, err
127429	}
127430	defer googleapi.CloseBody(res)
127431	if err := googleapi.CheckResponse(res); err != nil {
127432		return nil, err
127433	}
127434	ret := &Operation{
127435		ServerResponse: googleapi.ServerResponse{
127436			Header:         res.Header,
127437			HTTPStatusCode: res.StatusCode,
127438		},
127439	}
127440	target := &ret
127441	if err := gensupport.DecodeResponse(target, res); err != nil {
127442		return nil, err
127443	}
127444	return ret, nil
127445	// {
127446	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
127447	//   "httpMethod": "POST",
127448	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
127449	//   "parameterOrder": [
127450	//     "project",
127451	//     "region",
127452	//     "subnetwork"
127453	//   ],
127454	//   "parameters": {
127455	//     "project": {
127456	//       "description": "Project ID for this request.",
127457	//       "location": "path",
127458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127459	//       "required": true,
127460	//       "type": "string"
127461	//     },
127462	//     "region": {
127463	//       "description": "Name of the region scoping this request.",
127464	//       "location": "path",
127465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127466	//       "required": true,
127467	//       "type": "string"
127468	//     },
127469	//     "requestId": {
127470	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127471	//       "location": "query",
127472	//       "type": "string"
127473	//     },
127474	//     "subnetwork": {
127475	//       "description": "Name of the Subnetwork resource.",
127476	//       "location": "path",
127477	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127478	//       "required": true,
127479	//       "type": "string"
127480	//     }
127481	//   },
127482	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
127483	//   "request": {
127484	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
127485	//   },
127486	//   "response": {
127487	//     "$ref": "Operation"
127488	//   },
127489	//   "scopes": [
127490	//     "https://www.googleapis.com/auth/cloud-platform",
127491	//     "https://www.googleapis.com/auth/compute"
127492	//   ]
127493	// }
127494
127495}
127496
127497// method id "compute.subnetworks.testIamPermissions":
127498
127499type SubnetworksTestIamPermissionsCall struct {
127500	s                      *Service
127501	project                string
127502	region                 string
127503	resource               string
127504	testpermissionsrequest *TestPermissionsRequest
127505	urlParams_             gensupport.URLParams
127506	ctx_                   context.Context
127507	header_                http.Header
127508}
127509
127510// TestIamPermissions: Returns permissions that a caller has on the
127511// specified resource.
127512func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
127513	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127514	c.project = project
127515	c.region = region
127516	c.resource = resource
127517	c.testpermissionsrequest = testpermissionsrequest
127518	return c
127519}
127520
127521// Fields allows partial responses to be retrieved. See
127522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127523// for more information.
127524func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
127525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127526	return c
127527}
127528
127529// Context sets the context to be used in this call's Do method. Any
127530// pending HTTP request will be aborted if the provided context is
127531// canceled.
127532func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
127533	c.ctx_ = ctx
127534	return c
127535}
127536
127537// Header returns an http.Header that can be modified by the caller to
127538// add HTTP headers to the request.
127539func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
127540	if c.header_ == nil {
127541		c.header_ = make(http.Header)
127542	}
127543	return c.header_
127544}
127545
127546func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
127547	reqHeaders := make(http.Header)
127548	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127549	for k, v := range c.header_ {
127550		reqHeaders[k] = v
127551	}
127552	reqHeaders.Set("User-Agent", c.s.userAgent())
127553	var body io.Reader = nil
127554	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
127555	if err != nil {
127556		return nil, err
127557	}
127558	reqHeaders.Set("Content-Type", "application/json")
127559	c.urlParams_.Set("alt", alt)
127560	c.urlParams_.Set("prettyPrint", "false")
127561	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
127562	urls += "?" + c.urlParams_.Encode()
127563	req, err := http.NewRequest("POST", urls, body)
127564	if err != nil {
127565		return nil, err
127566	}
127567	req.Header = reqHeaders
127568	googleapi.Expand(req.URL, map[string]string{
127569		"project":  c.project,
127570		"region":   c.region,
127571		"resource": c.resource,
127572	})
127573	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127574}
127575
127576// Do executes the "compute.subnetworks.testIamPermissions" call.
127577// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
127578// non-2xx status code is an error. Response headers are in either
127579// *TestPermissionsResponse.ServerResponse.Header or (if a response was
127580// returned at all) in error.(*googleapi.Error).Header. Use
127581// googleapi.IsNotModified to check whether the returned error was
127582// because http.StatusNotModified was returned.
127583func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
127584	gensupport.SetOptions(c.urlParams_, opts...)
127585	res, err := c.doRequest("json")
127586	if res != nil && res.StatusCode == http.StatusNotModified {
127587		if res.Body != nil {
127588			res.Body.Close()
127589		}
127590		return nil, &googleapi.Error{
127591			Code:   res.StatusCode,
127592			Header: res.Header,
127593		}
127594	}
127595	if err != nil {
127596		return nil, err
127597	}
127598	defer googleapi.CloseBody(res)
127599	if err := googleapi.CheckResponse(res); err != nil {
127600		return nil, err
127601	}
127602	ret := &TestPermissionsResponse{
127603		ServerResponse: googleapi.ServerResponse{
127604			Header:         res.Header,
127605			HTTPStatusCode: res.StatusCode,
127606		},
127607	}
127608	target := &ret
127609	if err := gensupport.DecodeResponse(target, res); err != nil {
127610		return nil, err
127611	}
127612	return ret, nil
127613	// {
127614	//   "description": "Returns permissions that a caller has on the specified resource.",
127615	//   "httpMethod": "POST",
127616	//   "id": "compute.subnetworks.testIamPermissions",
127617	//   "parameterOrder": [
127618	//     "project",
127619	//     "region",
127620	//     "resource"
127621	//   ],
127622	//   "parameters": {
127623	//     "project": {
127624	//       "description": "Project ID for this request.",
127625	//       "location": "path",
127626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127627	//       "required": true,
127628	//       "type": "string"
127629	//     },
127630	//     "region": {
127631	//       "description": "The name of the region for this request.",
127632	//       "location": "path",
127633	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127634	//       "required": true,
127635	//       "type": "string"
127636	//     },
127637	//     "resource": {
127638	//       "description": "Name or id of the resource for this request.",
127639	//       "location": "path",
127640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127641	//       "required": true,
127642	//       "type": "string"
127643	//     }
127644	//   },
127645	//   "path": "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
127646	//   "request": {
127647	//     "$ref": "TestPermissionsRequest"
127648	//   },
127649	//   "response": {
127650	//     "$ref": "TestPermissionsResponse"
127651	//   },
127652	//   "scopes": [
127653	//     "https://www.googleapis.com/auth/cloud-platform",
127654	//     "https://www.googleapis.com/auth/compute",
127655	//     "https://www.googleapis.com/auth/compute.readonly"
127656	//   ]
127657	// }
127658
127659}
127660
127661// method id "compute.targetHttpProxies.aggregatedList":
127662
127663type TargetHttpProxiesAggregatedListCall struct {
127664	s            *Service
127665	project      string
127666	urlParams_   gensupport.URLParams
127667	ifNoneMatch_ string
127668	ctx_         context.Context
127669	header_      http.Header
127670}
127671
127672// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
127673// regional and global, available to the specified project.
127674func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
127675	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127676	c.project = project
127677	return c
127678}
127679
127680// Filter sets the optional parameter "filter": A filter expression that
127681// filters resources listed in the response. The expression must specify
127682// the field name, a comparison operator, and the value that you want to
127683// use for filtering. The value must be a string, a number, or a
127684// boolean. The comparison operator must be either `=`, `!=`, `>`, or
127685// `<`.
127686//
127687// For example, if you are filtering Compute Engine instances, you can
127688// exclude instances named `example-instance` by specifying `name !=
127689// example-instance`.
127690//
127691// You can also filter nested fields. For example, you could specify
127692// `scheduling.automaticRestart = false` to include instances only if
127693// they are not scheduled for automatic restarts. You can use filtering
127694// on nested fields to filter based on resource labels.
127695//
127696// To filter on multiple expressions, provide each separate expression
127697// within parentheses. For example: ``` (scheduling.automaticRestart =
127698// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
127699// is an `AND` expression. However, you can include `AND` and `OR`
127700// expressions explicitly. For example: ``` (cpuPlatform = "Intel
127701// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
127702// (scheduling.automaticRestart = true) ```
127703func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
127704	c.urlParams_.Set("filter", filter)
127705	return c
127706}
127707
127708// IncludeAllScopes sets the optional parameter "includeAllScopes":
127709// Indicates whether every visible scope for each scope type (zone,
127710// region, global) should be included in the response. For new resource
127711// types added after this field, the flag has no effect as new resource
127712// types will always include every visible scope for each scope type in
127713// response. For resource types which predate this field, if this flag
127714// is omitted or false, only scopes of the scope types where the
127715// resource type is expected to be found will be included.
127716func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
127717	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
127718	return c
127719}
127720
127721// MaxResults sets the optional parameter "maxResults": The maximum
127722// number of results per page that should be returned. If the number of
127723// available results is larger than `maxResults`, Compute Engine returns
127724// a `nextPageToken` that can be used to get the next page of results in
127725// subsequent list requests. Acceptable values are `0` to `500`,
127726// inclusive. (Default: `500`)
127727func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
127728	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127729	return c
127730}
127731
127732// OrderBy sets the optional parameter "orderBy": Sorts list results by
127733// a certain order. By default, results are returned in alphanumerical
127734// order based on the resource name.
127735//
127736// You can also sort results in descending order based on the creation
127737// timestamp using `orderBy="creationTimestamp desc". This sorts
127738// results based on the `creationTimestamp` field in reverse
127739// chronological order (newest result first). Use this to sort resources
127740// like operations so that the newest operation is returned
127741// first.
127742//
127743// Currently, only sorting by `name` or `creationTimestamp desc` is
127744// supported.
127745func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
127746	c.urlParams_.Set("orderBy", orderBy)
127747	return c
127748}
127749
127750// PageToken sets the optional parameter "pageToken": Specifies a page
127751// token to use. Set `pageToken` to the `nextPageToken` returned by a
127752// previous list request to get the next page of results.
127753func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
127754	c.urlParams_.Set("pageToken", pageToken)
127755	return c
127756}
127757
127758// Fields allows partial responses to be retrieved. See
127759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127760// for more information.
127761func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
127762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127763	return c
127764}
127765
127766// IfNoneMatch sets the optional parameter which makes the operation
127767// fail if the object's ETag matches the given value. This is useful for
127768// getting updates only after the object has changed since the last
127769// request. Use googleapi.IsNotModified to check whether the response
127770// error from Do is the result of In-None-Match.
127771func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
127772	c.ifNoneMatch_ = entityTag
127773	return c
127774}
127775
127776// Context sets the context to be used in this call's Do method. Any
127777// pending HTTP request will be aborted if the provided context is
127778// canceled.
127779func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
127780	c.ctx_ = ctx
127781	return c
127782}
127783
127784// Header returns an http.Header that can be modified by the caller to
127785// add HTTP headers to the request.
127786func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
127787	if c.header_ == nil {
127788		c.header_ = make(http.Header)
127789	}
127790	return c.header_
127791}
127792
127793func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
127794	reqHeaders := make(http.Header)
127795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127796	for k, v := range c.header_ {
127797		reqHeaders[k] = v
127798	}
127799	reqHeaders.Set("User-Agent", c.s.userAgent())
127800	if c.ifNoneMatch_ != "" {
127801		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127802	}
127803	var body io.Reader = nil
127804	c.urlParams_.Set("alt", alt)
127805	c.urlParams_.Set("prettyPrint", "false")
127806	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpProxies")
127807	urls += "?" + c.urlParams_.Encode()
127808	req, err := http.NewRequest("GET", urls, body)
127809	if err != nil {
127810		return nil, err
127811	}
127812	req.Header = reqHeaders
127813	googleapi.Expand(req.URL, map[string]string{
127814		"project": c.project,
127815	})
127816	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127817}
127818
127819// Do executes the "compute.targetHttpProxies.aggregatedList" call.
127820// Exactly one of *TargetHttpProxyAggregatedList or error will be
127821// non-nil. Any non-2xx status code is an error. Response headers are in
127822// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
127823// response was returned at all) in error.(*googleapi.Error).Header. Use
127824// googleapi.IsNotModified to check whether the returned error was
127825// because http.StatusNotModified was returned.
127826func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
127827	gensupport.SetOptions(c.urlParams_, opts...)
127828	res, err := c.doRequest("json")
127829	if res != nil && res.StatusCode == http.StatusNotModified {
127830		if res.Body != nil {
127831			res.Body.Close()
127832		}
127833		return nil, &googleapi.Error{
127834			Code:   res.StatusCode,
127835			Header: res.Header,
127836		}
127837	}
127838	if err != nil {
127839		return nil, err
127840	}
127841	defer googleapi.CloseBody(res)
127842	if err := googleapi.CheckResponse(res); err != nil {
127843		return nil, err
127844	}
127845	ret := &TargetHttpProxyAggregatedList{
127846		ServerResponse: googleapi.ServerResponse{
127847			Header:         res.Header,
127848			HTTPStatusCode: res.StatusCode,
127849		},
127850	}
127851	target := &ret
127852	if err := gensupport.DecodeResponse(target, res); err != nil {
127853		return nil, err
127854	}
127855	return ret, nil
127856	// {
127857	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
127858	//   "httpMethod": "GET",
127859	//   "id": "compute.targetHttpProxies.aggregatedList",
127860	//   "parameterOrder": [
127861	//     "project"
127862	//   ],
127863	//   "parameters": {
127864	//     "filter": {
127865	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
127866	//       "location": "query",
127867	//       "type": "string"
127868	//     },
127869	//     "includeAllScopes": {
127870	//       "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.",
127871	//       "location": "query",
127872	//       "type": "boolean"
127873	//     },
127874	//     "maxResults": {
127875	//       "default": "500",
127876	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
127877	//       "format": "uint32",
127878	//       "location": "query",
127879	//       "minimum": "0",
127880	//       "type": "integer"
127881	//     },
127882	//     "orderBy": {
127883	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
127884	//       "location": "query",
127885	//       "type": "string"
127886	//     },
127887	//     "pageToken": {
127888	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
127889	//       "location": "query",
127890	//       "type": "string"
127891	//     },
127892	//     "project": {
127893	//       "description": "Name of the project scoping this request.",
127894	//       "location": "path",
127895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127896	//       "required": true,
127897	//       "type": "string"
127898	//     }
127899	//   },
127900	//   "path": "{project}/aggregated/targetHttpProxies",
127901	//   "response": {
127902	//     "$ref": "TargetHttpProxyAggregatedList"
127903	//   },
127904	//   "scopes": [
127905	//     "https://www.googleapis.com/auth/cloud-platform",
127906	//     "https://www.googleapis.com/auth/compute",
127907	//     "https://www.googleapis.com/auth/compute.readonly"
127908	//   ]
127909	// }
127910
127911}
127912
127913// Pages invokes f for each page of results.
127914// A non-nil error returned from f will halt the iteration.
127915// The provided context supersedes any context provided to the Context method.
127916func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
127917	c.ctx_ = ctx
127918	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127919	for {
127920		x, err := c.Do()
127921		if err != nil {
127922			return err
127923		}
127924		if err := f(x); err != nil {
127925			return err
127926		}
127927		if x.NextPageToken == "" {
127928			return nil
127929		}
127930		c.PageToken(x.NextPageToken)
127931	}
127932}
127933
127934// method id "compute.targetHttpProxies.delete":
127935
127936type TargetHttpProxiesDeleteCall struct {
127937	s               *Service
127938	project         string
127939	targetHttpProxy string
127940	urlParams_      gensupport.URLParams
127941	ctx_            context.Context
127942	header_         http.Header
127943}
127944
127945// Delete: Deletes the specified TargetHttpProxy resource.
127946// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
127947func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
127948	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127949	c.project = project
127950	c.targetHttpProxy = targetHttpProxy
127951	return c
127952}
127953
127954// RequestId sets the optional parameter "requestId": An optional
127955// request ID to identify requests. Specify a unique request ID so that
127956// if you must retry your request, the server will know to ignore the
127957// request if it has already been completed.
127958//
127959// For example, consider a situation where you make an initial request
127960// and the request times out. If you make the request again with the
127961// same request ID, the server can check if original operation with the
127962// same request ID was received, and if so, will ignore the second
127963// request. This prevents clients from accidentally creating duplicate
127964// commitments.
127965//
127966// The request ID must be a valid UUID with the exception that zero UUID
127967// is not supported (00000000-0000-0000-0000-000000000000).
127968func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
127969	c.urlParams_.Set("requestId", requestId)
127970	return c
127971}
127972
127973// Fields allows partial responses to be retrieved. See
127974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127975// for more information.
127976func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
127977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127978	return c
127979}
127980
127981// Context sets the context to be used in this call's Do method. Any
127982// pending HTTP request will be aborted if the provided context is
127983// canceled.
127984func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
127985	c.ctx_ = ctx
127986	return c
127987}
127988
127989// Header returns an http.Header that can be modified by the caller to
127990// add HTTP headers to the request.
127991func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
127992	if c.header_ == nil {
127993		c.header_ = make(http.Header)
127994	}
127995	return c.header_
127996}
127997
127998func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
127999	reqHeaders := make(http.Header)
128000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128001	for k, v := range c.header_ {
128002		reqHeaders[k] = v
128003	}
128004	reqHeaders.Set("User-Agent", c.s.userAgent())
128005	var body io.Reader = nil
128006	c.urlParams_.Set("alt", alt)
128007	c.urlParams_.Set("prettyPrint", "false")
128008	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
128009	urls += "?" + c.urlParams_.Encode()
128010	req, err := http.NewRequest("DELETE", urls, body)
128011	if err != nil {
128012		return nil, err
128013	}
128014	req.Header = reqHeaders
128015	googleapi.Expand(req.URL, map[string]string{
128016		"project":         c.project,
128017		"targetHttpProxy": c.targetHttpProxy,
128018	})
128019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128020}
128021
128022// Do executes the "compute.targetHttpProxies.delete" call.
128023// Exactly one of *Operation or error will be non-nil. Any non-2xx
128024// status code is an error. Response headers are in either
128025// *Operation.ServerResponse.Header or (if a response was returned at
128026// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128027// to check whether the returned error was because
128028// http.StatusNotModified was returned.
128029func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128030	gensupport.SetOptions(c.urlParams_, opts...)
128031	res, err := c.doRequest("json")
128032	if res != nil && res.StatusCode == http.StatusNotModified {
128033		if res.Body != nil {
128034			res.Body.Close()
128035		}
128036		return nil, &googleapi.Error{
128037			Code:   res.StatusCode,
128038			Header: res.Header,
128039		}
128040	}
128041	if err != nil {
128042		return nil, err
128043	}
128044	defer googleapi.CloseBody(res)
128045	if err := googleapi.CheckResponse(res); err != nil {
128046		return nil, err
128047	}
128048	ret := &Operation{
128049		ServerResponse: googleapi.ServerResponse{
128050			Header:         res.Header,
128051			HTTPStatusCode: res.StatusCode,
128052		},
128053	}
128054	target := &ret
128055	if err := gensupport.DecodeResponse(target, res); err != nil {
128056		return nil, err
128057	}
128058	return ret, nil
128059	// {
128060	//   "description": "Deletes the specified TargetHttpProxy resource.",
128061	//   "httpMethod": "DELETE",
128062	//   "id": "compute.targetHttpProxies.delete",
128063	//   "parameterOrder": [
128064	//     "project",
128065	//     "targetHttpProxy"
128066	//   ],
128067	//   "parameters": {
128068	//     "project": {
128069	//       "description": "Project ID for this request.",
128070	//       "location": "path",
128071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128072	//       "required": true,
128073	//       "type": "string"
128074	//     },
128075	//     "requestId": {
128076	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128077	//       "location": "query",
128078	//       "type": "string"
128079	//     },
128080	//     "targetHttpProxy": {
128081	//       "description": "Name of the TargetHttpProxy resource to delete.",
128082	//       "location": "path",
128083	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128084	//       "required": true,
128085	//       "type": "string"
128086	//     }
128087	//   },
128088	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
128089	//   "response": {
128090	//     "$ref": "Operation"
128091	//   },
128092	//   "scopes": [
128093	//     "https://www.googleapis.com/auth/cloud-platform",
128094	//     "https://www.googleapis.com/auth/compute"
128095	//   ]
128096	// }
128097
128098}
128099
128100// method id "compute.targetHttpProxies.get":
128101
128102type TargetHttpProxiesGetCall struct {
128103	s               *Service
128104	project         string
128105	targetHttpProxy string
128106	urlParams_      gensupport.URLParams
128107	ifNoneMatch_    string
128108	ctx_            context.Context
128109	header_         http.Header
128110}
128111
128112// Get: Returns the specified TargetHttpProxy resource. Gets a list of
128113// available target HTTP proxies by making a list() request.
128114// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
128115func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
128116	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128117	c.project = project
128118	c.targetHttpProxy = targetHttpProxy
128119	return c
128120}
128121
128122// Fields allows partial responses to be retrieved. See
128123// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128124// for more information.
128125func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
128126	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128127	return c
128128}
128129
128130// IfNoneMatch sets the optional parameter which makes the operation
128131// fail if the object's ETag matches the given value. This is useful for
128132// getting updates only after the object has changed since the last
128133// request. Use googleapi.IsNotModified to check whether the response
128134// error from Do is the result of In-None-Match.
128135func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
128136	c.ifNoneMatch_ = entityTag
128137	return c
128138}
128139
128140// Context sets the context to be used in this call's Do method. Any
128141// pending HTTP request will be aborted if the provided context is
128142// canceled.
128143func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
128144	c.ctx_ = ctx
128145	return c
128146}
128147
128148// Header returns an http.Header that can be modified by the caller to
128149// add HTTP headers to the request.
128150func (c *TargetHttpProxiesGetCall) Header() http.Header {
128151	if c.header_ == nil {
128152		c.header_ = make(http.Header)
128153	}
128154	return c.header_
128155}
128156
128157func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
128158	reqHeaders := make(http.Header)
128159	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128160	for k, v := range c.header_ {
128161		reqHeaders[k] = v
128162	}
128163	reqHeaders.Set("User-Agent", c.s.userAgent())
128164	if c.ifNoneMatch_ != "" {
128165		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128166	}
128167	var body io.Reader = nil
128168	c.urlParams_.Set("alt", alt)
128169	c.urlParams_.Set("prettyPrint", "false")
128170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
128171	urls += "?" + c.urlParams_.Encode()
128172	req, err := http.NewRequest("GET", urls, body)
128173	if err != nil {
128174		return nil, err
128175	}
128176	req.Header = reqHeaders
128177	googleapi.Expand(req.URL, map[string]string{
128178		"project":         c.project,
128179		"targetHttpProxy": c.targetHttpProxy,
128180	})
128181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128182}
128183
128184// Do executes the "compute.targetHttpProxies.get" call.
128185// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
128186// status code is an error. Response headers are in either
128187// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
128188// at all) in error.(*googleapi.Error).Header. Use
128189// googleapi.IsNotModified to check whether the returned error was
128190// because http.StatusNotModified was returned.
128191func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
128192	gensupport.SetOptions(c.urlParams_, opts...)
128193	res, err := c.doRequest("json")
128194	if res != nil && res.StatusCode == http.StatusNotModified {
128195		if res.Body != nil {
128196			res.Body.Close()
128197		}
128198		return nil, &googleapi.Error{
128199			Code:   res.StatusCode,
128200			Header: res.Header,
128201		}
128202	}
128203	if err != nil {
128204		return nil, err
128205	}
128206	defer googleapi.CloseBody(res)
128207	if err := googleapi.CheckResponse(res); err != nil {
128208		return nil, err
128209	}
128210	ret := &TargetHttpProxy{
128211		ServerResponse: googleapi.ServerResponse{
128212			Header:         res.Header,
128213			HTTPStatusCode: res.StatusCode,
128214		},
128215	}
128216	target := &ret
128217	if err := gensupport.DecodeResponse(target, res); err != nil {
128218		return nil, err
128219	}
128220	return ret, nil
128221	// {
128222	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
128223	//   "httpMethod": "GET",
128224	//   "id": "compute.targetHttpProxies.get",
128225	//   "parameterOrder": [
128226	//     "project",
128227	//     "targetHttpProxy"
128228	//   ],
128229	//   "parameters": {
128230	//     "project": {
128231	//       "description": "Project ID for this request.",
128232	//       "location": "path",
128233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128234	//       "required": true,
128235	//       "type": "string"
128236	//     },
128237	//     "targetHttpProxy": {
128238	//       "description": "Name of the TargetHttpProxy resource to return.",
128239	//       "location": "path",
128240	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128241	//       "required": true,
128242	//       "type": "string"
128243	//     }
128244	//   },
128245	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
128246	//   "response": {
128247	//     "$ref": "TargetHttpProxy"
128248	//   },
128249	//   "scopes": [
128250	//     "https://www.googleapis.com/auth/cloud-platform",
128251	//     "https://www.googleapis.com/auth/compute",
128252	//     "https://www.googleapis.com/auth/compute.readonly"
128253	//   ]
128254	// }
128255
128256}
128257
128258// method id "compute.targetHttpProxies.insert":
128259
128260type TargetHttpProxiesInsertCall struct {
128261	s               *Service
128262	project         string
128263	targethttpproxy *TargetHttpProxy
128264	urlParams_      gensupport.URLParams
128265	ctx_            context.Context
128266	header_         http.Header
128267}
128268
128269// Insert: Creates a TargetHttpProxy resource in the specified project
128270// using the data included in the request.
128271// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
128272func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
128273	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128274	c.project = project
128275	c.targethttpproxy = targethttpproxy
128276	return c
128277}
128278
128279// RequestId sets the optional parameter "requestId": An optional
128280// request ID to identify requests. Specify a unique request ID so that
128281// if you must retry your request, the server will know to ignore the
128282// request if it has already been completed.
128283//
128284// For example, consider a situation where you make an initial request
128285// and the request times out. If you make the request again with the
128286// same request ID, the server can check if original operation with the
128287// same request ID was received, and if so, will ignore the second
128288// request. This prevents clients from accidentally creating duplicate
128289// commitments.
128290//
128291// The request ID must be a valid UUID with the exception that zero UUID
128292// is not supported (00000000-0000-0000-0000-000000000000).
128293func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
128294	c.urlParams_.Set("requestId", requestId)
128295	return c
128296}
128297
128298// Fields allows partial responses to be retrieved. See
128299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128300// for more information.
128301func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
128302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128303	return c
128304}
128305
128306// Context sets the context to be used in this call's Do method. Any
128307// pending HTTP request will be aborted if the provided context is
128308// canceled.
128309func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
128310	c.ctx_ = ctx
128311	return c
128312}
128313
128314// Header returns an http.Header that can be modified by the caller to
128315// add HTTP headers to the request.
128316func (c *TargetHttpProxiesInsertCall) Header() http.Header {
128317	if c.header_ == nil {
128318		c.header_ = make(http.Header)
128319	}
128320	return c.header_
128321}
128322
128323func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
128324	reqHeaders := make(http.Header)
128325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128326	for k, v := range c.header_ {
128327		reqHeaders[k] = v
128328	}
128329	reqHeaders.Set("User-Agent", c.s.userAgent())
128330	var body io.Reader = nil
128331	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
128332	if err != nil {
128333		return nil, err
128334	}
128335	reqHeaders.Set("Content-Type", "application/json")
128336	c.urlParams_.Set("alt", alt)
128337	c.urlParams_.Set("prettyPrint", "false")
128338	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
128339	urls += "?" + c.urlParams_.Encode()
128340	req, err := http.NewRequest("POST", urls, body)
128341	if err != nil {
128342		return nil, err
128343	}
128344	req.Header = reqHeaders
128345	googleapi.Expand(req.URL, map[string]string{
128346		"project": c.project,
128347	})
128348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128349}
128350
128351// Do executes the "compute.targetHttpProxies.insert" call.
128352// Exactly one of *Operation or error will be non-nil. Any non-2xx
128353// status code is an error. Response headers are in either
128354// *Operation.ServerResponse.Header or (if a response was returned at
128355// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128356// to check whether the returned error was because
128357// http.StatusNotModified was returned.
128358func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128359	gensupport.SetOptions(c.urlParams_, opts...)
128360	res, err := c.doRequest("json")
128361	if res != nil && res.StatusCode == http.StatusNotModified {
128362		if res.Body != nil {
128363			res.Body.Close()
128364		}
128365		return nil, &googleapi.Error{
128366			Code:   res.StatusCode,
128367			Header: res.Header,
128368		}
128369	}
128370	if err != nil {
128371		return nil, err
128372	}
128373	defer googleapi.CloseBody(res)
128374	if err := googleapi.CheckResponse(res); err != nil {
128375		return nil, err
128376	}
128377	ret := &Operation{
128378		ServerResponse: googleapi.ServerResponse{
128379			Header:         res.Header,
128380			HTTPStatusCode: res.StatusCode,
128381		},
128382	}
128383	target := &ret
128384	if err := gensupport.DecodeResponse(target, res); err != nil {
128385		return nil, err
128386	}
128387	return ret, nil
128388	// {
128389	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
128390	//   "httpMethod": "POST",
128391	//   "id": "compute.targetHttpProxies.insert",
128392	//   "parameterOrder": [
128393	//     "project"
128394	//   ],
128395	//   "parameters": {
128396	//     "project": {
128397	//       "description": "Project ID for this request.",
128398	//       "location": "path",
128399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128400	//       "required": true,
128401	//       "type": "string"
128402	//     },
128403	//     "requestId": {
128404	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128405	//       "location": "query",
128406	//       "type": "string"
128407	//     }
128408	//   },
128409	//   "path": "{project}/global/targetHttpProxies",
128410	//   "request": {
128411	//     "$ref": "TargetHttpProxy"
128412	//   },
128413	//   "response": {
128414	//     "$ref": "Operation"
128415	//   },
128416	//   "scopes": [
128417	//     "https://www.googleapis.com/auth/cloud-platform",
128418	//     "https://www.googleapis.com/auth/compute"
128419	//   ]
128420	// }
128421
128422}
128423
128424// method id "compute.targetHttpProxies.list":
128425
128426type TargetHttpProxiesListCall struct {
128427	s            *Service
128428	project      string
128429	urlParams_   gensupport.URLParams
128430	ifNoneMatch_ string
128431	ctx_         context.Context
128432	header_      http.Header
128433}
128434
128435// List: Retrieves the list of TargetHttpProxy resources available to
128436// the specified project.
128437// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
128438func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
128439	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128440	c.project = project
128441	return c
128442}
128443
128444// Filter sets the optional parameter "filter": A filter expression that
128445// filters resources listed in the response. The expression must specify
128446// the field name, a comparison operator, and the value that you want to
128447// use for filtering. The value must be a string, a number, or a
128448// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128449// `<`.
128450//
128451// For example, if you are filtering Compute Engine instances, you can
128452// exclude instances named `example-instance` by specifying `name !=
128453// example-instance`.
128454//
128455// You can also filter nested fields. For example, you could specify
128456// `scheduling.automaticRestart = false` to include instances only if
128457// they are not scheduled for automatic restarts. You can use filtering
128458// on nested fields to filter based on resource labels.
128459//
128460// To filter on multiple expressions, provide each separate expression
128461// within parentheses. For example: ``` (scheduling.automaticRestart =
128462// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
128463// is an `AND` expression. However, you can include `AND` and `OR`
128464// expressions explicitly. For example: ``` (cpuPlatform = "Intel
128465// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
128466// (scheduling.automaticRestart = true) ```
128467func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
128468	c.urlParams_.Set("filter", filter)
128469	return c
128470}
128471
128472// MaxResults sets the optional parameter "maxResults": The maximum
128473// number of results per page that should be returned. If the number of
128474// available results is larger than `maxResults`, Compute Engine returns
128475// a `nextPageToken` that can be used to get the next page of results in
128476// subsequent list requests. Acceptable values are `0` to `500`,
128477// inclusive. (Default: `500`)
128478func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
128479	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128480	return c
128481}
128482
128483// OrderBy sets the optional parameter "orderBy": Sorts list results by
128484// a certain order. By default, results are returned in alphanumerical
128485// order based on the resource name.
128486//
128487// You can also sort results in descending order based on the creation
128488// timestamp using `orderBy="creationTimestamp desc". This sorts
128489// results based on the `creationTimestamp` field in reverse
128490// chronological order (newest result first). Use this to sort resources
128491// like operations so that the newest operation is returned
128492// first.
128493//
128494// Currently, only sorting by `name` or `creationTimestamp desc` is
128495// supported.
128496func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
128497	c.urlParams_.Set("orderBy", orderBy)
128498	return c
128499}
128500
128501// PageToken sets the optional parameter "pageToken": Specifies a page
128502// token to use. Set `pageToken` to the `nextPageToken` returned by a
128503// previous list request to get the next page of results.
128504func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
128505	c.urlParams_.Set("pageToken", pageToken)
128506	return c
128507}
128508
128509// Fields allows partial responses to be retrieved. See
128510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128511// for more information.
128512func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
128513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128514	return c
128515}
128516
128517// IfNoneMatch sets the optional parameter which makes the operation
128518// fail if the object's ETag matches the given value. This is useful for
128519// getting updates only after the object has changed since the last
128520// request. Use googleapi.IsNotModified to check whether the response
128521// error from Do is the result of In-None-Match.
128522func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
128523	c.ifNoneMatch_ = entityTag
128524	return c
128525}
128526
128527// Context sets the context to be used in this call's Do method. Any
128528// pending HTTP request will be aborted if the provided context is
128529// canceled.
128530func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
128531	c.ctx_ = ctx
128532	return c
128533}
128534
128535// Header returns an http.Header that can be modified by the caller to
128536// add HTTP headers to the request.
128537func (c *TargetHttpProxiesListCall) Header() http.Header {
128538	if c.header_ == nil {
128539		c.header_ = make(http.Header)
128540	}
128541	return c.header_
128542}
128543
128544func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
128545	reqHeaders := make(http.Header)
128546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128547	for k, v := range c.header_ {
128548		reqHeaders[k] = v
128549	}
128550	reqHeaders.Set("User-Agent", c.s.userAgent())
128551	if c.ifNoneMatch_ != "" {
128552		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128553	}
128554	var body io.Reader = nil
128555	c.urlParams_.Set("alt", alt)
128556	c.urlParams_.Set("prettyPrint", "false")
128557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
128558	urls += "?" + c.urlParams_.Encode()
128559	req, err := http.NewRequest("GET", urls, body)
128560	if err != nil {
128561		return nil, err
128562	}
128563	req.Header = reqHeaders
128564	googleapi.Expand(req.URL, map[string]string{
128565		"project": c.project,
128566	})
128567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128568}
128569
128570// Do executes the "compute.targetHttpProxies.list" call.
128571// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
128572// non-2xx status code is an error. Response headers are in either
128573// *TargetHttpProxyList.ServerResponse.Header or (if a response was
128574// returned at all) in error.(*googleapi.Error).Header. Use
128575// googleapi.IsNotModified to check whether the returned error was
128576// because http.StatusNotModified was returned.
128577func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
128578	gensupport.SetOptions(c.urlParams_, opts...)
128579	res, err := c.doRequest("json")
128580	if res != nil && res.StatusCode == http.StatusNotModified {
128581		if res.Body != nil {
128582			res.Body.Close()
128583		}
128584		return nil, &googleapi.Error{
128585			Code:   res.StatusCode,
128586			Header: res.Header,
128587		}
128588	}
128589	if err != nil {
128590		return nil, err
128591	}
128592	defer googleapi.CloseBody(res)
128593	if err := googleapi.CheckResponse(res); err != nil {
128594		return nil, err
128595	}
128596	ret := &TargetHttpProxyList{
128597		ServerResponse: googleapi.ServerResponse{
128598			Header:         res.Header,
128599			HTTPStatusCode: res.StatusCode,
128600		},
128601	}
128602	target := &ret
128603	if err := gensupport.DecodeResponse(target, res); err != nil {
128604		return nil, err
128605	}
128606	return ret, nil
128607	// {
128608	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
128609	//   "httpMethod": "GET",
128610	//   "id": "compute.targetHttpProxies.list",
128611	//   "parameterOrder": [
128612	//     "project"
128613	//   ],
128614	//   "parameters": {
128615	//     "filter": {
128616	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
128617	//       "location": "query",
128618	//       "type": "string"
128619	//     },
128620	//     "maxResults": {
128621	//       "default": "500",
128622	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128623	//       "format": "uint32",
128624	//       "location": "query",
128625	//       "minimum": "0",
128626	//       "type": "integer"
128627	//     },
128628	//     "orderBy": {
128629	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
128630	//       "location": "query",
128631	//       "type": "string"
128632	//     },
128633	//     "pageToken": {
128634	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128635	//       "location": "query",
128636	//       "type": "string"
128637	//     },
128638	//     "project": {
128639	//       "description": "Project ID for this request.",
128640	//       "location": "path",
128641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128642	//       "required": true,
128643	//       "type": "string"
128644	//     }
128645	//   },
128646	//   "path": "{project}/global/targetHttpProxies",
128647	//   "response": {
128648	//     "$ref": "TargetHttpProxyList"
128649	//   },
128650	//   "scopes": [
128651	//     "https://www.googleapis.com/auth/cloud-platform",
128652	//     "https://www.googleapis.com/auth/compute",
128653	//     "https://www.googleapis.com/auth/compute.readonly"
128654	//   ]
128655	// }
128656
128657}
128658
128659// Pages invokes f for each page of results.
128660// A non-nil error returned from f will halt the iteration.
128661// The provided context supersedes any context provided to the Context method.
128662func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
128663	c.ctx_ = ctx
128664	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128665	for {
128666		x, err := c.Do()
128667		if err != nil {
128668			return err
128669		}
128670		if err := f(x); err != nil {
128671			return err
128672		}
128673		if x.NextPageToken == "" {
128674			return nil
128675		}
128676		c.PageToken(x.NextPageToken)
128677	}
128678}
128679
128680// method id "compute.targetHttpProxies.setUrlMap":
128681
128682type TargetHttpProxiesSetUrlMapCall struct {
128683	s               *Service
128684	project         string
128685	targetHttpProxy string
128686	urlmapreference *UrlMapReference
128687	urlParams_      gensupport.URLParams
128688	ctx_            context.Context
128689	header_         http.Header
128690}
128691
128692// SetUrlMap: Changes the URL map for TargetHttpProxy.
128693// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
128694func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
128695	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128696	c.project = project
128697	c.targetHttpProxy = targetHttpProxy
128698	c.urlmapreference = urlmapreference
128699	return c
128700}
128701
128702// RequestId sets the optional parameter "requestId": An optional
128703// request ID to identify requests. Specify a unique request ID so that
128704// if you must retry your request, the server will know to ignore the
128705// request if it has already been completed.
128706//
128707// For example, consider a situation where you make an initial request
128708// and the request times out. If you make the request again with the
128709// same request ID, the server can check if original operation with the
128710// same request ID was received, and if so, will ignore the second
128711// request. This prevents clients from accidentally creating duplicate
128712// commitments.
128713//
128714// The request ID must be a valid UUID with the exception that zero UUID
128715// is not supported (00000000-0000-0000-0000-000000000000).
128716func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
128717	c.urlParams_.Set("requestId", requestId)
128718	return c
128719}
128720
128721// Fields allows partial responses to be retrieved. See
128722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128723// for more information.
128724func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
128725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128726	return c
128727}
128728
128729// Context sets the context to be used in this call's Do method. Any
128730// pending HTTP request will be aborted if the provided context is
128731// canceled.
128732func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
128733	c.ctx_ = ctx
128734	return c
128735}
128736
128737// Header returns an http.Header that can be modified by the caller to
128738// add HTTP headers to the request.
128739func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
128740	if c.header_ == nil {
128741		c.header_ = make(http.Header)
128742	}
128743	return c.header_
128744}
128745
128746func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
128747	reqHeaders := make(http.Header)
128748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128749	for k, v := range c.header_ {
128750		reqHeaders[k] = v
128751	}
128752	reqHeaders.Set("User-Agent", c.s.userAgent())
128753	var body io.Reader = nil
128754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
128755	if err != nil {
128756		return nil, err
128757	}
128758	reqHeaders.Set("Content-Type", "application/json")
128759	c.urlParams_.Set("alt", alt)
128760	c.urlParams_.Set("prettyPrint", "false")
128761	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
128762	urls += "?" + c.urlParams_.Encode()
128763	req, err := http.NewRequest("POST", urls, body)
128764	if err != nil {
128765		return nil, err
128766	}
128767	req.Header = reqHeaders
128768	googleapi.Expand(req.URL, map[string]string{
128769		"project":         c.project,
128770		"targetHttpProxy": c.targetHttpProxy,
128771	})
128772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128773}
128774
128775// Do executes the "compute.targetHttpProxies.setUrlMap" call.
128776// Exactly one of *Operation or error will be non-nil. Any non-2xx
128777// status code is an error. Response headers are in either
128778// *Operation.ServerResponse.Header or (if a response was returned at
128779// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128780// to check whether the returned error was because
128781// http.StatusNotModified was returned.
128782func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128783	gensupport.SetOptions(c.urlParams_, opts...)
128784	res, err := c.doRequest("json")
128785	if res != nil && res.StatusCode == http.StatusNotModified {
128786		if res.Body != nil {
128787			res.Body.Close()
128788		}
128789		return nil, &googleapi.Error{
128790			Code:   res.StatusCode,
128791			Header: res.Header,
128792		}
128793	}
128794	if err != nil {
128795		return nil, err
128796	}
128797	defer googleapi.CloseBody(res)
128798	if err := googleapi.CheckResponse(res); err != nil {
128799		return nil, err
128800	}
128801	ret := &Operation{
128802		ServerResponse: googleapi.ServerResponse{
128803			Header:         res.Header,
128804			HTTPStatusCode: res.StatusCode,
128805		},
128806	}
128807	target := &ret
128808	if err := gensupport.DecodeResponse(target, res); err != nil {
128809		return nil, err
128810	}
128811	return ret, nil
128812	// {
128813	//   "description": "Changes the URL map for TargetHttpProxy.",
128814	//   "httpMethod": "POST",
128815	//   "id": "compute.targetHttpProxies.setUrlMap",
128816	//   "parameterOrder": [
128817	//     "project",
128818	//     "targetHttpProxy"
128819	//   ],
128820	//   "parameters": {
128821	//     "project": {
128822	//       "description": "Project ID for this request.",
128823	//       "location": "path",
128824	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128825	//       "required": true,
128826	//       "type": "string"
128827	//     },
128828	//     "requestId": {
128829	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128830	//       "location": "query",
128831	//       "type": "string"
128832	//     },
128833	//     "targetHttpProxy": {
128834	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
128835	//       "location": "path",
128836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128837	//       "required": true,
128838	//       "type": "string"
128839	//     }
128840	//   },
128841	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
128842	//   "request": {
128843	//     "$ref": "UrlMapReference"
128844	//   },
128845	//   "response": {
128846	//     "$ref": "Operation"
128847	//   },
128848	//   "scopes": [
128849	//     "https://www.googleapis.com/auth/cloud-platform",
128850	//     "https://www.googleapis.com/auth/compute"
128851	//   ]
128852	// }
128853
128854}
128855
128856// method id "compute.targetHttpsProxies.aggregatedList":
128857
128858type TargetHttpsProxiesAggregatedListCall struct {
128859	s            *Service
128860	project      string
128861	urlParams_   gensupport.URLParams
128862	ifNoneMatch_ string
128863	ctx_         context.Context
128864	header_      http.Header
128865}
128866
128867// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
128868// regional and global, available to the specified project.
128869func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
128870	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128871	c.project = project
128872	return c
128873}
128874
128875// Filter sets the optional parameter "filter": A filter expression that
128876// filters resources listed in the response. The expression must specify
128877// the field name, a comparison operator, and the value that you want to
128878// use for filtering. The value must be a string, a number, or a
128879// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128880// `<`.
128881//
128882// For example, if you are filtering Compute Engine instances, you can
128883// exclude instances named `example-instance` by specifying `name !=
128884// example-instance`.
128885//
128886// You can also filter nested fields. For example, you could specify
128887// `scheduling.automaticRestart = false` to include instances only if
128888// they are not scheduled for automatic restarts. You can use filtering
128889// on nested fields to filter based on resource labels.
128890//
128891// To filter on multiple expressions, provide each separate expression
128892// within parentheses. For example: ``` (scheduling.automaticRestart =
128893// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
128894// is an `AND` expression. However, you can include `AND` and `OR`
128895// expressions explicitly. For example: ``` (cpuPlatform = "Intel
128896// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
128897// (scheduling.automaticRestart = true) ```
128898func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
128899	c.urlParams_.Set("filter", filter)
128900	return c
128901}
128902
128903// IncludeAllScopes sets the optional parameter "includeAllScopes":
128904// Indicates whether every visible scope for each scope type (zone,
128905// region, global) should be included in the response. For new resource
128906// types added after this field, the flag has no effect as new resource
128907// types will always include every visible scope for each scope type in
128908// response. For resource types which predate this field, if this flag
128909// is omitted or false, only scopes of the scope types where the
128910// resource type is expected to be found will be included.
128911func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
128912	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
128913	return c
128914}
128915
128916// MaxResults sets the optional parameter "maxResults": The maximum
128917// number of results per page that should be returned. If the number of
128918// available results is larger than `maxResults`, Compute Engine returns
128919// a `nextPageToken` that can be used to get the next page of results in
128920// subsequent list requests. Acceptable values are `0` to `500`,
128921// inclusive. (Default: `500`)
128922func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
128923	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128924	return c
128925}
128926
128927// OrderBy sets the optional parameter "orderBy": Sorts list results by
128928// a certain order. By default, results are returned in alphanumerical
128929// order based on the resource name.
128930//
128931// You can also sort results in descending order based on the creation
128932// timestamp using `orderBy="creationTimestamp desc". This sorts
128933// results based on the `creationTimestamp` field in reverse
128934// chronological order (newest result first). Use this to sort resources
128935// like operations so that the newest operation is returned
128936// first.
128937//
128938// Currently, only sorting by `name` or `creationTimestamp desc` is
128939// supported.
128940func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
128941	c.urlParams_.Set("orderBy", orderBy)
128942	return c
128943}
128944
128945// PageToken sets the optional parameter "pageToken": Specifies a page
128946// token to use. Set `pageToken` to the `nextPageToken` returned by a
128947// previous list request to get the next page of results.
128948func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
128949	c.urlParams_.Set("pageToken", pageToken)
128950	return c
128951}
128952
128953// Fields allows partial responses to be retrieved. See
128954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128955// for more information.
128956func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
128957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128958	return c
128959}
128960
128961// IfNoneMatch sets the optional parameter which makes the operation
128962// fail if the object's ETag matches the given value. This is useful for
128963// getting updates only after the object has changed since the last
128964// request. Use googleapi.IsNotModified to check whether the response
128965// error from Do is the result of In-None-Match.
128966func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
128967	c.ifNoneMatch_ = entityTag
128968	return c
128969}
128970
128971// Context sets the context to be used in this call's Do method. Any
128972// pending HTTP request will be aborted if the provided context is
128973// canceled.
128974func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
128975	c.ctx_ = ctx
128976	return c
128977}
128978
128979// Header returns an http.Header that can be modified by the caller to
128980// add HTTP headers to the request.
128981func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
128982	if c.header_ == nil {
128983		c.header_ = make(http.Header)
128984	}
128985	return c.header_
128986}
128987
128988func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
128989	reqHeaders := make(http.Header)
128990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128991	for k, v := range c.header_ {
128992		reqHeaders[k] = v
128993	}
128994	reqHeaders.Set("User-Agent", c.s.userAgent())
128995	if c.ifNoneMatch_ != "" {
128996		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128997	}
128998	var body io.Reader = nil
128999	c.urlParams_.Set("alt", alt)
129000	c.urlParams_.Set("prettyPrint", "false")
129001	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpsProxies")
129002	urls += "?" + c.urlParams_.Encode()
129003	req, err := http.NewRequest("GET", urls, body)
129004	if err != nil {
129005		return nil, err
129006	}
129007	req.Header = reqHeaders
129008	googleapi.Expand(req.URL, map[string]string{
129009		"project": c.project,
129010	})
129011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129012}
129013
129014// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
129015// Exactly one of *TargetHttpsProxyAggregatedList or error will be
129016// non-nil. Any non-2xx status code is an error. Response headers are in
129017// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
129018// response was returned at all) in error.(*googleapi.Error).Header. Use
129019// googleapi.IsNotModified to check whether the returned error was
129020// because http.StatusNotModified was returned.
129021func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
129022	gensupport.SetOptions(c.urlParams_, opts...)
129023	res, err := c.doRequest("json")
129024	if res != nil && res.StatusCode == http.StatusNotModified {
129025		if res.Body != nil {
129026			res.Body.Close()
129027		}
129028		return nil, &googleapi.Error{
129029			Code:   res.StatusCode,
129030			Header: res.Header,
129031		}
129032	}
129033	if err != nil {
129034		return nil, err
129035	}
129036	defer googleapi.CloseBody(res)
129037	if err := googleapi.CheckResponse(res); err != nil {
129038		return nil, err
129039	}
129040	ret := &TargetHttpsProxyAggregatedList{
129041		ServerResponse: googleapi.ServerResponse{
129042			Header:         res.Header,
129043			HTTPStatusCode: res.StatusCode,
129044		},
129045	}
129046	target := &ret
129047	if err := gensupport.DecodeResponse(target, res); err != nil {
129048		return nil, err
129049	}
129050	return ret, nil
129051	// {
129052	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
129053	//   "httpMethod": "GET",
129054	//   "id": "compute.targetHttpsProxies.aggregatedList",
129055	//   "parameterOrder": [
129056	//     "project"
129057	//   ],
129058	//   "parameters": {
129059	//     "filter": {
129060	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
129061	//       "location": "query",
129062	//       "type": "string"
129063	//     },
129064	//     "includeAllScopes": {
129065	//       "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.",
129066	//       "location": "query",
129067	//       "type": "boolean"
129068	//     },
129069	//     "maxResults": {
129070	//       "default": "500",
129071	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
129072	//       "format": "uint32",
129073	//       "location": "query",
129074	//       "minimum": "0",
129075	//       "type": "integer"
129076	//     },
129077	//     "orderBy": {
129078	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
129079	//       "location": "query",
129080	//       "type": "string"
129081	//     },
129082	//     "pageToken": {
129083	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
129084	//       "location": "query",
129085	//       "type": "string"
129086	//     },
129087	//     "project": {
129088	//       "description": "Name of the project scoping this request.",
129089	//       "location": "path",
129090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129091	//       "required": true,
129092	//       "type": "string"
129093	//     }
129094	//   },
129095	//   "path": "{project}/aggregated/targetHttpsProxies",
129096	//   "response": {
129097	//     "$ref": "TargetHttpsProxyAggregatedList"
129098	//   },
129099	//   "scopes": [
129100	//     "https://www.googleapis.com/auth/cloud-platform",
129101	//     "https://www.googleapis.com/auth/compute",
129102	//     "https://www.googleapis.com/auth/compute.readonly"
129103	//   ]
129104	// }
129105
129106}
129107
129108// Pages invokes f for each page of results.
129109// A non-nil error returned from f will halt the iteration.
129110// The provided context supersedes any context provided to the Context method.
129111func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
129112	c.ctx_ = ctx
129113	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129114	for {
129115		x, err := c.Do()
129116		if err != nil {
129117			return err
129118		}
129119		if err := f(x); err != nil {
129120			return err
129121		}
129122		if x.NextPageToken == "" {
129123			return nil
129124		}
129125		c.PageToken(x.NextPageToken)
129126	}
129127}
129128
129129// method id "compute.targetHttpsProxies.delete":
129130
129131type TargetHttpsProxiesDeleteCall struct {
129132	s                *Service
129133	project          string
129134	targetHttpsProxy string
129135	urlParams_       gensupport.URLParams
129136	ctx_             context.Context
129137	header_          http.Header
129138}
129139
129140// Delete: Deletes the specified TargetHttpsProxy resource.
129141func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
129142	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129143	c.project = project
129144	c.targetHttpsProxy = targetHttpsProxy
129145	return c
129146}
129147
129148// RequestId sets the optional parameter "requestId": An optional
129149// request ID to identify requests. Specify a unique request ID so that
129150// if you must retry your request, the server will know to ignore the
129151// request if it has already been completed.
129152//
129153// For example, consider a situation where you make an initial request
129154// and the request times out. If you make the request again with the
129155// same request ID, the server can check if original operation with the
129156// same request ID was received, and if so, will ignore the second
129157// request. This prevents clients from accidentally creating duplicate
129158// commitments.
129159//
129160// The request ID must be a valid UUID with the exception that zero UUID
129161// is not supported (00000000-0000-0000-0000-000000000000).
129162func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
129163	c.urlParams_.Set("requestId", requestId)
129164	return c
129165}
129166
129167// Fields allows partial responses to be retrieved. See
129168// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129169// for more information.
129170func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
129171	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129172	return c
129173}
129174
129175// Context sets the context to be used in this call's Do method. Any
129176// pending HTTP request will be aborted if the provided context is
129177// canceled.
129178func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
129179	c.ctx_ = ctx
129180	return c
129181}
129182
129183// Header returns an http.Header that can be modified by the caller to
129184// add HTTP headers to the request.
129185func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
129186	if c.header_ == nil {
129187		c.header_ = make(http.Header)
129188	}
129189	return c.header_
129190}
129191
129192func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
129193	reqHeaders := make(http.Header)
129194	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129195	for k, v := range c.header_ {
129196		reqHeaders[k] = v
129197	}
129198	reqHeaders.Set("User-Agent", c.s.userAgent())
129199	var body io.Reader = nil
129200	c.urlParams_.Set("alt", alt)
129201	c.urlParams_.Set("prettyPrint", "false")
129202	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
129203	urls += "?" + c.urlParams_.Encode()
129204	req, err := http.NewRequest("DELETE", urls, body)
129205	if err != nil {
129206		return nil, err
129207	}
129208	req.Header = reqHeaders
129209	googleapi.Expand(req.URL, map[string]string{
129210		"project":          c.project,
129211		"targetHttpsProxy": c.targetHttpsProxy,
129212	})
129213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129214}
129215
129216// Do executes the "compute.targetHttpsProxies.delete" call.
129217// Exactly one of *Operation or error will be non-nil. Any non-2xx
129218// status code is an error. Response headers are in either
129219// *Operation.ServerResponse.Header or (if a response was returned at
129220// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129221// to check whether the returned error was because
129222// http.StatusNotModified was returned.
129223func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129224	gensupport.SetOptions(c.urlParams_, opts...)
129225	res, err := c.doRequest("json")
129226	if res != nil && res.StatusCode == http.StatusNotModified {
129227		if res.Body != nil {
129228			res.Body.Close()
129229		}
129230		return nil, &googleapi.Error{
129231			Code:   res.StatusCode,
129232			Header: res.Header,
129233		}
129234	}
129235	if err != nil {
129236		return nil, err
129237	}
129238	defer googleapi.CloseBody(res)
129239	if err := googleapi.CheckResponse(res); err != nil {
129240		return nil, err
129241	}
129242	ret := &Operation{
129243		ServerResponse: googleapi.ServerResponse{
129244			Header:         res.Header,
129245			HTTPStatusCode: res.StatusCode,
129246		},
129247	}
129248	target := &ret
129249	if err := gensupport.DecodeResponse(target, res); err != nil {
129250		return nil, err
129251	}
129252	return ret, nil
129253	// {
129254	//   "description": "Deletes the specified TargetHttpsProxy resource.",
129255	//   "httpMethod": "DELETE",
129256	//   "id": "compute.targetHttpsProxies.delete",
129257	//   "parameterOrder": [
129258	//     "project",
129259	//     "targetHttpsProxy"
129260	//   ],
129261	//   "parameters": {
129262	//     "project": {
129263	//       "description": "Project ID for this request.",
129264	//       "location": "path",
129265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129266	//       "required": true,
129267	//       "type": "string"
129268	//     },
129269	//     "requestId": {
129270	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129271	//       "location": "query",
129272	//       "type": "string"
129273	//     },
129274	//     "targetHttpsProxy": {
129275	//       "description": "Name of the TargetHttpsProxy resource to delete.",
129276	//       "location": "path",
129277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129278	//       "required": true,
129279	//       "type": "string"
129280	//     }
129281	//   },
129282	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
129283	//   "response": {
129284	//     "$ref": "Operation"
129285	//   },
129286	//   "scopes": [
129287	//     "https://www.googleapis.com/auth/cloud-platform",
129288	//     "https://www.googleapis.com/auth/compute"
129289	//   ]
129290	// }
129291
129292}
129293
129294// method id "compute.targetHttpsProxies.get":
129295
129296type TargetHttpsProxiesGetCall struct {
129297	s                *Service
129298	project          string
129299	targetHttpsProxy string
129300	urlParams_       gensupport.URLParams
129301	ifNoneMatch_     string
129302	ctx_             context.Context
129303	header_          http.Header
129304}
129305
129306// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
129307// available target HTTPS proxies by making a list() request.
129308func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
129309	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129310	c.project = project
129311	c.targetHttpsProxy = targetHttpsProxy
129312	return c
129313}
129314
129315// Fields allows partial responses to be retrieved. See
129316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129317// for more information.
129318func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
129319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129320	return c
129321}
129322
129323// IfNoneMatch sets the optional parameter which makes the operation
129324// fail if the object's ETag matches the given value. This is useful for
129325// getting updates only after the object has changed since the last
129326// request. Use googleapi.IsNotModified to check whether the response
129327// error from Do is the result of In-None-Match.
129328func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
129329	c.ifNoneMatch_ = entityTag
129330	return c
129331}
129332
129333// Context sets the context to be used in this call's Do method. Any
129334// pending HTTP request will be aborted if the provided context is
129335// canceled.
129336func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
129337	c.ctx_ = ctx
129338	return c
129339}
129340
129341// Header returns an http.Header that can be modified by the caller to
129342// add HTTP headers to the request.
129343func (c *TargetHttpsProxiesGetCall) Header() http.Header {
129344	if c.header_ == nil {
129345		c.header_ = make(http.Header)
129346	}
129347	return c.header_
129348}
129349
129350func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
129351	reqHeaders := make(http.Header)
129352	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129353	for k, v := range c.header_ {
129354		reqHeaders[k] = v
129355	}
129356	reqHeaders.Set("User-Agent", c.s.userAgent())
129357	if c.ifNoneMatch_ != "" {
129358		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129359	}
129360	var body io.Reader = nil
129361	c.urlParams_.Set("alt", alt)
129362	c.urlParams_.Set("prettyPrint", "false")
129363	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
129364	urls += "?" + c.urlParams_.Encode()
129365	req, err := http.NewRequest("GET", urls, body)
129366	if err != nil {
129367		return nil, err
129368	}
129369	req.Header = reqHeaders
129370	googleapi.Expand(req.URL, map[string]string{
129371		"project":          c.project,
129372		"targetHttpsProxy": c.targetHttpsProxy,
129373	})
129374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129375}
129376
129377// Do executes the "compute.targetHttpsProxies.get" call.
129378// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
129379// non-2xx status code is an error. Response headers are in either
129380// *TargetHttpsProxy.ServerResponse.Header or (if a response was
129381// returned at all) in error.(*googleapi.Error).Header. Use
129382// googleapi.IsNotModified to check whether the returned error was
129383// because http.StatusNotModified was returned.
129384func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
129385	gensupport.SetOptions(c.urlParams_, opts...)
129386	res, err := c.doRequest("json")
129387	if res != nil && res.StatusCode == http.StatusNotModified {
129388		if res.Body != nil {
129389			res.Body.Close()
129390		}
129391		return nil, &googleapi.Error{
129392			Code:   res.StatusCode,
129393			Header: res.Header,
129394		}
129395	}
129396	if err != nil {
129397		return nil, err
129398	}
129399	defer googleapi.CloseBody(res)
129400	if err := googleapi.CheckResponse(res); err != nil {
129401		return nil, err
129402	}
129403	ret := &TargetHttpsProxy{
129404		ServerResponse: googleapi.ServerResponse{
129405			Header:         res.Header,
129406			HTTPStatusCode: res.StatusCode,
129407		},
129408	}
129409	target := &ret
129410	if err := gensupport.DecodeResponse(target, res); err != nil {
129411		return nil, err
129412	}
129413	return ret, nil
129414	// {
129415	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
129416	//   "httpMethod": "GET",
129417	//   "id": "compute.targetHttpsProxies.get",
129418	//   "parameterOrder": [
129419	//     "project",
129420	//     "targetHttpsProxy"
129421	//   ],
129422	//   "parameters": {
129423	//     "project": {
129424	//       "description": "Project ID for this request.",
129425	//       "location": "path",
129426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129427	//       "required": true,
129428	//       "type": "string"
129429	//     },
129430	//     "targetHttpsProxy": {
129431	//       "description": "Name of the TargetHttpsProxy resource to return.",
129432	//       "location": "path",
129433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129434	//       "required": true,
129435	//       "type": "string"
129436	//     }
129437	//   },
129438	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
129439	//   "response": {
129440	//     "$ref": "TargetHttpsProxy"
129441	//   },
129442	//   "scopes": [
129443	//     "https://www.googleapis.com/auth/cloud-platform",
129444	//     "https://www.googleapis.com/auth/compute",
129445	//     "https://www.googleapis.com/auth/compute.readonly"
129446	//   ]
129447	// }
129448
129449}
129450
129451// method id "compute.targetHttpsProxies.insert":
129452
129453type TargetHttpsProxiesInsertCall struct {
129454	s                *Service
129455	project          string
129456	targethttpsproxy *TargetHttpsProxy
129457	urlParams_       gensupport.URLParams
129458	ctx_             context.Context
129459	header_          http.Header
129460}
129461
129462// Insert: Creates a TargetHttpsProxy resource in the specified project
129463// using the data included in the request.
129464func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
129465	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129466	c.project = project
129467	c.targethttpsproxy = targethttpsproxy
129468	return c
129469}
129470
129471// RequestId sets the optional parameter "requestId": An optional
129472// request ID to identify requests. Specify a unique request ID so that
129473// if you must retry your request, the server will know to ignore the
129474// request if it has already been completed.
129475//
129476// For example, consider a situation where you make an initial request
129477// and the request times out. If you make the request again with the
129478// same request ID, the server can check if original operation with the
129479// same request ID was received, and if so, will ignore the second
129480// request. This prevents clients from accidentally creating duplicate
129481// commitments.
129482//
129483// The request ID must be a valid UUID with the exception that zero UUID
129484// is not supported (00000000-0000-0000-0000-000000000000).
129485func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
129486	c.urlParams_.Set("requestId", requestId)
129487	return c
129488}
129489
129490// Fields allows partial responses to be retrieved. See
129491// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129492// for more information.
129493func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
129494	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129495	return c
129496}
129497
129498// Context sets the context to be used in this call's Do method. Any
129499// pending HTTP request will be aborted if the provided context is
129500// canceled.
129501func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
129502	c.ctx_ = ctx
129503	return c
129504}
129505
129506// Header returns an http.Header that can be modified by the caller to
129507// add HTTP headers to the request.
129508func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
129509	if c.header_ == nil {
129510		c.header_ = make(http.Header)
129511	}
129512	return c.header_
129513}
129514
129515func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
129516	reqHeaders := make(http.Header)
129517	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129518	for k, v := range c.header_ {
129519		reqHeaders[k] = v
129520	}
129521	reqHeaders.Set("User-Agent", c.s.userAgent())
129522	var body io.Reader = nil
129523	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
129524	if err != nil {
129525		return nil, err
129526	}
129527	reqHeaders.Set("Content-Type", "application/json")
129528	c.urlParams_.Set("alt", alt)
129529	c.urlParams_.Set("prettyPrint", "false")
129530	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
129531	urls += "?" + c.urlParams_.Encode()
129532	req, err := http.NewRequest("POST", urls, body)
129533	if err != nil {
129534		return nil, err
129535	}
129536	req.Header = reqHeaders
129537	googleapi.Expand(req.URL, map[string]string{
129538		"project": c.project,
129539	})
129540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129541}
129542
129543// Do executes the "compute.targetHttpsProxies.insert" call.
129544// Exactly one of *Operation or error will be non-nil. Any non-2xx
129545// status code is an error. Response headers are in either
129546// *Operation.ServerResponse.Header or (if a response was returned at
129547// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129548// to check whether the returned error was because
129549// http.StatusNotModified was returned.
129550func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129551	gensupport.SetOptions(c.urlParams_, opts...)
129552	res, err := c.doRequest("json")
129553	if res != nil && res.StatusCode == http.StatusNotModified {
129554		if res.Body != nil {
129555			res.Body.Close()
129556		}
129557		return nil, &googleapi.Error{
129558			Code:   res.StatusCode,
129559			Header: res.Header,
129560		}
129561	}
129562	if err != nil {
129563		return nil, err
129564	}
129565	defer googleapi.CloseBody(res)
129566	if err := googleapi.CheckResponse(res); err != nil {
129567		return nil, err
129568	}
129569	ret := &Operation{
129570		ServerResponse: googleapi.ServerResponse{
129571			Header:         res.Header,
129572			HTTPStatusCode: res.StatusCode,
129573		},
129574	}
129575	target := &ret
129576	if err := gensupport.DecodeResponse(target, res); err != nil {
129577		return nil, err
129578	}
129579	return ret, nil
129580	// {
129581	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
129582	//   "httpMethod": "POST",
129583	//   "id": "compute.targetHttpsProxies.insert",
129584	//   "parameterOrder": [
129585	//     "project"
129586	//   ],
129587	//   "parameters": {
129588	//     "project": {
129589	//       "description": "Project ID for this request.",
129590	//       "location": "path",
129591	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129592	//       "required": true,
129593	//       "type": "string"
129594	//     },
129595	//     "requestId": {
129596	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129597	//       "location": "query",
129598	//       "type": "string"
129599	//     }
129600	//   },
129601	//   "path": "{project}/global/targetHttpsProxies",
129602	//   "request": {
129603	//     "$ref": "TargetHttpsProxy"
129604	//   },
129605	//   "response": {
129606	//     "$ref": "Operation"
129607	//   },
129608	//   "scopes": [
129609	//     "https://www.googleapis.com/auth/cloud-platform",
129610	//     "https://www.googleapis.com/auth/compute"
129611	//   ]
129612	// }
129613
129614}
129615
129616// method id "compute.targetHttpsProxies.list":
129617
129618type TargetHttpsProxiesListCall struct {
129619	s            *Service
129620	project      string
129621	urlParams_   gensupport.URLParams
129622	ifNoneMatch_ string
129623	ctx_         context.Context
129624	header_      http.Header
129625}
129626
129627// List: Retrieves the list of TargetHttpsProxy resources available to
129628// the specified project.
129629func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
129630	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129631	c.project = project
129632	return c
129633}
129634
129635// Filter sets the optional parameter "filter": A filter expression that
129636// filters resources listed in the response. The expression must specify
129637// the field name, a comparison operator, and the value that you want to
129638// use for filtering. The value must be a string, a number, or a
129639// boolean. The comparison operator must be either `=`, `!=`, `>`, or
129640// `<`.
129641//
129642// For example, if you are filtering Compute Engine instances, you can
129643// exclude instances named `example-instance` by specifying `name !=
129644// example-instance`.
129645//
129646// You can also filter nested fields. For example, you could specify
129647// `scheduling.automaticRestart = false` to include instances only if
129648// they are not scheduled for automatic restarts. You can use filtering
129649// on nested fields to filter based on resource labels.
129650//
129651// To filter on multiple expressions, provide each separate expression
129652// within parentheses. For example: ``` (scheduling.automaticRestart =
129653// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
129654// is an `AND` expression. However, you can include `AND` and `OR`
129655// expressions explicitly. For example: ``` (cpuPlatform = "Intel
129656// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
129657// (scheduling.automaticRestart = true) ```
129658func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
129659	c.urlParams_.Set("filter", filter)
129660	return c
129661}
129662
129663// MaxResults sets the optional parameter "maxResults": The maximum
129664// number of results per page that should be returned. If the number of
129665// available results is larger than `maxResults`, Compute Engine returns
129666// a `nextPageToken` that can be used to get the next page of results in
129667// subsequent list requests. Acceptable values are `0` to `500`,
129668// inclusive. (Default: `500`)
129669func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
129670	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129671	return c
129672}
129673
129674// OrderBy sets the optional parameter "orderBy": Sorts list results by
129675// a certain order. By default, results are returned in alphanumerical
129676// order based on the resource name.
129677//
129678// You can also sort results in descending order based on the creation
129679// timestamp using `orderBy="creationTimestamp desc". This sorts
129680// results based on the `creationTimestamp` field in reverse
129681// chronological order (newest result first). Use this to sort resources
129682// like operations so that the newest operation is returned
129683// first.
129684//
129685// Currently, only sorting by `name` or `creationTimestamp desc` is
129686// supported.
129687func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
129688	c.urlParams_.Set("orderBy", orderBy)
129689	return c
129690}
129691
129692// PageToken sets the optional parameter "pageToken": Specifies a page
129693// token to use. Set `pageToken` to the `nextPageToken` returned by a
129694// previous list request to get the next page of results.
129695func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
129696	c.urlParams_.Set("pageToken", pageToken)
129697	return c
129698}
129699
129700// Fields allows partial responses to be retrieved. See
129701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129702// for more information.
129703func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
129704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129705	return c
129706}
129707
129708// IfNoneMatch sets the optional parameter which makes the operation
129709// fail if the object's ETag matches the given value. This is useful for
129710// getting updates only after the object has changed since the last
129711// request. Use googleapi.IsNotModified to check whether the response
129712// error from Do is the result of In-None-Match.
129713func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
129714	c.ifNoneMatch_ = entityTag
129715	return c
129716}
129717
129718// Context sets the context to be used in this call's Do method. Any
129719// pending HTTP request will be aborted if the provided context is
129720// canceled.
129721func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
129722	c.ctx_ = ctx
129723	return c
129724}
129725
129726// Header returns an http.Header that can be modified by the caller to
129727// add HTTP headers to the request.
129728func (c *TargetHttpsProxiesListCall) Header() http.Header {
129729	if c.header_ == nil {
129730		c.header_ = make(http.Header)
129731	}
129732	return c.header_
129733}
129734
129735func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
129736	reqHeaders := make(http.Header)
129737	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129738	for k, v := range c.header_ {
129739		reqHeaders[k] = v
129740	}
129741	reqHeaders.Set("User-Agent", c.s.userAgent())
129742	if c.ifNoneMatch_ != "" {
129743		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129744	}
129745	var body io.Reader = nil
129746	c.urlParams_.Set("alt", alt)
129747	c.urlParams_.Set("prettyPrint", "false")
129748	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
129749	urls += "?" + c.urlParams_.Encode()
129750	req, err := http.NewRequest("GET", urls, body)
129751	if err != nil {
129752		return nil, err
129753	}
129754	req.Header = reqHeaders
129755	googleapi.Expand(req.URL, map[string]string{
129756		"project": c.project,
129757	})
129758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129759}
129760
129761// Do executes the "compute.targetHttpsProxies.list" call.
129762// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
129763// non-2xx status code is an error. Response headers are in either
129764// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
129765// returned at all) in error.(*googleapi.Error).Header. Use
129766// googleapi.IsNotModified to check whether the returned error was
129767// because http.StatusNotModified was returned.
129768func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
129769	gensupport.SetOptions(c.urlParams_, opts...)
129770	res, err := c.doRequest("json")
129771	if res != nil && res.StatusCode == http.StatusNotModified {
129772		if res.Body != nil {
129773			res.Body.Close()
129774		}
129775		return nil, &googleapi.Error{
129776			Code:   res.StatusCode,
129777			Header: res.Header,
129778		}
129779	}
129780	if err != nil {
129781		return nil, err
129782	}
129783	defer googleapi.CloseBody(res)
129784	if err := googleapi.CheckResponse(res); err != nil {
129785		return nil, err
129786	}
129787	ret := &TargetHttpsProxyList{
129788		ServerResponse: googleapi.ServerResponse{
129789			Header:         res.Header,
129790			HTTPStatusCode: res.StatusCode,
129791		},
129792	}
129793	target := &ret
129794	if err := gensupport.DecodeResponse(target, res); err != nil {
129795		return nil, err
129796	}
129797	return ret, nil
129798	// {
129799	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
129800	//   "httpMethod": "GET",
129801	//   "id": "compute.targetHttpsProxies.list",
129802	//   "parameterOrder": [
129803	//     "project"
129804	//   ],
129805	//   "parameters": {
129806	//     "filter": {
129807	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
129808	//       "location": "query",
129809	//       "type": "string"
129810	//     },
129811	//     "maxResults": {
129812	//       "default": "500",
129813	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
129814	//       "format": "uint32",
129815	//       "location": "query",
129816	//       "minimum": "0",
129817	//       "type": "integer"
129818	//     },
129819	//     "orderBy": {
129820	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
129821	//       "location": "query",
129822	//       "type": "string"
129823	//     },
129824	//     "pageToken": {
129825	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
129826	//       "location": "query",
129827	//       "type": "string"
129828	//     },
129829	//     "project": {
129830	//       "description": "Project ID for this request.",
129831	//       "location": "path",
129832	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129833	//       "required": true,
129834	//       "type": "string"
129835	//     }
129836	//   },
129837	//   "path": "{project}/global/targetHttpsProxies",
129838	//   "response": {
129839	//     "$ref": "TargetHttpsProxyList"
129840	//   },
129841	//   "scopes": [
129842	//     "https://www.googleapis.com/auth/cloud-platform",
129843	//     "https://www.googleapis.com/auth/compute",
129844	//     "https://www.googleapis.com/auth/compute.readonly"
129845	//   ]
129846	// }
129847
129848}
129849
129850// Pages invokes f for each page of results.
129851// A non-nil error returned from f will halt the iteration.
129852// The provided context supersedes any context provided to the Context method.
129853func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
129854	c.ctx_ = ctx
129855	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129856	for {
129857		x, err := c.Do()
129858		if err != nil {
129859			return err
129860		}
129861		if err := f(x); err != nil {
129862			return err
129863		}
129864		if x.NextPageToken == "" {
129865			return nil
129866		}
129867		c.PageToken(x.NextPageToken)
129868	}
129869}
129870
129871// method id "compute.targetHttpsProxies.setQuicOverride":
129872
129873type TargetHttpsProxiesSetQuicOverrideCall struct {
129874	s                                        *Service
129875	project                                  string
129876	targetHttpsProxy                         string
129877	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
129878	urlParams_                               gensupport.URLParams
129879	ctx_                                     context.Context
129880	header_                                  http.Header
129881}
129882
129883// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
129884func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
129885	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129886	c.project = project
129887	c.targetHttpsProxy = targetHttpsProxy
129888	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
129889	return c
129890}
129891
129892// RequestId sets the optional parameter "requestId": An optional
129893// request ID to identify requests. Specify a unique request ID so that
129894// if you must retry your request, the server will know to ignore the
129895// request if it has already been completed.
129896//
129897// For example, consider a situation where you make an initial request
129898// and the request times out. If you make the request again with the
129899// same request ID, the server can check if original operation with the
129900// same request ID was received, and if so, will ignore the second
129901// request. This prevents clients from accidentally creating duplicate
129902// commitments.
129903//
129904// The request ID must be a valid UUID with the exception that zero UUID
129905// is not supported (00000000-0000-0000-0000-000000000000).
129906func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
129907	c.urlParams_.Set("requestId", requestId)
129908	return c
129909}
129910
129911// Fields allows partial responses to be retrieved. See
129912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129913// for more information.
129914func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
129915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129916	return c
129917}
129918
129919// Context sets the context to be used in this call's Do method. Any
129920// pending HTTP request will be aborted if the provided context is
129921// canceled.
129922func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
129923	c.ctx_ = ctx
129924	return c
129925}
129926
129927// Header returns an http.Header that can be modified by the caller to
129928// add HTTP headers to the request.
129929func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
129930	if c.header_ == nil {
129931		c.header_ = make(http.Header)
129932	}
129933	return c.header_
129934}
129935
129936func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
129937	reqHeaders := make(http.Header)
129938	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129939	for k, v := range c.header_ {
129940		reqHeaders[k] = v
129941	}
129942	reqHeaders.Set("User-Agent", c.s.userAgent())
129943	var body io.Reader = nil
129944	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
129945	if err != nil {
129946		return nil, err
129947	}
129948	reqHeaders.Set("Content-Type", "application/json")
129949	c.urlParams_.Set("alt", alt)
129950	c.urlParams_.Set("prettyPrint", "false")
129951	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
129952	urls += "?" + c.urlParams_.Encode()
129953	req, err := http.NewRequest("POST", urls, body)
129954	if err != nil {
129955		return nil, err
129956	}
129957	req.Header = reqHeaders
129958	googleapi.Expand(req.URL, map[string]string{
129959		"project":          c.project,
129960		"targetHttpsProxy": c.targetHttpsProxy,
129961	})
129962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129963}
129964
129965// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
129966// Exactly one of *Operation or error will be non-nil. Any non-2xx
129967// status code is an error. Response headers are in either
129968// *Operation.ServerResponse.Header or (if a response was returned at
129969// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129970// to check whether the returned error was because
129971// http.StatusNotModified was returned.
129972func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129973	gensupport.SetOptions(c.urlParams_, opts...)
129974	res, err := c.doRequest("json")
129975	if res != nil && res.StatusCode == http.StatusNotModified {
129976		if res.Body != nil {
129977			res.Body.Close()
129978		}
129979		return nil, &googleapi.Error{
129980			Code:   res.StatusCode,
129981			Header: res.Header,
129982		}
129983	}
129984	if err != nil {
129985		return nil, err
129986	}
129987	defer googleapi.CloseBody(res)
129988	if err := googleapi.CheckResponse(res); err != nil {
129989		return nil, err
129990	}
129991	ret := &Operation{
129992		ServerResponse: googleapi.ServerResponse{
129993			Header:         res.Header,
129994			HTTPStatusCode: res.StatusCode,
129995		},
129996	}
129997	target := &ret
129998	if err := gensupport.DecodeResponse(target, res); err != nil {
129999		return nil, err
130000	}
130001	return ret, nil
130002	// {
130003	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
130004	//   "httpMethod": "POST",
130005	//   "id": "compute.targetHttpsProxies.setQuicOverride",
130006	//   "parameterOrder": [
130007	//     "project",
130008	//     "targetHttpsProxy"
130009	//   ],
130010	//   "parameters": {
130011	//     "project": {
130012	//       "description": "Project ID for this request.",
130013	//       "location": "path",
130014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130015	//       "required": true,
130016	//       "type": "string"
130017	//     },
130018	//     "requestId": {
130019	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130020	//       "location": "query",
130021	//       "type": "string"
130022	//     },
130023	//     "targetHttpsProxy": {
130024	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
130025	//       "location": "path",
130026	//       "required": true,
130027	//       "type": "string"
130028	//     }
130029	//   },
130030	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
130031	//   "request": {
130032	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
130033	//   },
130034	//   "response": {
130035	//     "$ref": "Operation"
130036	//   },
130037	//   "scopes": [
130038	//     "https://www.googleapis.com/auth/cloud-platform",
130039	//     "https://www.googleapis.com/auth/compute"
130040	//   ]
130041	// }
130042
130043}
130044
130045// method id "compute.targetHttpsProxies.setSslCertificates":
130046
130047type TargetHttpsProxiesSetSslCertificatesCall struct {
130048	s                                           *Service
130049	project                                     string
130050	targetHttpsProxy                            string
130051	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
130052	urlParams_                                  gensupport.URLParams
130053	ctx_                                        context.Context
130054	header_                                     http.Header
130055}
130056
130057// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
130058func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
130059	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130060	c.project = project
130061	c.targetHttpsProxy = targetHttpsProxy
130062	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
130063	return c
130064}
130065
130066// RequestId sets the optional parameter "requestId": An optional
130067// request ID to identify requests. Specify a unique request ID so that
130068// if you must retry your request, the server will know to ignore the
130069// request if it has already been completed.
130070//
130071// For example, consider a situation where you make an initial request
130072// and the request times out. If you make the request again with the
130073// same request ID, the server can check if original operation with the
130074// same request ID was received, and if so, will ignore the second
130075// request. This prevents clients from accidentally creating duplicate
130076// commitments.
130077//
130078// The request ID must be a valid UUID with the exception that zero UUID
130079// is not supported (00000000-0000-0000-0000-000000000000).
130080func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
130081	c.urlParams_.Set("requestId", requestId)
130082	return c
130083}
130084
130085// Fields allows partial responses to be retrieved. See
130086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130087// for more information.
130088func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
130089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130090	return c
130091}
130092
130093// Context sets the context to be used in this call's Do method. Any
130094// pending HTTP request will be aborted if the provided context is
130095// canceled.
130096func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
130097	c.ctx_ = ctx
130098	return c
130099}
130100
130101// Header returns an http.Header that can be modified by the caller to
130102// add HTTP headers to the request.
130103func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
130104	if c.header_ == nil {
130105		c.header_ = make(http.Header)
130106	}
130107	return c.header_
130108}
130109
130110func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
130111	reqHeaders := make(http.Header)
130112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130113	for k, v := range c.header_ {
130114		reqHeaders[k] = v
130115	}
130116	reqHeaders.Set("User-Agent", c.s.userAgent())
130117	var body io.Reader = nil
130118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
130119	if err != nil {
130120		return nil, err
130121	}
130122	reqHeaders.Set("Content-Type", "application/json")
130123	c.urlParams_.Set("alt", alt)
130124	c.urlParams_.Set("prettyPrint", "false")
130125	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
130126	urls += "?" + c.urlParams_.Encode()
130127	req, err := http.NewRequest("POST", urls, body)
130128	if err != nil {
130129		return nil, err
130130	}
130131	req.Header = reqHeaders
130132	googleapi.Expand(req.URL, map[string]string{
130133		"project":          c.project,
130134		"targetHttpsProxy": c.targetHttpsProxy,
130135	})
130136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130137}
130138
130139// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
130140// Exactly one of *Operation or error will be non-nil. Any non-2xx
130141// status code is an error. Response headers are in either
130142// *Operation.ServerResponse.Header or (if a response was returned at
130143// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130144// to check whether the returned error was because
130145// http.StatusNotModified was returned.
130146func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130147	gensupport.SetOptions(c.urlParams_, opts...)
130148	res, err := c.doRequest("json")
130149	if res != nil && res.StatusCode == http.StatusNotModified {
130150		if res.Body != nil {
130151			res.Body.Close()
130152		}
130153		return nil, &googleapi.Error{
130154			Code:   res.StatusCode,
130155			Header: res.Header,
130156		}
130157	}
130158	if err != nil {
130159		return nil, err
130160	}
130161	defer googleapi.CloseBody(res)
130162	if err := googleapi.CheckResponse(res); err != nil {
130163		return nil, err
130164	}
130165	ret := &Operation{
130166		ServerResponse: googleapi.ServerResponse{
130167			Header:         res.Header,
130168			HTTPStatusCode: res.StatusCode,
130169		},
130170	}
130171	target := &ret
130172	if err := gensupport.DecodeResponse(target, res); err != nil {
130173		return nil, err
130174	}
130175	return ret, nil
130176	// {
130177	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
130178	//   "httpMethod": "POST",
130179	//   "id": "compute.targetHttpsProxies.setSslCertificates",
130180	//   "parameterOrder": [
130181	//     "project",
130182	//     "targetHttpsProxy"
130183	//   ],
130184	//   "parameters": {
130185	//     "project": {
130186	//       "description": "Project ID for this request.",
130187	//       "location": "path",
130188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130189	//       "required": true,
130190	//       "type": "string"
130191	//     },
130192	//     "requestId": {
130193	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130194	//       "location": "query",
130195	//       "type": "string"
130196	//     },
130197	//     "targetHttpsProxy": {
130198	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
130199	//       "location": "path",
130200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130201	//       "required": true,
130202	//       "type": "string"
130203	//     }
130204	//   },
130205	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
130206	//   "request": {
130207	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
130208	//   },
130209	//   "response": {
130210	//     "$ref": "Operation"
130211	//   },
130212	//   "scopes": [
130213	//     "https://www.googleapis.com/auth/cloud-platform",
130214	//     "https://www.googleapis.com/auth/compute"
130215	//   ]
130216	// }
130217
130218}
130219
130220// method id "compute.targetHttpsProxies.setSslPolicy":
130221
130222type TargetHttpsProxiesSetSslPolicyCall struct {
130223	s                  *Service
130224	project            string
130225	targetHttpsProxy   string
130226	sslpolicyreference *SslPolicyReference
130227	urlParams_         gensupport.URLParams
130228	ctx_               context.Context
130229	header_            http.Header
130230}
130231
130232// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
130233// policy specifies the server-side support for SSL features. This
130234// affects connections between clients and the HTTPS proxy load
130235// balancer. They do not affect the connection between the load balancer
130236// and the backends.
130237func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
130238	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130239	c.project = project
130240	c.targetHttpsProxy = targetHttpsProxy
130241	c.sslpolicyreference = sslpolicyreference
130242	return c
130243}
130244
130245// RequestId sets the optional parameter "requestId": An optional
130246// request ID to identify requests. Specify a unique request ID so that
130247// if you must retry your request, the server will know to ignore the
130248// request if it has already been completed.
130249//
130250// For example, consider a situation where you make an initial request
130251// and the request times out. If you make the request again with the
130252// same request ID, the server can check if original operation with the
130253// same request ID was received, and if so, will ignore the second
130254// request. This prevents clients from accidentally creating duplicate
130255// commitments.
130256//
130257// The request ID must be a valid UUID with the exception that zero UUID
130258// is not supported (00000000-0000-0000-0000-000000000000).
130259func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
130260	c.urlParams_.Set("requestId", requestId)
130261	return c
130262}
130263
130264// Fields allows partial responses to be retrieved. See
130265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130266// for more information.
130267func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
130268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130269	return c
130270}
130271
130272// Context sets the context to be used in this call's Do method. Any
130273// pending HTTP request will be aborted if the provided context is
130274// canceled.
130275func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
130276	c.ctx_ = ctx
130277	return c
130278}
130279
130280// Header returns an http.Header that can be modified by the caller to
130281// add HTTP headers to the request.
130282func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
130283	if c.header_ == nil {
130284		c.header_ = make(http.Header)
130285	}
130286	return c.header_
130287}
130288
130289func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
130290	reqHeaders := make(http.Header)
130291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130292	for k, v := range c.header_ {
130293		reqHeaders[k] = v
130294	}
130295	reqHeaders.Set("User-Agent", c.s.userAgent())
130296	var body io.Reader = nil
130297	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
130298	if err != nil {
130299		return nil, err
130300	}
130301	reqHeaders.Set("Content-Type", "application/json")
130302	c.urlParams_.Set("alt", alt)
130303	c.urlParams_.Set("prettyPrint", "false")
130304	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
130305	urls += "?" + c.urlParams_.Encode()
130306	req, err := http.NewRequest("POST", urls, body)
130307	if err != nil {
130308		return nil, err
130309	}
130310	req.Header = reqHeaders
130311	googleapi.Expand(req.URL, map[string]string{
130312		"project":          c.project,
130313		"targetHttpsProxy": c.targetHttpsProxy,
130314	})
130315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130316}
130317
130318// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
130319// Exactly one of *Operation or error will be non-nil. Any non-2xx
130320// status code is an error. Response headers are in either
130321// *Operation.ServerResponse.Header or (if a response was returned at
130322// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130323// to check whether the returned error was because
130324// http.StatusNotModified was returned.
130325func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130326	gensupport.SetOptions(c.urlParams_, opts...)
130327	res, err := c.doRequest("json")
130328	if res != nil && res.StatusCode == http.StatusNotModified {
130329		if res.Body != nil {
130330			res.Body.Close()
130331		}
130332		return nil, &googleapi.Error{
130333			Code:   res.StatusCode,
130334			Header: res.Header,
130335		}
130336	}
130337	if err != nil {
130338		return nil, err
130339	}
130340	defer googleapi.CloseBody(res)
130341	if err := googleapi.CheckResponse(res); err != nil {
130342		return nil, err
130343	}
130344	ret := &Operation{
130345		ServerResponse: googleapi.ServerResponse{
130346			Header:         res.Header,
130347			HTTPStatusCode: res.StatusCode,
130348		},
130349	}
130350	target := &ret
130351	if err := gensupport.DecodeResponse(target, res); err != nil {
130352		return nil, err
130353	}
130354	return ret, nil
130355	// {
130356	//   "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.",
130357	//   "httpMethod": "POST",
130358	//   "id": "compute.targetHttpsProxies.setSslPolicy",
130359	//   "parameterOrder": [
130360	//     "project",
130361	//     "targetHttpsProxy"
130362	//   ],
130363	//   "parameters": {
130364	//     "project": {
130365	//       "description": "Project ID for this request.",
130366	//       "location": "path",
130367	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130368	//       "required": true,
130369	//       "type": "string"
130370	//     },
130371	//     "requestId": {
130372	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130373	//       "location": "query",
130374	//       "type": "string"
130375	//     },
130376	//     "targetHttpsProxy": {
130377	//       "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.",
130378	//       "location": "path",
130379	//       "required": true,
130380	//       "type": "string"
130381	//     }
130382	//   },
130383	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
130384	//   "request": {
130385	//     "$ref": "SslPolicyReference"
130386	//   },
130387	//   "response": {
130388	//     "$ref": "Operation"
130389	//   },
130390	//   "scopes": [
130391	//     "https://www.googleapis.com/auth/cloud-platform",
130392	//     "https://www.googleapis.com/auth/compute"
130393	//   ]
130394	// }
130395
130396}
130397
130398// method id "compute.targetHttpsProxies.setUrlMap":
130399
130400type TargetHttpsProxiesSetUrlMapCall struct {
130401	s                *Service
130402	project          string
130403	targetHttpsProxy string
130404	urlmapreference  *UrlMapReference
130405	urlParams_       gensupport.URLParams
130406	ctx_             context.Context
130407	header_          http.Header
130408}
130409
130410// SetUrlMap: Changes the URL map for TargetHttpsProxy.
130411func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
130412	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130413	c.project = project
130414	c.targetHttpsProxy = targetHttpsProxy
130415	c.urlmapreference = urlmapreference
130416	return c
130417}
130418
130419// RequestId sets the optional parameter "requestId": An optional
130420// request ID to identify requests. Specify a unique request ID so that
130421// if you must retry your request, the server will know to ignore the
130422// request if it has already been completed.
130423//
130424// For example, consider a situation where you make an initial request
130425// and the request times out. If you make the request again with the
130426// same request ID, the server can check if original operation with the
130427// same request ID was received, and if so, will ignore the second
130428// request. This prevents clients from accidentally creating duplicate
130429// commitments.
130430//
130431// The request ID must be a valid UUID with the exception that zero UUID
130432// is not supported (00000000-0000-0000-0000-000000000000).
130433func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
130434	c.urlParams_.Set("requestId", requestId)
130435	return c
130436}
130437
130438// Fields allows partial responses to be retrieved. See
130439// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130440// for more information.
130441func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
130442	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130443	return c
130444}
130445
130446// Context sets the context to be used in this call's Do method. Any
130447// pending HTTP request will be aborted if the provided context is
130448// canceled.
130449func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
130450	c.ctx_ = ctx
130451	return c
130452}
130453
130454// Header returns an http.Header that can be modified by the caller to
130455// add HTTP headers to the request.
130456func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
130457	if c.header_ == nil {
130458		c.header_ = make(http.Header)
130459	}
130460	return c.header_
130461}
130462
130463func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
130464	reqHeaders := make(http.Header)
130465	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130466	for k, v := range c.header_ {
130467		reqHeaders[k] = v
130468	}
130469	reqHeaders.Set("User-Agent", c.s.userAgent())
130470	var body io.Reader = nil
130471	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
130472	if err != nil {
130473		return nil, err
130474	}
130475	reqHeaders.Set("Content-Type", "application/json")
130476	c.urlParams_.Set("alt", alt)
130477	c.urlParams_.Set("prettyPrint", "false")
130478	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
130479	urls += "?" + c.urlParams_.Encode()
130480	req, err := http.NewRequest("POST", urls, body)
130481	if err != nil {
130482		return nil, err
130483	}
130484	req.Header = reqHeaders
130485	googleapi.Expand(req.URL, map[string]string{
130486		"project":          c.project,
130487		"targetHttpsProxy": c.targetHttpsProxy,
130488	})
130489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130490}
130491
130492// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
130493// Exactly one of *Operation or error will be non-nil. Any non-2xx
130494// status code is an error. Response headers are in either
130495// *Operation.ServerResponse.Header or (if a response was returned at
130496// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130497// to check whether the returned error was because
130498// http.StatusNotModified was returned.
130499func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130500	gensupport.SetOptions(c.urlParams_, opts...)
130501	res, err := c.doRequest("json")
130502	if res != nil && res.StatusCode == http.StatusNotModified {
130503		if res.Body != nil {
130504			res.Body.Close()
130505		}
130506		return nil, &googleapi.Error{
130507			Code:   res.StatusCode,
130508			Header: res.Header,
130509		}
130510	}
130511	if err != nil {
130512		return nil, err
130513	}
130514	defer googleapi.CloseBody(res)
130515	if err := googleapi.CheckResponse(res); err != nil {
130516		return nil, err
130517	}
130518	ret := &Operation{
130519		ServerResponse: googleapi.ServerResponse{
130520			Header:         res.Header,
130521			HTTPStatusCode: res.StatusCode,
130522		},
130523	}
130524	target := &ret
130525	if err := gensupport.DecodeResponse(target, res); err != nil {
130526		return nil, err
130527	}
130528	return ret, nil
130529	// {
130530	//   "description": "Changes the URL map for TargetHttpsProxy.",
130531	//   "httpMethod": "POST",
130532	//   "id": "compute.targetHttpsProxies.setUrlMap",
130533	//   "parameterOrder": [
130534	//     "project",
130535	//     "targetHttpsProxy"
130536	//   ],
130537	//   "parameters": {
130538	//     "project": {
130539	//       "description": "Project ID for this request.",
130540	//       "location": "path",
130541	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130542	//       "required": true,
130543	//       "type": "string"
130544	//     },
130545	//     "requestId": {
130546	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130547	//       "location": "query",
130548	//       "type": "string"
130549	//     },
130550	//     "targetHttpsProxy": {
130551	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
130552	//       "location": "path",
130553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130554	//       "required": true,
130555	//       "type": "string"
130556	//     }
130557	//   },
130558	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
130559	//   "request": {
130560	//     "$ref": "UrlMapReference"
130561	//   },
130562	//   "response": {
130563	//     "$ref": "Operation"
130564	//   },
130565	//   "scopes": [
130566	//     "https://www.googleapis.com/auth/cloud-platform",
130567	//     "https://www.googleapis.com/auth/compute"
130568	//   ]
130569	// }
130570
130571}
130572
130573// method id "compute.targetInstances.aggregatedList":
130574
130575type TargetInstancesAggregatedListCall struct {
130576	s            *Service
130577	project      string
130578	urlParams_   gensupport.URLParams
130579	ifNoneMatch_ string
130580	ctx_         context.Context
130581	header_      http.Header
130582}
130583
130584// AggregatedList: Retrieves an aggregated list of target instances.
130585// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
130586func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
130587	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130588	c.project = project
130589	return c
130590}
130591
130592// Filter sets the optional parameter "filter": A filter expression that
130593// filters resources listed in the response. The expression must specify
130594// the field name, a comparison operator, and the value that you want to
130595// use for filtering. The value must be a string, a number, or a
130596// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130597// `<`.
130598//
130599// For example, if you are filtering Compute Engine instances, you can
130600// exclude instances named `example-instance` by specifying `name !=
130601// example-instance`.
130602//
130603// You can also filter nested fields. For example, you could specify
130604// `scheduling.automaticRestart = false` to include instances only if
130605// they are not scheduled for automatic restarts. You can use filtering
130606// on nested fields to filter based on resource labels.
130607//
130608// To filter on multiple expressions, provide each separate expression
130609// within parentheses. For example: ``` (scheduling.automaticRestart =
130610// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
130611// is an `AND` expression. However, you can include `AND` and `OR`
130612// expressions explicitly. For example: ``` (cpuPlatform = "Intel
130613// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
130614// (scheduling.automaticRestart = true) ```
130615func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
130616	c.urlParams_.Set("filter", filter)
130617	return c
130618}
130619
130620// IncludeAllScopes sets the optional parameter "includeAllScopes":
130621// Indicates whether every visible scope for each scope type (zone,
130622// region, global) should be included in the response. For new resource
130623// types added after this field, the flag has no effect as new resource
130624// types will always include every visible scope for each scope type in
130625// response. For resource types which predate this field, if this flag
130626// is omitted or false, only scopes of the scope types where the
130627// resource type is expected to be found will be included.
130628func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
130629	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
130630	return c
130631}
130632
130633// MaxResults sets the optional parameter "maxResults": The maximum
130634// number of results per page that should be returned. If the number of
130635// available results is larger than `maxResults`, Compute Engine returns
130636// a `nextPageToken` that can be used to get the next page of results in
130637// subsequent list requests. Acceptable values are `0` to `500`,
130638// inclusive. (Default: `500`)
130639func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
130640	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130641	return c
130642}
130643
130644// OrderBy sets the optional parameter "orderBy": Sorts list results by
130645// a certain order. By default, results are returned in alphanumerical
130646// order based on the resource name.
130647//
130648// You can also sort results in descending order based on the creation
130649// timestamp using `orderBy="creationTimestamp desc". This sorts
130650// results based on the `creationTimestamp` field in reverse
130651// chronological order (newest result first). Use this to sort resources
130652// like operations so that the newest operation is returned
130653// first.
130654//
130655// Currently, only sorting by `name` or `creationTimestamp desc` is
130656// supported.
130657func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
130658	c.urlParams_.Set("orderBy", orderBy)
130659	return c
130660}
130661
130662// PageToken sets the optional parameter "pageToken": Specifies a page
130663// token to use. Set `pageToken` to the `nextPageToken` returned by a
130664// previous list request to get the next page of results.
130665func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
130666	c.urlParams_.Set("pageToken", pageToken)
130667	return c
130668}
130669
130670// Fields allows partial responses to be retrieved. See
130671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130672// for more information.
130673func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
130674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130675	return c
130676}
130677
130678// IfNoneMatch sets the optional parameter which makes the operation
130679// fail if the object's ETag matches the given value. This is useful for
130680// getting updates only after the object has changed since the last
130681// request. Use googleapi.IsNotModified to check whether the response
130682// error from Do is the result of In-None-Match.
130683func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
130684	c.ifNoneMatch_ = entityTag
130685	return c
130686}
130687
130688// Context sets the context to be used in this call's Do method. Any
130689// pending HTTP request will be aborted if the provided context is
130690// canceled.
130691func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
130692	c.ctx_ = ctx
130693	return c
130694}
130695
130696// Header returns an http.Header that can be modified by the caller to
130697// add HTTP headers to the request.
130698func (c *TargetInstancesAggregatedListCall) Header() http.Header {
130699	if c.header_ == nil {
130700		c.header_ = make(http.Header)
130701	}
130702	return c.header_
130703}
130704
130705func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
130706	reqHeaders := make(http.Header)
130707	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130708	for k, v := range c.header_ {
130709		reqHeaders[k] = v
130710	}
130711	reqHeaders.Set("User-Agent", c.s.userAgent())
130712	if c.ifNoneMatch_ != "" {
130713		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130714	}
130715	var body io.Reader = nil
130716	c.urlParams_.Set("alt", alt)
130717	c.urlParams_.Set("prettyPrint", "false")
130718	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
130719	urls += "?" + c.urlParams_.Encode()
130720	req, err := http.NewRequest("GET", urls, body)
130721	if err != nil {
130722		return nil, err
130723	}
130724	req.Header = reqHeaders
130725	googleapi.Expand(req.URL, map[string]string{
130726		"project": c.project,
130727	})
130728	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130729}
130730
130731// Do executes the "compute.targetInstances.aggregatedList" call.
130732// Exactly one of *TargetInstanceAggregatedList or error will be
130733// non-nil. Any non-2xx status code is an error. Response headers are in
130734// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
130735// response was returned at all) in error.(*googleapi.Error).Header. Use
130736// googleapi.IsNotModified to check whether the returned error was
130737// because http.StatusNotModified was returned.
130738func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
130739	gensupport.SetOptions(c.urlParams_, opts...)
130740	res, err := c.doRequest("json")
130741	if res != nil && res.StatusCode == http.StatusNotModified {
130742		if res.Body != nil {
130743			res.Body.Close()
130744		}
130745		return nil, &googleapi.Error{
130746			Code:   res.StatusCode,
130747			Header: res.Header,
130748		}
130749	}
130750	if err != nil {
130751		return nil, err
130752	}
130753	defer googleapi.CloseBody(res)
130754	if err := googleapi.CheckResponse(res); err != nil {
130755		return nil, err
130756	}
130757	ret := &TargetInstanceAggregatedList{
130758		ServerResponse: googleapi.ServerResponse{
130759			Header:         res.Header,
130760			HTTPStatusCode: res.StatusCode,
130761		},
130762	}
130763	target := &ret
130764	if err := gensupport.DecodeResponse(target, res); err != nil {
130765		return nil, err
130766	}
130767	return ret, nil
130768	// {
130769	//   "description": "Retrieves an aggregated list of target instances.",
130770	//   "httpMethod": "GET",
130771	//   "id": "compute.targetInstances.aggregatedList",
130772	//   "parameterOrder": [
130773	//     "project"
130774	//   ],
130775	//   "parameters": {
130776	//     "filter": {
130777	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
130778	//       "location": "query",
130779	//       "type": "string"
130780	//     },
130781	//     "includeAllScopes": {
130782	//       "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.",
130783	//       "location": "query",
130784	//       "type": "boolean"
130785	//     },
130786	//     "maxResults": {
130787	//       "default": "500",
130788	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130789	//       "format": "uint32",
130790	//       "location": "query",
130791	//       "minimum": "0",
130792	//       "type": "integer"
130793	//     },
130794	//     "orderBy": {
130795	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
130796	//       "location": "query",
130797	//       "type": "string"
130798	//     },
130799	//     "pageToken": {
130800	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130801	//       "location": "query",
130802	//       "type": "string"
130803	//     },
130804	//     "project": {
130805	//       "description": "Project ID for this request.",
130806	//       "location": "path",
130807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130808	//       "required": true,
130809	//       "type": "string"
130810	//     }
130811	//   },
130812	//   "path": "{project}/aggregated/targetInstances",
130813	//   "response": {
130814	//     "$ref": "TargetInstanceAggregatedList"
130815	//   },
130816	//   "scopes": [
130817	//     "https://www.googleapis.com/auth/cloud-platform",
130818	//     "https://www.googleapis.com/auth/compute",
130819	//     "https://www.googleapis.com/auth/compute.readonly"
130820	//   ]
130821	// }
130822
130823}
130824
130825// Pages invokes f for each page of results.
130826// A non-nil error returned from f will halt the iteration.
130827// The provided context supersedes any context provided to the Context method.
130828func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
130829	c.ctx_ = ctx
130830	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130831	for {
130832		x, err := c.Do()
130833		if err != nil {
130834			return err
130835		}
130836		if err := f(x); err != nil {
130837			return err
130838		}
130839		if x.NextPageToken == "" {
130840			return nil
130841		}
130842		c.PageToken(x.NextPageToken)
130843	}
130844}
130845
130846// method id "compute.targetInstances.delete":
130847
130848type TargetInstancesDeleteCall struct {
130849	s              *Service
130850	project        string
130851	zone           string
130852	targetInstance string
130853	urlParams_     gensupport.URLParams
130854	ctx_           context.Context
130855	header_        http.Header
130856}
130857
130858// Delete: Deletes the specified TargetInstance resource.
130859// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
130860func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
130861	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130862	c.project = project
130863	c.zone = zone
130864	c.targetInstance = targetInstance
130865	return c
130866}
130867
130868// RequestId sets the optional parameter "requestId": An optional
130869// request ID to identify requests. Specify a unique request ID so that
130870// if you must retry your request, the server will know to ignore the
130871// request if it has already been completed.
130872//
130873// For example, consider a situation where you make an initial request
130874// and the request times out. If you make the request again with the
130875// same request ID, the server can check if original operation with the
130876// same request ID was received, and if so, will ignore the second
130877// request. This prevents clients from accidentally creating duplicate
130878// commitments.
130879//
130880// The request ID must be a valid UUID with the exception that zero UUID
130881// is not supported (00000000-0000-0000-0000-000000000000).
130882func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
130883	c.urlParams_.Set("requestId", requestId)
130884	return c
130885}
130886
130887// Fields allows partial responses to be retrieved. See
130888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130889// for more information.
130890func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
130891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130892	return c
130893}
130894
130895// Context sets the context to be used in this call's Do method. Any
130896// pending HTTP request will be aborted if the provided context is
130897// canceled.
130898func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
130899	c.ctx_ = ctx
130900	return c
130901}
130902
130903// Header returns an http.Header that can be modified by the caller to
130904// add HTTP headers to the request.
130905func (c *TargetInstancesDeleteCall) Header() http.Header {
130906	if c.header_ == nil {
130907		c.header_ = make(http.Header)
130908	}
130909	return c.header_
130910}
130911
130912func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
130913	reqHeaders := make(http.Header)
130914	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130915	for k, v := range c.header_ {
130916		reqHeaders[k] = v
130917	}
130918	reqHeaders.Set("User-Agent", c.s.userAgent())
130919	var body io.Reader = nil
130920	c.urlParams_.Set("alt", alt)
130921	c.urlParams_.Set("prettyPrint", "false")
130922	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
130923	urls += "?" + c.urlParams_.Encode()
130924	req, err := http.NewRequest("DELETE", urls, body)
130925	if err != nil {
130926		return nil, err
130927	}
130928	req.Header = reqHeaders
130929	googleapi.Expand(req.URL, map[string]string{
130930		"project":        c.project,
130931		"zone":           c.zone,
130932		"targetInstance": c.targetInstance,
130933	})
130934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130935}
130936
130937// Do executes the "compute.targetInstances.delete" call.
130938// Exactly one of *Operation or error will be non-nil. Any non-2xx
130939// status code is an error. Response headers are in either
130940// *Operation.ServerResponse.Header or (if a response was returned at
130941// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130942// to check whether the returned error was because
130943// http.StatusNotModified was returned.
130944func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130945	gensupport.SetOptions(c.urlParams_, opts...)
130946	res, err := c.doRequest("json")
130947	if res != nil && res.StatusCode == http.StatusNotModified {
130948		if res.Body != nil {
130949			res.Body.Close()
130950		}
130951		return nil, &googleapi.Error{
130952			Code:   res.StatusCode,
130953			Header: res.Header,
130954		}
130955	}
130956	if err != nil {
130957		return nil, err
130958	}
130959	defer googleapi.CloseBody(res)
130960	if err := googleapi.CheckResponse(res); err != nil {
130961		return nil, err
130962	}
130963	ret := &Operation{
130964		ServerResponse: googleapi.ServerResponse{
130965			Header:         res.Header,
130966			HTTPStatusCode: res.StatusCode,
130967		},
130968	}
130969	target := &ret
130970	if err := gensupport.DecodeResponse(target, res); err != nil {
130971		return nil, err
130972	}
130973	return ret, nil
130974	// {
130975	//   "description": "Deletes the specified TargetInstance resource.",
130976	//   "httpMethod": "DELETE",
130977	//   "id": "compute.targetInstances.delete",
130978	//   "parameterOrder": [
130979	//     "project",
130980	//     "zone",
130981	//     "targetInstance"
130982	//   ],
130983	//   "parameters": {
130984	//     "project": {
130985	//       "description": "Project ID for this request.",
130986	//       "location": "path",
130987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130988	//       "required": true,
130989	//       "type": "string"
130990	//     },
130991	//     "requestId": {
130992	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130993	//       "location": "query",
130994	//       "type": "string"
130995	//     },
130996	//     "targetInstance": {
130997	//       "description": "Name of the TargetInstance resource to delete.",
130998	//       "location": "path",
130999	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131000	//       "required": true,
131001	//       "type": "string"
131002	//     },
131003	//     "zone": {
131004	//       "description": "Name of the zone scoping this request.",
131005	//       "location": "path",
131006	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131007	//       "required": true,
131008	//       "type": "string"
131009	//     }
131010	//   },
131011	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
131012	//   "response": {
131013	//     "$ref": "Operation"
131014	//   },
131015	//   "scopes": [
131016	//     "https://www.googleapis.com/auth/cloud-platform",
131017	//     "https://www.googleapis.com/auth/compute"
131018	//   ]
131019	// }
131020
131021}
131022
131023// method id "compute.targetInstances.get":
131024
131025type TargetInstancesGetCall struct {
131026	s              *Service
131027	project        string
131028	zone           string
131029	targetInstance string
131030	urlParams_     gensupport.URLParams
131031	ifNoneMatch_   string
131032	ctx_           context.Context
131033	header_        http.Header
131034}
131035
131036// Get: Returns the specified TargetInstance resource. Gets a list of
131037// available target instances by making a list() request.
131038// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
131039func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
131040	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131041	c.project = project
131042	c.zone = zone
131043	c.targetInstance = targetInstance
131044	return c
131045}
131046
131047// Fields allows partial responses to be retrieved. See
131048// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131049// for more information.
131050func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
131051	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131052	return c
131053}
131054
131055// IfNoneMatch sets the optional parameter which makes the operation
131056// fail if the object's ETag matches the given value. This is useful for
131057// getting updates only after the object has changed since the last
131058// request. Use googleapi.IsNotModified to check whether the response
131059// error from Do is the result of In-None-Match.
131060func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
131061	c.ifNoneMatch_ = entityTag
131062	return c
131063}
131064
131065// Context sets the context to be used in this call's Do method. Any
131066// pending HTTP request will be aborted if the provided context is
131067// canceled.
131068func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
131069	c.ctx_ = ctx
131070	return c
131071}
131072
131073// Header returns an http.Header that can be modified by the caller to
131074// add HTTP headers to the request.
131075func (c *TargetInstancesGetCall) Header() http.Header {
131076	if c.header_ == nil {
131077		c.header_ = make(http.Header)
131078	}
131079	return c.header_
131080}
131081
131082func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
131083	reqHeaders := make(http.Header)
131084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131085	for k, v := range c.header_ {
131086		reqHeaders[k] = v
131087	}
131088	reqHeaders.Set("User-Agent", c.s.userAgent())
131089	if c.ifNoneMatch_ != "" {
131090		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131091	}
131092	var body io.Reader = nil
131093	c.urlParams_.Set("alt", alt)
131094	c.urlParams_.Set("prettyPrint", "false")
131095	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
131096	urls += "?" + c.urlParams_.Encode()
131097	req, err := http.NewRequest("GET", urls, body)
131098	if err != nil {
131099		return nil, err
131100	}
131101	req.Header = reqHeaders
131102	googleapi.Expand(req.URL, map[string]string{
131103		"project":        c.project,
131104		"zone":           c.zone,
131105		"targetInstance": c.targetInstance,
131106	})
131107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131108}
131109
131110// Do executes the "compute.targetInstances.get" call.
131111// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
131112// status code is an error. Response headers are in either
131113// *TargetInstance.ServerResponse.Header or (if a response was returned
131114// at all) in error.(*googleapi.Error).Header. Use
131115// googleapi.IsNotModified to check whether the returned error was
131116// because http.StatusNotModified was returned.
131117func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
131118	gensupport.SetOptions(c.urlParams_, opts...)
131119	res, err := c.doRequest("json")
131120	if res != nil && res.StatusCode == http.StatusNotModified {
131121		if res.Body != nil {
131122			res.Body.Close()
131123		}
131124		return nil, &googleapi.Error{
131125			Code:   res.StatusCode,
131126			Header: res.Header,
131127		}
131128	}
131129	if err != nil {
131130		return nil, err
131131	}
131132	defer googleapi.CloseBody(res)
131133	if err := googleapi.CheckResponse(res); err != nil {
131134		return nil, err
131135	}
131136	ret := &TargetInstance{
131137		ServerResponse: googleapi.ServerResponse{
131138			Header:         res.Header,
131139			HTTPStatusCode: res.StatusCode,
131140		},
131141	}
131142	target := &ret
131143	if err := gensupport.DecodeResponse(target, res); err != nil {
131144		return nil, err
131145	}
131146	return ret, nil
131147	// {
131148	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
131149	//   "httpMethod": "GET",
131150	//   "id": "compute.targetInstances.get",
131151	//   "parameterOrder": [
131152	//     "project",
131153	//     "zone",
131154	//     "targetInstance"
131155	//   ],
131156	//   "parameters": {
131157	//     "project": {
131158	//       "description": "Project ID for this request.",
131159	//       "location": "path",
131160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131161	//       "required": true,
131162	//       "type": "string"
131163	//     },
131164	//     "targetInstance": {
131165	//       "description": "Name of the TargetInstance resource to return.",
131166	//       "location": "path",
131167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131168	//       "required": true,
131169	//       "type": "string"
131170	//     },
131171	//     "zone": {
131172	//       "description": "Name of the zone scoping this request.",
131173	//       "location": "path",
131174	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131175	//       "required": true,
131176	//       "type": "string"
131177	//     }
131178	//   },
131179	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
131180	//   "response": {
131181	//     "$ref": "TargetInstance"
131182	//   },
131183	//   "scopes": [
131184	//     "https://www.googleapis.com/auth/cloud-platform",
131185	//     "https://www.googleapis.com/auth/compute",
131186	//     "https://www.googleapis.com/auth/compute.readonly"
131187	//   ]
131188	// }
131189
131190}
131191
131192// method id "compute.targetInstances.insert":
131193
131194type TargetInstancesInsertCall struct {
131195	s              *Service
131196	project        string
131197	zone           string
131198	targetinstance *TargetInstance
131199	urlParams_     gensupport.URLParams
131200	ctx_           context.Context
131201	header_        http.Header
131202}
131203
131204// Insert: Creates a TargetInstance resource in the specified project
131205// and zone using the data included in the request.
131206// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
131207func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
131208	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131209	c.project = project
131210	c.zone = zone
131211	c.targetinstance = targetinstance
131212	return c
131213}
131214
131215// RequestId sets the optional parameter "requestId": An optional
131216// request ID to identify requests. Specify a unique request ID so that
131217// if you must retry your request, the server will know to ignore the
131218// request if it has already been completed.
131219//
131220// For example, consider a situation where you make an initial request
131221// and the request times out. If you make the request again with the
131222// same request ID, the server can check if original operation with the
131223// same request ID was received, and if so, will ignore the second
131224// request. This prevents clients from accidentally creating duplicate
131225// commitments.
131226//
131227// The request ID must be a valid UUID with the exception that zero UUID
131228// is not supported (00000000-0000-0000-0000-000000000000).
131229func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
131230	c.urlParams_.Set("requestId", requestId)
131231	return c
131232}
131233
131234// Fields allows partial responses to be retrieved. See
131235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131236// for more information.
131237func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
131238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131239	return c
131240}
131241
131242// Context sets the context to be used in this call's Do method. Any
131243// pending HTTP request will be aborted if the provided context is
131244// canceled.
131245func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
131246	c.ctx_ = ctx
131247	return c
131248}
131249
131250// Header returns an http.Header that can be modified by the caller to
131251// add HTTP headers to the request.
131252func (c *TargetInstancesInsertCall) Header() http.Header {
131253	if c.header_ == nil {
131254		c.header_ = make(http.Header)
131255	}
131256	return c.header_
131257}
131258
131259func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
131260	reqHeaders := make(http.Header)
131261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131262	for k, v := range c.header_ {
131263		reqHeaders[k] = v
131264	}
131265	reqHeaders.Set("User-Agent", c.s.userAgent())
131266	var body io.Reader = nil
131267	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
131268	if err != nil {
131269		return nil, err
131270	}
131271	reqHeaders.Set("Content-Type", "application/json")
131272	c.urlParams_.Set("alt", alt)
131273	c.urlParams_.Set("prettyPrint", "false")
131274	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
131275	urls += "?" + c.urlParams_.Encode()
131276	req, err := http.NewRequest("POST", urls, body)
131277	if err != nil {
131278		return nil, err
131279	}
131280	req.Header = reqHeaders
131281	googleapi.Expand(req.URL, map[string]string{
131282		"project": c.project,
131283		"zone":    c.zone,
131284	})
131285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131286}
131287
131288// Do executes the "compute.targetInstances.insert" call.
131289// Exactly one of *Operation or error will be non-nil. Any non-2xx
131290// status code is an error. Response headers are in either
131291// *Operation.ServerResponse.Header or (if a response was returned at
131292// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131293// to check whether the returned error was because
131294// http.StatusNotModified was returned.
131295func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131296	gensupport.SetOptions(c.urlParams_, opts...)
131297	res, err := c.doRequest("json")
131298	if res != nil && res.StatusCode == http.StatusNotModified {
131299		if res.Body != nil {
131300			res.Body.Close()
131301		}
131302		return nil, &googleapi.Error{
131303			Code:   res.StatusCode,
131304			Header: res.Header,
131305		}
131306	}
131307	if err != nil {
131308		return nil, err
131309	}
131310	defer googleapi.CloseBody(res)
131311	if err := googleapi.CheckResponse(res); err != nil {
131312		return nil, err
131313	}
131314	ret := &Operation{
131315		ServerResponse: googleapi.ServerResponse{
131316			Header:         res.Header,
131317			HTTPStatusCode: res.StatusCode,
131318		},
131319	}
131320	target := &ret
131321	if err := gensupport.DecodeResponse(target, res); err != nil {
131322		return nil, err
131323	}
131324	return ret, nil
131325	// {
131326	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
131327	//   "httpMethod": "POST",
131328	//   "id": "compute.targetInstances.insert",
131329	//   "parameterOrder": [
131330	//     "project",
131331	//     "zone"
131332	//   ],
131333	//   "parameters": {
131334	//     "project": {
131335	//       "description": "Project ID for this request.",
131336	//       "location": "path",
131337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131338	//       "required": true,
131339	//       "type": "string"
131340	//     },
131341	//     "requestId": {
131342	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131343	//       "location": "query",
131344	//       "type": "string"
131345	//     },
131346	//     "zone": {
131347	//       "description": "Name of the zone scoping this request.",
131348	//       "location": "path",
131349	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131350	//       "required": true,
131351	//       "type": "string"
131352	//     }
131353	//   },
131354	//   "path": "{project}/zones/{zone}/targetInstances",
131355	//   "request": {
131356	//     "$ref": "TargetInstance"
131357	//   },
131358	//   "response": {
131359	//     "$ref": "Operation"
131360	//   },
131361	//   "scopes": [
131362	//     "https://www.googleapis.com/auth/cloud-platform",
131363	//     "https://www.googleapis.com/auth/compute"
131364	//   ]
131365	// }
131366
131367}
131368
131369// method id "compute.targetInstances.list":
131370
131371type TargetInstancesListCall struct {
131372	s            *Service
131373	project      string
131374	zone         string
131375	urlParams_   gensupport.URLParams
131376	ifNoneMatch_ string
131377	ctx_         context.Context
131378	header_      http.Header
131379}
131380
131381// List: Retrieves a list of TargetInstance resources available to the
131382// specified project and zone.
131383// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
131384func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
131385	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131386	c.project = project
131387	c.zone = zone
131388	return c
131389}
131390
131391// Filter sets the optional parameter "filter": A filter expression that
131392// filters resources listed in the response. The expression must specify
131393// the field name, a comparison operator, and the value that you want to
131394// use for filtering. The value must be a string, a number, or a
131395// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131396// `<`.
131397//
131398// For example, if you are filtering Compute Engine instances, you can
131399// exclude instances named `example-instance` by specifying `name !=
131400// example-instance`.
131401//
131402// You can also filter nested fields. For example, you could specify
131403// `scheduling.automaticRestart = false` to include instances only if
131404// they are not scheduled for automatic restarts. You can use filtering
131405// on nested fields to filter based on resource labels.
131406//
131407// To filter on multiple expressions, provide each separate expression
131408// within parentheses. For example: ``` (scheduling.automaticRestart =
131409// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
131410// is an `AND` expression. However, you can include `AND` and `OR`
131411// expressions explicitly. For example: ``` (cpuPlatform = "Intel
131412// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
131413// (scheduling.automaticRestart = true) ```
131414func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
131415	c.urlParams_.Set("filter", filter)
131416	return c
131417}
131418
131419// MaxResults sets the optional parameter "maxResults": The maximum
131420// number of results per page that should be returned. If the number of
131421// available results is larger than `maxResults`, Compute Engine returns
131422// a `nextPageToken` that can be used to get the next page of results in
131423// subsequent list requests. Acceptable values are `0` to `500`,
131424// inclusive. (Default: `500`)
131425func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
131426	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131427	return c
131428}
131429
131430// OrderBy sets the optional parameter "orderBy": Sorts list results by
131431// a certain order. By default, results are returned in alphanumerical
131432// order based on the resource name.
131433//
131434// You can also sort results in descending order based on the creation
131435// timestamp using `orderBy="creationTimestamp desc". This sorts
131436// results based on the `creationTimestamp` field in reverse
131437// chronological order (newest result first). Use this to sort resources
131438// like operations so that the newest operation is returned
131439// first.
131440//
131441// Currently, only sorting by `name` or `creationTimestamp desc` is
131442// supported.
131443func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
131444	c.urlParams_.Set("orderBy", orderBy)
131445	return c
131446}
131447
131448// PageToken sets the optional parameter "pageToken": Specifies a page
131449// token to use. Set `pageToken` to the `nextPageToken` returned by a
131450// previous list request to get the next page of results.
131451func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
131452	c.urlParams_.Set("pageToken", pageToken)
131453	return c
131454}
131455
131456// Fields allows partial responses to be retrieved. See
131457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131458// for more information.
131459func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
131460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131461	return c
131462}
131463
131464// IfNoneMatch sets the optional parameter which makes the operation
131465// fail if the object's ETag matches the given value. This is useful for
131466// getting updates only after the object has changed since the last
131467// request. Use googleapi.IsNotModified to check whether the response
131468// error from Do is the result of In-None-Match.
131469func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
131470	c.ifNoneMatch_ = entityTag
131471	return c
131472}
131473
131474// Context sets the context to be used in this call's Do method. Any
131475// pending HTTP request will be aborted if the provided context is
131476// canceled.
131477func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
131478	c.ctx_ = ctx
131479	return c
131480}
131481
131482// Header returns an http.Header that can be modified by the caller to
131483// add HTTP headers to the request.
131484func (c *TargetInstancesListCall) Header() http.Header {
131485	if c.header_ == nil {
131486		c.header_ = make(http.Header)
131487	}
131488	return c.header_
131489}
131490
131491func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
131492	reqHeaders := make(http.Header)
131493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131494	for k, v := range c.header_ {
131495		reqHeaders[k] = v
131496	}
131497	reqHeaders.Set("User-Agent", c.s.userAgent())
131498	if c.ifNoneMatch_ != "" {
131499		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131500	}
131501	var body io.Reader = nil
131502	c.urlParams_.Set("alt", alt)
131503	c.urlParams_.Set("prettyPrint", "false")
131504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
131505	urls += "?" + c.urlParams_.Encode()
131506	req, err := http.NewRequest("GET", urls, body)
131507	if err != nil {
131508		return nil, err
131509	}
131510	req.Header = reqHeaders
131511	googleapi.Expand(req.URL, map[string]string{
131512		"project": c.project,
131513		"zone":    c.zone,
131514	})
131515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131516}
131517
131518// Do executes the "compute.targetInstances.list" call.
131519// Exactly one of *TargetInstanceList or error will be non-nil. Any
131520// non-2xx status code is an error. Response headers are in either
131521// *TargetInstanceList.ServerResponse.Header or (if a response was
131522// returned at all) in error.(*googleapi.Error).Header. Use
131523// googleapi.IsNotModified to check whether the returned error was
131524// because http.StatusNotModified was returned.
131525func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
131526	gensupport.SetOptions(c.urlParams_, opts...)
131527	res, err := c.doRequest("json")
131528	if res != nil && res.StatusCode == http.StatusNotModified {
131529		if res.Body != nil {
131530			res.Body.Close()
131531		}
131532		return nil, &googleapi.Error{
131533			Code:   res.StatusCode,
131534			Header: res.Header,
131535		}
131536	}
131537	if err != nil {
131538		return nil, err
131539	}
131540	defer googleapi.CloseBody(res)
131541	if err := googleapi.CheckResponse(res); err != nil {
131542		return nil, err
131543	}
131544	ret := &TargetInstanceList{
131545		ServerResponse: googleapi.ServerResponse{
131546			Header:         res.Header,
131547			HTTPStatusCode: res.StatusCode,
131548		},
131549	}
131550	target := &ret
131551	if err := gensupport.DecodeResponse(target, res); err != nil {
131552		return nil, err
131553	}
131554	return ret, nil
131555	// {
131556	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
131557	//   "httpMethod": "GET",
131558	//   "id": "compute.targetInstances.list",
131559	//   "parameterOrder": [
131560	//     "project",
131561	//     "zone"
131562	//   ],
131563	//   "parameters": {
131564	//     "filter": {
131565	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
131566	//       "location": "query",
131567	//       "type": "string"
131568	//     },
131569	//     "maxResults": {
131570	//       "default": "500",
131571	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
131572	//       "format": "uint32",
131573	//       "location": "query",
131574	//       "minimum": "0",
131575	//       "type": "integer"
131576	//     },
131577	//     "orderBy": {
131578	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
131579	//       "location": "query",
131580	//       "type": "string"
131581	//     },
131582	//     "pageToken": {
131583	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
131584	//       "location": "query",
131585	//       "type": "string"
131586	//     },
131587	//     "project": {
131588	//       "description": "Project ID for this request.",
131589	//       "location": "path",
131590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131591	//       "required": true,
131592	//       "type": "string"
131593	//     },
131594	//     "zone": {
131595	//       "description": "Name of the zone scoping this request.",
131596	//       "location": "path",
131597	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131598	//       "required": true,
131599	//       "type": "string"
131600	//     }
131601	//   },
131602	//   "path": "{project}/zones/{zone}/targetInstances",
131603	//   "response": {
131604	//     "$ref": "TargetInstanceList"
131605	//   },
131606	//   "scopes": [
131607	//     "https://www.googleapis.com/auth/cloud-platform",
131608	//     "https://www.googleapis.com/auth/compute",
131609	//     "https://www.googleapis.com/auth/compute.readonly"
131610	//   ]
131611	// }
131612
131613}
131614
131615// Pages invokes f for each page of results.
131616// A non-nil error returned from f will halt the iteration.
131617// The provided context supersedes any context provided to the Context method.
131618func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
131619	c.ctx_ = ctx
131620	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131621	for {
131622		x, err := c.Do()
131623		if err != nil {
131624			return err
131625		}
131626		if err := f(x); err != nil {
131627			return err
131628		}
131629		if x.NextPageToken == "" {
131630			return nil
131631		}
131632		c.PageToken(x.NextPageToken)
131633	}
131634}
131635
131636// method id "compute.targetPools.addHealthCheck":
131637
131638type TargetPoolsAddHealthCheckCall struct {
131639	s                                *Service
131640	project                          string
131641	region                           string
131642	targetPool                       string
131643	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
131644	urlParams_                       gensupport.URLParams
131645	ctx_                             context.Context
131646	header_                          http.Header
131647}
131648
131649// AddHealthCheck: Adds health check URLs to a target pool.
131650// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
131651func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
131652	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131653	c.project = project
131654	c.region = region
131655	c.targetPool = targetPool
131656	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
131657	return c
131658}
131659
131660// RequestId sets the optional parameter "requestId": An optional
131661// request ID to identify requests. Specify a unique request ID so that
131662// if you must retry your request, the server will know to ignore the
131663// request if it has already been completed.
131664//
131665// For example, consider a situation where you make an initial request
131666// and the request times out. If you make the request again with the
131667// same request ID, the server can check if original operation with the
131668// same request ID was received, and if so, will ignore the second
131669// request. This prevents clients from accidentally creating duplicate
131670// commitments.
131671//
131672// The request ID must be a valid UUID with the exception that zero UUID
131673// is not supported (00000000-0000-0000-0000-000000000000).
131674func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
131675	c.urlParams_.Set("requestId", requestId)
131676	return c
131677}
131678
131679// Fields allows partial responses to be retrieved. See
131680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131681// for more information.
131682func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
131683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131684	return c
131685}
131686
131687// Context sets the context to be used in this call's Do method. Any
131688// pending HTTP request will be aborted if the provided context is
131689// canceled.
131690func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
131691	c.ctx_ = ctx
131692	return c
131693}
131694
131695// Header returns an http.Header that can be modified by the caller to
131696// add HTTP headers to the request.
131697func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
131698	if c.header_ == nil {
131699		c.header_ = make(http.Header)
131700	}
131701	return c.header_
131702}
131703
131704func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
131705	reqHeaders := make(http.Header)
131706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131707	for k, v := range c.header_ {
131708		reqHeaders[k] = v
131709	}
131710	reqHeaders.Set("User-Agent", c.s.userAgent())
131711	var body io.Reader = nil
131712	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
131713	if err != nil {
131714		return nil, err
131715	}
131716	reqHeaders.Set("Content-Type", "application/json")
131717	c.urlParams_.Set("alt", alt)
131718	c.urlParams_.Set("prettyPrint", "false")
131719	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
131720	urls += "?" + c.urlParams_.Encode()
131721	req, err := http.NewRequest("POST", urls, body)
131722	if err != nil {
131723		return nil, err
131724	}
131725	req.Header = reqHeaders
131726	googleapi.Expand(req.URL, map[string]string{
131727		"project":    c.project,
131728		"region":     c.region,
131729		"targetPool": c.targetPool,
131730	})
131731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131732}
131733
131734// Do executes the "compute.targetPools.addHealthCheck" call.
131735// Exactly one of *Operation or error will be non-nil. Any non-2xx
131736// status code is an error. Response headers are in either
131737// *Operation.ServerResponse.Header or (if a response was returned at
131738// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131739// to check whether the returned error was because
131740// http.StatusNotModified was returned.
131741func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131742	gensupport.SetOptions(c.urlParams_, opts...)
131743	res, err := c.doRequest("json")
131744	if res != nil && res.StatusCode == http.StatusNotModified {
131745		if res.Body != nil {
131746			res.Body.Close()
131747		}
131748		return nil, &googleapi.Error{
131749			Code:   res.StatusCode,
131750			Header: res.Header,
131751		}
131752	}
131753	if err != nil {
131754		return nil, err
131755	}
131756	defer googleapi.CloseBody(res)
131757	if err := googleapi.CheckResponse(res); err != nil {
131758		return nil, err
131759	}
131760	ret := &Operation{
131761		ServerResponse: googleapi.ServerResponse{
131762			Header:         res.Header,
131763			HTTPStatusCode: res.StatusCode,
131764		},
131765	}
131766	target := &ret
131767	if err := gensupport.DecodeResponse(target, res); err != nil {
131768		return nil, err
131769	}
131770	return ret, nil
131771	// {
131772	//   "description": "Adds health check URLs to a target pool.",
131773	//   "httpMethod": "POST",
131774	//   "id": "compute.targetPools.addHealthCheck",
131775	//   "parameterOrder": [
131776	//     "project",
131777	//     "region",
131778	//     "targetPool"
131779	//   ],
131780	//   "parameters": {
131781	//     "project": {
131782	//       "description": "Project ID for this request.",
131783	//       "location": "path",
131784	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131785	//       "required": true,
131786	//       "type": "string"
131787	//     },
131788	//     "region": {
131789	//       "description": "Name of the region scoping this request.",
131790	//       "location": "path",
131791	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131792	//       "required": true,
131793	//       "type": "string"
131794	//     },
131795	//     "requestId": {
131796	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131797	//       "location": "query",
131798	//       "type": "string"
131799	//     },
131800	//     "targetPool": {
131801	//       "description": "Name of the target pool to add a health check to.",
131802	//       "location": "path",
131803	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131804	//       "required": true,
131805	//       "type": "string"
131806	//     }
131807	//   },
131808	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
131809	//   "request": {
131810	//     "$ref": "TargetPoolsAddHealthCheckRequest"
131811	//   },
131812	//   "response": {
131813	//     "$ref": "Operation"
131814	//   },
131815	//   "scopes": [
131816	//     "https://www.googleapis.com/auth/cloud-platform",
131817	//     "https://www.googleapis.com/auth/compute"
131818	//   ]
131819	// }
131820
131821}
131822
131823// method id "compute.targetPools.addInstance":
131824
131825type TargetPoolsAddInstanceCall struct {
131826	s                             *Service
131827	project                       string
131828	region                        string
131829	targetPool                    string
131830	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
131831	urlParams_                    gensupport.URLParams
131832	ctx_                          context.Context
131833	header_                       http.Header
131834}
131835
131836// AddInstance: Adds an instance to a target pool.
131837// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
131838func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
131839	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131840	c.project = project
131841	c.region = region
131842	c.targetPool = targetPool
131843	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
131844	return c
131845}
131846
131847// RequestId sets the optional parameter "requestId": An optional
131848// request ID to identify requests. Specify a unique request ID so that
131849// if you must retry your request, the server will know to ignore the
131850// request if it has already been completed.
131851//
131852// For example, consider a situation where you make an initial request
131853// and the request times out. If you make the request again with the
131854// same request ID, the server can check if original operation with the
131855// same request ID was received, and if so, will ignore the second
131856// request. This prevents clients from accidentally creating duplicate
131857// commitments.
131858//
131859// The request ID must be a valid UUID with the exception that zero UUID
131860// is not supported (00000000-0000-0000-0000-000000000000).
131861func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
131862	c.urlParams_.Set("requestId", requestId)
131863	return c
131864}
131865
131866// Fields allows partial responses to be retrieved. See
131867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131868// for more information.
131869func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
131870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131871	return c
131872}
131873
131874// Context sets the context to be used in this call's Do method. Any
131875// pending HTTP request will be aborted if the provided context is
131876// canceled.
131877func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
131878	c.ctx_ = ctx
131879	return c
131880}
131881
131882// Header returns an http.Header that can be modified by the caller to
131883// add HTTP headers to the request.
131884func (c *TargetPoolsAddInstanceCall) Header() http.Header {
131885	if c.header_ == nil {
131886		c.header_ = make(http.Header)
131887	}
131888	return c.header_
131889}
131890
131891func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
131892	reqHeaders := make(http.Header)
131893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131894	for k, v := range c.header_ {
131895		reqHeaders[k] = v
131896	}
131897	reqHeaders.Set("User-Agent", c.s.userAgent())
131898	var body io.Reader = nil
131899	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
131900	if err != nil {
131901		return nil, err
131902	}
131903	reqHeaders.Set("Content-Type", "application/json")
131904	c.urlParams_.Set("alt", alt)
131905	c.urlParams_.Set("prettyPrint", "false")
131906	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
131907	urls += "?" + c.urlParams_.Encode()
131908	req, err := http.NewRequest("POST", urls, body)
131909	if err != nil {
131910		return nil, err
131911	}
131912	req.Header = reqHeaders
131913	googleapi.Expand(req.URL, map[string]string{
131914		"project":    c.project,
131915		"region":     c.region,
131916		"targetPool": c.targetPool,
131917	})
131918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131919}
131920
131921// Do executes the "compute.targetPools.addInstance" call.
131922// Exactly one of *Operation or error will be non-nil. Any non-2xx
131923// status code is an error. Response headers are in either
131924// *Operation.ServerResponse.Header or (if a response was returned at
131925// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131926// to check whether the returned error was because
131927// http.StatusNotModified was returned.
131928func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131929	gensupport.SetOptions(c.urlParams_, opts...)
131930	res, err := c.doRequest("json")
131931	if res != nil && res.StatusCode == http.StatusNotModified {
131932		if res.Body != nil {
131933			res.Body.Close()
131934		}
131935		return nil, &googleapi.Error{
131936			Code:   res.StatusCode,
131937			Header: res.Header,
131938		}
131939	}
131940	if err != nil {
131941		return nil, err
131942	}
131943	defer googleapi.CloseBody(res)
131944	if err := googleapi.CheckResponse(res); err != nil {
131945		return nil, err
131946	}
131947	ret := &Operation{
131948		ServerResponse: googleapi.ServerResponse{
131949			Header:         res.Header,
131950			HTTPStatusCode: res.StatusCode,
131951		},
131952	}
131953	target := &ret
131954	if err := gensupport.DecodeResponse(target, res); err != nil {
131955		return nil, err
131956	}
131957	return ret, nil
131958	// {
131959	//   "description": "Adds an instance to a target pool.",
131960	//   "httpMethod": "POST",
131961	//   "id": "compute.targetPools.addInstance",
131962	//   "parameterOrder": [
131963	//     "project",
131964	//     "region",
131965	//     "targetPool"
131966	//   ],
131967	//   "parameters": {
131968	//     "project": {
131969	//       "description": "Project ID for this request.",
131970	//       "location": "path",
131971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131972	//       "required": true,
131973	//       "type": "string"
131974	//     },
131975	//     "region": {
131976	//       "description": "Name of the region scoping this request.",
131977	//       "location": "path",
131978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131979	//       "required": true,
131980	//       "type": "string"
131981	//     },
131982	//     "requestId": {
131983	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131984	//       "location": "query",
131985	//       "type": "string"
131986	//     },
131987	//     "targetPool": {
131988	//       "description": "Name of the TargetPool resource to add instances to.",
131989	//       "location": "path",
131990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131991	//       "required": true,
131992	//       "type": "string"
131993	//     }
131994	//   },
131995	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
131996	//   "request": {
131997	//     "$ref": "TargetPoolsAddInstanceRequest"
131998	//   },
131999	//   "response": {
132000	//     "$ref": "Operation"
132001	//   },
132002	//   "scopes": [
132003	//     "https://www.googleapis.com/auth/cloud-platform",
132004	//     "https://www.googleapis.com/auth/compute"
132005	//   ]
132006	// }
132007
132008}
132009
132010// method id "compute.targetPools.aggregatedList":
132011
132012type TargetPoolsAggregatedListCall struct {
132013	s            *Service
132014	project      string
132015	urlParams_   gensupport.URLParams
132016	ifNoneMatch_ string
132017	ctx_         context.Context
132018	header_      http.Header
132019}
132020
132021// AggregatedList: Retrieves an aggregated list of target pools.
132022// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
132023func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
132024	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132025	c.project = project
132026	return c
132027}
132028
132029// Filter sets the optional parameter "filter": A filter expression that
132030// filters resources listed in the response. The expression must specify
132031// the field name, a comparison operator, and the value that you want to
132032// use for filtering. The value must be a string, a number, or a
132033// boolean. The comparison operator must be either `=`, `!=`, `>`, or
132034// `<`.
132035//
132036// For example, if you are filtering Compute Engine instances, you can
132037// exclude instances named `example-instance` by specifying `name !=
132038// example-instance`.
132039//
132040// You can also filter nested fields. For example, you could specify
132041// `scheduling.automaticRestart = false` to include instances only if
132042// they are not scheduled for automatic restarts. You can use filtering
132043// on nested fields to filter based on resource labels.
132044//
132045// To filter on multiple expressions, provide each separate expression
132046// within parentheses. For example: ``` (scheduling.automaticRestart =
132047// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
132048// is an `AND` expression. However, you can include `AND` and `OR`
132049// expressions explicitly. For example: ``` (cpuPlatform = "Intel
132050// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
132051// (scheduling.automaticRestart = true) ```
132052func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
132053	c.urlParams_.Set("filter", filter)
132054	return c
132055}
132056
132057// IncludeAllScopes sets the optional parameter "includeAllScopes":
132058// Indicates whether every visible scope for each scope type (zone,
132059// region, global) should be included in the response. For new resource
132060// types added after this field, the flag has no effect as new resource
132061// types will always include every visible scope for each scope type in
132062// response. For resource types which predate this field, if this flag
132063// is omitted or false, only scopes of the scope types where the
132064// resource type is expected to be found will be included.
132065func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
132066	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
132067	return c
132068}
132069
132070// MaxResults sets the optional parameter "maxResults": The maximum
132071// number of results per page that should be returned. If the number of
132072// available results is larger than `maxResults`, Compute Engine returns
132073// a `nextPageToken` that can be used to get the next page of results in
132074// subsequent list requests. Acceptable values are `0` to `500`,
132075// inclusive. (Default: `500`)
132076func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
132077	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132078	return c
132079}
132080
132081// OrderBy sets the optional parameter "orderBy": Sorts list results by
132082// a certain order. By default, results are returned in alphanumerical
132083// order based on the resource name.
132084//
132085// You can also sort results in descending order based on the creation
132086// timestamp using `orderBy="creationTimestamp desc". This sorts
132087// results based on the `creationTimestamp` field in reverse
132088// chronological order (newest result first). Use this to sort resources
132089// like operations so that the newest operation is returned
132090// first.
132091//
132092// Currently, only sorting by `name` or `creationTimestamp desc` is
132093// supported.
132094func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
132095	c.urlParams_.Set("orderBy", orderBy)
132096	return c
132097}
132098
132099// PageToken sets the optional parameter "pageToken": Specifies a page
132100// token to use. Set `pageToken` to the `nextPageToken` returned by a
132101// previous list request to get the next page of results.
132102func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
132103	c.urlParams_.Set("pageToken", pageToken)
132104	return c
132105}
132106
132107// Fields allows partial responses to be retrieved. See
132108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132109// for more information.
132110func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
132111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132112	return c
132113}
132114
132115// IfNoneMatch sets the optional parameter which makes the operation
132116// fail if the object's ETag matches the given value. This is useful for
132117// getting updates only after the object has changed since the last
132118// request. Use googleapi.IsNotModified to check whether the response
132119// error from Do is the result of In-None-Match.
132120func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
132121	c.ifNoneMatch_ = entityTag
132122	return c
132123}
132124
132125// Context sets the context to be used in this call's Do method. Any
132126// pending HTTP request will be aborted if the provided context is
132127// canceled.
132128func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
132129	c.ctx_ = ctx
132130	return c
132131}
132132
132133// Header returns an http.Header that can be modified by the caller to
132134// add HTTP headers to the request.
132135func (c *TargetPoolsAggregatedListCall) Header() http.Header {
132136	if c.header_ == nil {
132137		c.header_ = make(http.Header)
132138	}
132139	return c.header_
132140}
132141
132142func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
132143	reqHeaders := make(http.Header)
132144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132145	for k, v := range c.header_ {
132146		reqHeaders[k] = v
132147	}
132148	reqHeaders.Set("User-Agent", c.s.userAgent())
132149	if c.ifNoneMatch_ != "" {
132150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132151	}
132152	var body io.Reader = nil
132153	c.urlParams_.Set("alt", alt)
132154	c.urlParams_.Set("prettyPrint", "false")
132155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
132156	urls += "?" + c.urlParams_.Encode()
132157	req, err := http.NewRequest("GET", urls, body)
132158	if err != nil {
132159		return nil, err
132160	}
132161	req.Header = reqHeaders
132162	googleapi.Expand(req.URL, map[string]string{
132163		"project": c.project,
132164	})
132165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132166}
132167
132168// Do executes the "compute.targetPools.aggregatedList" call.
132169// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
132170// Any non-2xx status code is an error. Response headers are in either
132171// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
132172// returned at all) in error.(*googleapi.Error).Header. Use
132173// googleapi.IsNotModified to check whether the returned error was
132174// because http.StatusNotModified was returned.
132175func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
132176	gensupport.SetOptions(c.urlParams_, opts...)
132177	res, err := c.doRequest("json")
132178	if res != nil && res.StatusCode == http.StatusNotModified {
132179		if res.Body != nil {
132180			res.Body.Close()
132181		}
132182		return nil, &googleapi.Error{
132183			Code:   res.StatusCode,
132184			Header: res.Header,
132185		}
132186	}
132187	if err != nil {
132188		return nil, err
132189	}
132190	defer googleapi.CloseBody(res)
132191	if err := googleapi.CheckResponse(res); err != nil {
132192		return nil, err
132193	}
132194	ret := &TargetPoolAggregatedList{
132195		ServerResponse: googleapi.ServerResponse{
132196			Header:         res.Header,
132197			HTTPStatusCode: res.StatusCode,
132198		},
132199	}
132200	target := &ret
132201	if err := gensupport.DecodeResponse(target, res); err != nil {
132202		return nil, err
132203	}
132204	return ret, nil
132205	// {
132206	//   "description": "Retrieves an aggregated list of target pools.",
132207	//   "httpMethod": "GET",
132208	//   "id": "compute.targetPools.aggregatedList",
132209	//   "parameterOrder": [
132210	//     "project"
132211	//   ],
132212	//   "parameters": {
132213	//     "filter": {
132214	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
132215	//       "location": "query",
132216	//       "type": "string"
132217	//     },
132218	//     "includeAllScopes": {
132219	//       "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.",
132220	//       "location": "query",
132221	//       "type": "boolean"
132222	//     },
132223	//     "maxResults": {
132224	//       "default": "500",
132225	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132226	//       "format": "uint32",
132227	//       "location": "query",
132228	//       "minimum": "0",
132229	//       "type": "integer"
132230	//     },
132231	//     "orderBy": {
132232	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
132233	//       "location": "query",
132234	//       "type": "string"
132235	//     },
132236	//     "pageToken": {
132237	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132238	//       "location": "query",
132239	//       "type": "string"
132240	//     },
132241	//     "project": {
132242	//       "description": "Project ID for this request.",
132243	//       "location": "path",
132244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132245	//       "required": true,
132246	//       "type": "string"
132247	//     }
132248	//   },
132249	//   "path": "{project}/aggregated/targetPools",
132250	//   "response": {
132251	//     "$ref": "TargetPoolAggregatedList"
132252	//   },
132253	//   "scopes": [
132254	//     "https://www.googleapis.com/auth/cloud-platform",
132255	//     "https://www.googleapis.com/auth/compute",
132256	//     "https://www.googleapis.com/auth/compute.readonly"
132257	//   ]
132258	// }
132259
132260}
132261
132262// Pages invokes f for each page of results.
132263// A non-nil error returned from f will halt the iteration.
132264// The provided context supersedes any context provided to the Context method.
132265func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
132266	c.ctx_ = ctx
132267	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132268	for {
132269		x, err := c.Do()
132270		if err != nil {
132271			return err
132272		}
132273		if err := f(x); err != nil {
132274			return err
132275		}
132276		if x.NextPageToken == "" {
132277			return nil
132278		}
132279		c.PageToken(x.NextPageToken)
132280	}
132281}
132282
132283// method id "compute.targetPools.delete":
132284
132285type TargetPoolsDeleteCall struct {
132286	s          *Service
132287	project    string
132288	region     string
132289	targetPool string
132290	urlParams_ gensupport.URLParams
132291	ctx_       context.Context
132292	header_    http.Header
132293}
132294
132295// Delete: Deletes the specified target pool.
132296// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
132297func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
132298	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132299	c.project = project
132300	c.region = region
132301	c.targetPool = targetPool
132302	return c
132303}
132304
132305// RequestId sets the optional parameter "requestId": An optional
132306// request ID to identify requests. Specify a unique request ID so that
132307// if you must retry your request, the server will know to ignore the
132308// request if it has already been completed.
132309//
132310// For example, consider a situation where you make an initial request
132311// and the request times out. If you make the request again with the
132312// same request ID, the server can check if original operation with the
132313// same request ID was received, and if so, will ignore the second
132314// request. This prevents clients from accidentally creating duplicate
132315// commitments.
132316//
132317// The request ID must be a valid UUID with the exception that zero UUID
132318// is not supported (00000000-0000-0000-0000-000000000000).
132319func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
132320	c.urlParams_.Set("requestId", requestId)
132321	return c
132322}
132323
132324// Fields allows partial responses to be retrieved. See
132325// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132326// for more information.
132327func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
132328	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132329	return c
132330}
132331
132332// Context sets the context to be used in this call's Do method. Any
132333// pending HTTP request will be aborted if the provided context is
132334// canceled.
132335func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
132336	c.ctx_ = ctx
132337	return c
132338}
132339
132340// Header returns an http.Header that can be modified by the caller to
132341// add HTTP headers to the request.
132342func (c *TargetPoolsDeleteCall) Header() http.Header {
132343	if c.header_ == nil {
132344		c.header_ = make(http.Header)
132345	}
132346	return c.header_
132347}
132348
132349func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
132350	reqHeaders := make(http.Header)
132351	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132352	for k, v := range c.header_ {
132353		reqHeaders[k] = v
132354	}
132355	reqHeaders.Set("User-Agent", c.s.userAgent())
132356	var body io.Reader = nil
132357	c.urlParams_.Set("alt", alt)
132358	c.urlParams_.Set("prettyPrint", "false")
132359	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
132360	urls += "?" + c.urlParams_.Encode()
132361	req, err := http.NewRequest("DELETE", urls, body)
132362	if err != nil {
132363		return nil, err
132364	}
132365	req.Header = reqHeaders
132366	googleapi.Expand(req.URL, map[string]string{
132367		"project":    c.project,
132368		"region":     c.region,
132369		"targetPool": c.targetPool,
132370	})
132371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132372}
132373
132374// Do executes the "compute.targetPools.delete" call.
132375// Exactly one of *Operation or error will be non-nil. Any non-2xx
132376// status code is an error. Response headers are in either
132377// *Operation.ServerResponse.Header or (if a response was returned at
132378// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132379// to check whether the returned error was because
132380// http.StatusNotModified was returned.
132381func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132382	gensupport.SetOptions(c.urlParams_, opts...)
132383	res, err := c.doRequest("json")
132384	if res != nil && res.StatusCode == http.StatusNotModified {
132385		if res.Body != nil {
132386			res.Body.Close()
132387		}
132388		return nil, &googleapi.Error{
132389			Code:   res.StatusCode,
132390			Header: res.Header,
132391		}
132392	}
132393	if err != nil {
132394		return nil, err
132395	}
132396	defer googleapi.CloseBody(res)
132397	if err := googleapi.CheckResponse(res); err != nil {
132398		return nil, err
132399	}
132400	ret := &Operation{
132401		ServerResponse: googleapi.ServerResponse{
132402			Header:         res.Header,
132403			HTTPStatusCode: res.StatusCode,
132404		},
132405	}
132406	target := &ret
132407	if err := gensupport.DecodeResponse(target, res); err != nil {
132408		return nil, err
132409	}
132410	return ret, nil
132411	// {
132412	//   "description": "Deletes the specified target pool.",
132413	//   "httpMethod": "DELETE",
132414	//   "id": "compute.targetPools.delete",
132415	//   "parameterOrder": [
132416	//     "project",
132417	//     "region",
132418	//     "targetPool"
132419	//   ],
132420	//   "parameters": {
132421	//     "project": {
132422	//       "description": "Project ID for this request.",
132423	//       "location": "path",
132424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132425	//       "required": true,
132426	//       "type": "string"
132427	//     },
132428	//     "region": {
132429	//       "description": "Name of the region scoping 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	//     "requestId": {
132436	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132437	//       "location": "query",
132438	//       "type": "string"
132439	//     },
132440	//     "targetPool": {
132441	//       "description": "Name of the TargetPool resource to delete.",
132442	//       "location": "path",
132443	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132444	//       "required": true,
132445	//       "type": "string"
132446	//     }
132447	//   },
132448	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
132449	//   "response": {
132450	//     "$ref": "Operation"
132451	//   },
132452	//   "scopes": [
132453	//     "https://www.googleapis.com/auth/cloud-platform",
132454	//     "https://www.googleapis.com/auth/compute"
132455	//   ]
132456	// }
132457
132458}
132459
132460// method id "compute.targetPools.get":
132461
132462type TargetPoolsGetCall struct {
132463	s            *Service
132464	project      string
132465	region       string
132466	targetPool   string
132467	urlParams_   gensupport.URLParams
132468	ifNoneMatch_ string
132469	ctx_         context.Context
132470	header_      http.Header
132471}
132472
132473// Get: Returns the specified target pool. Gets a list of available
132474// target pools by making a list() request.
132475// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
132476func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
132477	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132478	c.project = project
132479	c.region = region
132480	c.targetPool = targetPool
132481	return c
132482}
132483
132484// Fields allows partial responses to be retrieved. See
132485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132486// for more information.
132487func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
132488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132489	return c
132490}
132491
132492// IfNoneMatch sets the optional parameter which makes the operation
132493// fail if the object's ETag matches the given value. This is useful for
132494// getting updates only after the object has changed since the last
132495// request. Use googleapi.IsNotModified to check whether the response
132496// error from Do is the result of In-None-Match.
132497func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
132498	c.ifNoneMatch_ = entityTag
132499	return c
132500}
132501
132502// Context sets the context to be used in this call's Do method. Any
132503// pending HTTP request will be aborted if the provided context is
132504// canceled.
132505func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
132506	c.ctx_ = ctx
132507	return c
132508}
132509
132510// Header returns an http.Header that can be modified by the caller to
132511// add HTTP headers to the request.
132512func (c *TargetPoolsGetCall) Header() http.Header {
132513	if c.header_ == nil {
132514		c.header_ = make(http.Header)
132515	}
132516	return c.header_
132517}
132518
132519func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
132520	reqHeaders := make(http.Header)
132521	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132522	for k, v := range c.header_ {
132523		reqHeaders[k] = v
132524	}
132525	reqHeaders.Set("User-Agent", c.s.userAgent())
132526	if c.ifNoneMatch_ != "" {
132527		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132528	}
132529	var body io.Reader = nil
132530	c.urlParams_.Set("alt", alt)
132531	c.urlParams_.Set("prettyPrint", "false")
132532	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
132533	urls += "?" + c.urlParams_.Encode()
132534	req, err := http.NewRequest("GET", urls, body)
132535	if err != nil {
132536		return nil, err
132537	}
132538	req.Header = reqHeaders
132539	googleapi.Expand(req.URL, map[string]string{
132540		"project":    c.project,
132541		"region":     c.region,
132542		"targetPool": c.targetPool,
132543	})
132544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132545}
132546
132547// Do executes the "compute.targetPools.get" call.
132548// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
132549// status code is an error. Response headers are in either
132550// *TargetPool.ServerResponse.Header or (if a response was returned at
132551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132552// to check whether the returned error was because
132553// http.StatusNotModified was returned.
132554func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
132555	gensupport.SetOptions(c.urlParams_, opts...)
132556	res, err := c.doRequest("json")
132557	if res != nil && res.StatusCode == http.StatusNotModified {
132558		if res.Body != nil {
132559			res.Body.Close()
132560		}
132561		return nil, &googleapi.Error{
132562			Code:   res.StatusCode,
132563			Header: res.Header,
132564		}
132565	}
132566	if err != nil {
132567		return nil, err
132568	}
132569	defer googleapi.CloseBody(res)
132570	if err := googleapi.CheckResponse(res); err != nil {
132571		return nil, err
132572	}
132573	ret := &TargetPool{
132574		ServerResponse: googleapi.ServerResponse{
132575			Header:         res.Header,
132576			HTTPStatusCode: res.StatusCode,
132577		},
132578	}
132579	target := &ret
132580	if err := gensupport.DecodeResponse(target, res); err != nil {
132581		return nil, err
132582	}
132583	return ret, nil
132584	// {
132585	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
132586	//   "httpMethod": "GET",
132587	//   "id": "compute.targetPools.get",
132588	//   "parameterOrder": [
132589	//     "project",
132590	//     "region",
132591	//     "targetPool"
132592	//   ],
132593	//   "parameters": {
132594	//     "project": {
132595	//       "description": "Project ID for this request.",
132596	//       "location": "path",
132597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132598	//       "required": true,
132599	//       "type": "string"
132600	//     },
132601	//     "region": {
132602	//       "description": "Name of the region scoping this request.",
132603	//       "location": "path",
132604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132605	//       "required": true,
132606	//       "type": "string"
132607	//     },
132608	//     "targetPool": {
132609	//       "description": "Name of the TargetPool resource to return.",
132610	//       "location": "path",
132611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132612	//       "required": true,
132613	//       "type": "string"
132614	//     }
132615	//   },
132616	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
132617	//   "response": {
132618	//     "$ref": "TargetPool"
132619	//   },
132620	//   "scopes": [
132621	//     "https://www.googleapis.com/auth/cloud-platform",
132622	//     "https://www.googleapis.com/auth/compute",
132623	//     "https://www.googleapis.com/auth/compute.readonly"
132624	//   ]
132625	// }
132626
132627}
132628
132629// method id "compute.targetPools.getHealth":
132630
132631type TargetPoolsGetHealthCall struct {
132632	s                 *Service
132633	project           string
132634	region            string
132635	targetPool        string
132636	instancereference *InstanceReference
132637	urlParams_        gensupport.URLParams
132638	ctx_              context.Context
132639	header_           http.Header
132640}
132641
132642// GetHealth: Gets the most recent health check results for each IP for
132643// the instance that is referenced by the given target pool.
132644// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
132645func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
132646	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132647	c.project = project
132648	c.region = region
132649	c.targetPool = targetPool
132650	c.instancereference = instancereference
132651	return c
132652}
132653
132654// Fields allows partial responses to be retrieved. See
132655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132656// for more information.
132657func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
132658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132659	return c
132660}
132661
132662// Context sets the context to be used in this call's Do method. Any
132663// pending HTTP request will be aborted if the provided context is
132664// canceled.
132665func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
132666	c.ctx_ = ctx
132667	return c
132668}
132669
132670// Header returns an http.Header that can be modified by the caller to
132671// add HTTP headers to the request.
132672func (c *TargetPoolsGetHealthCall) Header() http.Header {
132673	if c.header_ == nil {
132674		c.header_ = make(http.Header)
132675	}
132676	return c.header_
132677}
132678
132679func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
132680	reqHeaders := make(http.Header)
132681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132682	for k, v := range c.header_ {
132683		reqHeaders[k] = v
132684	}
132685	reqHeaders.Set("User-Agent", c.s.userAgent())
132686	var body io.Reader = nil
132687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
132688	if err != nil {
132689		return nil, err
132690	}
132691	reqHeaders.Set("Content-Type", "application/json")
132692	c.urlParams_.Set("alt", alt)
132693	c.urlParams_.Set("prettyPrint", "false")
132694	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
132695	urls += "?" + c.urlParams_.Encode()
132696	req, err := http.NewRequest("POST", urls, body)
132697	if err != nil {
132698		return nil, err
132699	}
132700	req.Header = reqHeaders
132701	googleapi.Expand(req.URL, map[string]string{
132702		"project":    c.project,
132703		"region":     c.region,
132704		"targetPool": c.targetPool,
132705	})
132706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132707}
132708
132709// Do executes the "compute.targetPools.getHealth" call.
132710// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
132711// Any non-2xx status code is an error. Response headers are in either
132712// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
132713// returned at all) in error.(*googleapi.Error).Header. Use
132714// googleapi.IsNotModified to check whether the returned error was
132715// because http.StatusNotModified was returned.
132716func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
132717	gensupport.SetOptions(c.urlParams_, opts...)
132718	res, err := c.doRequest("json")
132719	if res != nil && res.StatusCode == http.StatusNotModified {
132720		if res.Body != nil {
132721			res.Body.Close()
132722		}
132723		return nil, &googleapi.Error{
132724			Code:   res.StatusCode,
132725			Header: res.Header,
132726		}
132727	}
132728	if err != nil {
132729		return nil, err
132730	}
132731	defer googleapi.CloseBody(res)
132732	if err := googleapi.CheckResponse(res); err != nil {
132733		return nil, err
132734	}
132735	ret := &TargetPoolInstanceHealth{
132736		ServerResponse: googleapi.ServerResponse{
132737			Header:         res.Header,
132738			HTTPStatusCode: res.StatusCode,
132739		},
132740	}
132741	target := &ret
132742	if err := gensupport.DecodeResponse(target, res); err != nil {
132743		return nil, err
132744	}
132745	return ret, nil
132746	// {
132747	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
132748	//   "httpMethod": "POST",
132749	//   "id": "compute.targetPools.getHealth",
132750	//   "parameterOrder": [
132751	//     "project",
132752	//     "region",
132753	//     "targetPool"
132754	//   ],
132755	//   "parameters": {
132756	//     "project": {
132757	//       "description": "Project ID for this request.",
132758	//       "location": "path",
132759	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132760	//       "required": true,
132761	//       "type": "string"
132762	//     },
132763	//     "region": {
132764	//       "description": "Name of the region scoping this request.",
132765	//       "location": "path",
132766	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132767	//       "required": true,
132768	//       "type": "string"
132769	//     },
132770	//     "targetPool": {
132771	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
132772	//       "location": "path",
132773	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132774	//       "required": true,
132775	//       "type": "string"
132776	//     }
132777	//   },
132778	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
132779	//   "request": {
132780	//     "$ref": "InstanceReference"
132781	//   },
132782	//   "response": {
132783	//     "$ref": "TargetPoolInstanceHealth"
132784	//   },
132785	//   "scopes": [
132786	//     "https://www.googleapis.com/auth/cloud-platform",
132787	//     "https://www.googleapis.com/auth/compute",
132788	//     "https://www.googleapis.com/auth/compute.readonly"
132789	//   ]
132790	// }
132791
132792}
132793
132794// method id "compute.targetPools.insert":
132795
132796type TargetPoolsInsertCall struct {
132797	s          *Service
132798	project    string
132799	region     string
132800	targetpool *TargetPool
132801	urlParams_ gensupport.URLParams
132802	ctx_       context.Context
132803	header_    http.Header
132804}
132805
132806// Insert: Creates a target pool in the specified project and region
132807// using the data included in the request.
132808// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
132809func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
132810	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132811	c.project = project
132812	c.region = region
132813	c.targetpool = targetpool
132814	return c
132815}
132816
132817// RequestId sets the optional parameter "requestId": An optional
132818// request ID to identify requests. Specify a unique request ID so that
132819// if you must retry your request, the server will know to ignore the
132820// request if it has already been completed.
132821//
132822// For example, consider a situation where you make an initial request
132823// and the request times out. If you make the request again with the
132824// same request ID, the server can check if original operation with the
132825// same request ID was received, and if so, will ignore the second
132826// request. This prevents clients from accidentally creating duplicate
132827// commitments.
132828//
132829// The request ID must be a valid UUID with the exception that zero UUID
132830// is not supported (00000000-0000-0000-0000-000000000000).
132831func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
132832	c.urlParams_.Set("requestId", requestId)
132833	return c
132834}
132835
132836// Fields allows partial responses to be retrieved. See
132837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132838// for more information.
132839func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
132840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132841	return c
132842}
132843
132844// Context sets the context to be used in this call's Do method. Any
132845// pending HTTP request will be aborted if the provided context is
132846// canceled.
132847func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
132848	c.ctx_ = ctx
132849	return c
132850}
132851
132852// Header returns an http.Header that can be modified by the caller to
132853// add HTTP headers to the request.
132854func (c *TargetPoolsInsertCall) Header() http.Header {
132855	if c.header_ == nil {
132856		c.header_ = make(http.Header)
132857	}
132858	return c.header_
132859}
132860
132861func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
132862	reqHeaders := make(http.Header)
132863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132864	for k, v := range c.header_ {
132865		reqHeaders[k] = v
132866	}
132867	reqHeaders.Set("User-Agent", c.s.userAgent())
132868	var body io.Reader = nil
132869	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
132870	if err != nil {
132871		return nil, err
132872	}
132873	reqHeaders.Set("Content-Type", "application/json")
132874	c.urlParams_.Set("alt", alt)
132875	c.urlParams_.Set("prettyPrint", "false")
132876	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
132877	urls += "?" + c.urlParams_.Encode()
132878	req, err := http.NewRequest("POST", urls, body)
132879	if err != nil {
132880		return nil, err
132881	}
132882	req.Header = reqHeaders
132883	googleapi.Expand(req.URL, map[string]string{
132884		"project": c.project,
132885		"region":  c.region,
132886	})
132887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132888}
132889
132890// Do executes the "compute.targetPools.insert" call.
132891// Exactly one of *Operation or error will be non-nil. Any non-2xx
132892// status code is an error. Response headers are in either
132893// *Operation.ServerResponse.Header or (if a response was returned at
132894// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132895// to check whether the returned error was because
132896// http.StatusNotModified was returned.
132897func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132898	gensupport.SetOptions(c.urlParams_, opts...)
132899	res, err := c.doRequest("json")
132900	if res != nil && res.StatusCode == http.StatusNotModified {
132901		if res.Body != nil {
132902			res.Body.Close()
132903		}
132904		return nil, &googleapi.Error{
132905			Code:   res.StatusCode,
132906			Header: res.Header,
132907		}
132908	}
132909	if err != nil {
132910		return nil, err
132911	}
132912	defer googleapi.CloseBody(res)
132913	if err := googleapi.CheckResponse(res); err != nil {
132914		return nil, err
132915	}
132916	ret := &Operation{
132917		ServerResponse: googleapi.ServerResponse{
132918			Header:         res.Header,
132919			HTTPStatusCode: res.StatusCode,
132920		},
132921	}
132922	target := &ret
132923	if err := gensupport.DecodeResponse(target, res); err != nil {
132924		return nil, err
132925	}
132926	return ret, nil
132927	// {
132928	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
132929	//   "httpMethod": "POST",
132930	//   "id": "compute.targetPools.insert",
132931	//   "parameterOrder": [
132932	//     "project",
132933	//     "region"
132934	//   ],
132935	//   "parameters": {
132936	//     "project": {
132937	//       "description": "Project ID for this request.",
132938	//       "location": "path",
132939	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132940	//       "required": true,
132941	//       "type": "string"
132942	//     },
132943	//     "region": {
132944	//       "description": "Name of the region scoping this request.",
132945	//       "location": "path",
132946	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132947	//       "required": true,
132948	//       "type": "string"
132949	//     },
132950	//     "requestId": {
132951	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132952	//       "location": "query",
132953	//       "type": "string"
132954	//     }
132955	//   },
132956	//   "path": "{project}/regions/{region}/targetPools",
132957	//   "request": {
132958	//     "$ref": "TargetPool"
132959	//   },
132960	//   "response": {
132961	//     "$ref": "Operation"
132962	//   },
132963	//   "scopes": [
132964	//     "https://www.googleapis.com/auth/cloud-platform",
132965	//     "https://www.googleapis.com/auth/compute"
132966	//   ]
132967	// }
132968
132969}
132970
132971// method id "compute.targetPools.list":
132972
132973type TargetPoolsListCall struct {
132974	s            *Service
132975	project      string
132976	region       string
132977	urlParams_   gensupport.URLParams
132978	ifNoneMatch_ string
132979	ctx_         context.Context
132980	header_      http.Header
132981}
132982
132983// List: Retrieves a list of target pools available to the specified
132984// project and region.
132985// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
132986func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
132987	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132988	c.project = project
132989	c.region = region
132990	return c
132991}
132992
132993// Filter sets the optional parameter "filter": A filter expression that
132994// filters resources listed in the response. The expression must specify
132995// the field name, a comparison operator, and the value that you want to
132996// use for filtering. The value must be a string, a number, or a
132997// boolean. The comparison operator must be either `=`, `!=`, `>`, or
132998// `<`.
132999//
133000// For example, if you are filtering Compute Engine instances, you can
133001// exclude instances named `example-instance` by specifying `name !=
133002// example-instance`.
133003//
133004// You can also filter nested fields. For example, you could specify
133005// `scheduling.automaticRestart = false` to include instances only if
133006// they are not scheduled for automatic restarts. You can use filtering
133007// on nested fields to filter based on resource labels.
133008//
133009// To filter on multiple expressions, provide each separate expression
133010// within parentheses. For example: ``` (scheduling.automaticRestart =
133011// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
133012// is an `AND` expression. However, you can include `AND` and `OR`
133013// expressions explicitly. For example: ``` (cpuPlatform = "Intel
133014// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
133015// (scheduling.automaticRestart = true) ```
133016func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
133017	c.urlParams_.Set("filter", filter)
133018	return c
133019}
133020
133021// MaxResults sets the optional parameter "maxResults": The maximum
133022// number of results per page that should be returned. If the number of
133023// available results is larger than `maxResults`, Compute Engine returns
133024// a `nextPageToken` that can be used to get the next page of results in
133025// subsequent list requests. Acceptable values are `0` to `500`,
133026// inclusive. (Default: `500`)
133027func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
133028	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133029	return c
133030}
133031
133032// OrderBy sets the optional parameter "orderBy": Sorts list results by
133033// a certain order. By default, results are returned in alphanumerical
133034// order based on the resource name.
133035//
133036// You can also sort results in descending order based on the creation
133037// timestamp using `orderBy="creationTimestamp desc". This sorts
133038// results based on the `creationTimestamp` field in reverse
133039// chronological order (newest result first). Use this to sort resources
133040// like operations so that the newest operation is returned
133041// first.
133042//
133043// Currently, only sorting by `name` or `creationTimestamp desc` is
133044// supported.
133045func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
133046	c.urlParams_.Set("orderBy", orderBy)
133047	return c
133048}
133049
133050// PageToken sets the optional parameter "pageToken": Specifies a page
133051// token to use. Set `pageToken` to the `nextPageToken` returned by a
133052// previous list request to get the next page of results.
133053func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
133054	c.urlParams_.Set("pageToken", pageToken)
133055	return c
133056}
133057
133058// Fields allows partial responses to be retrieved. See
133059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133060// for more information.
133061func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
133062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133063	return c
133064}
133065
133066// IfNoneMatch sets the optional parameter which makes the operation
133067// fail if the object's ETag matches the given value. This is useful for
133068// getting updates only after the object has changed since the last
133069// request. Use googleapi.IsNotModified to check whether the response
133070// error from Do is the result of In-None-Match.
133071func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
133072	c.ifNoneMatch_ = entityTag
133073	return c
133074}
133075
133076// Context sets the context to be used in this call's Do method. Any
133077// pending HTTP request will be aborted if the provided context is
133078// canceled.
133079func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
133080	c.ctx_ = ctx
133081	return c
133082}
133083
133084// Header returns an http.Header that can be modified by the caller to
133085// add HTTP headers to the request.
133086func (c *TargetPoolsListCall) Header() http.Header {
133087	if c.header_ == nil {
133088		c.header_ = make(http.Header)
133089	}
133090	return c.header_
133091}
133092
133093func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
133094	reqHeaders := make(http.Header)
133095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133096	for k, v := range c.header_ {
133097		reqHeaders[k] = v
133098	}
133099	reqHeaders.Set("User-Agent", c.s.userAgent())
133100	if c.ifNoneMatch_ != "" {
133101		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133102	}
133103	var body io.Reader = nil
133104	c.urlParams_.Set("alt", alt)
133105	c.urlParams_.Set("prettyPrint", "false")
133106	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
133107	urls += "?" + c.urlParams_.Encode()
133108	req, err := http.NewRequest("GET", urls, body)
133109	if err != nil {
133110		return nil, err
133111	}
133112	req.Header = reqHeaders
133113	googleapi.Expand(req.URL, map[string]string{
133114		"project": c.project,
133115		"region":  c.region,
133116	})
133117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133118}
133119
133120// Do executes the "compute.targetPools.list" call.
133121// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
133122// status code is an error. Response headers are in either
133123// *TargetPoolList.ServerResponse.Header or (if a response was returned
133124// at all) in error.(*googleapi.Error).Header. Use
133125// googleapi.IsNotModified to check whether the returned error was
133126// because http.StatusNotModified was returned.
133127func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
133128	gensupport.SetOptions(c.urlParams_, opts...)
133129	res, err := c.doRequest("json")
133130	if res != nil && res.StatusCode == http.StatusNotModified {
133131		if res.Body != nil {
133132			res.Body.Close()
133133		}
133134		return nil, &googleapi.Error{
133135			Code:   res.StatusCode,
133136			Header: res.Header,
133137		}
133138	}
133139	if err != nil {
133140		return nil, err
133141	}
133142	defer googleapi.CloseBody(res)
133143	if err := googleapi.CheckResponse(res); err != nil {
133144		return nil, err
133145	}
133146	ret := &TargetPoolList{
133147		ServerResponse: googleapi.ServerResponse{
133148			Header:         res.Header,
133149			HTTPStatusCode: res.StatusCode,
133150		},
133151	}
133152	target := &ret
133153	if err := gensupport.DecodeResponse(target, res); err != nil {
133154		return nil, err
133155	}
133156	return ret, nil
133157	// {
133158	//   "description": "Retrieves a list of target pools available to the specified project and region.",
133159	//   "httpMethod": "GET",
133160	//   "id": "compute.targetPools.list",
133161	//   "parameterOrder": [
133162	//     "project",
133163	//     "region"
133164	//   ],
133165	//   "parameters": {
133166	//     "filter": {
133167	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
133168	//       "location": "query",
133169	//       "type": "string"
133170	//     },
133171	//     "maxResults": {
133172	//       "default": "500",
133173	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
133174	//       "format": "uint32",
133175	//       "location": "query",
133176	//       "minimum": "0",
133177	//       "type": "integer"
133178	//     },
133179	//     "orderBy": {
133180	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
133181	//       "location": "query",
133182	//       "type": "string"
133183	//     },
133184	//     "pageToken": {
133185	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
133186	//       "location": "query",
133187	//       "type": "string"
133188	//     },
133189	//     "project": {
133190	//       "description": "Project ID for this request.",
133191	//       "location": "path",
133192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133193	//       "required": true,
133194	//       "type": "string"
133195	//     },
133196	//     "region": {
133197	//       "description": "Name of the region scoping this request.",
133198	//       "location": "path",
133199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133200	//       "required": true,
133201	//       "type": "string"
133202	//     }
133203	//   },
133204	//   "path": "{project}/regions/{region}/targetPools",
133205	//   "response": {
133206	//     "$ref": "TargetPoolList"
133207	//   },
133208	//   "scopes": [
133209	//     "https://www.googleapis.com/auth/cloud-platform",
133210	//     "https://www.googleapis.com/auth/compute",
133211	//     "https://www.googleapis.com/auth/compute.readonly"
133212	//   ]
133213	// }
133214
133215}
133216
133217// Pages invokes f for each page of results.
133218// A non-nil error returned from f will halt the iteration.
133219// The provided context supersedes any context provided to the Context method.
133220func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
133221	c.ctx_ = ctx
133222	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133223	for {
133224		x, err := c.Do()
133225		if err != nil {
133226			return err
133227		}
133228		if err := f(x); err != nil {
133229			return err
133230		}
133231		if x.NextPageToken == "" {
133232			return nil
133233		}
133234		c.PageToken(x.NextPageToken)
133235	}
133236}
133237
133238// method id "compute.targetPools.removeHealthCheck":
133239
133240type TargetPoolsRemoveHealthCheckCall struct {
133241	s                                   *Service
133242	project                             string
133243	region                              string
133244	targetPool                          string
133245	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
133246	urlParams_                          gensupport.URLParams
133247	ctx_                                context.Context
133248	header_                             http.Header
133249}
133250
133251// RemoveHealthCheck: Removes health check URL from a target pool.
133252// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
133253func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
133254	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133255	c.project = project
133256	c.region = region
133257	c.targetPool = targetPool
133258	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
133259	return c
133260}
133261
133262// RequestId sets the optional parameter "requestId": An optional
133263// request ID to identify requests. Specify a unique request ID so that
133264// if you must retry your request, the server will know to ignore the
133265// request if it has already been completed.
133266//
133267// For example, consider a situation where you make an initial request
133268// and the request times out. If you make the request again with the
133269// same request ID, the server can check if original operation with the
133270// same request ID was received, and if so, will ignore the second
133271// request. This prevents clients from accidentally creating duplicate
133272// commitments.
133273//
133274// The request ID must be a valid UUID with the exception that zero UUID
133275// is not supported (00000000-0000-0000-0000-000000000000).
133276func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
133277	c.urlParams_.Set("requestId", requestId)
133278	return c
133279}
133280
133281// Fields allows partial responses to be retrieved. See
133282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133283// for more information.
133284func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
133285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133286	return c
133287}
133288
133289// Context sets the context to be used in this call's Do method. Any
133290// pending HTTP request will be aborted if the provided context is
133291// canceled.
133292func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
133293	c.ctx_ = ctx
133294	return c
133295}
133296
133297// Header returns an http.Header that can be modified by the caller to
133298// add HTTP headers to the request.
133299func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
133300	if c.header_ == nil {
133301		c.header_ = make(http.Header)
133302	}
133303	return c.header_
133304}
133305
133306func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
133307	reqHeaders := make(http.Header)
133308	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133309	for k, v := range c.header_ {
133310		reqHeaders[k] = v
133311	}
133312	reqHeaders.Set("User-Agent", c.s.userAgent())
133313	var body io.Reader = nil
133314	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
133315	if err != nil {
133316		return nil, err
133317	}
133318	reqHeaders.Set("Content-Type", "application/json")
133319	c.urlParams_.Set("alt", alt)
133320	c.urlParams_.Set("prettyPrint", "false")
133321	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
133322	urls += "?" + c.urlParams_.Encode()
133323	req, err := http.NewRequest("POST", urls, body)
133324	if err != nil {
133325		return nil, err
133326	}
133327	req.Header = reqHeaders
133328	googleapi.Expand(req.URL, map[string]string{
133329		"project":    c.project,
133330		"region":     c.region,
133331		"targetPool": c.targetPool,
133332	})
133333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133334}
133335
133336// Do executes the "compute.targetPools.removeHealthCheck" call.
133337// Exactly one of *Operation or error will be non-nil. Any non-2xx
133338// status code is an error. Response headers are in either
133339// *Operation.ServerResponse.Header or (if a response was returned at
133340// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133341// to check whether the returned error was because
133342// http.StatusNotModified was returned.
133343func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133344	gensupport.SetOptions(c.urlParams_, opts...)
133345	res, err := c.doRequest("json")
133346	if res != nil && res.StatusCode == http.StatusNotModified {
133347		if res.Body != nil {
133348			res.Body.Close()
133349		}
133350		return nil, &googleapi.Error{
133351			Code:   res.StatusCode,
133352			Header: res.Header,
133353		}
133354	}
133355	if err != nil {
133356		return nil, err
133357	}
133358	defer googleapi.CloseBody(res)
133359	if err := googleapi.CheckResponse(res); err != nil {
133360		return nil, err
133361	}
133362	ret := &Operation{
133363		ServerResponse: googleapi.ServerResponse{
133364			Header:         res.Header,
133365			HTTPStatusCode: res.StatusCode,
133366		},
133367	}
133368	target := &ret
133369	if err := gensupport.DecodeResponse(target, res); err != nil {
133370		return nil, err
133371	}
133372	return ret, nil
133373	// {
133374	//   "description": "Removes health check URL from a target pool.",
133375	//   "httpMethod": "POST",
133376	//   "id": "compute.targetPools.removeHealthCheck",
133377	//   "parameterOrder": [
133378	//     "project",
133379	//     "region",
133380	//     "targetPool"
133381	//   ],
133382	//   "parameters": {
133383	//     "project": {
133384	//       "description": "Project ID for this request.",
133385	//       "location": "path",
133386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133387	//       "required": true,
133388	//       "type": "string"
133389	//     },
133390	//     "region": {
133391	//       "description": "Name of the region for this request.",
133392	//       "location": "path",
133393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133394	//       "required": true,
133395	//       "type": "string"
133396	//     },
133397	//     "requestId": {
133398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133399	//       "location": "query",
133400	//       "type": "string"
133401	//     },
133402	//     "targetPool": {
133403	//       "description": "Name of the target pool to remove health checks from.",
133404	//       "location": "path",
133405	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133406	//       "required": true,
133407	//       "type": "string"
133408	//     }
133409	//   },
133410	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
133411	//   "request": {
133412	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
133413	//   },
133414	//   "response": {
133415	//     "$ref": "Operation"
133416	//   },
133417	//   "scopes": [
133418	//     "https://www.googleapis.com/auth/cloud-platform",
133419	//     "https://www.googleapis.com/auth/compute"
133420	//   ]
133421	// }
133422
133423}
133424
133425// method id "compute.targetPools.removeInstance":
133426
133427type TargetPoolsRemoveInstanceCall struct {
133428	s                                *Service
133429	project                          string
133430	region                           string
133431	targetPool                       string
133432	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
133433	urlParams_                       gensupport.URLParams
133434	ctx_                             context.Context
133435	header_                          http.Header
133436}
133437
133438// RemoveInstance: Removes instance URL from a target pool.
133439// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
133440func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
133441	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133442	c.project = project
133443	c.region = region
133444	c.targetPool = targetPool
133445	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
133446	return c
133447}
133448
133449// RequestId sets the optional parameter "requestId": An optional
133450// request ID to identify requests. Specify a unique request ID so that
133451// if you must retry your request, the server will know to ignore the
133452// request if it has already been completed.
133453//
133454// For example, consider a situation where you make an initial request
133455// and the request times out. If you make the request again with the
133456// same request ID, the server can check if original operation with the
133457// same request ID was received, and if so, will ignore the second
133458// request. This prevents clients from accidentally creating duplicate
133459// commitments.
133460//
133461// The request ID must be a valid UUID with the exception that zero UUID
133462// is not supported (00000000-0000-0000-0000-000000000000).
133463func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
133464	c.urlParams_.Set("requestId", requestId)
133465	return c
133466}
133467
133468// Fields allows partial responses to be retrieved. See
133469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133470// for more information.
133471func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
133472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133473	return c
133474}
133475
133476// Context sets the context to be used in this call's Do method. Any
133477// pending HTTP request will be aborted if the provided context is
133478// canceled.
133479func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
133480	c.ctx_ = ctx
133481	return c
133482}
133483
133484// Header returns an http.Header that can be modified by the caller to
133485// add HTTP headers to the request.
133486func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
133487	if c.header_ == nil {
133488		c.header_ = make(http.Header)
133489	}
133490	return c.header_
133491}
133492
133493func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
133494	reqHeaders := make(http.Header)
133495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133496	for k, v := range c.header_ {
133497		reqHeaders[k] = v
133498	}
133499	reqHeaders.Set("User-Agent", c.s.userAgent())
133500	var body io.Reader = nil
133501	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
133502	if err != nil {
133503		return nil, err
133504	}
133505	reqHeaders.Set("Content-Type", "application/json")
133506	c.urlParams_.Set("alt", alt)
133507	c.urlParams_.Set("prettyPrint", "false")
133508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
133509	urls += "?" + c.urlParams_.Encode()
133510	req, err := http.NewRequest("POST", urls, body)
133511	if err != nil {
133512		return nil, err
133513	}
133514	req.Header = reqHeaders
133515	googleapi.Expand(req.URL, map[string]string{
133516		"project":    c.project,
133517		"region":     c.region,
133518		"targetPool": c.targetPool,
133519	})
133520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133521}
133522
133523// Do executes the "compute.targetPools.removeInstance" call.
133524// Exactly one of *Operation or error will be non-nil. Any non-2xx
133525// status code is an error. Response headers are in either
133526// *Operation.ServerResponse.Header or (if a response was returned at
133527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133528// to check whether the returned error was because
133529// http.StatusNotModified was returned.
133530func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133531	gensupport.SetOptions(c.urlParams_, opts...)
133532	res, err := c.doRequest("json")
133533	if res != nil && res.StatusCode == http.StatusNotModified {
133534		if res.Body != nil {
133535			res.Body.Close()
133536		}
133537		return nil, &googleapi.Error{
133538			Code:   res.StatusCode,
133539			Header: res.Header,
133540		}
133541	}
133542	if err != nil {
133543		return nil, err
133544	}
133545	defer googleapi.CloseBody(res)
133546	if err := googleapi.CheckResponse(res); err != nil {
133547		return nil, err
133548	}
133549	ret := &Operation{
133550		ServerResponse: googleapi.ServerResponse{
133551			Header:         res.Header,
133552			HTTPStatusCode: res.StatusCode,
133553		},
133554	}
133555	target := &ret
133556	if err := gensupport.DecodeResponse(target, res); err != nil {
133557		return nil, err
133558	}
133559	return ret, nil
133560	// {
133561	//   "description": "Removes instance URL from a target pool.",
133562	//   "httpMethod": "POST",
133563	//   "id": "compute.targetPools.removeInstance",
133564	//   "parameterOrder": [
133565	//     "project",
133566	//     "region",
133567	//     "targetPool"
133568	//   ],
133569	//   "parameters": {
133570	//     "project": {
133571	//       "description": "Project ID for this request.",
133572	//       "location": "path",
133573	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133574	//       "required": true,
133575	//       "type": "string"
133576	//     },
133577	//     "region": {
133578	//       "description": "Name of the region scoping this request.",
133579	//       "location": "path",
133580	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133581	//       "required": true,
133582	//       "type": "string"
133583	//     },
133584	//     "requestId": {
133585	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133586	//       "location": "query",
133587	//       "type": "string"
133588	//     },
133589	//     "targetPool": {
133590	//       "description": "Name of the TargetPool resource to remove instances from.",
133591	//       "location": "path",
133592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133593	//       "required": true,
133594	//       "type": "string"
133595	//     }
133596	//   },
133597	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
133598	//   "request": {
133599	//     "$ref": "TargetPoolsRemoveInstanceRequest"
133600	//   },
133601	//   "response": {
133602	//     "$ref": "Operation"
133603	//   },
133604	//   "scopes": [
133605	//     "https://www.googleapis.com/auth/cloud-platform",
133606	//     "https://www.googleapis.com/auth/compute"
133607	//   ]
133608	// }
133609
133610}
133611
133612// method id "compute.targetPools.setBackup":
133613
133614type TargetPoolsSetBackupCall struct {
133615	s               *Service
133616	project         string
133617	region          string
133618	targetPool      string
133619	targetreference *TargetReference
133620	urlParams_      gensupport.URLParams
133621	ctx_            context.Context
133622	header_         http.Header
133623}
133624
133625// SetBackup: Changes a backup target pool's configurations.
133626// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
133627func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
133628	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133629	c.project = project
133630	c.region = region
133631	c.targetPool = targetPool
133632	c.targetreference = targetreference
133633	return c
133634}
133635
133636// FailoverRatio sets the optional parameter "failoverRatio": New
133637// failoverRatio value for the target pool.
133638func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
133639	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
133640	return c
133641}
133642
133643// RequestId sets the optional parameter "requestId": An optional
133644// request ID to identify requests. Specify a unique request ID so that
133645// if you must retry your request, the server will know to ignore the
133646// request if it has already been completed.
133647//
133648// For example, consider a situation where you make an initial request
133649// and the request times out. If you make the request again with the
133650// same request ID, the server can check if original operation with the
133651// same request ID was received, and if so, will ignore the second
133652// request. This prevents clients from accidentally creating duplicate
133653// commitments.
133654//
133655// The request ID must be a valid UUID with the exception that zero UUID
133656// is not supported (00000000-0000-0000-0000-000000000000).
133657func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
133658	c.urlParams_.Set("requestId", requestId)
133659	return c
133660}
133661
133662// Fields allows partial responses to be retrieved. See
133663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133664// for more information.
133665func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
133666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133667	return c
133668}
133669
133670// Context sets the context to be used in this call's Do method. Any
133671// pending HTTP request will be aborted if the provided context is
133672// canceled.
133673func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
133674	c.ctx_ = ctx
133675	return c
133676}
133677
133678// Header returns an http.Header that can be modified by the caller to
133679// add HTTP headers to the request.
133680func (c *TargetPoolsSetBackupCall) Header() http.Header {
133681	if c.header_ == nil {
133682		c.header_ = make(http.Header)
133683	}
133684	return c.header_
133685}
133686
133687func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
133688	reqHeaders := make(http.Header)
133689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133690	for k, v := range c.header_ {
133691		reqHeaders[k] = v
133692	}
133693	reqHeaders.Set("User-Agent", c.s.userAgent())
133694	var body io.Reader = nil
133695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
133696	if err != nil {
133697		return nil, err
133698	}
133699	reqHeaders.Set("Content-Type", "application/json")
133700	c.urlParams_.Set("alt", alt)
133701	c.urlParams_.Set("prettyPrint", "false")
133702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
133703	urls += "?" + c.urlParams_.Encode()
133704	req, err := http.NewRequest("POST", urls, body)
133705	if err != nil {
133706		return nil, err
133707	}
133708	req.Header = reqHeaders
133709	googleapi.Expand(req.URL, map[string]string{
133710		"project":    c.project,
133711		"region":     c.region,
133712		"targetPool": c.targetPool,
133713	})
133714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133715}
133716
133717// Do executes the "compute.targetPools.setBackup" call.
133718// Exactly one of *Operation or error will be non-nil. Any non-2xx
133719// status code is an error. Response headers are in either
133720// *Operation.ServerResponse.Header or (if a response was returned at
133721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133722// to check whether the returned error was because
133723// http.StatusNotModified was returned.
133724func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133725	gensupport.SetOptions(c.urlParams_, opts...)
133726	res, err := c.doRequest("json")
133727	if res != nil && res.StatusCode == http.StatusNotModified {
133728		if res.Body != nil {
133729			res.Body.Close()
133730		}
133731		return nil, &googleapi.Error{
133732			Code:   res.StatusCode,
133733			Header: res.Header,
133734		}
133735	}
133736	if err != nil {
133737		return nil, err
133738	}
133739	defer googleapi.CloseBody(res)
133740	if err := googleapi.CheckResponse(res); err != nil {
133741		return nil, err
133742	}
133743	ret := &Operation{
133744		ServerResponse: googleapi.ServerResponse{
133745			Header:         res.Header,
133746			HTTPStatusCode: res.StatusCode,
133747		},
133748	}
133749	target := &ret
133750	if err := gensupport.DecodeResponse(target, res); err != nil {
133751		return nil, err
133752	}
133753	return ret, nil
133754	// {
133755	//   "description": "Changes a backup target pool's configurations.",
133756	//   "httpMethod": "POST",
133757	//   "id": "compute.targetPools.setBackup",
133758	//   "parameterOrder": [
133759	//     "project",
133760	//     "region",
133761	//     "targetPool"
133762	//   ],
133763	//   "parameters": {
133764	//     "failoverRatio": {
133765	//       "description": "New failoverRatio value for the target pool.",
133766	//       "format": "float",
133767	//       "location": "query",
133768	//       "type": "number"
133769	//     },
133770	//     "project": {
133771	//       "description": "Project ID for this request.",
133772	//       "location": "path",
133773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133774	//       "required": true,
133775	//       "type": "string"
133776	//     },
133777	//     "region": {
133778	//       "description": "Name of the region scoping this request.",
133779	//       "location": "path",
133780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133781	//       "required": true,
133782	//       "type": "string"
133783	//     },
133784	//     "requestId": {
133785	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133786	//       "location": "query",
133787	//       "type": "string"
133788	//     },
133789	//     "targetPool": {
133790	//       "description": "Name of the TargetPool resource to set a backup pool for.",
133791	//       "location": "path",
133792	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133793	//       "required": true,
133794	//       "type": "string"
133795	//     }
133796	//   },
133797	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
133798	//   "request": {
133799	//     "$ref": "TargetReference"
133800	//   },
133801	//   "response": {
133802	//     "$ref": "Operation"
133803	//   },
133804	//   "scopes": [
133805	//     "https://www.googleapis.com/auth/cloud-platform",
133806	//     "https://www.googleapis.com/auth/compute"
133807	//   ]
133808	// }
133809
133810}
133811
133812// method id "compute.targetSslProxies.delete":
133813
133814type TargetSslProxiesDeleteCall struct {
133815	s              *Service
133816	project        string
133817	targetSslProxy string
133818	urlParams_     gensupport.URLParams
133819	ctx_           context.Context
133820	header_        http.Header
133821}
133822
133823// Delete: Deletes the specified TargetSslProxy resource.
133824func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
133825	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133826	c.project = project
133827	c.targetSslProxy = targetSslProxy
133828	return c
133829}
133830
133831// RequestId sets the optional parameter "requestId": An optional
133832// request ID to identify requests. Specify a unique request ID so that
133833// if you must retry your request, the server will know to ignore the
133834// request if it has already been completed.
133835//
133836// For example, consider a situation where you make an initial request
133837// and the request times out. If you make the request again with the
133838// same request ID, the server can check if original operation with the
133839// same request ID was received, and if so, will ignore the second
133840// request. This prevents clients from accidentally creating duplicate
133841// commitments.
133842//
133843// The request ID must be a valid UUID with the exception that zero UUID
133844// is not supported (00000000-0000-0000-0000-000000000000).
133845func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
133846	c.urlParams_.Set("requestId", requestId)
133847	return c
133848}
133849
133850// Fields allows partial responses to be retrieved. See
133851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133852// for more information.
133853func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
133854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133855	return c
133856}
133857
133858// Context sets the context to be used in this call's Do method. Any
133859// pending HTTP request will be aborted if the provided context is
133860// canceled.
133861func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
133862	c.ctx_ = ctx
133863	return c
133864}
133865
133866// Header returns an http.Header that can be modified by the caller to
133867// add HTTP headers to the request.
133868func (c *TargetSslProxiesDeleteCall) Header() http.Header {
133869	if c.header_ == nil {
133870		c.header_ = make(http.Header)
133871	}
133872	return c.header_
133873}
133874
133875func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
133876	reqHeaders := make(http.Header)
133877	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133878	for k, v := range c.header_ {
133879		reqHeaders[k] = v
133880	}
133881	reqHeaders.Set("User-Agent", c.s.userAgent())
133882	var body io.Reader = nil
133883	c.urlParams_.Set("alt", alt)
133884	c.urlParams_.Set("prettyPrint", "false")
133885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
133886	urls += "?" + c.urlParams_.Encode()
133887	req, err := http.NewRequest("DELETE", urls, body)
133888	if err != nil {
133889		return nil, err
133890	}
133891	req.Header = reqHeaders
133892	googleapi.Expand(req.URL, map[string]string{
133893		"project":        c.project,
133894		"targetSslProxy": c.targetSslProxy,
133895	})
133896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133897}
133898
133899// Do executes the "compute.targetSslProxies.delete" call.
133900// Exactly one of *Operation or error will be non-nil. Any non-2xx
133901// status code is an error. Response headers are in either
133902// *Operation.ServerResponse.Header or (if a response was returned at
133903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133904// to check whether the returned error was because
133905// http.StatusNotModified was returned.
133906func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133907	gensupport.SetOptions(c.urlParams_, opts...)
133908	res, err := c.doRequest("json")
133909	if res != nil && res.StatusCode == http.StatusNotModified {
133910		if res.Body != nil {
133911			res.Body.Close()
133912		}
133913		return nil, &googleapi.Error{
133914			Code:   res.StatusCode,
133915			Header: res.Header,
133916		}
133917	}
133918	if err != nil {
133919		return nil, err
133920	}
133921	defer googleapi.CloseBody(res)
133922	if err := googleapi.CheckResponse(res); err != nil {
133923		return nil, err
133924	}
133925	ret := &Operation{
133926		ServerResponse: googleapi.ServerResponse{
133927			Header:         res.Header,
133928			HTTPStatusCode: res.StatusCode,
133929		},
133930	}
133931	target := &ret
133932	if err := gensupport.DecodeResponse(target, res); err != nil {
133933		return nil, err
133934	}
133935	return ret, nil
133936	// {
133937	//   "description": "Deletes the specified TargetSslProxy resource.",
133938	//   "httpMethod": "DELETE",
133939	//   "id": "compute.targetSslProxies.delete",
133940	//   "parameterOrder": [
133941	//     "project",
133942	//     "targetSslProxy"
133943	//   ],
133944	//   "parameters": {
133945	//     "project": {
133946	//       "description": "Project ID for this request.",
133947	//       "location": "path",
133948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133949	//       "required": true,
133950	//       "type": "string"
133951	//     },
133952	//     "requestId": {
133953	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133954	//       "location": "query",
133955	//       "type": "string"
133956	//     },
133957	//     "targetSslProxy": {
133958	//       "description": "Name of the TargetSslProxy resource to delete.",
133959	//       "location": "path",
133960	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133961	//       "required": true,
133962	//       "type": "string"
133963	//     }
133964	//   },
133965	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
133966	//   "response": {
133967	//     "$ref": "Operation"
133968	//   },
133969	//   "scopes": [
133970	//     "https://www.googleapis.com/auth/cloud-platform",
133971	//     "https://www.googleapis.com/auth/compute"
133972	//   ]
133973	// }
133974
133975}
133976
133977// method id "compute.targetSslProxies.get":
133978
133979type TargetSslProxiesGetCall struct {
133980	s              *Service
133981	project        string
133982	targetSslProxy string
133983	urlParams_     gensupport.URLParams
133984	ifNoneMatch_   string
133985	ctx_           context.Context
133986	header_        http.Header
133987}
133988
133989// Get: Returns the specified TargetSslProxy resource. Gets a list of
133990// available target SSL proxies by making a list() request.
133991func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
133992	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133993	c.project = project
133994	c.targetSslProxy = targetSslProxy
133995	return c
133996}
133997
133998// Fields allows partial responses to be retrieved. See
133999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134000// for more information.
134001func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
134002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134003	return c
134004}
134005
134006// IfNoneMatch sets the optional parameter which makes the operation
134007// fail if the object's ETag matches the given value. This is useful for
134008// getting updates only after the object has changed since the last
134009// request. Use googleapi.IsNotModified to check whether the response
134010// error from Do is the result of In-None-Match.
134011func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
134012	c.ifNoneMatch_ = entityTag
134013	return c
134014}
134015
134016// Context sets the context to be used in this call's Do method. Any
134017// pending HTTP request will be aborted if the provided context is
134018// canceled.
134019func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
134020	c.ctx_ = ctx
134021	return c
134022}
134023
134024// Header returns an http.Header that can be modified by the caller to
134025// add HTTP headers to the request.
134026func (c *TargetSslProxiesGetCall) Header() http.Header {
134027	if c.header_ == nil {
134028		c.header_ = make(http.Header)
134029	}
134030	return c.header_
134031}
134032
134033func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
134034	reqHeaders := make(http.Header)
134035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134036	for k, v := range c.header_ {
134037		reqHeaders[k] = v
134038	}
134039	reqHeaders.Set("User-Agent", c.s.userAgent())
134040	if c.ifNoneMatch_ != "" {
134041		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134042	}
134043	var body io.Reader = nil
134044	c.urlParams_.Set("alt", alt)
134045	c.urlParams_.Set("prettyPrint", "false")
134046	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
134047	urls += "?" + c.urlParams_.Encode()
134048	req, err := http.NewRequest("GET", urls, body)
134049	if err != nil {
134050		return nil, err
134051	}
134052	req.Header = reqHeaders
134053	googleapi.Expand(req.URL, map[string]string{
134054		"project":        c.project,
134055		"targetSslProxy": c.targetSslProxy,
134056	})
134057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134058}
134059
134060// Do executes the "compute.targetSslProxies.get" call.
134061// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
134062// status code is an error. Response headers are in either
134063// *TargetSslProxy.ServerResponse.Header or (if a response was returned
134064// at all) in error.(*googleapi.Error).Header. Use
134065// googleapi.IsNotModified to check whether the returned error was
134066// because http.StatusNotModified was returned.
134067func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
134068	gensupport.SetOptions(c.urlParams_, opts...)
134069	res, err := c.doRequest("json")
134070	if res != nil && res.StatusCode == http.StatusNotModified {
134071		if res.Body != nil {
134072			res.Body.Close()
134073		}
134074		return nil, &googleapi.Error{
134075			Code:   res.StatusCode,
134076			Header: res.Header,
134077		}
134078	}
134079	if err != nil {
134080		return nil, err
134081	}
134082	defer googleapi.CloseBody(res)
134083	if err := googleapi.CheckResponse(res); err != nil {
134084		return nil, err
134085	}
134086	ret := &TargetSslProxy{
134087		ServerResponse: googleapi.ServerResponse{
134088			Header:         res.Header,
134089			HTTPStatusCode: res.StatusCode,
134090		},
134091	}
134092	target := &ret
134093	if err := gensupport.DecodeResponse(target, res); err != nil {
134094		return nil, err
134095	}
134096	return ret, nil
134097	// {
134098	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
134099	//   "httpMethod": "GET",
134100	//   "id": "compute.targetSslProxies.get",
134101	//   "parameterOrder": [
134102	//     "project",
134103	//     "targetSslProxy"
134104	//   ],
134105	//   "parameters": {
134106	//     "project": {
134107	//       "description": "Project ID for this request.",
134108	//       "location": "path",
134109	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134110	//       "required": true,
134111	//       "type": "string"
134112	//     },
134113	//     "targetSslProxy": {
134114	//       "description": "Name of the TargetSslProxy resource to return.",
134115	//       "location": "path",
134116	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134117	//       "required": true,
134118	//       "type": "string"
134119	//     }
134120	//   },
134121	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
134122	//   "response": {
134123	//     "$ref": "TargetSslProxy"
134124	//   },
134125	//   "scopes": [
134126	//     "https://www.googleapis.com/auth/cloud-platform",
134127	//     "https://www.googleapis.com/auth/compute",
134128	//     "https://www.googleapis.com/auth/compute.readonly"
134129	//   ]
134130	// }
134131
134132}
134133
134134// method id "compute.targetSslProxies.insert":
134135
134136type TargetSslProxiesInsertCall struct {
134137	s              *Service
134138	project        string
134139	targetsslproxy *TargetSslProxy
134140	urlParams_     gensupport.URLParams
134141	ctx_           context.Context
134142	header_        http.Header
134143}
134144
134145// Insert: Creates a TargetSslProxy resource in the specified project
134146// using the data included in the request.
134147func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
134148	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134149	c.project = project
134150	c.targetsslproxy = targetsslproxy
134151	return c
134152}
134153
134154// RequestId sets the optional parameter "requestId": An optional
134155// request ID to identify requests. Specify a unique request ID so that
134156// if you must retry your request, the server will know to ignore the
134157// request if it has already been completed.
134158//
134159// For example, consider a situation where you make an initial request
134160// and the request times out. If you make the request again with the
134161// same request ID, the server can check if original operation with the
134162// same request ID was received, and if so, will ignore the second
134163// request. This prevents clients from accidentally creating duplicate
134164// commitments.
134165//
134166// The request ID must be a valid UUID with the exception that zero UUID
134167// is not supported (00000000-0000-0000-0000-000000000000).
134168func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
134169	c.urlParams_.Set("requestId", requestId)
134170	return c
134171}
134172
134173// Fields allows partial responses to be retrieved. See
134174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134175// for more information.
134176func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
134177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134178	return c
134179}
134180
134181// Context sets the context to be used in this call's Do method. Any
134182// pending HTTP request will be aborted if the provided context is
134183// canceled.
134184func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
134185	c.ctx_ = ctx
134186	return c
134187}
134188
134189// Header returns an http.Header that can be modified by the caller to
134190// add HTTP headers to the request.
134191func (c *TargetSslProxiesInsertCall) Header() http.Header {
134192	if c.header_ == nil {
134193		c.header_ = make(http.Header)
134194	}
134195	return c.header_
134196}
134197
134198func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
134199	reqHeaders := make(http.Header)
134200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134201	for k, v := range c.header_ {
134202		reqHeaders[k] = v
134203	}
134204	reqHeaders.Set("User-Agent", c.s.userAgent())
134205	var body io.Reader = nil
134206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
134207	if err != nil {
134208		return nil, err
134209	}
134210	reqHeaders.Set("Content-Type", "application/json")
134211	c.urlParams_.Set("alt", alt)
134212	c.urlParams_.Set("prettyPrint", "false")
134213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
134214	urls += "?" + c.urlParams_.Encode()
134215	req, err := http.NewRequest("POST", urls, body)
134216	if err != nil {
134217		return nil, err
134218	}
134219	req.Header = reqHeaders
134220	googleapi.Expand(req.URL, map[string]string{
134221		"project": c.project,
134222	})
134223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134224}
134225
134226// Do executes the "compute.targetSslProxies.insert" call.
134227// Exactly one of *Operation or error will be non-nil. Any non-2xx
134228// status code is an error. Response headers are in either
134229// *Operation.ServerResponse.Header or (if a response was returned at
134230// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134231// to check whether the returned error was because
134232// http.StatusNotModified was returned.
134233func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134234	gensupport.SetOptions(c.urlParams_, opts...)
134235	res, err := c.doRequest("json")
134236	if res != nil && res.StatusCode == http.StatusNotModified {
134237		if res.Body != nil {
134238			res.Body.Close()
134239		}
134240		return nil, &googleapi.Error{
134241			Code:   res.StatusCode,
134242			Header: res.Header,
134243		}
134244	}
134245	if err != nil {
134246		return nil, err
134247	}
134248	defer googleapi.CloseBody(res)
134249	if err := googleapi.CheckResponse(res); err != nil {
134250		return nil, err
134251	}
134252	ret := &Operation{
134253		ServerResponse: googleapi.ServerResponse{
134254			Header:         res.Header,
134255			HTTPStatusCode: res.StatusCode,
134256		},
134257	}
134258	target := &ret
134259	if err := gensupport.DecodeResponse(target, res); err != nil {
134260		return nil, err
134261	}
134262	return ret, nil
134263	// {
134264	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
134265	//   "httpMethod": "POST",
134266	//   "id": "compute.targetSslProxies.insert",
134267	//   "parameterOrder": [
134268	//     "project"
134269	//   ],
134270	//   "parameters": {
134271	//     "project": {
134272	//       "description": "Project ID for this request.",
134273	//       "location": "path",
134274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134275	//       "required": true,
134276	//       "type": "string"
134277	//     },
134278	//     "requestId": {
134279	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134280	//       "location": "query",
134281	//       "type": "string"
134282	//     }
134283	//   },
134284	//   "path": "{project}/global/targetSslProxies",
134285	//   "request": {
134286	//     "$ref": "TargetSslProxy"
134287	//   },
134288	//   "response": {
134289	//     "$ref": "Operation"
134290	//   },
134291	//   "scopes": [
134292	//     "https://www.googleapis.com/auth/cloud-platform",
134293	//     "https://www.googleapis.com/auth/compute"
134294	//   ]
134295	// }
134296
134297}
134298
134299// method id "compute.targetSslProxies.list":
134300
134301type TargetSslProxiesListCall struct {
134302	s            *Service
134303	project      string
134304	urlParams_   gensupport.URLParams
134305	ifNoneMatch_ string
134306	ctx_         context.Context
134307	header_      http.Header
134308}
134309
134310// List: Retrieves the list of TargetSslProxy resources available to the
134311// specified project.
134312func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
134313	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134314	c.project = project
134315	return c
134316}
134317
134318// Filter sets the optional parameter "filter": A filter expression that
134319// filters resources listed in the response. The expression must specify
134320// the field name, a comparison operator, and the value that you want to
134321// use for filtering. The value must be a string, a number, or a
134322// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134323// `<`.
134324//
134325// For example, if you are filtering Compute Engine instances, you can
134326// exclude instances named `example-instance` by specifying `name !=
134327// example-instance`.
134328//
134329// You can also filter nested fields. For example, you could specify
134330// `scheduling.automaticRestart = false` to include instances only if
134331// they are not scheduled for automatic restarts. You can use filtering
134332// on nested fields to filter based on resource labels.
134333//
134334// To filter on multiple expressions, provide each separate expression
134335// within parentheses. For example: ``` (scheduling.automaticRestart =
134336// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134337// is an `AND` expression. However, you can include `AND` and `OR`
134338// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134339// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134340// (scheduling.automaticRestart = true) ```
134341func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
134342	c.urlParams_.Set("filter", filter)
134343	return c
134344}
134345
134346// MaxResults sets the optional parameter "maxResults": The maximum
134347// number of results per page that should be returned. If the number of
134348// available results is larger than `maxResults`, Compute Engine returns
134349// a `nextPageToken` that can be used to get the next page of results in
134350// subsequent list requests. Acceptable values are `0` to `500`,
134351// inclusive. (Default: `500`)
134352func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
134353	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134354	return c
134355}
134356
134357// OrderBy sets the optional parameter "orderBy": Sorts list results by
134358// a certain order. By default, results are returned in alphanumerical
134359// order based on the resource name.
134360//
134361// You can also sort results in descending order based on the creation
134362// timestamp using `orderBy="creationTimestamp desc". This sorts
134363// results based on the `creationTimestamp` field in reverse
134364// chronological order (newest result first). Use this to sort resources
134365// like operations so that the newest operation is returned
134366// first.
134367//
134368// Currently, only sorting by `name` or `creationTimestamp desc` is
134369// supported.
134370func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
134371	c.urlParams_.Set("orderBy", orderBy)
134372	return c
134373}
134374
134375// PageToken sets the optional parameter "pageToken": Specifies a page
134376// token to use. Set `pageToken` to the `nextPageToken` returned by a
134377// previous list request to get the next page of results.
134378func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
134379	c.urlParams_.Set("pageToken", pageToken)
134380	return c
134381}
134382
134383// Fields allows partial responses to be retrieved. See
134384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134385// for more information.
134386func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
134387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134388	return c
134389}
134390
134391// IfNoneMatch sets the optional parameter which makes the operation
134392// fail if the object's ETag matches the given value. This is useful for
134393// getting updates only after the object has changed since the last
134394// request. Use googleapi.IsNotModified to check whether the response
134395// error from Do is the result of In-None-Match.
134396func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
134397	c.ifNoneMatch_ = entityTag
134398	return c
134399}
134400
134401// Context sets the context to be used in this call's Do method. Any
134402// pending HTTP request will be aborted if the provided context is
134403// canceled.
134404func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
134405	c.ctx_ = ctx
134406	return c
134407}
134408
134409// Header returns an http.Header that can be modified by the caller to
134410// add HTTP headers to the request.
134411func (c *TargetSslProxiesListCall) Header() http.Header {
134412	if c.header_ == nil {
134413		c.header_ = make(http.Header)
134414	}
134415	return c.header_
134416}
134417
134418func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
134419	reqHeaders := make(http.Header)
134420	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134421	for k, v := range c.header_ {
134422		reqHeaders[k] = v
134423	}
134424	reqHeaders.Set("User-Agent", c.s.userAgent())
134425	if c.ifNoneMatch_ != "" {
134426		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134427	}
134428	var body io.Reader = nil
134429	c.urlParams_.Set("alt", alt)
134430	c.urlParams_.Set("prettyPrint", "false")
134431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
134432	urls += "?" + c.urlParams_.Encode()
134433	req, err := http.NewRequest("GET", urls, body)
134434	if err != nil {
134435		return nil, err
134436	}
134437	req.Header = reqHeaders
134438	googleapi.Expand(req.URL, map[string]string{
134439		"project": c.project,
134440	})
134441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134442}
134443
134444// Do executes the "compute.targetSslProxies.list" call.
134445// Exactly one of *TargetSslProxyList or error will be non-nil. Any
134446// non-2xx status code is an error. Response headers are in either
134447// *TargetSslProxyList.ServerResponse.Header or (if a response was
134448// returned at all) in error.(*googleapi.Error).Header. Use
134449// googleapi.IsNotModified to check whether the returned error was
134450// because http.StatusNotModified was returned.
134451func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
134452	gensupport.SetOptions(c.urlParams_, opts...)
134453	res, err := c.doRequest("json")
134454	if res != nil && res.StatusCode == http.StatusNotModified {
134455		if res.Body != nil {
134456			res.Body.Close()
134457		}
134458		return nil, &googleapi.Error{
134459			Code:   res.StatusCode,
134460			Header: res.Header,
134461		}
134462	}
134463	if err != nil {
134464		return nil, err
134465	}
134466	defer googleapi.CloseBody(res)
134467	if err := googleapi.CheckResponse(res); err != nil {
134468		return nil, err
134469	}
134470	ret := &TargetSslProxyList{
134471		ServerResponse: googleapi.ServerResponse{
134472			Header:         res.Header,
134473			HTTPStatusCode: res.StatusCode,
134474		},
134475	}
134476	target := &ret
134477	if err := gensupport.DecodeResponse(target, res); err != nil {
134478		return nil, err
134479	}
134480	return ret, nil
134481	// {
134482	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
134483	//   "httpMethod": "GET",
134484	//   "id": "compute.targetSslProxies.list",
134485	//   "parameterOrder": [
134486	//     "project"
134487	//   ],
134488	//   "parameters": {
134489	//     "filter": {
134490	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134491	//       "location": "query",
134492	//       "type": "string"
134493	//     },
134494	//     "maxResults": {
134495	//       "default": "500",
134496	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134497	//       "format": "uint32",
134498	//       "location": "query",
134499	//       "minimum": "0",
134500	//       "type": "integer"
134501	//     },
134502	//     "orderBy": {
134503	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134504	//       "location": "query",
134505	//       "type": "string"
134506	//     },
134507	//     "pageToken": {
134508	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134509	//       "location": "query",
134510	//       "type": "string"
134511	//     },
134512	//     "project": {
134513	//       "description": "Project ID for this request.",
134514	//       "location": "path",
134515	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134516	//       "required": true,
134517	//       "type": "string"
134518	//     }
134519	//   },
134520	//   "path": "{project}/global/targetSslProxies",
134521	//   "response": {
134522	//     "$ref": "TargetSslProxyList"
134523	//   },
134524	//   "scopes": [
134525	//     "https://www.googleapis.com/auth/cloud-platform",
134526	//     "https://www.googleapis.com/auth/compute",
134527	//     "https://www.googleapis.com/auth/compute.readonly"
134528	//   ]
134529	// }
134530
134531}
134532
134533// Pages invokes f for each page of results.
134534// A non-nil error returned from f will halt the iteration.
134535// The provided context supersedes any context provided to the Context method.
134536func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
134537	c.ctx_ = ctx
134538	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134539	for {
134540		x, err := c.Do()
134541		if err != nil {
134542			return err
134543		}
134544		if err := f(x); err != nil {
134545			return err
134546		}
134547		if x.NextPageToken == "" {
134548			return nil
134549		}
134550		c.PageToken(x.NextPageToken)
134551	}
134552}
134553
134554// method id "compute.targetSslProxies.setBackendService":
134555
134556type TargetSslProxiesSetBackendServiceCall struct {
134557	s                                        *Service
134558	project                                  string
134559	targetSslProxy                           string
134560	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
134561	urlParams_                               gensupport.URLParams
134562	ctx_                                     context.Context
134563	header_                                  http.Header
134564}
134565
134566// SetBackendService: Changes the BackendService for TargetSslProxy.
134567func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
134568	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134569	c.project = project
134570	c.targetSslProxy = targetSslProxy
134571	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
134572	return c
134573}
134574
134575// RequestId sets the optional parameter "requestId": An optional
134576// request ID to identify requests. Specify a unique request ID so that
134577// if you must retry your request, the server will know to ignore the
134578// request if it has already been completed.
134579//
134580// For example, consider a situation where you make an initial request
134581// and the request times out. If you make the request again with the
134582// same request ID, the server can check if original operation with the
134583// same request ID was received, and if so, will ignore the second
134584// request. This prevents clients from accidentally creating duplicate
134585// commitments.
134586//
134587// The request ID must be a valid UUID with the exception that zero UUID
134588// is not supported (00000000-0000-0000-0000-000000000000).
134589func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
134590	c.urlParams_.Set("requestId", requestId)
134591	return c
134592}
134593
134594// Fields allows partial responses to be retrieved. See
134595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134596// for more information.
134597func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
134598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134599	return c
134600}
134601
134602// Context sets the context to be used in this call's Do method. Any
134603// pending HTTP request will be aborted if the provided context is
134604// canceled.
134605func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
134606	c.ctx_ = ctx
134607	return c
134608}
134609
134610// Header returns an http.Header that can be modified by the caller to
134611// add HTTP headers to the request.
134612func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
134613	if c.header_ == nil {
134614		c.header_ = make(http.Header)
134615	}
134616	return c.header_
134617}
134618
134619func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
134620	reqHeaders := make(http.Header)
134621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134622	for k, v := range c.header_ {
134623		reqHeaders[k] = v
134624	}
134625	reqHeaders.Set("User-Agent", c.s.userAgent())
134626	var body io.Reader = nil
134627	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
134628	if err != nil {
134629		return nil, err
134630	}
134631	reqHeaders.Set("Content-Type", "application/json")
134632	c.urlParams_.Set("alt", alt)
134633	c.urlParams_.Set("prettyPrint", "false")
134634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
134635	urls += "?" + c.urlParams_.Encode()
134636	req, err := http.NewRequest("POST", urls, body)
134637	if err != nil {
134638		return nil, err
134639	}
134640	req.Header = reqHeaders
134641	googleapi.Expand(req.URL, map[string]string{
134642		"project":        c.project,
134643		"targetSslProxy": c.targetSslProxy,
134644	})
134645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134646}
134647
134648// Do executes the "compute.targetSslProxies.setBackendService" call.
134649// Exactly one of *Operation or error will be non-nil. Any non-2xx
134650// status code is an error. Response headers are in either
134651// *Operation.ServerResponse.Header or (if a response was returned at
134652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134653// to check whether the returned error was because
134654// http.StatusNotModified was returned.
134655func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134656	gensupport.SetOptions(c.urlParams_, opts...)
134657	res, err := c.doRequest("json")
134658	if res != nil && res.StatusCode == http.StatusNotModified {
134659		if res.Body != nil {
134660			res.Body.Close()
134661		}
134662		return nil, &googleapi.Error{
134663			Code:   res.StatusCode,
134664			Header: res.Header,
134665		}
134666	}
134667	if err != nil {
134668		return nil, err
134669	}
134670	defer googleapi.CloseBody(res)
134671	if err := googleapi.CheckResponse(res); err != nil {
134672		return nil, err
134673	}
134674	ret := &Operation{
134675		ServerResponse: googleapi.ServerResponse{
134676			Header:         res.Header,
134677			HTTPStatusCode: res.StatusCode,
134678		},
134679	}
134680	target := &ret
134681	if err := gensupport.DecodeResponse(target, res); err != nil {
134682		return nil, err
134683	}
134684	return ret, nil
134685	// {
134686	//   "description": "Changes the BackendService for TargetSslProxy.",
134687	//   "httpMethod": "POST",
134688	//   "id": "compute.targetSslProxies.setBackendService",
134689	//   "parameterOrder": [
134690	//     "project",
134691	//     "targetSslProxy"
134692	//   ],
134693	//   "parameters": {
134694	//     "project": {
134695	//       "description": "Project ID for this request.",
134696	//       "location": "path",
134697	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134698	//       "required": true,
134699	//       "type": "string"
134700	//     },
134701	//     "requestId": {
134702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134703	//       "location": "query",
134704	//       "type": "string"
134705	//     },
134706	//     "targetSslProxy": {
134707	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
134708	//       "location": "path",
134709	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134710	//       "required": true,
134711	//       "type": "string"
134712	//     }
134713	//   },
134714	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
134715	//   "request": {
134716	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
134717	//   },
134718	//   "response": {
134719	//     "$ref": "Operation"
134720	//   },
134721	//   "scopes": [
134722	//     "https://www.googleapis.com/auth/cloud-platform",
134723	//     "https://www.googleapis.com/auth/compute"
134724	//   ]
134725	// }
134726
134727}
134728
134729// method id "compute.targetSslProxies.setProxyHeader":
134730
134731type TargetSslProxiesSetProxyHeaderCall struct {
134732	s                                     *Service
134733	project                               string
134734	targetSslProxy                        string
134735	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
134736	urlParams_                            gensupport.URLParams
134737	ctx_                                  context.Context
134738	header_                               http.Header
134739}
134740
134741// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
134742func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
134743	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134744	c.project = project
134745	c.targetSslProxy = targetSslProxy
134746	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
134747	return c
134748}
134749
134750// RequestId sets the optional parameter "requestId": An optional
134751// request ID to identify requests. Specify a unique request ID so that
134752// if you must retry your request, the server will know to ignore the
134753// request if it has already been completed.
134754//
134755// For example, consider a situation where you make an initial request
134756// and the request times out. If you make the request again with the
134757// same request ID, the server can check if original operation with the
134758// same request ID was received, and if so, will ignore the second
134759// request. This prevents clients from accidentally creating duplicate
134760// commitments.
134761//
134762// The request ID must be a valid UUID with the exception that zero UUID
134763// is not supported (00000000-0000-0000-0000-000000000000).
134764func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
134765	c.urlParams_.Set("requestId", requestId)
134766	return c
134767}
134768
134769// Fields allows partial responses to be retrieved. See
134770// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134771// for more information.
134772func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
134773	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134774	return c
134775}
134776
134777// Context sets the context to be used in this call's Do method. Any
134778// pending HTTP request will be aborted if the provided context is
134779// canceled.
134780func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
134781	c.ctx_ = ctx
134782	return c
134783}
134784
134785// Header returns an http.Header that can be modified by the caller to
134786// add HTTP headers to the request.
134787func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
134788	if c.header_ == nil {
134789		c.header_ = make(http.Header)
134790	}
134791	return c.header_
134792}
134793
134794func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
134795	reqHeaders := make(http.Header)
134796	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134797	for k, v := range c.header_ {
134798		reqHeaders[k] = v
134799	}
134800	reqHeaders.Set("User-Agent", c.s.userAgent())
134801	var body io.Reader = nil
134802	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
134803	if err != nil {
134804		return nil, err
134805	}
134806	reqHeaders.Set("Content-Type", "application/json")
134807	c.urlParams_.Set("alt", alt)
134808	c.urlParams_.Set("prettyPrint", "false")
134809	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
134810	urls += "?" + c.urlParams_.Encode()
134811	req, err := http.NewRequest("POST", urls, body)
134812	if err != nil {
134813		return nil, err
134814	}
134815	req.Header = reqHeaders
134816	googleapi.Expand(req.URL, map[string]string{
134817		"project":        c.project,
134818		"targetSslProxy": c.targetSslProxy,
134819	})
134820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134821}
134822
134823// Do executes the "compute.targetSslProxies.setProxyHeader" call.
134824// Exactly one of *Operation or error will be non-nil. Any non-2xx
134825// status code is an error. Response headers are in either
134826// *Operation.ServerResponse.Header or (if a response was returned at
134827// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134828// to check whether the returned error was because
134829// http.StatusNotModified was returned.
134830func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134831	gensupport.SetOptions(c.urlParams_, opts...)
134832	res, err := c.doRequest("json")
134833	if res != nil && res.StatusCode == http.StatusNotModified {
134834		if res.Body != nil {
134835			res.Body.Close()
134836		}
134837		return nil, &googleapi.Error{
134838			Code:   res.StatusCode,
134839			Header: res.Header,
134840		}
134841	}
134842	if err != nil {
134843		return nil, err
134844	}
134845	defer googleapi.CloseBody(res)
134846	if err := googleapi.CheckResponse(res); err != nil {
134847		return nil, err
134848	}
134849	ret := &Operation{
134850		ServerResponse: googleapi.ServerResponse{
134851			Header:         res.Header,
134852			HTTPStatusCode: res.StatusCode,
134853		},
134854	}
134855	target := &ret
134856	if err := gensupport.DecodeResponse(target, res); err != nil {
134857		return nil, err
134858	}
134859	return ret, nil
134860	// {
134861	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
134862	//   "httpMethod": "POST",
134863	//   "id": "compute.targetSslProxies.setProxyHeader",
134864	//   "parameterOrder": [
134865	//     "project",
134866	//     "targetSslProxy"
134867	//   ],
134868	//   "parameters": {
134869	//     "project": {
134870	//       "description": "Project ID for this request.",
134871	//       "location": "path",
134872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134873	//       "required": true,
134874	//       "type": "string"
134875	//     },
134876	//     "requestId": {
134877	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134878	//       "location": "query",
134879	//       "type": "string"
134880	//     },
134881	//     "targetSslProxy": {
134882	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
134883	//       "location": "path",
134884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134885	//       "required": true,
134886	//       "type": "string"
134887	//     }
134888	//   },
134889	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
134890	//   "request": {
134891	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
134892	//   },
134893	//   "response": {
134894	//     "$ref": "Operation"
134895	//   },
134896	//   "scopes": [
134897	//     "https://www.googleapis.com/auth/cloud-platform",
134898	//     "https://www.googleapis.com/auth/compute"
134899	//   ]
134900	// }
134901
134902}
134903
134904// method id "compute.targetSslProxies.setSslCertificates":
134905
134906type TargetSslProxiesSetSslCertificatesCall struct {
134907	s                                         *Service
134908	project                                   string
134909	targetSslProxy                            string
134910	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
134911	urlParams_                                gensupport.URLParams
134912	ctx_                                      context.Context
134913	header_                                   http.Header
134914}
134915
134916// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
134917func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
134918	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134919	c.project = project
134920	c.targetSslProxy = targetSslProxy
134921	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
134922	return c
134923}
134924
134925// RequestId sets the optional parameter "requestId": An optional
134926// request ID to identify requests. Specify a unique request ID so that
134927// if you must retry your request, the server will know to ignore the
134928// request if it has already been completed.
134929//
134930// For example, consider a situation where you make an initial request
134931// and the request times out. If you make the request again with the
134932// same request ID, the server can check if original operation with the
134933// same request ID was received, and if so, will ignore the second
134934// request. This prevents clients from accidentally creating duplicate
134935// commitments.
134936//
134937// The request ID must be a valid UUID with the exception that zero UUID
134938// is not supported (00000000-0000-0000-0000-000000000000).
134939func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
134940	c.urlParams_.Set("requestId", requestId)
134941	return c
134942}
134943
134944// Fields allows partial responses to be retrieved. See
134945// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134946// for more information.
134947func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
134948	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134949	return c
134950}
134951
134952// Context sets the context to be used in this call's Do method. Any
134953// pending HTTP request will be aborted if the provided context is
134954// canceled.
134955func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
134956	c.ctx_ = ctx
134957	return c
134958}
134959
134960// Header returns an http.Header that can be modified by the caller to
134961// add HTTP headers to the request.
134962func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
134963	if c.header_ == nil {
134964		c.header_ = make(http.Header)
134965	}
134966	return c.header_
134967}
134968
134969func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
134970	reqHeaders := make(http.Header)
134971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134972	for k, v := range c.header_ {
134973		reqHeaders[k] = v
134974	}
134975	reqHeaders.Set("User-Agent", c.s.userAgent())
134976	var body io.Reader = nil
134977	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
134978	if err != nil {
134979		return nil, err
134980	}
134981	reqHeaders.Set("Content-Type", "application/json")
134982	c.urlParams_.Set("alt", alt)
134983	c.urlParams_.Set("prettyPrint", "false")
134984	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
134985	urls += "?" + c.urlParams_.Encode()
134986	req, err := http.NewRequest("POST", urls, body)
134987	if err != nil {
134988		return nil, err
134989	}
134990	req.Header = reqHeaders
134991	googleapi.Expand(req.URL, map[string]string{
134992		"project":        c.project,
134993		"targetSslProxy": c.targetSslProxy,
134994	})
134995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134996}
134997
134998// Do executes the "compute.targetSslProxies.setSslCertificates" call.
134999// Exactly one of *Operation or error will be non-nil. Any non-2xx
135000// status code is an error. Response headers are in either
135001// *Operation.ServerResponse.Header or (if a response was returned at
135002// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135003// to check whether the returned error was because
135004// http.StatusNotModified was returned.
135005func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135006	gensupport.SetOptions(c.urlParams_, opts...)
135007	res, err := c.doRequest("json")
135008	if res != nil && res.StatusCode == http.StatusNotModified {
135009		if res.Body != nil {
135010			res.Body.Close()
135011		}
135012		return nil, &googleapi.Error{
135013			Code:   res.StatusCode,
135014			Header: res.Header,
135015		}
135016	}
135017	if err != nil {
135018		return nil, err
135019	}
135020	defer googleapi.CloseBody(res)
135021	if err := googleapi.CheckResponse(res); err != nil {
135022		return nil, err
135023	}
135024	ret := &Operation{
135025		ServerResponse: googleapi.ServerResponse{
135026			Header:         res.Header,
135027			HTTPStatusCode: res.StatusCode,
135028		},
135029	}
135030	target := &ret
135031	if err := gensupport.DecodeResponse(target, res); err != nil {
135032		return nil, err
135033	}
135034	return ret, nil
135035	// {
135036	//   "description": "Changes SslCertificates for TargetSslProxy.",
135037	//   "httpMethod": "POST",
135038	//   "id": "compute.targetSslProxies.setSslCertificates",
135039	//   "parameterOrder": [
135040	//     "project",
135041	//     "targetSslProxy"
135042	//   ],
135043	//   "parameters": {
135044	//     "project": {
135045	//       "description": "Project ID for this request.",
135046	//       "location": "path",
135047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135048	//       "required": true,
135049	//       "type": "string"
135050	//     },
135051	//     "requestId": {
135052	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135053	//       "location": "query",
135054	//       "type": "string"
135055	//     },
135056	//     "targetSslProxy": {
135057	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
135058	//       "location": "path",
135059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135060	//       "required": true,
135061	//       "type": "string"
135062	//     }
135063	//   },
135064	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
135065	//   "request": {
135066	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
135067	//   },
135068	//   "response": {
135069	//     "$ref": "Operation"
135070	//   },
135071	//   "scopes": [
135072	//     "https://www.googleapis.com/auth/cloud-platform",
135073	//     "https://www.googleapis.com/auth/compute"
135074	//   ]
135075	// }
135076
135077}
135078
135079// method id "compute.targetSslProxies.setSslPolicy":
135080
135081type TargetSslProxiesSetSslPolicyCall struct {
135082	s                  *Service
135083	project            string
135084	targetSslProxy     string
135085	sslpolicyreference *SslPolicyReference
135086	urlParams_         gensupport.URLParams
135087	ctx_               context.Context
135088	header_            http.Header
135089}
135090
135091// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
135092// specifies the server-side support for SSL features. This affects
135093// connections between clients and the SSL proxy load balancer. They do
135094// not affect the connection between the load balancer and the backends.
135095func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
135096	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135097	c.project = project
135098	c.targetSslProxy = targetSslProxy
135099	c.sslpolicyreference = sslpolicyreference
135100	return c
135101}
135102
135103// RequestId sets the optional parameter "requestId": An optional
135104// request ID to identify requests. Specify a unique request ID so that
135105// if you must retry your request, the server will know to ignore the
135106// request if it has already been completed.
135107//
135108// For example, consider a situation where you make an initial request
135109// and the request times out. If you make the request again with the
135110// same request ID, the server can check if original operation with the
135111// same request ID was received, and if so, will ignore the second
135112// request. This prevents clients from accidentally creating duplicate
135113// commitments.
135114//
135115// The request ID must be a valid UUID with the exception that zero UUID
135116// is not supported (00000000-0000-0000-0000-000000000000).
135117func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
135118	c.urlParams_.Set("requestId", requestId)
135119	return c
135120}
135121
135122// Fields allows partial responses to be retrieved. See
135123// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135124// for more information.
135125func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
135126	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135127	return c
135128}
135129
135130// Context sets the context to be used in this call's Do method. Any
135131// pending HTTP request will be aborted if the provided context is
135132// canceled.
135133func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
135134	c.ctx_ = ctx
135135	return c
135136}
135137
135138// Header returns an http.Header that can be modified by the caller to
135139// add HTTP headers to the request.
135140func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
135141	if c.header_ == nil {
135142		c.header_ = make(http.Header)
135143	}
135144	return c.header_
135145}
135146
135147func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
135148	reqHeaders := make(http.Header)
135149	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135150	for k, v := range c.header_ {
135151		reqHeaders[k] = v
135152	}
135153	reqHeaders.Set("User-Agent", c.s.userAgent())
135154	var body io.Reader = nil
135155	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
135156	if err != nil {
135157		return nil, err
135158	}
135159	reqHeaders.Set("Content-Type", "application/json")
135160	c.urlParams_.Set("alt", alt)
135161	c.urlParams_.Set("prettyPrint", "false")
135162	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
135163	urls += "?" + c.urlParams_.Encode()
135164	req, err := http.NewRequest("POST", urls, body)
135165	if err != nil {
135166		return nil, err
135167	}
135168	req.Header = reqHeaders
135169	googleapi.Expand(req.URL, map[string]string{
135170		"project":        c.project,
135171		"targetSslProxy": c.targetSslProxy,
135172	})
135173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135174}
135175
135176// Do executes the "compute.targetSslProxies.setSslPolicy" call.
135177// Exactly one of *Operation or error will be non-nil. Any non-2xx
135178// status code is an error. Response headers are in either
135179// *Operation.ServerResponse.Header or (if a response was returned at
135180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135181// to check whether the returned error was because
135182// http.StatusNotModified was returned.
135183func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135184	gensupport.SetOptions(c.urlParams_, opts...)
135185	res, err := c.doRequest("json")
135186	if res != nil && res.StatusCode == http.StatusNotModified {
135187		if res.Body != nil {
135188			res.Body.Close()
135189		}
135190		return nil, &googleapi.Error{
135191			Code:   res.StatusCode,
135192			Header: res.Header,
135193		}
135194	}
135195	if err != nil {
135196		return nil, err
135197	}
135198	defer googleapi.CloseBody(res)
135199	if err := googleapi.CheckResponse(res); err != nil {
135200		return nil, err
135201	}
135202	ret := &Operation{
135203		ServerResponse: googleapi.ServerResponse{
135204			Header:         res.Header,
135205			HTTPStatusCode: res.StatusCode,
135206		},
135207	}
135208	target := &ret
135209	if err := gensupport.DecodeResponse(target, res); err != nil {
135210		return nil, err
135211	}
135212	return ret, nil
135213	// {
135214	//   "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.",
135215	//   "httpMethod": "POST",
135216	//   "id": "compute.targetSslProxies.setSslPolicy",
135217	//   "parameterOrder": [
135218	//     "project",
135219	//     "targetSslProxy"
135220	//   ],
135221	//   "parameters": {
135222	//     "project": {
135223	//       "description": "Project ID for this request.",
135224	//       "location": "path",
135225	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135226	//       "required": true,
135227	//       "type": "string"
135228	//     },
135229	//     "requestId": {
135230	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135231	//       "location": "query",
135232	//       "type": "string"
135233	//     },
135234	//     "targetSslProxy": {
135235	//       "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.",
135236	//       "location": "path",
135237	//       "required": true,
135238	//       "type": "string"
135239	//     }
135240	//   },
135241	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
135242	//   "request": {
135243	//     "$ref": "SslPolicyReference"
135244	//   },
135245	//   "response": {
135246	//     "$ref": "Operation"
135247	//   },
135248	//   "scopes": [
135249	//     "https://www.googleapis.com/auth/cloud-platform",
135250	//     "https://www.googleapis.com/auth/compute"
135251	//   ]
135252	// }
135253
135254}
135255
135256// method id "compute.targetTcpProxies.delete":
135257
135258type TargetTcpProxiesDeleteCall struct {
135259	s              *Service
135260	project        string
135261	targetTcpProxy string
135262	urlParams_     gensupport.URLParams
135263	ctx_           context.Context
135264	header_        http.Header
135265}
135266
135267// Delete: Deletes the specified TargetTcpProxy resource.
135268func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
135269	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135270	c.project = project
135271	c.targetTcpProxy = targetTcpProxy
135272	return c
135273}
135274
135275// RequestId sets the optional parameter "requestId": An optional
135276// request ID to identify requests. Specify a unique request ID so that
135277// if you must retry your request, the server will know to ignore the
135278// request if it has already been completed.
135279//
135280// For example, consider a situation where you make an initial request
135281// and the request times out. If you make the request again with the
135282// same request ID, the server can check if original operation with the
135283// same request ID was received, and if so, will ignore the second
135284// request. This prevents clients from accidentally creating duplicate
135285// commitments.
135286//
135287// The request ID must be a valid UUID with the exception that zero UUID
135288// is not supported (00000000-0000-0000-0000-000000000000).
135289func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
135290	c.urlParams_.Set("requestId", requestId)
135291	return c
135292}
135293
135294// Fields allows partial responses to be retrieved. See
135295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135296// for more information.
135297func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
135298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135299	return c
135300}
135301
135302// Context sets the context to be used in this call's Do method. Any
135303// pending HTTP request will be aborted if the provided context is
135304// canceled.
135305func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
135306	c.ctx_ = ctx
135307	return c
135308}
135309
135310// Header returns an http.Header that can be modified by the caller to
135311// add HTTP headers to the request.
135312func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
135313	if c.header_ == nil {
135314		c.header_ = make(http.Header)
135315	}
135316	return c.header_
135317}
135318
135319func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
135320	reqHeaders := make(http.Header)
135321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135322	for k, v := range c.header_ {
135323		reqHeaders[k] = v
135324	}
135325	reqHeaders.Set("User-Agent", c.s.userAgent())
135326	var body io.Reader = nil
135327	c.urlParams_.Set("alt", alt)
135328	c.urlParams_.Set("prettyPrint", "false")
135329	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
135330	urls += "?" + c.urlParams_.Encode()
135331	req, err := http.NewRequest("DELETE", urls, body)
135332	if err != nil {
135333		return nil, err
135334	}
135335	req.Header = reqHeaders
135336	googleapi.Expand(req.URL, map[string]string{
135337		"project":        c.project,
135338		"targetTcpProxy": c.targetTcpProxy,
135339	})
135340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135341}
135342
135343// Do executes the "compute.targetTcpProxies.delete" call.
135344// Exactly one of *Operation or error will be non-nil. Any non-2xx
135345// status code is an error. Response headers are in either
135346// *Operation.ServerResponse.Header or (if a response was returned at
135347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135348// to check whether the returned error was because
135349// http.StatusNotModified was returned.
135350func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135351	gensupport.SetOptions(c.urlParams_, opts...)
135352	res, err := c.doRequest("json")
135353	if res != nil && res.StatusCode == http.StatusNotModified {
135354		if res.Body != nil {
135355			res.Body.Close()
135356		}
135357		return nil, &googleapi.Error{
135358			Code:   res.StatusCode,
135359			Header: res.Header,
135360		}
135361	}
135362	if err != nil {
135363		return nil, err
135364	}
135365	defer googleapi.CloseBody(res)
135366	if err := googleapi.CheckResponse(res); err != nil {
135367		return nil, err
135368	}
135369	ret := &Operation{
135370		ServerResponse: googleapi.ServerResponse{
135371			Header:         res.Header,
135372			HTTPStatusCode: res.StatusCode,
135373		},
135374	}
135375	target := &ret
135376	if err := gensupport.DecodeResponse(target, res); err != nil {
135377		return nil, err
135378	}
135379	return ret, nil
135380	// {
135381	//   "description": "Deletes the specified TargetTcpProxy resource.",
135382	//   "httpMethod": "DELETE",
135383	//   "id": "compute.targetTcpProxies.delete",
135384	//   "parameterOrder": [
135385	//     "project",
135386	//     "targetTcpProxy"
135387	//   ],
135388	//   "parameters": {
135389	//     "project": {
135390	//       "description": "Project ID for this request.",
135391	//       "location": "path",
135392	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135393	//       "required": true,
135394	//       "type": "string"
135395	//     },
135396	//     "requestId": {
135397	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135398	//       "location": "query",
135399	//       "type": "string"
135400	//     },
135401	//     "targetTcpProxy": {
135402	//       "description": "Name of the TargetTcpProxy resource to delete.",
135403	//       "location": "path",
135404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135405	//       "required": true,
135406	//       "type": "string"
135407	//     }
135408	//   },
135409	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
135410	//   "response": {
135411	//     "$ref": "Operation"
135412	//   },
135413	//   "scopes": [
135414	//     "https://www.googleapis.com/auth/cloud-platform",
135415	//     "https://www.googleapis.com/auth/compute"
135416	//   ]
135417	// }
135418
135419}
135420
135421// method id "compute.targetTcpProxies.get":
135422
135423type TargetTcpProxiesGetCall struct {
135424	s              *Service
135425	project        string
135426	targetTcpProxy string
135427	urlParams_     gensupport.URLParams
135428	ifNoneMatch_   string
135429	ctx_           context.Context
135430	header_        http.Header
135431}
135432
135433// Get: Returns the specified TargetTcpProxy resource. Gets a list of
135434// available target TCP proxies by making a list() request.
135435func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
135436	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135437	c.project = project
135438	c.targetTcpProxy = targetTcpProxy
135439	return c
135440}
135441
135442// Fields allows partial responses to be retrieved. See
135443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135444// for more information.
135445func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
135446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135447	return c
135448}
135449
135450// IfNoneMatch sets the optional parameter which makes the operation
135451// fail if the object's ETag matches the given value. This is useful for
135452// getting updates only after the object has changed since the last
135453// request. Use googleapi.IsNotModified to check whether the response
135454// error from Do is the result of In-None-Match.
135455func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
135456	c.ifNoneMatch_ = entityTag
135457	return c
135458}
135459
135460// Context sets the context to be used in this call's Do method. Any
135461// pending HTTP request will be aborted if the provided context is
135462// canceled.
135463func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
135464	c.ctx_ = ctx
135465	return c
135466}
135467
135468// Header returns an http.Header that can be modified by the caller to
135469// add HTTP headers to the request.
135470func (c *TargetTcpProxiesGetCall) Header() http.Header {
135471	if c.header_ == nil {
135472		c.header_ = make(http.Header)
135473	}
135474	return c.header_
135475}
135476
135477func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
135478	reqHeaders := make(http.Header)
135479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135480	for k, v := range c.header_ {
135481		reqHeaders[k] = v
135482	}
135483	reqHeaders.Set("User-Agent", c.s.userAgent())
135484	if c.ifNoneMatch_ != "" {
135485		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135486	}
135487	var body io.Reader = nil
135488	c.urlParams_.Set("alt", alt)
135489	c.urlParams_.Set("prettyPrint", "false")
135490	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
135491	urls += "?" + c.urlParams_.Encode()
135492	req, err := http.NewRequest("GET", urls, body)
135493	if err != nil {
135494		return nil, err
135495	}
135496	req.Header = reqHeaders
135497	googleapi.Expand(req.URL, map[string]string{
135498		"project":        c.project,
135499		"targetTcpProxy": c.targetTcpProxy,
135500	})
135501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135502}
135503
135504// Do executes the "compute.targetTcpProxies.get" call.
135505// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
135506// status code is an error. Response headers are in either
135507// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
135508// at all) in error.(*googleapi.Error).Header. Use
135509// googleapi.IsNotModified to check whether the returned error was
135510// because http.StatusNotModified was returned.
135511func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
135512	gensupport.SetOptions(c.urlParams_, opts...)
135513	res, err := c.doRequest("json")
135514	if res != nil && res.StatusCode == http.StatusNotModified {
135515		if res.Body != nil {
135516			res.Body.Close()
135517		}
135518		return nil, &googleapi.Error{
135519			Code:   res.StatusCode,
135520			Header: res.Header,
135521		}
135522	}
135523	if err != nil {
135524		return nil, err
135525	}
135526	defer googleapi.CloseBody(res)
135527	if err := googleapi.CheckResponse(res); err != nil {
135528		return nil, err
135529	}
135530	ret := &TargetTcpProxy{
135531		ServerResponse: googleapi.ServerResponse{
135532			Header:         res.Header,
135533			HTTPStatusCode: res.StatusCode,
135534		},
135535	}
135536	target := &ret
135537	if err := gensupport.DecodeResponse(target, res); err != nil {
135538		return nil, err
135539	}
135540	return ret, nil
135541	// {
135542	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
135543	//   "httpMethod": "GET",
135544	//   "id": "compute.targetTcpProxies.get",
135545	//   "parameterOrder": [
135546	//     "project",
135547	//     "targetTcpProxy"
135548	//   ],
135549	//   "parameters": {
135550	//     "project": {
135551	//       "description": "Project ID for this request.",
135552	//       "location": "path",
135553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135554	//       "required": true,
135555	//       "type": "string"
135556	//     },
135557	//     "targetTcpProxy": {
135558	//       "description": "Name of the TargetTcpProxy resource to return.",
135559	//       "location": "path",
135560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135561	//       "required": true,
135562	//       "type": "string"
135563	//     }
135564	//   },
135565	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
135566	//   "response": {
135567	//     "$ref": "TargetTcpProxy"
135568	//   },
135569	//   "scopes": [
135570	//     "https://www.googleapis.com/auth/cloud-platform",
135571	//     "https://www.googleapis.com/auth/compute",
135572	//     "https://www.googleapis.com/auth/compute.readonly"
135573	//   ]
135574	// }
135575
135576}
135577
135578// method id "compute.targetTcpProxies.insert":
135579
135580type TargetTcpProxiesInsertCall struct {
135581	s              *Service
135582	project        string
135583	targettcpproxy *TargetTcpProxy
135584	urlParams_     gensupport.URLParams
135585	ctx_           context.Context
135586	header_        http.Header
135587}
135588
135589// Insert: Creates a TargetTcpProxy resource in the specified project
135590// using the data included in the request.
135591func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
135592	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135593	c.project = project
135594	c.targettcpproxy = targettcpproxy
135595	return c
135596}
135597
135598// RequestId sets the optional parameter "requestId": An optional
135599// request ID to identify requests. Specify a unique request ID so that
135600// if you must retry your request, the server will know to ignore the
135601// request if it has already been completed.
135602//
135603// For example, consider a situation where you make an initial request
135604// and the request times out. If you make the request again with the
135605// same request ID, the server can check if original operation with the
135606// same request ID was received, and if so, will ignore the second
135607// request. This prevents clients from accidentally creating duplicate
135608// commitments.
135609//
135610// The request ID must be a valid UUID with the exception that zero UUID
135611// is not supported (00000000-0000-0000-0000-000000000000).
135612func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
135613	c.urlParams_.Set("requestId", requestId)
135614	return c
135615}
135616
135617// Fields allows partial responses to be retrieved. See
135618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135619// for more information.
135620func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
135621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135622	return c
135623}
135624
135625// Context sets the context to be used in this call's Do method. Any
135626// pending HTTP request will be aborted if the provided context is
135627// canceled.
135628func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
135629	c.ctx_ = ctx
135630	return c
135631}
135632
135633// Header returns an http.Header that can be modified by the caller to
135634// add HTTP headers to the request.
135635func (c *TargetTcpProxiesInsertCall) Header() http.Header {
135636	if c.header_ == nil {
135637		c.header_ = make(http.Header)
135638	}
135639	return c.header_
135640}
135641
135642func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
135643	reqHeaders := make(http.Header)
135644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135645	for k, v := range c.header_ {
135646		reqHeaders[k] = v
135647	}
135648	reqHeaders.Set("User-Agent", c.s.userAgent())
135649	var body io.Reader = nil
135650	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
135651	if err != nil {
135652		return nil, err
135653	}
135654	reqHeaders.Set("Content-Type", "application/json")
135655	c.urlParams_.Set("alt", alt)
135656	c.urlParams_.Set("prettyPrint", "false")
135657	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
135658	urls += "?" + c.urlParams_.Encode()
135659	req, err := http.NewRequest("POST", urls, body)
135660	if err != nil {
135661		return nil, err
135662	}
135663	req.Header = reqHeaders
135664	googleapi.Expand(req.URL, map[string]string{
135665		"project": c.project,
135666	})
135667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135668}
135669
135670// Do executes the "compute.targetTcpProxies.insert" call.
135671// Exactly one of *Operation or error will be non-nil. Any non-2xx
135672// status code is an error. Response headers are in either
135673// *Operation.ServerResponse.Header or (if a response was returned at
135674// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135675// to check whether the returned error was because
135676// http.StatusNotModified was returned.
135677func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135678	gensupport.SetOptions(c.urlParams_, opts...)
135679	res, err := c.doRequest("json")
135680	if res != nil && res.StatusCode == http.StatusNotModified {
135681		if res.Body != nil {
135682			res.Body.Close()
135683		}
135684		return nil, &googleapi.Error{
135685			Code:   res.StatusCode,
135686			Header: res.Header,
135687		}
135688	}
135689	if err != nil {
135690		return nil, err
135691	}
135692	defer googleapi.CloseBody(res)
135693	if err := googleapi.CheckResponse(res); err != nil {
135694		return nil, err
135695	}
135696	ret := &Operation{
135697		ServerResponse: googleapi.ServerResponse{
135698			Header:         res.Header,
135699			HTTPStatusCode: res.StatusCode,
135700		},
135701	}
135702	target := &ret
135703	if err := gensupport.DecodeResponse(target, res); err != nil {
135704		return nil, err
135705	}
135706	return ret, nil
135707	// {
135708	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
135709	//   "httpMethod": "POST",
135710	//   "id": "compute.targetTcpProxies.insert",
135711	//   "parameterOrder": [
135712	//     "project"
135713	//   ],
135714	//   "parameters": {
135715	//     "project": {
135716	//       "description": "Project ID for this request.",
135717	//       "location": "path",
135718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135719	//       "required": true,
135720	//       "type": "string"
135721	//     },
135722	//     "requestId": {
135723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135724	//       "location": "query",
135725	//       "type": "string"
135726	//     }
135727	//   },
135728	//   "path": "{project}/global/targetTcpProxies",
135729	//   "request": {
135730	//     "$ref": "TargetTcpProxy"
135731	//   },
135732	//   "response": {
135733	//     "$ref": "Operation"
135734	//   },
135735	//   "scopes": [
135736	//     "https://www.googleapis.com/auth/cloud-platform",
135737	//     "https://www.googleapis.com/auth/compute"
135738	//   ]
135739	// }
135740
135741}
135742
135743// method id "compute.targetTcpProxies.list":
135744
135745type TargetTcpProxiesListCall struct {
135746	s            *Service
135747	project      string
135748	urlParams_   gensupport.URLParams
135749	ifNoneMatch_ string
135750	ctx_         context.Context
135751	header_      http.Header
135752}
135753
135754// List: Retrieves the list of TargetTcpProxy resources available to the
135755// specified project.
135756func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
135757	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135758	c.project = project
135759	return c
135760}
135761
135762// Filter sets the optional parameter "filter": A filter expression that
135763// filters resources listed in the response. The expression must specify
135764// the field name, a comparison operator, and the value that you want to
135765// use for filtering. The value must be a string, a number, or a
135766// boolean. The comparison operator must be either `=`, `!=`, `>`, or
135767// `<`.
135768//
135769// For example, if you are filtering Compute Engine instances, you can
135770// exclude instances named `example-instance` by specifying `name !=
135771// example-instance`.
135772//
135773// You can also filter nested fields. For example, you could specify
135774// `scheduling.automaticRestart = false` to include instances only if
135775// they are not scheduled for automatic restarts. You can use filtering
135776// on nested fields to filter based on resource labels.
135777//
135778// To filter on multiple expressions, provide each separate expression
135779// within parentheses. For example: ``` (scheduling.automaticRestart =
135780// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
135781// is an `AND` expression. However, you can include `AND` and `OR`
135782// expressions explicitly. For example: ``` (cpuPlatform = "Intel
135783// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
135784// (scheduling.automaticRestart = true) ```
135785func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
135786	c.urlParams_.Set("filter", filter)
135787	return c
135788}
135789
135790// MaxResults sets the optional parameter "maxResults": The maximum
135791// number of results per page that should be returned. If the number of
135792// available results is larger than `maxResults`, Compute Engine returns
135793// a `nextPageToken` that can be used to get the next page of results in
135794// subsequent list requests. Acceptable values are `0` to `500`,
135795// inclusive. (Default: `500`)
135796func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
135797	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135798	return c
135799}
135800
135801// OrderBy sets the optional parameter "orderBy": Sorts list results by
135802// a certain order. By default, results are returned in alphanumerical
135803// order based on the resource name.
135804//
135805// You can also sort results in descending order based on the creation
135806// timestamp using `orderBy="creationTimestamp desc". This sorts
135807// results based on the `creationTimestamp` field in reverse
135808// chronological order (newest result first). Use this to sort resources
135809// like operations so that the newest operation is returned
135810// first.
135811//
135812// Currently, only sorting by `name` or `creationTimestamp desc` is
135813// supported.
135814func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
135815	c.urlParams_.Set("orderBy", orderBy)
135816	return c
135817}
135818
135819// PageToken sets the optional parameter "pageToken": Specifies a page
135820// token to use. Set `pageToken` to the `nextPageToken` returned by a
135821// previous list request to get the next page of results.
135822func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
135823	c.urlParams_.Set("pageToken", pageToken)
135824	return c
135825}
135826
135827// Fields allows partial responses to be retrieved. See
135828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135829// for more information.
135830func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
135831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135832	return c
135833}
135834
135835// IfNoneMatch sets the optional parameter which makes the operation
135836// fail if the object's ETag matches the given value. This is useful for
135837// getting updates only after the object has changed since the last
135838// request. Use googleapi.IsNotModified to check whether the response
135839// error from Do is the result of In-None-Match.
135840func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
135841	c.ifNoneMatch_ = entityTag
135842	return c
135843}
135844
135845// Context sets the context to be used in this call's Do method. Any
135846// pending HTTP request will be aborted if the provided context is
135847// canceled.
135848func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
135849	c.ctx_ = ctx
135850	return c
135851}
135852
135853// Header returns an http.Header that can be modified by the caller to
135854// add HTTP headers to the request.
135855func (c *TargetTcpProxiesListCall) Header() http.Header {
135856	if c.header_ == nil {
135857		c.header_ = make(http.Header)
135858	}
135859	return c.header_
135860}
135861
135862func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
135863	reqHeaders := make(http.Header)
135864	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135865	for k, v := range c.header_ {
135866		reqHeaders[k] = v
135867	}
135868	reqHeaders.Set("User-Agent", c.s.userAgent())
135869	if c.ifNoneMatch_ != "" {
135870		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135871	}
135872	var body io.Reader = nil
135873	c.urlParams_.Set("alt", alt)
135874	c.urlParams_.Set("prettyPrint", "false")
135875	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
135876	urls += "?" + c.urlParams_.Encode()
135877	req, err := http.NewRequest("GET", urls, body)
135878	if err != nil {
135879		return nil, err
135880	}
135881	req.Header = reqHeaders
135882	googleapi.Expand(req.URL, map[string]string{
135883		"project": c.project,
135884	})
135885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135886}
135887
135888// Do executes the "compute.targetTcpProxies.list" call.
135889// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
135890// non-2xx status code is an error. Response headers are in either
135891// *TargetTcpProxyList.ServerResponse.Header or (if a response was
135892// returned at all) in error.(*googleapi.Error).Header. Use
135893// googleapi.IsNotModified to check whether the returned error was
135894// because http.StatusNotModified was returned.
135895func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
135896	gensupport.SetOptions(c.urlParams_, opts...)
135897	res, err := c.doRequest("json")
135898	if res != nil && res.StatusCode == http.StatusNotModified {
135899		if res.Body != nil {
135900			res.Body.Close()
135901		}
135902		return nil, &googleapi.Error{
135903			Code:   res.StatusCode,
135904			Header: res.Header,
135905		}
135906	}
135907	if err != nil {
135908		return nil, err
135909	}
135910	defer googleapi.CloseBody(res)
135911	if err := googleapi.CheckResponse(res); err != nil {
135912		return nil, err
135913	}
135914	ret := &TargetTcpProxyList{
135915		ServerResponse: googleapi.ServerResponse{
135916			Header:         res.Header,
135917			HTTPStatusCode: res.StatusCode,
135918		},
135919	}
135920	target := &ret
135921	if err := gensupport.DecodeResponse(target, res); err != nil {
135922		return nil, err
135923	}
135924	return ret, nil
135925	// {
135926	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
135927	//   "httpMethod": "GET",
135928	//   "id": "compute.targetTcpProxies.list",
135929	//   "parameterOrder": [
135930	//     "project"
135931	//   ],
135932	//   "parameters": {
135933	//     "filter": {
135934	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
135935	//       "location": "query",
135936	//       "type": "string"
135937	//     },
135938	//     "maxResults": {
135939	//       "default": "500",
135940	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
135941	//       "format": "uint32",
135942	//       "location": "query",
135943	//       "minimum": "0",
135944	//       "type": "integer"
135945	//     },
135946	//     "orderBy": {
135947	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
135948	//       "location": "query",
135949	//       "type": "string"
135950	//     },
135951	//     "pageToken": {
135952	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
135953	//       "location": "query",
135954	//       "type": "string"
135955	//     },
135956	//     "project": {
135957	//       "description": "Project ID for this request.",
135958	//       "location": "path",
135959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135960	//       "required": true,
135961	//       "type": "string"
135962	//     }
135963	//   },
135964	//   "path": "{project}/global/targetTcpProxies",
135965	//   "response": {
135966	//     "$ref": "TargetTcpProxyList"
135967	//   },
135968	//   "scopes": [
135969	//     "https://www.googleapis.com/auth/cloud-platform",
135970	//     "https://www.googleapis.com/auth/compute",
135971	//     "https://www.googleapis.com/auth/compute.readonly"
135972	//   ]
135973	// }
135974
135975}
135976
135977// Pages invokes f for each page of results.
135978// A non-nil error returned from f will halt the iteration.
135979// The provided context supersedes any context provided to the Context method.
135980func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
135981	c.ctx_ = ctx
135982	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135983	for {
135984		x, err := c.Do()
135985		if err != nil {
135986			return err
135987		}
135988		if err := f(x); err != nil {
135989			return err
135990		}
135991		if x.NextPageToken == "" {
135992			return nil
135993		}
135994		c.PageToken(x.NextPageToken)
135995	}
135996}
135997
135998// method id "compute.targetTcpProxies.setBackendService":
135999
136000type TargetTcpProxiesSetBackendServiceCall struct {
136001	s                                        *Service
136002	project                                  string
136003	targetTcpProxy                           string
136004	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
136005	urlParams_                               gensupport.URLParams
136006	ctx_                                     context.Context
136007	header_                                  http.Header
136008}
136009
136010// SetBackendService: Changes the BackendService for TargetTcpProxy.
136011func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
136012	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136013	c.project = project
136014	c.targetTcpProxy = targetTcpProxy
136015	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
136016	return c
136017}
136018
136019// RequestId sets the optional parameter "requestId": An optional
136020// request ID to identify requests. Specify a unique request ID so that
136021// if you must retry your request, the server will know to ignore the
136022// request if it has already been completed.
136023//
136024// For example, consider a situation where you make an initial request
136025// and the request times out. If you make the request again with the
136026// same request ID, the server can check if original operation with the
136027// same request ID was received, and if so, will ignore the second
136028// request. This prevents clients from accidentally creating duplicate
136029// commitments.
136030//
136031// The request ID must be a valid UUID with the exception that zero UUID
136032// is not supported (00000000-0000-0000-0000-000000000000).
136033func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
136034	c.urlParams_.Set("requestId", requestId)
136035	return c
136036}
136037
136038// Fields allows partial responses to be retrieved. See
136039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136040// for more information.
136041func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
136042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136043	return c
136044}
136045
136046// Context sets the context to be used in this call's Do method. Any
136047// pending HTTP request will be aborted if the provided context is
136048// canceled.
136049func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
136050	c.ctx_ = ctx
136051	return c
136052}
136053
136054// Header returns an http.Header that can be modified by the caller to
136055// add HTTP headers to the request.
136056func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
136057	if c.header_ == nil {
136058		c.header_ = make(http.Header)
136059	}
136060	return c.header_
136061}
136062
136063func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
136064	reqHeaders := make(http.Header)
136065	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136066	for k, v := range c.header_ {
136067		reqHeaders[k] = v
136068	}
136069	reqHeaders.Set("User-Agent", c.s.userAgent())
136070	var body io.Reader = nil
136071	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
136072	if err != nil {
136073		return nil, err
136074	}
136075	reqHeaders.Set("Content-Type", "application/json")
136076	c.urlParams_.Set("alt", alt)
136077	c.urlParams_.Set("prettyPrint", "false")
136078	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
136079	urls += "?" + c.urlParams_.Encode()
136080	req, err := http.NewRequest("POST", urls, body)
136081	if err != nil {
136082		return nil, err
136083	}
136084	req.Header = reqHeaders
136085	googleapi.Expand(req.URL, map[string]string{
136086		"project":        c.project,
136087		"targetTcpProxy": c.targetTcpProxy,
136088	})
136089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136090}
136091
136092// Do executes the "compute.targetTcpProxies.setBackendService" call.
136093// Exactly one of *Operation or error will be non-nil. Any non-2xx
136094// status code is an error. Response headers are in either
136095// *Operation.ServerResponse.Header or (if a response was returned at
136096// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136097// to check whether the returned error was because
136098// http.StatusNotModified was returned.
136099func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136100	gensupport.SetOptions(c.urlParams_, opts...)
136101	res, err := c.doRequest("json")
136102	if res != nil && res.StatusCode == http.StatusNotModified {
136103		if res.Body != nil {
136104			res.Body.Close()
136105		}
136106		return nil, &googleapi.Error{
136107			Code:   res.StatusCode,
136108			Header: res.Header,
136109		}
136110	}
136111	if err != nil {
136112		return nil, err
136113	}
136114	defer googleapi.CloseBody(res)
136115	if err := googleapi.CheckResponse(res); err != nil {
136116		return nil, err
136117	}
136118	ret := &Operation{
136119		ServerResponse: googleapi.ServerResponse{
136120			Header:         res.Header,
136121			HTTPStatusCode: res.StatusCode,
136122		},
136123	}
136124	target := &ret
136125	if err := gensupport.DecodeResponse(target, res); err != nil {
136126		return nil, err
136127	}
136128	return ret, nil
136129	// {
136130	//   "description": "Changes the BackendService for TargetTcpProxy.",
136131	//   "httpMethod": "POST",
136132	//   "id": "compute.targetTcpProxies.setBackendService",
136133	//   "parameterOrder": [
136134	//     "project",
136135	//     "targetTcpProxy"
136136	//   ],
136137	//   "parameters": {
136138	//     "project": {
136139	//       "description": "Project ID for this request.",
136140	//       "location": "path",
136141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136142	//       "required": true,
136143	//       "type": "string"
136144	//     },
136145	//     "requestId": {
136146	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136147	//       "location": "query",
136148	//       "type": "string"
136149	//     },
136150	//     "targetTcpProxy": {
136151	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
136152	//       "location": "path",
136153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136154	//       "required": true,
136155	//       "type": "string"
136156	//     }
136157	//   },
136158	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
136159	//   "request": {
136160	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
136161	//   },
136162	//   "response": {
136163	//     "$ref": "Operation"
136164	//   },
136165	//   "scopes": [
136166	//     "https://www.googleapis.com/auth/cloud-platform",
136167	//     "https://www.googleapis.com/auth/compute"
136168	//   ]
136169	// }
136170
136171}
136172
136173// method id "compute.targetTcpProxies.setProxyHeader":
136174
136175type TargetTcpProxiesSetProxyHeaderCall struct {
136176	s                                     *Service
136177	project                               string
136178	targetTcpProxy                        string
136179	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
136180	urlParams_                            gensupport.URLParams
136181	ctx_                                  context.Context
136182	header_                               http.Header
136183}
136184
136185// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
136186func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
136187	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136188	c.project = project
136189	c.targetTcpProxy = targetTcpProxy
136190	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
136191	return c
136192}
136193
136194// RequestId sets the optional parameter "requestId": An optional
136195// request ID to identify requests. Specify a unique request ID so that
136196// if you must retry your request, the server will know to ignore the
136197// request if it has already been completed.
136198//
136199// For example, consider a situation where you make an initial request
136200// and the request times out. If you make the request again with the
136201// same request ID, the server can check if original operation with the
136202// same request ID was received, and if so, will ignore the second
136203// request. This prevents clients from accidentally creating duplicate
136204// commitments.
136205//
136206// The request ID must be a valid UUID with the exception that zero UUID
136207// is not supported (00000000-0000-0000-0000-000000000000).
136208func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
136209	c.urlParams_.Set("requestId", requestId)
136210	return c
136211}
136212
136213// Fields allows partial responses to be retrieved. See
136214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136215// for more information.
136216func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
136217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136218	return c
136219}
136220
136221// Context sets the context to be used in this call's Do method. Any
136222// pending HTTP request will be aborted if the provided context is
136223// canceled.
136224func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
136225	c.ctx_ = ctx
136226	return c
136227}
136228
136229// Header returns an http.Header that can be modified by the caller to
136230// add HTTP headers to the request.
136231func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
136232	if c.header_ == nil {
136233		c.header_ = make(http.Header)
136234	}
136235	return c.header_
136236}
136237
136238func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
136239	reqHeaders := make(http.Header)
136240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136241	for k, v := range c.header_ {
136242		reqHeaders[k] = v
136243	}
136244	reqHeaders.Set("User-Agent", c.s.userAgent())
136245	var body io.Reader = nil
136246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
136247	if err != nil {
136248		return nil, err
136249	}
136250	reqHeaders.Set("Content-Type", "application/json")
136251	c.urlParams_.Set("alt", alt)
136252	c.urlParams_.Set("prettyPrint", "false")
136253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
136254	urls += "?" + c.urlParams_.Encode()
136255	req, err := http.NewRequest("POST", urls, body)
136256	if err != nil {
136257		return nil, err
136258	}
136259	req.Header = reqHeaders
136260	googleapi.Expand(req.URL, map[string]string{
136261		"project":        c.project,
136262		"targetTcpProxy": c.targetTcpProxy,
136263	})
136264	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136265}
136266
136267// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
136268// Exactly one of *Operation or error will be non-nil. Any non-2xx
136269// status code is an error. Response headers are in either
136270// *Operation.ServerResponse.Header or (if a response was returned at
136271// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136272// to check whether the returned error was because
136273// http.StatusNotModified was returned.
136274func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136275	gensupport.SetOptions(c.urlParams_, opts...)
136276	res, err := c.doRequest("json")
136277	if res != nil && res.StatusCode == http.StatusNotModified {
136278		if res.Body != nil {
136279			res.Body.Close()
136280		}
136281		return nil, &googleapi.Error{
136282			Code:   res.StatusCode,
136283			Header: res.Header,
136284		}
136285	}
136286	if err != nil {
136287		return nil, err
136288	}
136289	defer googleapi.CloseBody(res)
136290	if err := googleapi.CheckResponse(res); err != nil {
136291		return nil, err
136292	}
136293	ret := &Operation{
136294		ServerResponse: googleapi.ServerResponse{
136295			Header:         res.Header,
136296			HTTPStatusCode: res.StatusCode,
136297		},
136298	}
136299	target := &ret
136300	if err := gensupport.DecodeResponse(target, res); err != nil {
136301		return nil, err
136302	}
136303	return ret, nil
136304	// {
136305	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
136306	//   "httpMethod": "POST",
136307	//   "id": "compute.targetTcpProxies.setProxyHeader",
136308	//   "parameterOrder": [
136309	//     "project",
136310	//     "targetTcpProxy"
136311	//   ],
136312	//   "parameters": {
136313	//     "project": {
136314	//       "description": "Project ID for this request.",
136315	//       "location": "path",
136316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136317	//       "required": true,
136318	//       "type": "string"
136319	//     },
136320	//     "requestId": {
136321	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136322	//       "location": "query",
136323	//       "type": "string"
136324	//     },
136325	//     "targetTcpProxy": {
136326	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
136327	//       "location": "path",
136328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136329	//       "required": true,
136330	//       "type": "string"
136331	//     }
136332	//   },
136333	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
136334	//   "request": {
136335	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
136336	//   },
136337	//   "response": {
136338	//     "$ref": "Operation"
136339	//   },
136340	//   "scopes": [
136341	//     "https://www.googleapis.com/auth/cloud-platform",
136342	//     "https://www.googleapis.com/auth/compute"
136343	//   ]
136344	// }
136345
136346}
136347
136348// method id "compute.targetVpnGateways.aggregatedList":
136349
136350type TargetVpnGatewaysAggregatedListCall struct {
136351	s            *Service
136352	project      string
136353	urlParams_   gensupport.URLParams
136354	ifNoneMatch_ string
136355	ctx_         context.Context
136356	header_      http.Header
136357}
136358
136359// AggregatedList: Retrieves an aggregated list of target VPN gateways.
136360func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
136361	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136362	c.project = project
136363	return c
136364}
136365
136366// Filter sets the optional parameter "filter": A filter expression that
136367// filters resources listed in the response. The expression must specify
136368// the field name, a comparison operator, and the value that you want to
136369// use for filtering. The value must be a string, a number, or a
136370// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136371// `<`.
136372//
136373// For example, if you are filtering Compute Engine instances, you can
136374// exclude instances named `example-instance` by specifying `name !=
136375// example-instance`.
136376//
136377// You can also filter nested fields. For example, you could specify
136378// `scheduling.automaticRestart = false` to include instances only if
136379// they are not scheduled for automatic restarts. You can use filtering
136380// on nested fields to filter based on resource labels.
136381//
136382// To filter on multiple expressions, provide each separate expression
136383// within parentheses. For example: ``` (scheduling.automaticRestart =
136384// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
136385// is an `AND` expression. However, you can include `AND` and `OR`
136386// expressions explicitly. For example: ``` (cpuPlatform = "Intel
136387// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
136388// (scheduling.automaticRestart = true) ```
136389func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
136390	c.urlParams_.Set("filter", filter)
136391	return c
136392}
136393
136394// IncludeAllScopes sets the optional parameter "includeAllScopes":
136395// Indicates whether every visible scope for each scope type (zone,
136396// region, global) should be included in the response. For new resource
136397// types added after this field, the flag has no effect as new resource
136398// types will always include every visible scope for each scope type in
136399// response. For resource types which predate this field, if this flag
136400// is omitted or false, only scopes of the scope types where the
136401// resource type is expected to be found will be included.
136402func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
136403	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
136404	return c
136405}
136406
136407// MaxResults sets the optional parameter "maxResults": The maximum
136408// number of results per page that should be returned. If the number of
136409// available results is larger than `maxResults`, Compute Engine returns
136410// a `nextPageToken` that can be used to get the next page of results in
136411// subsequent list requests. Acceptable values are `0` to `500`,
136412// inclusive. (Default: `500`)
136413func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
136414	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136415	return c
136416}
136417
136418// OrderBy sets the optional parameter "orderBy": Sorts list results by
136419// a certain order. By default, results are returned in alphanumerical
136420// order based on the resource name.
136421//
136422// You can also sort results in descending order based on the creation
136423// timestamp using `orderBy="creationTimestamp desc". This sorts
136424// results based on the `creationTimestamp` field in reverse
136425// chronological order (newest result first). Use this to sort resources
136426// like operations so that the newest operation is returned
136427// first.
136428//
136429// Currently, only sorting by `name` or `creationTimestamp desc` is
136430// supported.
136431func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
136432	c.urlParams_.Set("orderBy", orderBy)
136433	return c
136434}
136435
136436// PageToken sets the optional parameter "pageToken": Specifies a page
136437// token to use. Set `pageToken` to the `nextPageToken` returned by a
136438// previous list request to get the next page of results.
136439func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
136440	c.urlParams_.Set("pageToken", pageToken)
136441	return c
136442}
136443
136444// Fields allows partial responses to be retrieved. See
136445// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136446// for more information.
136447func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
136448	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136449	return c
136450}
136451
136452// IfNoneMatch sets the optional parameter which makes the operation
136453// fail if the object's ETag matches the given value. This is useful for
136454// getting updates only after the object has changed since the last
136455// request. Use googleapi.IsNotModified to check whether the response
136456// error from Do is the result of In-None-Match.
136457func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
136458	c.ifNoneMatch_ = entityTag
136459	return c
136460}
136461
136462// Context sets the context to be used in this call's Do method. Any
136463// pending HTTP request will be aborted if the provided context is
136464// canceled.
136465func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
136466	c.ctx_ = ctx
136467	return c
136468}
136469
136470// Header returns an http.Header that can be modified by the caller to
136471// add HTTP headers to the request.
136472func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
136473	if c.header_ == nil {
136474		c.header_ = make(http.Header)
136475	}
136476	return c.header_
136477}
136478
136479func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
136480	reqHeaders := make(http.Header)
136481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136482	for k, v := range c.header_ {
136483		reqHeaders[k] = v
136484	}
136485	reqHeaders.Set("User-Agent", c.s.userAgent())
136486	if c.ifNoneMatch_ != "" {
136487		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136488	}
136489	var body io.Reader = nil
136490	c.urlParams_.Set("alt", alt)
136491	c.urlParams_.Set("prettyPrint", "false")
136492	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
136493	urls += "?" + c.urlParams_.Encode()
136494	req, err := http.NewRequest("GET", urls, body)
136495	if err != nil {
136496		return nil, err
136497	}
136498	req.Header = reqHeaders
136499	googleapi.Expand(req.URL, map[string]string{
136500		"project": c.project,
136501	})
136502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136503}
136504
136505// Do executes the "compute.targetVpnGateways.aggregatedList" call.
136506// Exactly one of *TargetVpnGatewayAggregatedList or error will be
136507// non-nil. Any non-2xx status code is an error. Response headers are in
136508// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
136509// response was returned at all) in error.(*googleapi.Error).Header. Use
136510// googleapi.IsNotModified to check whether the returned error was
136511// because http.StatusNotModified was returned.
136512func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
136513	gensupport.SetOptions(c.urlParams_, opts...)
136514	res, err := c.doRequest("json")
136515	if res != nil && res.StatusCode == http.StatusNotModified {
136516		if res.Body != nil {
136517			res.Body.Close()
136518		}
136519		return nil, &googleapi.Error{
136520			Code:   res.StatusCode,
136521			Header: res.Header,
136522		}
136523	}
136524	if err != nil {
136525		return nil, err
136526	}
136527	defer googleapi.CloseBody(res)
136528	if err := googleapi.CheckResponse(res); err != nil {
136529		return nil, err
136530	}
136531	ret := &TargetVpnGatewayAggregatedList{
136532		ServerResponse: googleapi.ServerResponse{
136533			Header:         res.Header,
136534			HTTPStatusCode: res.StatusCode,
136535		},
136536	}
136537	target := &ret
136538	if err := gensupport.DecodeResponse(target, res); err != nil {
136539		return nil, err
136540	}
136541	return ret, nil
136542	// {
136543	//   "description": "Retrieves an aggregated list of target VPN gateways.",
136544	//   "httpMethod": "GET",
136545	//   "id": "compute.targetVpnGateways.aggregatedList",
136546	//   "parameterOrder": [
136547	//     "project"
136548	//   ],
136549	//   "parameters": {
136550	//     "filter": {
136551	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
136552	//       "location": "query",
136553	//       "type": "string"
136554	//     },
136555	//     "includeAllScopes": {
136556	//       "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.",
136557	//       "location": "query",
136558	//       "type": "boolean"
136559	//     },
136560	//     "maxResults": {
136561	//       "default": "500",
136562	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136563	//       "format": "uint32",
136564	//       "location": "query",
136565	//       "minimum": "0",
136566	//       "type": "integer"
136567	//     },
136568	//     "orderBy": {
136569	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
136570	//       "location": "query",
136571	//       "type": "string"
136572	//     },
136573	//     "pageToken": {
136574	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136575	//       "location": "query",
136576	//       "type": "string"
136577	//     },
136578	//     "project": {
136579	//       "description": "Project ID for this request.",
136580	//       "location": "path",
136581	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136582	//       "required": true,
136583	//       "type": "string"
136584	//     }
136585	//   },
136586	//   "path": "{project}/aggregated/targetVpnGateways",
136587	//   "response": {
136588	//     "$ref": "TargetVpnGatewayAggregatedList"
136589	//   },
136590	//   "scopes": [
136591	//     "https://www.googleapis.com/auth/cloud-platform",
136592	//     "https://www.googleapis.com/auth/compute",
136593	//     "https://www.googleapis.com/auth/compute.readonly"
136594	//   ]
136595	// }
136596
136597}
136598
136599// Pages invokes f for each page of results.
136600// A non-nil error returned from f will halt the iteration.
136601// The provided context supersedes any context provided to the Context method.
136602func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
136603	c.ctx_ = ctx
136604	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136605	for {
136606		x, err := c.Do()
136607		if err != nil {
136608			return err
136609		}
136610		if err := f(x); err != nil {
136611			return err
136612		}
136613		if x.NextPageToken == "" {
136614			return nil
136615		}
136616		c.PageToken(x.NextPageToken)
136617	}
136618}
136619
136620// method id "compute.targetVpnGateways.delete":
136621
136622type TargetVpnGatewaysDeleteCall struct {
136623	s                *Service
136624	project          string
136625	region           string
136626	targetVpnGateway string
136627	urlParams_       gensupport.URLParams
136628	ctx_             context.Context
136629	header_          http.Header
136630}
136631
136632// Delete: Deletes the specified target VPN gateway.
136633func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
136634	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136635	c.project = project
136636	c.region = region
136637	c.targetVpnGateway = targetVpnGateway
136638	return c
136639}
136640
136641// RequestId sets the optional parameter "requestId": An optional
136642// request ID to identify requests. Specify a unique request ID so that
136643// if you must retry your request, the server will know to ignore the
136644// request if it has already been completed.
136645//
136646// For example, consider a situation where you make an initial request
136647// and the request times out. If you make the request again with the
136648// same request ID, the server can check if original operation with the
136649// same request ID was received, and if so, will ignore the second
136650// request. This prevents clients from accidentally creating duplicate
136651// commitments.
136652//
136653// The request ID must be a valid UUID with the exception that zero UUID
136654// is not supported (00000000-0000-0000-0000-000000000000).
136655func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
136656	c.urlParams_.Set("requestId", requestId)
136657	return c
136658}
136659
136660// Fields allows partial responses to be retrieved. See
136661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136662// for more information.
136663func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
136664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136665	return c
136666}
136667
136668// Context sets the context to be used in this call's Do method. Any
136669// pending HTTP request will be aborted if the provided context is
136670// canceled.
136671func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
136672	c.ctx_ = ctx
136673	return c
136674}
136675
136676// Header returns an http.Header that can be modified by the caller to
136677// add HTTP headers to the request.
136678func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
136679	if c.header_ == nil {
136680		c.header_ = make(http.Header)
136681	}
136682	return c.header_
136683}
136684
136685func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
136686	reqHeaders := make(http.Header)
136687	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136688	for k, v := range c.header_ {
136689		reqHeaders[k] = v
136690	}
136691	reqHeaders.Set("User-Agent", c.s.userAgent())
136692	var body io.Reader = nil
136693	c.urlParams_.Set("alt", alt)
136694	c.urlParams_.Set("prettyPrint", "false")
136695	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
136696	urls += "?" + c.urlParams_.Encode()
136697	req, err := http.NewRequest("DELETE", urls, body)
136698	if err != nil {
136699		return nil, err
136700	}
136701	req.Header = reqHeaders
136702	googleapi.Expand(req.URL, map[string]string{
136703		"project":          c.project,
136704		"region":           c.region,
136705		"targetVpnGateway": c.targetVpnGateway,
136706	})
136707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136708}
136709
136710// Do executes the "compute.targetVpnGateways.delete" call.
136711// Exactly one of *Operation or error will be non-nil. Any non-2xx
136712// status code is an error. Response headers are in either
136713// *Operation.ServerResponse.Header or (if a response was returned at
136714// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136715// to check whether the returned error was because
136716// http.StatusNotModified was returned.
136717func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136718	gensupport.SetOptions(c.urlParams_, opts...)
136719	res, err := c.doRequest("json")
136720	if res != nil && res.StatusCode == http.StatusNotModified {
136721		if res.Body != nil {
136722			res.Body.Close()
136723		}
136724		return nil, &googleapi.Error{
136725			Code:   res.StatusCode,
136726			Header: res.Header,
136727		}
136728	}
136729	if err != nil {
136730		return nil, err
136731	}
136732	defer googleapi.CloseBody(res)
136733	if err := googleapi.CheckResponse(res); err != nil {
136734		return nil, err
136735	}
136736	ret := &Operation{
136737		ServerResponse: googleapi.ServerResponse{
136738			Header:         res.Header,
136739			HTTPStatusCode: res.StatusCode,
136740		},
136741	}
136742	target := &ret
136743	if err := gensupport.DecodeResponse(target, res); err != nil {
136744		return nil, err
136745	}
136746	return ret, nil
136747	// {
136748	//   "description": "Deletes the specified target VPN gateway.",
136749	//   "httpMethod": "DELETE",
136750	//   "id": "compute.targetVpnGateways.delete",
136751	//   "parameterOrder": [
136752	//     "project",
136753	//     "region",
136754	//     "targetVpnGateway"
136755	//   ],
136756	//   "parameters": {
136757	//     "project": {
136758	//       "description": "Project ID for this request.",
136759	//       "location": "path",
136760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136761	//       "required": true,
136762	//       "type": "string"
136763	//     },
136764	//     "region": {
136765	//       "description": "Name of the region for this request.",
136766	//       "location": "path",
136767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136768	//       "required": true,
136769	//       "type": "string"
136770	//     },
136771	//     "requestId": {
136772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136773	//       "location": "query",
136774	//       "type": "string"
136775	//     },
136776	//     "targetVpnGateway": {
136777	//       "description": "Name of the target VPN gateway to delete.",
136778	//       "location": "path",
136779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136780	//       "required": true,
136781	//       "type": "string"
136782	//     }
136783	//   },
136784	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
136785	//   "response": {
136786	//     "$ref": "Operation"
136787	//   },
136788	//   "scopes": [
136789	//     "https://www.googleapis.com/auth/cloud-platform",
136790	//     "https://www.googleapis.com/auth/compute"
136791	//   ]
136792	// }
136793
136794}
136795
136796// method id "compute.targetVpnGateways.get":
136797
136798type TargetVpnGatewaysGetCall struct {
136799	s                *Service
136800	project          string
136801	region           string
136802	targetVpnGateway string
136803	urlParams_       gensupport.URLParams
136804	ifNoneMatch_     string
136805	ctx_             context.Context
136806	header_          http.Header
136807}
136808
136809// Get: Returns the specified target VPN gateway. Gets a list of
136810// available target VPN gateways by making a list() request.
136811func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
136812	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136813	c.project = project
136814	c.region = region
136815	c.targetVpnGateway = targetVpnGateway
136816	return c
136817}
136818
136819// Fields allows partial responses to be retrieved. See
136820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136821// for more information.
136822func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
136823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136824	return c
136825}
136826
136827// IfNoneMatch sets the optional parameter which makes the operation
136828// fail if the object's ETag matches the given value. This is useful for
136829// getting updates only after the object has changed since the last
136830// request. Use googleapi.IsNotModified to check whether the response
136831// error from Do is the result of In-None-Match.
136832func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
136833	c.ifNoneMatch_ = entityTag
136834	return c
136835}
136836
136837// Context sets the context to be used in this call's Do method. Any
136838// pending HTTP request will be aborted if the provided context is
136839// canceled.
136840func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
136841	c.ctx_ = ctx
136842	return c
136843}
136844
136845// Header returns an http.Header that can be modified by the caller to
136846// add HTTP headers to the request.
136847func (c *TargetVpnGatewaysGetCall) Header() http.Header {
136848	if c.header_ == nil {
136849		c.header_ = make(http.Header)
136850	}
136851	return c.header_
136852}
136853
136854func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
136855	reqHeaders := make(http.Header)
136856	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136857	for k, v := range c.header_ {
136858		reqHeaders[k] = v
136859	}
136860	reqHeaders.Set("User-Agent", c.s.userAgent())
136861	if c.ifNoneMatch_ != "" {
136862		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136863	}
136864	var body io.Reader = nil
136865	c.urlParams_.Set("alt", alt)
136866	c.urlParams_.Set("prettyPrint", "false")
136867	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
136868	urls += "?" + c.urlParams_.Encode()
136869	req, err := http.NewRequest("GET", urls, body)
136870	if err != nil {
136871		return nil, err
136872	}
136873	req.Header = reqHeaders
136874	googleapi.Expand(req.URL, map[string]string{
136875		"project":          c.project,
136876		"region":           c.region,
136877		"targetVpnGateway": c.targetVpnGateway,
136878	})
136879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136880}
136881
136882// Do executes the "compute.targetVpnGateways.get" call.
136883// Exactly one of *TargetVpnGateway or error will be non-nil. Any
136884// non-2xx status code is an error. Response headers are in either
136885// *TargetVpnGateway.ServerResponse.Header or (if a response was
136886// returned at all) in error.(*googleapi.Error).Header. Use
136887// googleapi.IsNotModified to check whether the returned error was
136888// because http.StatusNotModified was returned.
136889func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
136890	gensupport.SetOptions(c.urlParams_, opts...)
136891	res, err := c.doRequest("json")
136892	if res != nil && res.StatusCode == http.StatusNotModified {
136893		if res.Body != nil {
136894			res.Body.Close()
136895		}
136896		return nil, &googleapi.Error{
136897			Code:   res.StatusCode,
136898			Header: res.Header,
136899		}
136900	}
136901	if err != nil {
136902		return nil, err
136903	}
136904	defer googleapi.CloseBody(res)
136905	if err := googleapi.CheckResponse(res); err != nil {
136906		return nil, err
136907	}
136908	ret := &TargetVpnGateway{
136909		ServerResponse: googleapi.ServerResponse{
136910			Header:         res.Header,
136911			HTTPStatusCode: res.StatusCode,
136912		},
136913	}
136914	target := &ret
136915	if err := gensupport.DecodeResponse(target, res); err != nil {
136916		return nil, err
136917	}
136918	return ret, nil
136919	// {
136920	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
136921	//   "httpMethod": "GET",
136922	//   "id": "compute.targetVpnGateways.get",
136923	//   "parameterOrder": [
136924	//     "project",
136925	//     "region",
136926	//     "targetVpnGateway"
136927	//   ],
136928	//   "parameters": {
136929	//     "project": {
136930	//       "description": "Project ID for this request.",
136931	//       "location": "path",
136932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136933	//       "required": true,
136934	//       "type": "string"
136935	//     },
136936	//     "region": {
136937	//       "description": "Name of the region for this request.",
136938	//       "location": "path",
136939	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136940	//       "required": true,
136941	//       "type": "string"
136942	//     },
136943	//     "targetVpnGateway": {
136944	//       "description": "Name of the target VPN gateway to return.",
136945	//       "location": "path",
136946	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136947	//       "required": true,
136948	//       "type": "string"
136949	//     }
136950	//   },
136951	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
136952	//   "response": {
136953	//     "$ref": "TargetVpnGateway"
136954	//   },
136955	//   "scopes": [
136956	//     "https://www.googleapis.com/auth/cloud-platform",
136957	//     "https://www.googleapis.com/auth/compute",
136958	//     "https://www.googleapis.com/auth/compute.readonly"
136959	//   ]
136960	// }
136961
136962}
136963
136964// method id "compute.targetVpnGateways.insert":
136965
136966type TargetVpnGatewaysInsertCall struct {
136967	s                *Service
136968	project          string
136969	region           string
136970	targetvpngateway *TargetVpnGateway
136971	urlParams_       gensupport.URLParams
136972	ctx_             context.Context
136973	header_          http.Header
136974}
136975
136976// Insert: Creates a target VPN gateway in the specified project and
136977// region using the data included in the request.
136978func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
136979	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136980	c.project = project
136981	c.region = region
136982	c.targetvpngateway = targetvpngateway
136983	return c
136984}
136985
136986// RequestId sets the optional parameter "requestId": An optional
136987// request ID to identify requests. Specify a unique request ID so that
136988// if you must retry your request, the server will know to ignore the
136989// request if it has already been completed.
136990//
136991// For example, consider a situation where you make an initial request
136992// and the request times out. If you make the request again with the
136993// same request ID, the server can check if original operation with the
136994// same request ID was received, and if so, will ignore the second
136995// request. This prevents clients from accidentally creating duplicate
136996// commitments.
136997//
136998// The request ID must be a valid UUID with the exception that zero UUID
136999// is not supported (00000000-0000-0000-0000-000000000000).
137000func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
137001	c.urlParams_.Set("requestId", requestId)
137002	return c
137003}
137004
137005// Fields allows partial responses to be retrieved. See
137006// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137007// for more information.
137008func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
137009	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137010	return c
137011}
137012
137013// Context sets the context to be used in this call's Do method. Any
137014// pending HTTP request will be aborted if the provided context is
137015// canceled.
137016func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
137017	c.ctx_ = ctx
137018	return c
137019}
137020
137021// Header returns an http.Header that can be modified by the caller to
137022// add HTTP headers to the request.
137023func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
137024	if c.header_ == nil {
137025		c.header_ = make(http.Header)
137026	}
137027	return c.header_
137028}
137029
137030func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
137031	reqHeaders := make(http.Header)
137032	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137033	for k, v := range c.header_ {
137034		reqHeaders[k] = v
137035	}
137036	reqHeaders.Set("User-Agent", c.s.userAgent())
137037	var body io.Reader = nil
137038	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
137039	if err != nil {
137040		return nil, err
137041	}
137042	reqHeaders.Set("Content-Type", "application/json")
137043	c.urlParams_.Set("alt", alt)
137044	c.urlParams_.Set("prettyPrint", "false")
137045	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
137046	urls += "?" + c.urlParams_.Encode()
137047	req, err := http.NewRequest("POST", urls, body)
137048	if err != nil {
137049		return nil, err
137050	}
137051	req.Header = reqHeaders
137052	googleapi.Expand(req.URL, map[string]string{
137053		"project": c.project,
137054		"region":  c.region,
137055	})
137056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137057}
137058
137059// Do executes the "compute.targetVpnGateways.insert" call.
137060// Exactly one of *Operation or error will be non-nil. Any non-2xx
137061// status code is an error. Response headers are in either
137062// *Operation.ServerResponse.Header or (if a response was returned at
137063// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137064// to check whether the returned error was because
137065// http.StatusNotModified was returned.
137066func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137067	gensupport.SetOptions(c.urlParams_, opts...)
137068	res, err := c.doRequest("json")
137069	if res != nil && res.StatusCode == http.StatusNotModified {
137070		if res.Body != nil {
137071			res.Body.Close()
137072		}
137073		return nil, &googleapi.Error{
137074			Code:   res.StatusCode,
137075			Header: res.Header,
137076		}
137077	}
137078	if err != nil {
137079		return nil, err
137080	}
137081	defer googleapi.CloseBody(res)
137082	if err := googleapi.CheckResponse(res); err != nil {
137083		return nil, err
137084	}
137085	ret := &Operation{
137086		ServerResponse: googleapi.ServerResponse{
137087			Header:         res.Header,
137088			HTTPStatusCode: res.StatusCode,
137089		},
137090	}
137091	target := &ret
137092	if err := gensupport.DecodeResponse(target, res); err != nil {
137093		return nil, err
137094	}
137095	return ret, nil
137096	// {
137097	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
137098	//   "httpMethod": "POST",
137099	//   "id": "compute.targetVpnGateways.insert",
137100	//   "parameterOrder": [
137101	//     "project",
137102	//     "region"
137103	//   ],
137104	//   "parameters": {
137105	//     "project": {
137106	//       "description": "Project ID for this request.",
137107	//       "location": "path",
137108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137109	//       "required": true,
137110	//       "type": "string"
137111	//     },
137112	//     "region": {
137113	//       "description": "Name of the region for this request.",
137114	//       "location": "path",
137115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137116	//       "required": true,
137117	//       "type": "string"
137118	//     },
137119	//     "requestId": {
137120	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137121	//       "location": "query",
137122	//       "type": "string"
137123	//     }
137124	//   },
137125	//   "path": "{project}/regions/{region}/targetVpnGateways",
137126	//   "request": {
137127	//     "$ref": "TargetVpnGateway"
137128	//   },
137129	//   "response": {
137130	//     "$ref": "Operation"
137131	//   },
137132	//   "scopes": [
137133	//     "https://www.googleapis.com/auth/cloud-platform",
137134	//     "https://www.googleapis.com/auth/compute"
137135	//   ]
137136	// }
137137
137138}
137139
137140// method id "compute.targetVpnGateways.list":
137141
137142type TargetVpnGatewaysListCall struct {
137143	s            *Service
137144	project      string
137145	region       string
137146	urlParams_   gensupport.URLParams
137147	ifNoneMatch_ string
137148	ctx_         context.Context
137149	header_      http.Header
137150}
137151
137152// List: Retrieves a list of target VPN gateways available to the
137153// specified project and region.
137154func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
137155	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137156	c.project = project
137157	c.region = region
137158	return c
137159}
137160
137161// Filter sets the optional parameter "filter": A filter expression that
137162// filters resources listed in the response. The expression must specify
137163// the field name, a comparison operator, and the value that you want to
137164// use for filtering. The value must be a string, a number, or a
137165// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137166// `<`.
137167//
137168// For example, if you are filtering Compute Engine instances, you can
137169// exclude instances named `example-instance` by specifying `name !=
137170// example-instance`.
137171//
137172// You can also filter nested fields. For example, you could specify
137173// `scheduling.automaticRestart = false` to include instances only if
137174// they are not scheduled for automatic restarts. You can use filtering
137175// on nested fields to filter based on resource labels.
137176//
137177// To filter on multiple expressions, provide each separate expression
137178// within parentheses. For example: ``` (scheduling.automaticRestart =
137179// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137180// is an `AND` expression. However, you can include `AND` and `OR`
137181// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137182// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137183// (scheduling.automaticRestart = true) ```
137184func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
137185	c.urlParams_.Set("filter", filter)
137186	return c
137187}
137188
137189// MaxResults sets the optional parameter "maxResults": The maximum
137190// number of results per page that should be returned. If the number of
137191// available results is larger than `maxResults`, Compute Engine returns
137192// a `nextPageToken` that can be used to get the next page of results in
137193// subsequent list requests. Acceptable values are `0` to `500`,
137194// inclusive. (Default: `500`)
137195func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
137196	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137197	return c
137198}
137199
137200// OrderBy sets the optional parameter "orderBy": Sorts list results by
137201// a certain order. By default, results are returned in alphanumerical
137202// order based on the resource name.
137203//
137204// You can also sort results in descending order based on the creation
137205// timestamp using `orderBy="creationTimestamp desc". This sorts
137206// results based on the `creationTimestamp` field in reverse
137207// chronological order (newest result first). Use this to sort resources
137208// like operations so that the newest operation is returned
137209// first.
137210//
137211// Currently, only sorting by `name` or `creationTimestamp desc` is
137212// supported.
137213func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
137214	c.urlParams_.Set("orderBy", orderBy)
137215	return c
137216}
137217
137218// PageToken sets the optional parameter "pageToken": Specifies a page
137219// token to use. Set `pageToken` to the `nextPageToken` returned by a
137220// previous list request to get the next page of results.
137221func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
137222	c.urlParams_.Set("pageToken", pageToken)
137223	return c
137224}
137225
137226// Fields allows partial responses to be retrieved. See
137227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137228// for more information.
137229func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
137230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137231	return c
137232}
137233
137234// IfNoneMatch sets the optional parameter which makes the operation
137235// fail if the object's ETag matches the given value. This is useful for
137236// getting updates only after the object has changed since the last
137237// request. Use googleapi.IsNotModified to check whether the response
137238// error from Do is the result of In-None-Match.
137239func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
137240	c.ifNoneMatch_ = entityTag
137241	return c
137242}
137243
137244// Context sets the context to be used in this call's Do method. Any
137245// pending HTTP request will be aborted if the provided context is
137246// canceled.
137247func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
137248	c.ctx_ = ctx
137249	return c
137250}
137251
137252// Header returns an http.Header that can be modified by the caller to
137253// add HTTP headers to the request.
137254func (c *TargetVpnGatewaysListCall) Header() http.Header {
137255	if c.header_ == nil {
137256		c.header_ = make(http.Header)
137257	}
137258	return c.header_
137259}
137260
137261func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
137262	reqHeaders := make(http.Header)
137263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137264	for k, v := range c.header_ {
137265		reqHeaders[k] = v
137266	}
137267	reqHeaders.Set("User-Agent", c.s.userAgent())
137268	if c.ifNoneMatch_ != "" {
137269		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137270	}
137271	var body io.Reader = nil
137272	c.urlParams_.Set("alt", alt)
137273	c.urlParams_.Set("prettyPrint", "false")
137274	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
137275	urls += "?" + c.urlParams_.Encode()
137276	req, err := http.NewRequest("GET", urls, body)
137277	if err != nil {
137278		return nil, err
137279	}
137280	req.Header = reqHeaders
137281	googleapi.Expand(req.URL, map[string]string{
137282		"project": c.project,
137283		"region":  c.region,
137284	})
137285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137286}
137287
137288// Do executes the "compute.targetVpnGateways.list" call.
137289// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
137290// non-2xx status code is an error. Response headers are in either
137291// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
137292// returned at all) in error.(*googleapi.Error).Header. Use
137293// googleapi.IsNotModified to check whether the returned error was
137294// because http.StatusNotModified was returned.
137295func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
137296	gensupport.SetOptions(c.urlParams_, opts...)
137297	res, err := c.doRequest("json")
137298	if res != nil && res.StatusCode == http.StatusNotModified {
137299		if res.Body != nil {
137300			res.Body.Close()
137301		}
137302		return nil, &googleapi.Error{
137303			Code:   res.StatusCode,
137304			Header: res.Header,
137305		}
137306	}
137307	if err != nil {
137308		return nil, err
137309	}
137310	defer googleapi.CloseBody(res)
137311	if err := googleapi.CheckResponse(res); err != nil {
137312		return nil, err
137313	}
137314	ret := &TargetVpnGatewayList{
137315		ServerResponse: googleapi.ServerResponse{
137316			Header:         res.Header,
137317			HTTPStatusCode: res.StatusCode,
137318		},
137319	}
137320	target := &ret
137321	if err := gensupport.DecodeResponse(target, res); err != nil {
137322		return nil, err
137323	}
137324	return ret, nil
137325	// {
137326	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
137327	//   "httpMethod": "GET",
137328	//   "id": "compute.targetVpnGateways.list",
137329	//   "parameterOrder": [
137330	//     "project",
137331	//     "region"
137332	//   ],
137333	//   "parameters": {
137334	//     "filter": {
137335	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137336	//       "location": "query",
137337	//       "type": "string"
137338	//     },
137339	//     "maxResults": {
137340	//       "default": "500",
137341	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137342	//       "format": "uint32",
137343	//       "location": "query",
137344	//       "minimum": "0",
137345	//       "type": "integer"
137346	//     },
137347	//     "orderBy": {
137348	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
137349	//       "location": "query",
137350	//       "type": "string"
137351	//     },
137352	//     "pageToken": {
137353	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137354	//       "location": "query",
137355	//       "type": "string"
137356	//     },
137357	//     "project": {
137358	//       "description": "Project ID for this request.",
137359	//       "location": "path",
137360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137361	//       "required": true,
137362	//       "type": "string"
137363	//     },
137364	//     "region": {
137365	//       "description": "Name of the region for this request.",
137366	//       "location": "path",
137367	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137368	//       "required": true,
137369	//       "type": "string"
137370	//     }
137371	//   },
137372	//   "path": "{project}/regions/{region}/targetVpnGateways",
137373	//   "response": {
137374	//     "$ref": "TargetVpnGatewayList"
137375	//   },
137376	//   "scopes": [
137377	//     "https://www.googleapis.com/auth/cloud-platform",
137378	//     "https://www.googleapis.com/auth/compute",
137379	//     "https://www.googleapis.com/auth/compute.readonly"
137380	//   ]
137381	// }
137382
137383}
137384
137385// Pages invokes f for each page of results.
137386// A non-nil error returned from f will halt the iteration.
137387// The provided context supersedes any context provided to the Context method.
137388func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
137389	c.ctx_ = ctx
137390	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137391	for {
137392		x, err := c.Do()
137393		if err != nil {
137394			return err
137395		}
137396		if err := f(x); err != nil {
137397			return err
137398		}
137399		if x.NextPageToken == "" {
137400			return nil
137401		}
137402		c.PageToken(x.NextPageToken)
137403	}
137404}
137405
137406// method id "compute.urlMaps.aggregatedList":
137407
137408type UrlMapsAggregatedListCall struct {
137409	s            *Service
137410	project      string
137411	urlParams_   gensupport.URLParams
137412	ifNoneMatch_ string
137413	ctx_         context.Context
137414	header_      http.Header
137415}
137416
137417// AggregatedList: Retrieves the list of all UrlMap resources, regional
137418// and global, available to the specified project.
137419func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
137420	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137421	c.project = project
137422	return c
137423}
137424
137425// Filter sets the optional parameter "filter": A filter expression that
137426// filters resources listed in the response. The expression must specify
137427// the field name, a comparison operator, and the value that you want to
137428// use for filtering. The value must be a string, a number, or a
137429// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137430// `<`.
137431//
137432// For example, if you are filtering Compute Engine instances, you can
137433// exclude instances named `example-instance` by specifying `name !=
137434// example-instance`.
137435//
137436// You can also filter nested fields. For example, you could specify
137437// `scheduling.automaticRestart = false` to include instances only if
137438// they are not scheduled for automatic restarts. You can use filtering
137439// on nested fields to filter based on resource labels.
137440//
137441// To filter on multiple expressions, provide each separate expression
137442// within parentheses. For example: ``` (scheduling.automaticRestart =
137443// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137444// is an `AND` expression. However, you can include `AND` and `OR`
137445// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137446// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137447// (scheduling.automaticRestart = true) ```
137448func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
137449	c.urlParams_.Set("filter", filter)
137450	return c
137451}
137452
137453// IncludeAllScopes sets the optional parameter "includeAllScopes":
137454// Indicates whether every visible scope for each scope type (zone,
137455// region, global) should be included in the response. For new resource
137456// types added after this field, the flag has no effect as new resource
137457// types will always include every visible scope for each scope type in
137458// response. For resource types which predate this field, if this flag
137459// is omitted or false, only scopes of the scope types where the
137460// resource type is expected to be found will be included.
137461func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
137462	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
137463	return c
137464}
137465
137466// MaxResults sets the optional parameter "maxResults": The maximum
137467// number of results per page that should be returned. If the number of
137468// available results is larger than `maxResults`, Compute Engine returns
137469// a `nextPageToken` that can be used to get the next page of results in
137470// subsequent list requests. Acceptable values are `0` to `500`,
137471// inclusive. (Default: `500`)
137472func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
137473	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137474	return c
137475}
137476
137477// OrderBy sets the optional parameter "orderBy": Sorts list results by
137478// a certain order. By default, results are returned in alphanumerical
137479// order based on the resource name.
137480//
137481// You can also sort results in descending order based on the creation
137482// timestamp using `orderBy="creationTimestamp desc". This sorts
137483// results based on the `creationTimestamp` field in reverse
137484// chronological order (newest result first). Use this to sort resources
137485// like operations so that the newest operation is returned
137486// first.
137487//
137488// Currently, only sorting by `name` or `creationTimestamp desc` is
137489// supported.
137490func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
137491	c.urlParams_.Set("orderBy", orderBy)
137492	return c
137493}
137494
137495// PageToken sets the optional parameter "pageToken": Specifies a page
137496// token to use. Set `pageToken` to the `nextPageToken` returned by a
137497// previous list request to get the next page of results.
137498func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
137499	c.urlParams_.Set("pageToken", pageToken)
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 *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
137507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137508	return c
137509}
137510
137511// IfNoneMatch sets the optional parameter which makes the operation
137512// fail if the object's ETag matches the given value. This is useful for
137513// getting updates only after the object has changed since the last
137514// request. Use googleapi.IsNotModified to check whether the response
137515// error from Do is the result of In-None-Match.
137516func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
137517	c.ifNoneMatch_ = entityTag
137518	return c
137519}
137520
137521// Context sets the context to be used in this call's Do method. Any
137522// pending HTTP request will be aborted if the provided context is
137523// canceled.
137524func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
137525	c.ctx_ = ctx
137526	return c
137527}
137528
137529// Header returns an http.Header that can be modified by the caller to
137530// add HTTP headers to the request.
137531func (c *UrlMapsAggregatedListCall) Header() http.Header {
137532	if c.header_ == nil {
137533		c.header_ = make(http.Header)
137534	}
137535	return c.header_
137536}
137537
137538func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
137539	reqHeaders := make(http.Header)
137540	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137541	for k, v := range c.header_ {
137542		reqHeaders[k] = v
137543	}
137544	reqHeaders.Set("User-Agent", c.s.userAgent())
137545	if c.ifNoneMatch_ != "" {
137546		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137547	}
137548	var body io.Reader = nil
137549	c.urlParams_.Set("alt", alt)
137550	c.urlParams_.Set("prettyPrint", "false")
137551	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/urlMaps")
137552	urls += "?" + c.urlParams_.Encode()
137553	req, err := http.NewRequest("GET", urls, body)
137554	if err != nil {
137555		return nil, err
137556	}
137557	req.Header = reqHeaders
137558	googleapi.Expand(req.URL, map[string]string{
137559		"project": c.project,
137560	})
137561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137562}
137563
137564// Do executes the "compute.urlMaps.aggregatedList" call.
137565// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
137566// non-2xx status code is an error. Response headers are in either
137567// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
137568// returned at all) in error.(*googleapi.Error).Header. Use
137569// googleapi.IsNotModified to check whether the returned error was
137570// because http.StatusNotModified was returned.
137571func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
137572	gensupport.SetOptions(c.urlParams_, opts...)
137573	res, err := c.doRequest("json")
137574	if res != nil && res.StatusCode == http.StatusNotModified {
137575		if res.Body != nil {
137576			res.Body.Close()
137577		}
137578		return nil, &googleapi.Error{
137579			Code:   res.StatusCode,
137580			Header: res.Header,
137581		}
137582	}
137583	if err != nil {
137584		return nil, err
137585	}
137586	defer googleapi.CloseBody(res)
137587	if err := googleapi.CheckResponse(res); err != nil {
137588		return nil, err
137589	}
137590	ret := &UrlMapsAggregatedList{
137591		ServerResponse: googleapi.ServerResponse{
137592			Header:         res.Header,
137593			HTTPStatusCode: res.StatusCode,
137594		},
137595	}
137596	target := &ret
137597	if err := gensupport.DecodeResponse(target, res); err != nil {
137598		return nil, err
137599	}
137600	return ret, nil
137601	// {
137602	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
137603	//   "httpMethod": "GET",
137604	//   "id": "compute.urlMaps.aggregatedList",
137605	//   "parameterOrder": [
137606	//     "project"
137607	//   ],
137608	//   "parameters": {
137609	//     "filter": {
137610	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137611	//       "location": "query",
137612	//       "type": "string"
137613	//     },
137614	//     "includeAllScopes": {
137615	//       "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.",
137616	//       "location": "query",
137617	//       "type": "boolean"
137618	//     },
137619	//     "maxResults": {
137620	//       "default": "500",
137621	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137622	//       "format": "uint32",
137623	//       "location": "query",
137624	//       "minimum": "0",
137625	//       "type": "integer"
137626	//     },
137627	//     "orderBy": {
137628	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
137629	//       "location": "query",
137630	//       "type": "string"
137631	//     },
137632	//     "pageToken": {
137633	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137634	//       "location": "query",
137635	//       "type": "string"
137636	//     },
137637	//     "project": {
137638	//       "description": "Name of the project scoping this request.",
137639	//       "location": "path",
137640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137641	//       "required": true,
137642	//       "type": "string"
137643	//     }
137644	//   },
137645	//   "path": "{project}/aggregated/urlMaps",
137646	//   "response": {
137647	//     "$ref": "UrlMapsAggregatedList"
137648	//   },
137649	//   "scopes": [
137650	//     "https://www.googleapis.com/auth/cloud-platform",
137651	//     "https://www.googleapis.com/auth/compute",
137652	//     "https://www.googleapis.com/auth/compute.readonly"
137653	//   ]
137654	// }
137655
137656}
137657
137658// Pages invokes f for each page of results.
137659// A non-nil error returned from f will halt the iteration.
137660// The provided context supersedes any context provided to the Context method.
137661func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
137662	c.ctx_ = ctx
137663	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137664	for {
137665		x, err := c.Do()
137666		if err != nil {
137667			return err
137668		}
137669		if err := f(x); err != nil {
137670			return err
137671		}
137672		if x.NextPageToken == "" {
137673			return nil
137674		}
137675		c.PageToken(x.NextPageToken)
137676	}
137677}
137678
137679// method id "compute.urlMaps.delete":
137680
137681type UrlMapsDeleteCall struct {
137682	s          *Service
137683	project    string
137684	urlMap     string
137685	urlParams_ gensupport.URLParams
137686	ctx_       context.Context
137687	header_    http.Header
137688}
137689
137690// Delete: Deletes the specified UrlMap resource.
137691// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
137692func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
137693	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137694	c.project = project
137695	c.urlMap = urlMap
137696	return c
137697}
137698
137699// RequestId sets the optional parameter "requestId": An optional
137700// request ID to identify requests. Specify a unique request ID so that
137701// if you must retry your request, the server will know to ignore the
137702// request if it has already been completed.
137703//
137704// For example, consider a situation where you make an initial request
137705// and the request times out. If you make the request again with the
137706// same request ID, the server can check if original operation with the
137707// same request ID was received, and if so, will ignore the second
137708// request. This prevents clients from accidentally creating duplicate
137709// commitments.
137710//
137711// The request ID must be a valid UUID with the exception that zero UUID
137712// is not supported (00000000-0000-0000-0000-000000000000).
137713func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
137714	c.urlParams_.Set("requestId", requestId)
137715	return c
137716}
137717
137718// Fields allows partial responses to be retrieved. See
137719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137720// for more information.
137721func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
137722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137723	return c
137724}
137725
137726// Context sets the context to be used in this call's Do method. Any
137727// pending HTTP request will be aborted if the provided context is
137728// canceled.
137729func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
137730	c.ctx_ = ctx
137731	return c
137732}
137733
137734// Header returns an http.Header that can be modified by the caller to
137735// add HTTP headers to the request.
137736func (c *UrlMapsDeleteCall) Header() http.Header {
137737	if c.header_ == nil {
137738		c.header_ = make(http.Header)
137739	}
137740	return c.header_
137741}
137742
137743func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
137744	reqHeaders := make(http.Header)
137745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137746	for k, v := range c.header_ {
137747		reqHeaders[k] = v
137748	}
137749	reqHeaders.Set("User-Agent", c.s.userAgent())
137750	var body io.Reader = nil
137751	c.urlParams_.Set("alt", alt)
137752	c.urlParams_.Set("prettyPrint", "false")
137753	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
137754	urls += "?" + c.urlParams_.Encode()
137755	req, err := http.NewRequest("DELETE", urls, body)
137756	if err != nil {
137757		return nil, err
137758	}
137759	req.Header = reqHeaders
137760	googleapi.Expand(req.URL, map[string]string{
137761		"project": c.project,
137762		"urlMap":  c.urlMap,
137763	})
137764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137765}
137766
137767// Do executes the "compute.urlMaps.delete" call.
137768// Exactly one of *Operation or error will be non-nil. Any non-2xx
137769// status code is an error. Response headers are in either
137770// *Operation.ServerResponse.Header or (if a response was returned at
137771// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137772// to check whether the returned error was because
137773// http.StatusNotModified was returned.
137774func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137775	gensupport.SetOptions(c.urlParams_, opts...)
137776	res, err := c.doRequest("json")
137777	if res != nil && res.StatusCode == http.StatusNotModified {
137778		if res.Body != nil {
137779			res.Body.Close()
137780		}
137781		return nil, &googleapi.Error{
137782			Code:   res.StatusCode,
137783			Header: res.Header,
137784		}
137785	}
137786	if err != nil {
137787		return nil, err
137788	}
137789	defer googleapi.CloseBody(res)
137790	if err := googleapi.CheckResponse(res); err != nil {
137791		return nil, err
137792	}
137793	ret := &Operation{
137794		ServerResponse: googleapi.ServerResponse{
137795			Header:         res.Header,
137796			HTTPStatusCode: res.StatusCode,
137797		},
137798	}
137799	target := &ret
137800	if err := gensupport.DecodeResponse(target, res); err != nil {
137801		return nil, err
137802	}
137803	return ret, nil
137804	// {
137805	//   "description": "Deletes the specified UrlMap resource.",
137806	//   "httpMethod": "DELETE",
137807	//   "id": "compute.urlMaps.delete",
137808	//   "parameterOrder": [
137809	//     "project",
137810	//     "urlMap"
137811	//   ],
137812	//   "parameters": {
137813	//     "project": {
137814	//       "description": "Project ID for this request.",
137815	//       "location": "path",
137816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137817	//       "required": true,
137818	//       "type": "string"
137819	//     },
137820	//     "requestId": {
137821	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137822	//       "location": "query",
137823	//       "type": "string"
137824	//     },
137825	//     "urlMap": {
137826	//       "description": "Name of the UrlMap resource to delete.",
137827	//       "location": "path",
137828	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137829	//       "required": true,
137830	//       "type": "string"
137831	//     }
137832	//   },
137833	//   "path": "{project}/global/urlMaps/{urlMap}",
137834	//   "response": {
137835	//     "$ref": "Operation"
137836	//   },
137837	//   "scopes": [
137838	//     "https://www.googleapis.com/auth/cloud-platform",
137839	//     "https://www.googleapis.com/auth/compute"
137840	//   ]
137841	// }
137842
137843}
137844
137845// method id "compute.urlMaps.get":
137846
137847type UrlMapsGetCall struct {
137848	s            *Service
137849	project      string
137850	urlMap       string
137851	urlParams_   gensupport.URLParams
137852	ifNoneMatch_ string
137853	ctx_         context.Context
137854	header_      http.Header
137855}
137856
137857// Get: Returns the specified UrlMap resource. Gets a list of available
137858// URL maps by making a list() request.
137859// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
137860func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
137861	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137862	c.project = project
137863	c.urlMap = urlMap
137864	return c
137865}
137866
137867// Fields allows partial responses to be retrieved. See
137868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137869// for more information.
137870func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
137871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137872	return c
137873}
137874
137875// IfNoneMatch sets the optional parameter which makes the operation
137876// fail if the object's ETag matches the given value. This is useful for
137877// getting updates only after the object has changed since the last
137878// request. Use googleapi.IsNotModified to check whether the response
137879// error from Do is the result of In-None-Match.
137880func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
137881	c.ifNoneMatch_ = entityTag
137882	return c
137883}
137884
137885// Context sets the context to be used in this call's Do method. Any
137886// pending HTTP request will be aborted if the provided context is
137887// canceled.
137888func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
137889	c.ctx_ = ctx
137890	return c
137891}
137892
137893// Header returns an http.Header that can be modified by the caller to
137894// add HTTP headers to the request.
137895func (c *UrlMapsGetCall) Header() http.Header {
137896	if c.header_ == nil {
137897		c.header_ = make(http.Header)
137898	}
137899	return c.header_
137900}
137901
137902func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
137903	reqHeaders := make(http.Header)
137904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137905	for k, v := range c.header_ {
137906		reqHeaders[k] = v
137907	}
137908	reqHeaders.Set("User-Agent", c.s.userAgent())
137909	if c.ifNoneMatch_ != "" {
137910		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137911	}
137912	var body io.Reader = nil
137913	c.urlParams_.Set("alt", alt)
137914	c.urlParams_.Set("prettyPrint", "false")
137915	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
137916	urls += "?" + c.urlParams_.Encode()
137917	req, err := http.NewRequest("GET", urls, body)
137918	if err != nil {
137919		return nil, err
137920	}
137921	req.Header = reqHeaders
137922	googleapi.Expand(req.URL, map[string]string{
137923		"project": c.project,
137924		"urlMap":  c.urlMap,
137925	})
137926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137927}
137928
137929// Do executes the "compute.urlMaps.get" call.
137930// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
137931// code is an error. Response headers are in either
137932// *UrlMap.ServerResponse.Header or (if a response was returned at all)
137933// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
137934// check whether the returned error was because http.StatusNotModified
137935// was returned.
137936func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
137937	gensupport.SetOptions(c.urlParams_, opts...)
137938	res, err := c.doRequest("json")
137939	if res != nil && res.StatusCode == http.StatusNotModified {
137940		if res.Body != nil {
137941			res.Body.Close()
137942		}
137943		return nil, &googleapi.Error{
137944			Code:   res.StatusCode,
137945			Header: res.Header,
137946		}
137947	}
137948	if err != nil {
137949		return nil, err
137950	}
137951	defer googleapi.CloseBody(res)
137952	if err := googleapi.CheckResponse(res); err != nil {
137953		return nil, err
137954	}
137955	ret := &UrlMap{
137956		ServerResponse: googleapi.ServerResponse{
137957			Header:         res.Header,
137958			HTTPStatusCode: res.StatusCode,
137959		},
137960	}
137961	target := &ret
137962	if err := gensupport.DecodeResponse(target, res); err != nil {
137963		return nil, err
137964	}
137965	return ret, nil
137966	// {
137967	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
137968	//   "httpMethod": "GET",
137969	//   "id": "compute.urlMaps.get",
137970	//   "parameterOrder": [
137971	//     "project",
137972	//     "urlMap"
137973	//   ],
137974	//   "parameters": {
137975	//     "project": {
137976	//       "description": "Project ID for this request.",
137977	//       "location": "path",
137978	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137979	//       "required": true,
137980	//       "type": "string"
137981	//     },
137982	//     "urlMap": {
137983	//       "description": "Name of the UrlMap resource to return.",
137984	//       "location": "path",
137985	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137986	//       "required": true,
137987	//       "type": "string"
137988	//     }
137989	//   },
137990	//   "path": "{project}/global/urlMaps/{urlMap}",
137991	//   "response": {
137992	//     "$ref": "UrlMap"
137993	//   },
137994	//   "scopes": [
137995	//     "https://www.googleapis.com/auth/cloud-platform",
137996	//     "https://www.googleapis.com/auth/compute",
137997	//     "https://www.googleapis.com/auth/compute.readonly"
137998	//   ]
137999	// }
138000
138001}
138002
138003// method id "compute.urlMaps.insert":
138004
138005type UrlMapsInsertCall struct {
138006	s          *Service
138007	project    string
138008	urlmap     *UrlMap
138009	urlParams_ gensupport.URLParams
138010	ctx_       context.Context
138011	header_    http.Header
138012}
138013
138014// Insert: Creates a UrlMap resource in the specified project using the
138015// data included in the request.
138016// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
138017func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
138018	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138019	c.project = project
138020	c.urlmap = urlmap
138021	return c
138022}
138023
138024// RequestId sets the optional parameter "requestId": An optional
138025// request ID to identify requests. Specify a unique request ID so that
138026// if you must retry your request, the server will know to ignore the
138027// request if it has already been completed.
138028//
138029// For example, consider a situation where you make an initial request
138030// and the request times out. If you make the request again with the
138031// same request ID, the server can check if original operation with the
138032// same request ID was received, and if so, will ignore the second
138033// request. This prevents clients from accidentally creating duplicate
138034// commitments.
138035//
138036// The request ID must be a valid UUID with the exception that zero UUID
138037// is not supported (00000000-0000-0000-0000-000000000000).
138038func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
138039	c.urlParams_.Set("requestId", requestId)
138040	return c
138041}
138042
138043// Fields allows partial responses to be retrieved. See
138044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138045// for more information.
138046func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
138047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138048	return c
138049}
138050
138051// Context sets the context to be used in this call's Do method. Any
138052// pending HTTP request will be aborted if the provided context is
138053// canceled.
138054func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
138055	c.ctx_ = ctx
138056	return c
138057}
138058
138059// Header returns an http.Header that can be modified by the caller to
138060// add HTTP headers to the request.
138061func (c *UrlMapsInsertCall) Header() http.Header {
138062	if c.header_ == nil {
138063		c.header_ = make(http.Header)
138064	}
138065	return c.header_
138066}
138067
138068func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
138069	reqHeaders := make(http.Header)
138070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138071	for k, v := range c.header_ {
138072		reqHeaders[k] = v
138073	}
138074	reqHeaders.Set("User-Agent", c.s.userAgent())
138075	var body io.Reader = nil
138076	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
138077	if err != nil {
138078		return nil, err
138079	}
138080	reqHeaders.Set("Content-Type", "application/json")
138081	c.urlParams_.Set("alt", alt)
138082	c.urlParams_.Set("prettyPrint", "false")
138083	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
138084	urls += "?" + c.urlParams_.Encode()
138085	req, err := http.NewRequest("POST", urls, body)
138086	if err != nil {
138087		return nil, err
138088	}
138089	req.Header = reqHeaders
138090	googleapi.Expand(req.URL, map[string]string{
138091		"project": c.project,
138092	})
138093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138094}
138095
138096// Do executes the "compute.urlMaps.insert" call.
138097// Exactly one of *Operation or error will be non-nil. Any non-2xx
138098// status code is an error. Response headers are in either
138099// *Operation.ServerResponse.Header or (if a response was returned at
138100// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138101// to check whether the returned error was because
138102// http.StatusNotModified was returned.
138103func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138104	gensupport.SetOptions(c.urlParams_, opts...)
138105	res, err := c.doRequest("json")
138106	if res != nil && res.StatusCode == http.StatusNotModified {
138107		if res.Body != nil {
138108			res.Body.Close()
138109		}
138110		return nil, &googleapi.Error{
138111			Code:   res.StatusCode,
138112			Header: res.Header,
138113		}
138114	}
138115	if err != nil {
138116		return nil, err
138117	}
138118	defer googleapi.CloseBody(res)
138119	if err := googleapi.CheckResponse(res); err != nil {
138120		return nil, err
138121	}
138122	ret := &Operation{
138123		ServerResponse: googleapi.ServerResponse{
138124			Header:         res.Header,
138125			HTTPStatusCode: res.StatusCode,
138126		},
138127	}
138128	target := &ret
138129	if err := gensupport.DecodeResponse(target, res); err != nil {
138130		return nil, err
138131	}
138132	return ret, nil
138133	// {
138134	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
138135	//   "httpMethod": "POST",
138136	//   "id": "compute.urlMaps.insert",
138137	//   "parameterOrder": [
138138	//     "project"
138139	//   ],
138140	//   "parameters": {
138141	//     "project": {
138142	//       "description": "Project ID for this request.",
138143	//       "location": "path",
138144	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138145	//       "required": true,
138146	//       "type": "string"
138147	//     },
138148	//     "requestId": {
138149	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138150	//       "location": "query",
138151	//       "type": "string"
138152	//     }
138153	//   },
138154	//   "path": "{project}/global/urlMaps",
138155	//   "request": {
138156	//     "$ref": "UrlMap"
138157	//   },
138158	//   "response": {
138159	//     "$ref": "Operation"
138160	//   },
138161	//   "scopes": [
138162	//     "https://www.googleapis.com/auth/cloud-platform",
138163	//     "https://www.googleapis.com/auth/compute"
138164	//   ]
138165	// }
138166
138167}
138168
138169// method id "compute.urlMaps.invalidateCache":
138170
138171type UrlMapsInvalidateCacheCall struct {
138172	s                     *Service
138173	project               string
138174	urlMap                string
138175	cacheinvalidationrule *CacheInvalidationRule
138176	urlParams_            gensupport.URLParams
138177	ctx_                  context.Context
138178	header_               http.Header
138179}
138180
138181// InvalidateCache: Initiates a cache invalidation operation,
138182// invalidating the specified path, scoped to the specified UrlMap.
138183func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
138184	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138185	c.project = project
138186	c.urlMap = urlMap
138187	c.cacheinvalidationrule = cacheinvalidationrule
138188	return c
138189}
138190
138191// RequestId sets the optional parameter "requestId": An optional
138192// request ID to identify requests. Specify a unique request ID so that
138193// if you must retry your request, the server will know to ignore the
138194// request if it has already been completed.
138195//
138196// For example, consider a situation where you make an initial request
138197// and the request times out. If you make the request again with the
138198// same request ID, the server can check if original operation with the
138199// same request ID was received, and if so, will ignore the second
138200// request. This prevents clients from accidentally creating duplicate
138201// commitments.
138202//
138203// The request ID must be a valid UUID with the exception that zero UUID
138204// is not supported (00000000-0000-0000-0000-000000000000).
138205func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
138206	c.urlParams_.Set("requestId", requestId)
138207	return c
138208}
138209
138210// Fields allows partial responses to be retrieved. See
138211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138212// for more information.
138213func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
138214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138215	return c
138216}
138217
138218// Context sets the context to be used in this call's Do method. Any
138219// pending HTTP request will be aborted if the provided context is
138220// canceled.
138221func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
138222	c.ctx_ = ctx
138223	return c
138224}
138225
138226// Header returns an http.Header that can be modified by the caller to
138227// add HTTP headers to the request.
138228func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
138229	if c.header_ == nil {
138230		c.header_ = make(http.Header)
138231	}
138232	return c.header_
138233}
138234
138235func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
138236	reqHeaders := make(http.Header)
138237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138238	for k, v := range c.header_ {
138239		reqHeaders[k] = v
138240	}
138241	reqHeaders.Set("User-Agent", c.s.userAgent())
138242	var body io.Reader = nil
138243	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
138244	if err != nil {
138245		return nil, err
138246	}
138247	reqHeaders.Set("Content-Type", "application/json")
138248	c.urlParams_.Set("alt", alt)
138249	c.urlParams_.Set("prettyPrint", "false")
138250	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
138251	urls += "?" + c.urlParams_.Encode()
138252	req, err := http.NewRequest("POST", urls, body)
138253	if err != nil {
138254		return nil, err
138255	}
138256	req.Header = reqHeaders
138257	googleapi.Expand(req.URL, map[string]string{
138258		"project": c.project,
138259		"urlMap":  c.urlMap,
138260	})
138261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138262}
138263
138264// Do executes the "compute.urlMaps.invalidateCache" call.
138265// Exactly one of *Operation or error will be non-nil. Any non-2xx
138266// status code is an error. Response headers are in either
138267// *Operation.ServerResponse.Header or (if a response was returned at
138268// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138269// to check whether the returned error was because
138270// http.StatusNotModified was returned.
138271func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138272	gensupport.SetOptions(c.urlParams_, opts...)
138273	res, err := c.doRequest("json")
138274	if res != nil && res.StatusCode == http.StatusNotModified {
138275		if res.Body != nil {
138276			res.Body.Close()
138277		}
138278		return nil, &googleapi.Error{
138279			Code:   res.StatusCode,
138280			Header: res.Header,
138281		}
138282	}
138283	if err != nil {
138284		return nil, err
138285	}
138286	defer googleapi.CloseBody(res)
138287	if err := googleapi.CheckResponse(res); err != nil {
138288		return nil, err
138289	}
138290	ret := &Operation{
138291		ServerResponse: googleapi.ServerResponse{
138292			Header:         res.Header,
138293			HTTPStatusCode: res.StatusCode,
138294		},
138295	}
138296	target := &ret
138297	if err := gensupport.DecodeResponse(target, res); err != nil {
138298		return nil, err
138299	}
138300	return ret, nil
138301	// {
138302	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
138303	//   "httpMethod": "POST",
138304	//   "id": "compute.urlMaps.invalidateCache",
138305	//   "parameterOrder": [
138306	//     "project",
138307	//     "urlMap"
138308	//   ],
138309	//   "parameters": {
138310	//     "project": {
138311	//       "description": "Project ID for this request.",
138312	//       "location": "path",
138313	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138314	//       "required": true,
138315	//       "type": "string"
138316	//     },
138317	//     "requestId": {
138318	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138319	//       "location": "query",
138320	//       "type": "string"
138321	//     },
138322	//     "urlMap": {
138323	//       "description": "Name of the UrlMap scoping this request.",
138324	//       "location": "path",
138325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138326	//       "required": true,
138327	//       "type": "string"
138328	//     }
138329	//   },
138330	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
138331	//   "request": {
138332	//     "$ref": "CacheInvalidationRule"
138333	//   },
138334	//   "response": {
138335	//     "$ref": "Operation"
138336	//   },
138337	//   "scopes": [
138338	//     "https://www.googleapis.com/auth/cloud-platform",
138339	//     "https://www.googleapis.com/auth/compute"
138340	//   ]
138341	// }
138342
138343}
138344
138345// method id "compute.urlMaps.list":
138346
138347type UrlMapsListCall struct {
138348	s            *Service
138349	project      string
138350	urlParams_   gensupport.URLParams
138351	ifNoneMatch_ string
138352	ctx_         context.Context
138353	header_      http.Header
138354}
138355
138356// List: Retrieves the list of UrlMap resources available to the
138357// specified project.
138358// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
138359func (r *UrlMapsService) List(project string) *UrlMapsListCall {
138360	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138361	c.project = project
138362	return c
138363}
138364
138365// Filter sets the optional parameter "filter": A filter expression that
138366// filters resources listed in the response. The expression must specify
138367// the field name, a comparison operator, and the value that you want to
138368// use for filtering. The value must be a string, a number, or a
138369// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138370// `<`.
138371//
138372// For example, if you are filtering Compute Engine instances, you can
138373// exclude instances named `example-instance` by specifying `name !=
138374// example-instance`.
138375//
138376// You can also filter nested fields. For example, you could specify
138377// `scheduling.automaticRestart = false` to include instances only if
138378// they are not scheduled for automatic restarts. You can use filtering
138379// on nested fields to filter based on resource labels.
138380//
138381// To filter on multiple expressions, provide each separate expression
138382// within parentheses. For example: ``` (scheduling.automaticRestart =
138383// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
138384// is an `AND` expression. However, you can include `AND` and `OR`
138385// expressions explicitly. For example: ``` (cpuPlatform = "Intel
138386// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
138387// (scheduling.automaticRestart = true) ```
138388func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
138389	c.urlParams_.Set("filter", filter)
138390	return c
138391}
138392
138393// MaxResults sets the optional parameter "maxResults": The maximum
138394// number of results per page that should be returned. If the number of
138395// available results is larger than `maxResults`, Compute Engine returns
138396// a `nextPageToken` that can be used to get the next page of results in
138397// subsequent list requests. Acceptable values are `0` to `500`,
138398// inclusive. (Default: `500`)
138399func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
138400	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138401	return c
138402}
138403
138404// OrderBy sets the optional parameter "orderBy": Sorts list results by
138405// a certain order. By default, results are returned in alphanumerical
138406// order based on the resource name.
138407//
138408// You can also sort results in descending order based on the creation
138409// timestamp using `orderBy="creationTimestamp desc". This sorts
138410// results based on the `creationTimestamp` field in reverse
138411// chronological order (newest result first). Use this to sort resources
138412// like operations so that the newest operation is returned
138413// first.
138414//
138415// Currently, only sorting by `name` or `creationTimestamp desc` is
138416// supported.
138417func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
138418	c.urlParams_.Set("orderBy", orderBy)
138419	return c
138420}
138421
138422// PageToken sets the optional parameter "pageToken": Specifies a page
138423// token to use. Set `pageToken` to the `nextPageToken` returned by a
138424// previous list request to get the next page of results.
138425func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
138426	c.urlParams_.Set("pageToken", pageToken)
138427	return c
138428}
138429
138430// Fields allows partial responses to be retrieved. See
138431// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138432// for more information.
138433func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
138434	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138435	return c
138436}
138437
138438// IfNoneMatch sets the optional parameter which makes the operation
138439// fail if the object's ETag matches the given value. This is useful for
138440// getting updates only after the object has changed since the last
138441// request. Use googleapi.IsNotModified to check whether the response
138442// error from Do is the result of In-None-Match.
138443func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
138444	c.ifNoneMatch_ = entityTag
138445	return c
138446}
138447
138448// Context sets the context to be used in this call's Do method. Any
138449// pending HTTP request will be aborted if the provided context is
138450// canceled.
138451func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
138452	c.ctx_ = ctx
138453	return c
138454}
138455
138456// Header returns an http.Header that can be modified by the caller to
138457// add HTTP headers to the request.
138458func (c *UrlMapsListCall) Header() http.Header {
138459	if c.header_ == nil {
138460		c.header_ = make(http.Header)
138461	}
138462	return c.header_
138463}
138464
138465func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
138466	reqHeaders := make(http.Header)
138467	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138468	for k, v := range c.header_ {
138469		reqHeaders[k] = v
138470	}
138471	reqHeaders.Set("User-Agent", c.s.userAgent())
138472	if c.ifNoneMatch_ != "" {
138473		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138474	}
138475	var body io.Reader = nil
138476	c.urlParams_.Set("alt", alt)
138477	c.urlParams_.Set("prettyPrint", "false")
138478	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
138479	urls += "?" + c.urlParams_.Encode()
138480	req, err := http.NewRequest("GET", urls, body)
138481	if err != nil {
138482		return nil, err
138483	}
138484	req.Header = reqHeaders
138485	googleapi.Expand(req.URL, map[string]string{
138486		"project": c.project,
138487	})
138488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138489}
138490
138491// Do executes the "compute.urlMaps.list" call.
138492// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
138493// status code is an error. Response headers are in either
138494// *UrlMapList.ServerResponse.Header or (if a response was returned at
138495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138496// to check whether the returned error was because
138497// http.StatusNotModified was returned.
138498func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
138499	gensupport.SetOptions(c.urlParams_, opts...)
138500	res, err := c.doRequest("json")
138501	if res != nil && res.StatusCode == http.StatusNotModified {
138502		if res.Body != nil {
138503			res.Body.Close()
138504		}
138505		return nil, &googleapi.Error{
138506			Code:   res.StatusCode,
138507			Header: res.Header,
138508		}
138509	}
138510	if err != nil {
138511		return nil, err
138512	}
138513	defer googleapi.CloseBody(res)
138514	if err := googleapi.CheckResponse(res); err != nil {
138515		return nil, err
138516	}
138517	ret := &UrlMapList{
138518		ServerResponse: googleapi.ServerResponse{
138519			Header:         res.Header,
138520			HTTPStatusCode: res.StatusCode,
138521		},
138522	}
138523	target := &ret
138524	if err := gensupport.DecodeResponse(target, res); err != nil {
138525		return nil, err
138526	}
138527	return ret, nil
138528	// {
138529	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
138530	//   "httpMethod": "GET",
138531	//   "id": "compute.urlMaps.list",
138532	//   "parameterOrder": [
138533	//     "project"
138534	//   ],
138535	//   "parameters": {
138536	//     "filter": {
138537	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
138538	//       "location": "query",
138539	//       "type": "string"
138540	//     },
138541	//     "maxResults": {
138542	//       "default": "500",
138543	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138544	//       "format": "uint32",
138545	//       "location": "query",
138546	//       "minimum": "0",
138547	//       "type": "integer"
138548	//     },
138549	//     "orderBy": {
138550	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
138551	//       "location": "query",
138552	//       "type": "string"
138553	//     },
138554	//     "pageToken": {
138555	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138556	//       "location": "query",
138557	//       "type": "string"
138558	//     },
138559	//     "project": {
138560	//       "description": "Project ID for this request.",
138561	//       "location": "path",
138562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138563	//       "required": true,
138564	//       "type": "string"
138565	//     }
138566	//   },
138567	//   "path": "{project}/global/urlMaps",
138568	//   "response": {
138569	//     "$ref": "UrlMapList"
138570	//   },
138571	//   "scopes": [
138572	//     "https://www.googleapis.com/auth/cloud-platform",
138573	//     "https://www.googleapis.com/auth/compute",
138574	//     "https://www.googleapis.com/auth/compute.readonly"
138575	//   ]
138576	// }
138577
138578}
138579
138580// Pages invokes f for each page of results.
138581// A non-nil error returned from f will halt the iteration.
138582// The provided context supersedes any context provided to the Context method.
138583func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
138584	c.ctx_ = ctx
138585	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138586	for {
138587		x, err := c.Do()
138588		if err != nil {
138589			return err
138590		}
138591		if err := f(x); err != nil {
138592			return err
138593		}
138594		if x.NextPageToken == "" {
138595			return nil
138596		}
138597		c.PageToken(x.NextPageToken)
138598	}
138599}
138600
138601// method id "compute.urlMaps.patch":
138602
138603type UrlMapsPatchCall struct {
138604	s          *Service
138605	project    string
138606	urlMap     string
138607	urlmap     *UrlMap
138608	urlParams_ gensupport.URLParams
138609	ctx_       context.Context
138610	header_    http.Header
138611}
138612
138613// Patch: Patches the specified UrlMap resource with the data included
138614// in the request. This method supports PATCH semantics and uses the
138615// JSON merge patch format and processing rules.
138616// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
138617func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
138618	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138619	c.project = project
138620	c.urlMap = urlMap
138621	c.urlmap = urlmap
138622	return c
138623}
138624
138625// RequestId sets the optional parameter "requestId": An optional
138626// request ID to identify requests. Specify a unique request ID so that
138627// if you must retry your request, the server will know to ignore the
138628// request if it has already been completed.
138629//
138630// For example, consider a situation where you make an initial request
138631// and the request times out. If you make the request again with the
138632// same request ID, the server can check if original operation with the
138633// same request ID was received, and if so, will ignore the second
138634// request. This prevents clients from accidentally creating duplicate
138635// commitments.
138636//
138637// The request ID must be a valid UUID with the exception that zero UUID
138638// is not supported (00000000-0000-0000-0000-000000000000).
138639func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
138640	c.urlParams_.Set("requestId", requestId)
138641	return c
138642}
138643
138644// Fields allows partial responses to be retrieved. See
138645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138646// for more information.
138647func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
138648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138649	return c
138650}
138651
138652// Context sets the context to be used in this call's Do method. Any
138653// pending HTTP request will be aborted if the provided context is
138654// canceled.
138655func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
138656	c.ctx_ = ctx
138657	return c
138658}
138659
138660// Header returns an http.Header that can be modified by the caller to
138661// add HTTP headers to the request.
138662func (c *UrlMapsPatchCall) Header() http.Header {
138663	if c.header_ == nil {
138664		c.header_ = make(http.Header)
138665	}
138666	return c.header_
138667}
138668
138669func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
138670	reqHeaders := make(http.Header)
138671	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138672	for k, v := range c.header_ {
138673		reqHeaders[k] = v
138674	}
138675	reqHeaders.Set("User-Agent", c.s.userAgent())
138676	var body io.Reader = nil
138677	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
138678	if err != nil {
138679		return nil, err
138680	}
138681	reqHeaders.Set("Content-Type", "application/json")
138682	c.urlParams_.Set("alt", alt)
138683	c.urlParams_.Set("prettyPrint", "false")
138684	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
138685	urls += "?" + c.urlParams_.Encode()
138686	req, err := http.NewRequest("PATCH", urls, body)
138687	if err != nil {
138688		return nil, err
138689	}
138690	req.Header = reqHeaders
138691	googleapi.Expand(req.URL, map[string]string{
138692		"project": c.project,
138693		"urlMap":  c.urlMap,
138694	})
138695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138696}
138697
138698// Do executes the "compute.urlMaps.patch" call.
138699// Exactly one of *Operation or error will be non-nil. Any non-2xx
138700// status code is an error. Response headers are in either
138701// *Operation.ServerResponse.Header or (if a response was returned at
138702// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138703// to check whether the returned error was because
138704// http.StatusNotModified was returned.
138705func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138706	gensupport.SetOptions(c.urlParams_, opts...)
138707	res, err := c.doRequest("json")
138708	if res != nil && res.StatusCode == http.StatusNotModified {
138709		if res.Body != nil {
138710			res.Body.Close()
138711		}
138712		return nil, &googleapi.Error{
138713			Code:   res.StatusCode,
138714			Header: res.Header,
138715		}
138716	}
138717	if err != nil {
138718		return nil, err
138719	}
138720	defer googleapi.CloseBody(res)
138721	if err := googleapi.CheckResponse(res); err != nil {
138722		return nil, err
138723	}
138724	ret := &Operation{
138725		ServerResponse: googleapi.ServerResponse{
138726			Header:         res.Header,
138727			HTTPStatusCode: res.StatusCode,
138728		},
138729	}
138730	target := &ret
138731	if err := gensupport.DecodeResponse(target, res); err != nil {
138732		return nil, err
138733	}
138734	return ret, nil
138735	// {
138736	//   "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.",
138737	//   "httpMethod": "PATCH",
138738	//   "id": "compute.urlMaps.patch",
138739	//   "parameterOrder": [
138740	//     "project",
138741	//     "urlMap"
138742	//   ],
138743	//   "parameters": {
138744	//     "project": {
138745	//       "description": "Project ID for this request.",
138746	//       "location": "path",
138747	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138748	//       "required": true,
138749	//       "type": "string"
138750	//     },
138751	//     "requestId": {
138752	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138753	//       "location": "query",
138754	//       "type": "string"
138755	//     },
138756	//     "urlMap": {
138757	//       "description": "Name of the UrlMap resource to patch.",
138758	//       "location": "path",
138759	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138760	//       "required": true,
138761	//       "type": "string"
138762	//     }
138763	//   },
138764	//   "path": "{project}/global/urlMaps/{urlMap}",
138765	//   "request": {
138766	//     "$ref": "UrlMap"
138767	//   },
138768	//   "response": {
138769	//     "$ref": "Operation"
138770	//   },
138771	//   "scopes": [
138772	//     "https://www.googleapis.com/auth/cloud-platform",
138773	//     "https://www.googleapis.com/auth/compute"
138774	//   ]
138775	// }
138776
138777}
138778
138779// method id "compute.urlMaps.update":
138780
138781type UrlMapsUpdateCall struct {
138782	s          *Service
138783	project    string
138784	urlMap     string
138785	urlmap     *UrlMap
138786	urlParams_ gensupport.URLParams
138787	ctx_       context.Context
138788	header_    http.Header
138789}
138790
138791// Update: Updates the specified UrlMap resource with the data included
138792// in the request.
138793// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
138794func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
138795	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138796	c.project = project
138797	c.urlMap = urlMap
138798	c.urlmap = urlmap
138799	return c
138800}
138801
138802// RequestId sets the optional parameter "requestId": An optional
138803// request ID to identify requests. Specify a unique request ID so that
138804// if you must retry your request, the server will know to ignore the
138805// request if it has already been completed.
138806//
138807// For example, consider a situation where you make an initial request
138808// and the request times out. If you make the request again with the
138809// same request ID, the server can check if original operation with the
138810// same request ID was received, and if so, will ignore the second
138811// request. This prevents clients from accidentally creating duplicate
138812// commitments.
138813//
138814// The request ID must be a valid UUID with the exception that zero UUID
138815// is not supported (00000000-0000-0000-0000-000000000000).
138816func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
138817	c.urlParams_.Set("requestId", requestId)
138818	return c
138819}
138820
138821// Fields allows partial responses to be retrieved. See
138822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138823// for more information.
138824func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
138825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138826	return c
138827}
138828
138829// Context sets the context to be used in this call's Do method. Any
138830// pending HTTP request will be aborted if the provided context is
138831// canceled.
138832func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
138833	c.ctx_ = ctx
138834	return c
138835}
138836
138837// Header returns an http.Header that can be modified by the caller to
138838// add HTTP headers to the request.
138839func (c *UrlMapsUpdateCall) Header() http.Header {
138840	if c.header_ == nil {
138841		c.header_ = make(http.Header)
138842	}
138843	return c.header_
138844}
138845
138846func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
138847	reqHeaders := make(http.Header)
138848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138849	for k, v := range c.header_ {
138850		reqHeaders[k] = v
138851	}
138852	reqHeaders.Set("User-Agent", c.s.userAgent())
138853	var body io.Reader = nil
138854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
138855	if err != nil {
138856		return nil, err
138857	}
138858	reqHeaders.Set("Content-Type", "application/json")
138859	c.urlParams_.Set("alt", alt)
138860	c.urlParams_.Set("prettyPrint", "false")
138861	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
138862	urls += "?" + c.urlParams_.Encode()
138863	req, err := http.NewRequest("PUT", urls, body)
138864	if err != nil {
138865		return nil, err
138866	}
138867	req.Header = reqHeaders
138868	googleapi.Expand(req.URL, map[string]string{
138869		"project": c.project,
138870		"urlMap":  c.urlMap,
138871	})
138872	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138873}
138874
138875// Do executes the "compute.urlMaps.update" call.
138876// Exactly one of *Operation or error will be non-nil. Any non-2xx
138877// status code is an error. Response headers are in either
138878// *Operation.ServerResponse.Header or (if a response was returned at
138879// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138880// to check whether the returned error was because
138881// http.StatusNotModified was returned.
138882func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138883	gensupport.SetOptions(c.urlParams_, opts...)
138884	res, err := c.doRequest("json")
138885	if res != nil && res.StatusCode == http.StatusNotModified {
138886		if res.Body != nil {
138887			res.Body.Close()
138888		}
138889		return nil, &googleapi.Error{
138890			Code:   res.StatusCode,
138891			Header: res.Header,
138892		}
138893	}
138894	if err != nil {
138895		return nil, err
138896	}
138897	defer googleapi.CloseBody(res)
138898	if err := googleapi.CheckResponse(res); err != nil {
138899		return nil, err
138900	}
138901	ret := &Operation{
138902		ServerResponse: googleapi.ServerResponse{
138903			Header:         res.Header,
138904			HTTPStatusCode: res.StatusCode,
138905		},
138906	}
138907	target := &ret
138908	if err := gensupport.DecodeResponse(target, res); err != nil {
138909		return nil, err
138910	}
138911	return ret, nil
138912	// {
138913	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
138914	//   "httpMethod": "PUT",
138915	//   "id": "compute.urlMaps.update",
138916	//   "parameterOrder": [
138917	//     "project",
138918	//     "urlMap"
138919	//   ],
138920	//   "parameters": {
138921	//     "project": {
138922	//       "description": "Project ID for this request.",
138923	//       "location": "path",
138924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138925	//       "required": true,
138926	//       "type": "string"
138927	//     },
138928	//     "requestId": {
138929	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138930	//       "location": "query",
138931	//       "type": "string"
138932	//     },
138933	//     "urlMap": {
138934	//       "description": "Name of the UrlMap resource to update.",
138935	//       "location": "path",
138936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138937	//       "required": true,
138938	//       "type": "string"
138939	//     }
138940	//   },
138941	//   "path": "{project}/global/urlMaps/{urlMap}",
138942	//   "request": {
138943	//     "$ref": "UrlMap"
138944	//   },
138945	//   "response": {
138946	//     "$ref": "Operation"
138947	//   },
138948	//   "scopes": [
138949	//     "https://www.googleapis.com/auth/cloud-platform",
138950	//     "https://www.googleapis.com/auth/compute"
138951	//   ]
138952	// }
138953
138954}
138955
138956// method id "compute.urlMaps.validate":
138957
138958type UrlMapsValidateCall struct {
138959	s                      *Service
138960	project                string
138961	urlMap                 string
138962	urlmapsvalidaterequest *UrlMapsValidateRequest
138963	urlParams_             gensupport.URLParams
138964	ctx_                   context.Context
138965	header_                http.Header
138966}
138967
138968// Validate: Runs static validation for the UrlMap. In particular, the
138969// tests of the provided UrlMap will be run. Calling this method does
138970// NOT create the UrlMap.
138971// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
138972func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
138973	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138974	c.project = project
138975	c.urlMap = urlMap
138976	c.urlmapsvalidaterequest = urlmapsvalidaterequest
138977	return c
138978}
138979
138980// Fields allows partial responses to be retrieved. See
138981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138982// for more information.
138983func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
138984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138985	return c
138986}
138987
138988// Context sets the context to be used in this call's Do method. Any
138989// pending HTTP request will be aborted if the provided context is
138990// canceled.
138991func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
138992	c.ctx_ = ctx
138993	return c
138994}
138995
138996// Header returns an http.Header that can be modified by the caller to
138997// add HTTP headers to the request.
138998func (c *UrlMapsValidateCall) Header() http.Header {
138999	if c.header_ == nil {
139000		c.header_ = make(http.Header)
139001	}
139002	return c.header_
139003}
139004
139005func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
139006	reqHeaders := make(http.Header)
139007	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139008	for k, v := range c.header_ {
139009		reqHeaders[k] = v
139010	}
139011	reqHeaders.Set("User-Agent", c.s.userAgent())
139012	var body io.Reader = nil
139013	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
139014	if err != nil {
139015		return nil, err
139016	}
139017	reqHeaders.Set("Content-Type", "application/json")
139018	c.urlParams_.Set("alt", alt)
139019	c.urlParams_.Set("prettyPrint", "false")
139020	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
139021	urls += "?" + c.urlParams_.Encode()
139022	req, err := http.NewRequest("POST", urls, body)
139023	if err != nil {
139024		return nil, err
139025	}
139026	req.Header = reqHeaders
139027	googleapi.Expand(req.URL, map[string]string{
139028		"project": c.project,
139029		"urlMap":  c.urlMap,
139030	})
139031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139032}
139033
139034// Do executes the "compute.urlMaps.validate" call.
139035// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
139036// non-2xx status code is an error. Response headers are in either
139037// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
139038// returned at all) in error.(*googleapi.Error).Header. Use
139039// googleapi.IsNotModified to check whether the returned error was
139040// because http.StatusNotModified was returned.
139041func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
139042	gensupport.SetOptions(c.urlParams_, opts...)
139043	res, err := c.doRequest("json")
139044	if res != nil && res.StatusCode == http.StatusNotModified {
139045		if res.Body != nil {
139046			res.Body.Close()
139047		}
139048		return nil, &googleapi.Error{
139049			Code:   res.StatusCode,
139050			Header: res.Header,
139051		}
139052	}
139053	if err != nil {
139054		return nil, err
139055	}
139056	defer googleapi.CloseBody(res)
139057	if err := googleapi.CheckResponse(res); err != nil {
139058		return nil, err
139059	}
139060	ret := &UrlMapsValidateResponse{
139061		ServerResponse: googleapi.ServerResponse{
139062			Header:         res.Header,
139063			HTTPStatusCode: res.StatusCode,
139064		},
139065	}
139066	target := &ret
139067	if err := gensupport.DecodeResponse(target, res); err != nil {
139068		return nil, err
139069	}
139070	return ret, nil
139071	// {
139072	//   "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.",
139073	//   "httpMethod": "POST",
139074	//   "id": "compute.urlMaps.validate",
139075	//   "parameterOrder": [
139076	//     "project",
139077	//     "urlMap"
139078	//   ],
139079	//   "parameters": {
139080	//     "project": {
139081	//       "description": "Project ID for this request.",
139082	//       "location": "path",
139083	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139084	//       "required": true,
139085	//       "type": "string"
139086	//     },
139087	//     "urlMap": {
139088	//       "description": "Name of the UrlMap resource to be validated as.",
139089	//       "location": "path",
139090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139091	//       "required": true,
139092	//       "type": "string"
139093	//     }
139094	//   },
139095	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
139096	//   "request": {
139097	//     "$ref": "UrlMapsValidateRequest"
139098	//   },
139099	//   "response": {
139100	//     "$ref": "UrlMapsValidateResponse"
139101	//   },
139102	//   "scopes": [
139103	//     "https://www.googleapis.com/auth/cloud-platform",
139104	//     "https://www.googleapis.com/auth/compute"
139105	//   ]
139106	// }
139107
139108}
139109
139110// method id "compute.vpnGateways.aggregatedList":
139111
139112type VpnGatewaysAggregatedListCall struct {
139113	s            *Service
139114	project      string
139115	urlParams_   gensupport.URLParams
139116	ifNoneMatch_ string
139117	ctx_         context.Context
139118	header_      http.Header
139119}
139120
139121// AggregatedList: Retrieves an aggregated list of VPN gateways.
139122func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
139123	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139124	c.project = project
139125	return c
139126}
139127
139128// Filter sets the optional parameter "filter": A filter expression that
139129// filters resources listed in the response. The expression must specify
139130// the field name, a comparison operator, and the value that you want to
139131// use for filtering. The value must be a string, a number, or a
139132// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139133// `<`.
139134//
139135// For example, if you are filtering Compute Engine instances, you can
139136// exclude instances named `example-instance` by specifying `name !=
139137// example-instance`.
139138//
139139// You can also filter nested fields. For example, you could specify
139140// `scheduling.automaticRestart = false` to include instances only if
139141// they are not scheduled for automatic restarts. You can use filtering
139142// on nested fields to filter based on resource labels.
139143//
139144// To filter on multiple expressions, provide each separate expression
139145// within parentheses. For example: ``` (scheduling.automaticRestart =
139146// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
139147// is an `AND` expression. However, you can include `AND` and `OR`
139148// expressions explicitly. For example: ``` (cpuPlatform = "Intel
139149// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
139150// (scheduling.automaticRestart = true) ```
139151func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
139152	c.urlParams_.Set("filter", filter)
139153	return c
139154}
139155
139156// IncludeAllScopes sets the optional parameter "includeAllScopes":
139157// Indicates whether every visible scope for each scope type (zone,
139158// region, global) should be included in the response. For new resource
139159// types added after this field, the flag has no effect as new resource
139160// types will always include every visible scope for each scope type in
139161// response. For resource types which predate this field, if this flag
139162// is omitted or false, only scopes of the scope types where the
139163// resource type is expected to be found will be included.
139164func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
139165	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
139166	return c
139167}
139168
139169// MaxResults sets the optional parameter "maxResults": The maximum
139170// number of results per page that should be returned. If the number of
139171// available results is larger than `maxResults`, Compute Engine returns
139172// a `nextPageToken` that can be used to get the next page of results in
139173// subsequent list requests. Acceptable values are `0` to `500`,
139174// inclusive. (Default: `500`)
139175func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
139176	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139177	return c
139178}
139179
139180// OrderBy sets the optional parameter "orderBy": Sorts list results by
139181// a certain order. By default, results are returned in alphanumerical
139182// order based on the resource name.
139183//
139184// You can also sort results in descending order based on the creation
139185// timestamp using `orderBy="creationTimestamp desc". This sorts
139186// results based on the `creationTimestamp` field in reverse
139187// chronological order (newest result first). Use this to sort resources
139188// like operations so that the newest operation is returned
139189// first.
139190//
139191// Currently, only sorting by `name` or `creationTimestamp desc` is
139192// supported.
139193func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
139194	c.urlParams_.Set("orderBy", orderBy)
139195	return c
139196}
139197
139198// PageToken sets the optional parameter "pageToken": Specifies a page
139199// token to use. Set `pageToken` to the `nextPageToken` returned by a
139200// previous list request to get the next page of results.
139201func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
139202	c.urlParams_.Set("pageToken", pageToken)
139203	return c
139204}
139205
139206// Fields allows partial responses to be retrieved. See
139207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139208// for more information.
139209func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
139210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139211	return c
139212}
139213
139214// IfNoneMatch sets the optional parameter which makes the operation
139215// fail if the object's ETag matches the given value. This is useful for
139216// getting updates only after the object has changed since the last
139217// request. Use googleapi.IsNotModified to check whether the response
139218// error from Do is the result of In-None-Match.
139219func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
139220	c.ifNoneMatch_ = entityTag
139221	return c
139222}
139223
139224// Context sets the context to be used in this call's Do method. Any
139225// pending HTTP request will be aborted if the provided context is
139226// canceled.
139227func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
139228	c.ctx_ = ctx
139229	return c
139230}
139231
139232// Header returns an http.Header that can be modified by the caller to
139233// add HTTP headers to the request.
139234func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
139235	if c.header_ == nil {
139236		c.header_ = make(http.Header)
139237	}
139238	return c.header_
139239}
139240
139241func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
139242	reqHeaders := make(http.Header)
139243	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139244	for k, v := range c.header_ {
139245		reqHeaders[k] = v
139246	}
139247	reqHeaders.Set("User-Agent", c.s.userAgent())
139248	if c.ifNoneMatch_ != "" {
139249		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139250	}
139251	var body io.Reader = nil
139252	c.urlParams_.Set("alt", alt)
139253	c.urlParams_.Set("prettyPrint", "false")
139254	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnGateways")
139255	urls += "?" + c.urlParams_.Encode()
139256	req, err := http.NewRequest("GET", urls, body)
139257	if err != nil {
139258		return nil, err
139259	}
139260	req.Header = reqHeaders
139261	googleapi.Expand(req.URL, map[string]string{
139262		"project": c.project,
139263	})
139264	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139265}
139266
139267// Do executes the "compute.vpnGateways.aggregatedList" call.
139268// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
139269// Any non-2xx status code is an error. Response headers are in either
139270// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
139271// returned at all) in error.(*googleapi.Error).Header. Use
139272// googleapi.IsNotModified to check whether the returned error was
139273// because http.StatusNotModified was returned.
139274func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
139275	gensupport.SetOptions(c.urlParams_, opts...)
139276	res, err := c.doRequest("json")
139277	if res != nil && res.StatusCode == http.StatusNotModified {
139278		if res.Body != nil {
139279			res.Body.Close()
139280		}
139281		return nil, &googleapi.Error{
139282			Code:   res.StatusCode,
139283			Header: res.Header,
139284		}
139285	}
139286	if err != nil {
139287		return nil, err
139288	}
139289	defer googleapi.CloseBody(res)
139290	if err := googleapi.CheckResponse(res); err != nil {
139291		return nil, err
139292	}
139293	ret := &VpnGatewayAggregatedList{
139294		ServerResponse: googleapi.ServerResponse{
139295			Header:         res.Header,
139296			HTTPStatusCode: res.StatusCode,
139297		},
139298	}
139299	target := &ret
139300	if err := gensupport.DecodeResponse(target, res); err != nil {
139301		return nil, err
139302	}
139303	return ret, nil
139304	// {
139305	//   "description": "Retrieves an aggregated list of VPN gateways.",
139306	//   "httpMethod": "GET",
139307	//   "id": "compute.vpnGateways.aggregatedList",
139308	//   "parameterOrder": [
139309	//     "project"
139310	//   ],
139311	//   "parameters": {
139312	//     "filter": {
139313	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
139314	//       "location": "query",
139315	//       "type": "string"
139316	//     },
139317	//     "includeAllScopes": {
139318	//       "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.",
139319	//       "location": "query",
139320	//       "type": "boolean"
139321	//     },
139322	//     "maxResults": {
139323	//       "default": "500",
139324	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
139325	//       "format": "uint32",
139326	//       "location": "query",
139327	//       "minimum": "0",
139328	//       "type": "integer"
139329	//     },
139330	//     "orderBy": {
139331	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
139332	//       "location": "query",
139333	//       "type": "string"
139334	//     },
139335	//     "pageToken": {
139336	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
139337	//       "location": "query",
139338	//       "type": "string"
139339	//     },
139340	//     "project": {
139341	//       "description": "Project ID for this request.",
139342	//       "location": "path",
139343	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139344	//       "required": true,
139345	//       "type": "string"
139346	//     }
139347	//   },
139348	//   "path": "{project}/aggregated/vpnGateways",
139349	//   "response": {
139350	//     "$ref": "VpnGatewayAggregatedList"
139351	//   },
139352	//   "scopes": [
139353	//     "https://www.googleapis.com/auth/cloud-platform",
139354	//     "https://www.googleapis.com/auth/compute",
139355	//     "https://www.googleapis.com/auth/compute.readonly"
139356	//   ]
139357	// }
139358
139359}
139360
139361// Pages invokes f for each page of results.
139362// A non-nil error returned from f will halt the iteration.
139363// The provided context supersedes any context provided to the Context method.
139364func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
139365	c.ctx_ = ctx
139366	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139367	for {
139368		x, err := c.Do()
139369		if err != nil {
139370			return err
139371		}
139372		if err := f(x); err != nil {
139373			return err
139374		}
139375		if x.NextPageToken == "" {
139376			return nil
139377		}
139378		c.PageToken(x.NextPageToken)
139379	}
139380}
139381
139382// method id "compute.vpnGateways.delete":
139383
139384type VpnGatewaysDeleteCall struct {
139385	s          *Service
139386	project    string
139387	region     string
139388	vpnGateway string
139389	urlParams_ gensupport.URLParams
139390	ctx_       context.Context
139391	header_    http.Header
139392}
139393
139394// Delete: Deletes the specified VPN gateway.
139395func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
139396	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139397	c.project = project
139398	c.region = region
139399	c.vpnGateway = vpnGateway
139400	return c
139401}
139402
139403// RequestId sets the optional parameter "requestId": An optional
139404// request ID to identify requests. Specify a unique request ID so that
139405// if you must retry your request, the server will know to ignore the
139406// request if it has already been completed.
139407//
139408// For example, consider a situation where you make an initial request
139409// and the request times out. If you make the request again with the
139410// same request ID, the server can check if original operation with the
139411// same request ID was received, and if so, will ignore the second
139412// request. This prevents clients from accidentally creating duplicate
139413// commitments.
139414//
139415// The request ID must be a valid UUID with the exception that zero UUID
139416// is not supported (00000000-0000-0000-0000-000000000000).
139417func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
139418	c.urlParams_.Set("requestId", requestId)
139419	return c
139420}
139421
139422// Fields allows partial responses to be retrieved. See
139423// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139424// for more information.
139425func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
139426	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139427	return c
139428}
139429
139430// Context sets the context to be used in this call's Do method. Any
139431// pending HTTP request will be aborted if the provided context is
139432// canceled.
139433func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
139434	c.ctx_ = ctx
139435	return c
139436}
139437
139438// Header returns an http.Header that can be modified by the caller to
139439// add HTTP headers to the request.
139440func (c *VpnGatewaysDeleteCall) Header() http.Header {
139441	if c.header_ == nil {
139442		c.header_ = make(http.Header)
139443	}
139444	return c.header_
139445}
139446
139447func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
139448	reqHeaders := make(http.Header)
139449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139450	for k, v := range c.header_ {
139451		reqHeaders[k] = v
139452	}
139453	reqHeaders.Set("User-Agent", c.s.userAgent())
139454	var body io.Reader = nil
139455	c.urlParams_.Set("alt", alt)
139456	c.urlParams_.Set("prettyPrint", "false")
139457	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
139458	urls += "?" + c.urlParams_.Encode()
139459	req, err := http.NewRequest("DELETE", urls, body)
139460	if err != nil {
139461		return nil, err
139462	}
139463	req.Header = reqHeaders
139464	googleapi.Expand(req.URL, map[string]string{
139465		"project":    c.project,
139466		"region":     c.region,
139467		"vpnGateway": c.vpnGateway,
139468	})
139469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139470}
139471
139472// Do executes the "compute.vpnGateways.delete" call.
139473// Exactly one of *Operation or error will be non-nil. Any non-2xx
139474// status code is an error. Response headers are in either
139475// *Operation.ServerResponse.Header or (if a response was returned at
139476// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139477// to check whether the returned error was because
139478// http.StatusNotModified was returned.
139479func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139480	gensupport.SetOptions(c.urlParams_, opts...)
139481	res, err := c.doRequest("json")
139482	if res != nil && res.StatusCode == http.StatusNotModified {
139483		if res.Body != nil {
139484			res.Body.Close()
139485		}
139486		return nil, &googleapi.Error{
139487			Code:   res.StatusCode,
139488			Header: res.Header,
139489		}
139490	}
139491	if err != nil {
139492		return nil, err
139493	}
139494	defer googleapi.CloseBody(res)
139495	if err := googleapi.CheckResponse(res); err != nil {
139496		return nil, err
139497	}
139498	ret := &Operation{
139499		ServerResponse: googleapi.ServerResponse{
139500			Header:         res.Header,
139501			HTTPStatusCode: res.StatusCode,
139502		},
139503	}
139504	target := &ret
139505	if err := gensupport.DecodeResponse(target, res); err != nil {
139506		return nil, err
139507	}
139508	return ret, nil
139509	// {
139510	//   "description": "Deletes the specified VPN gateway.",
139511	//   "httpMethod": "DELETE",
139512	//   "id": "compute.vpnGateways.delete",
139513	//   "parameterOrder": [
139514	//     "project",
139515	//     "region",
139516	//     "vpnGateway"
139517	//   ],
139518	//   "parameters": {
139519	//     "project": {
139520	//       "description": "Project ID for this request.",
139521	//       "location": "path",
139522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139523	//       "required": true,
139524	//       "type": "string"
139525	//     },
139526	//     "region": {
139527	//       "description": "Name of the region for this request.",
139528	//       "location": "path",
139529	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139530	//       "required": true,
139531	//       "type": "string"
139532	//     },
139533	//     "requestId": {
139534	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139535	//       "location": "query",
139536	//       "type": "string"
139537	//     },
139538	//     "vpnGateway": {
139539	//       "description": "Name of the VPN gateway to delete.",
139540	//       "location": "path",
139541	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139542	//       "required": true,
139543	//       "type": "string"
139544	//     }
139545	//   },
139546	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
139547	//   "response": {
139548	//     "$ref": "Operation"
139549	//   },
139550	//   "scopes": [
139551	//     "https://www.googleapis.com/auth/cloud-platform",
139552	//     "https://www.googleapis.com/auth/compute"
139553	//   ]
139554	// }
139555
139556}
139557
139558// method id "compute.vpnGateways.get":
139559
139560type VpnGatewaysGetCall struct {
139561	s            *Service
139562	project      string
139563	region       string
139564	vpnGateway   string
139565	urlParams_   gensupport.URLParams
139566	ifNoneMatch_ string
139567	ctx_         context.Context
139568	header_      http.Header
139569}
139570
139571// Get: Returns the specified VPN gateway. Gets a list of available VPN
139572// gateways by making a list() request.
139573func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
139574	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139575	c.project = project
139576	c.region = region
139577	c.vpnGateway = vpnGateway
139578	return c
139579}
139580
139581// Fields allows partial responses to be retrieved. See
139582// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139583// for more information.
139584func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
139585	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139586	return c
139587}
139588
139589// IfNoneMatch sets the optional parameter which makes the operation
139590// fail if the object's ETag matches the given value. This is useful for
139591// getting updates only after the object has changed since the last
139592// request. Use googleapi.IsNotModified to check whether the response
139593// error from Do is the result of In-None-Match.
139594func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
139595	c.ifNoneMatch_ = entityTag
139596	return c
139597}
139598
139599// Context sets the context to be used in this call's Do method. Any
139600// pending HTTP request will be aborted if the provided context is
139601// canceled.
139602func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
139603	c.ctx_ = ctx
139604	return c
139605}
139606
139607// Header returns an http.Header that can be modified by the caller to
139608// add HTTP headers to the request.
139609func (c *VpnGatewaysGetCall) Header() http.Header {
139610	if c.header_ == nil {
139611		c.header_ = make(http.Header)
139612	}
139613	return c.header_
139614}
139615
139616func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
139617	reqHeaders := make(http.Header)
139618	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139619	for k, v := range c.header_ {
139620		reqHeaders[k] = v
139621	}
139622	reqHeaders.Set("User-Agent", c.s.userAgent())
139623	if c.ifNoneMatch_ != "" {
139624		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139625	}
139626	var body io.Reader = nil
139627	c.urlParams_.Set("alt", alt)
139628	c.urlParams_.Set("prettyPrint", "false")
139629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
139630	urls += "?" + c.urlParams_.Encode()
139631	req, err := http.NewRequest("GET", urls, body)
139632	if err != nil {
139633		return nil, err
139634	}
139635	req.Header = reqHeaders
139636	googleapi.Expand(req.URL, map[string]string{
139637		"project":    c.project,
139638		"region":     c.region,
139639		"vpnGateway": c.vpnGateway,
139640	})
139641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139642}
139643
139644// Do executes the "compute.vpnGateways.get" call.
139645// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
139646// status code is an error. Response headers are in either
139647// *VpnGateway.ServerResponse.Header or (if a response was returned at
139648// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139649// to check whether the returned error was because
139650// http.StatusNotModified was returned.
139651func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
139652	gensupport.SetOptions(c.urlParams_, opts...)
139653	res, err := c.doRequest("json")
139654	if res != nil && res.StatusCode == http.StatusNotModified {
139655		if res.Body != nil {
139656			res.Body.Close()
139657		}
139658		return nil, &googleapi.Error{
139659			Code:   res.StatusCode,
139660			Header: res.Header,
139661		}
139662	}
139663	if err != nil {
139664		return nil, err
139665	}
139666	defer googleapi.CloseBody(res)
139667	if err := googleapi.CheckResponse(res); err != nil {
139668		return nil, err
139669	}
139670	ret := &VpnGateway{
139671		ServerResponse: googleapi.ServerResponse{
139672			Header:         res.Header,
139673			HTTPStatusCode: res.StatusCode,
139674		},
139675	}
139676	target := &ret
139677	if err := gensupport.DecodeResponse(target, res); err != nil {
139678		return nil, err
139679	}
139680	return ret, nil
139681	// {
139682	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
139683	//   "httpMethod": "GET",
139684	//   "id": "compute.vpnGateways.get",
139685	//   "parameterOrder": [
139686	//     "project",
139687	//     "region",
139688	//     "vpnGateway"
139689	//   ],
139690	//   "parameters": {
139691	//     "project": {
139692	//       "description": "Project ID for this request.",
139693	//       "location": "path",
139694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139695	//       "required": true,
139696	//       "type": "string"
139697	//     },
139698	//     "region": {
139699	//       "description": "Name of the region for this request.",
139700	//       "location": "path",
139701	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139702	//       "required": true,
139703	//       "type": "string"
139704	//     },
139705	//     "vpnGateway": {
139706	//       "description": "Name of the VPN gateway to return.",
139707	//       "location": "path",
139708	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139709	//       "required": true,
139710	//       "type": "string"
139711	//     }
139712	//   },
139713	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
139714	//   "response": {
139715	//     "$ref": "VpnGateway"
139716	//   },
139717	//   "scopes": [
139718	//     "https://www.googleapis.com/auth/cloud-platform",
139719	//     "https://www.googleapis.com/auth/compute",
139720	//     "https://www.googleapis.com/auth/compute.readonly"
139721	//   ]
139722	// }
139723
139724}
139725
139726// method id "compute.vpnGateways.getStatus":
139727
139728type VpnGatewaysGetStatusCall struct {
139729	s            *Service
139730	project      string
139731	region       string
139732	vpnGateway   string
139733	urlParams_   gensupport.URLParams
139734	ifNoneMatch_ string
139735	ctx_         context.Context
139736	header_      http.Header
139737}
139738
139739// GetStatus: Returns the status for the specified VPN gateway.
139740func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
139741	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139742	c.project = project
139743	c.region = region
139744	c.vpnGateway = vpnGateway
139745	return c
139746}
139747
139748// Fields allows partial responses to be retrieved. See
139749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139750// for more information.
139751func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
139752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139753	return c
139754}
139755
139756// IfNoneMatch sets the optional parameter which makes the operation
139757// fail if the object's ETag matches the given value. This is useful for
139758// getting updates only after the object has changed since the last
139759// request. Use googleapi.IsNotModified to check whether the response
139760// error from Do is the result of In-None-Match.
139761func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
139762	c.ifNoneMatch_ = entityTag
139763	return c
139764}
139765
139766// Context sets the context to be used in this call's Do method. Any
139767// pending HTTP request will be aborted if the provided context is
139768// canceled.
139769func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
139770	c.ctx_ = ctx
139771	return c
139772}
139773
139774// Header returns an http.Header that can be modified by the caller to
139775// add HTTP headers to the request.
139776func (c *VpnGatewaysGetStatusCall) Header() http.Header {
139777	if c.header_ == nil {
139778		c.header_ = make(http.Header)
139779	}
139780	return c.header_
139781}
139782
139783func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
139784	reqHeaders := make(http.Header)
139785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139786	for k, v := range c.header_ {
139787		reqHeaders[k] = v
139788	}
139789	reqHeaders.Set("User-Agent", c.s.userAgent())
139790	if c.ifNoneMatch_ != "" {
139791		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139792	}
139793	var body io.Reader = nil
139794	c.urlParams_.Set("alt", alt)
139795	c.urlParams_.Set("prettyPrint", "false")
139796	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
139797	urls += "?" + c.urlParams_.Encode()
139798	req, err := http.NewRequest("GET", urls, body)
139799	if err != nil {
139800		return nil, err
139801	}
139802	req.Header = reqHeaders
139803	googleapi.Expand(req.URL, map[string]string{
139804		"project":    c.project,
139805		"region":     c.region,
139806		"vpnGateway": c.vpnGateway,
139807	})
139808	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139809}
139810
139811// Do executes the "compute.vpnGateways.getStatus" call.
139812// Exactly one of *VpnGatewaysGetStatusResponse or error will be
139813// non-nil. Any non-2xx status code is an error. Response headers are in
139814// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
139815// response was returned at all) in error.(*googleapi.Error).Header. Use
139816// googleapi.IsNotModified to check whether the returned error was
139817// because http.StatusNotModified was returned.
139818func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
139819	gensupport.SetOptions(c.urlParams_, opts...)
139820	res, err := c.doRequest("json")
139821	if res != nil && res.StatusCode == http.StatusNotModified {
139822		if res.Body != nil {
139823			res.Body.Close()
139824		}
139825		return nil, &googleapi.Error{
139826			Code:   res.StatusCode,
139827			Header: res.Header,
139828		}
139829	}
139830	if err != nil {
139831		return nil, err
139832	}
139833	defer googleapi.CloseBody(res)
139834	if err := googleapi.CheckResponse(res); err != nil {
139835		return nil, err
139836	}
139837	ret := &VpnGatewaysGetStatusResponse{
139838		ServerResponse: googleapi.ServerResponse{
139839			Header:         res.Header,
139840			HTTPStatusCode: res.StatusCode,
139841		},
139842	}
139843	target := &ret
139844	if err := gensupport.DecodeResponse(target, res); err != nil {
139845		return nil, err
139846	}
139847	return ret, nil
139848	// {
139849	//   "description": "Returns the status for the specified VPN gateway.",
139850	//   "httpMethod": "GET",
139851	//   "id": "compute.vpnGateways.getStatus",
139852	//   "parameterOrder": [
139853	//     "project",
139854	//     "region",
139855	//     "vpnGateway"
139856	//   ],
139857	//   "parameters": {
139858	//     "project": {
139859	//       "description": "Project ID for this request.",
139860	//       "location": "path",
139861	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139862	//       "required": true,
139863	//       "type": "string"
139864	//     },
139865	//     "region": {
139866	//       "description": "Name of the region for this request.",
139867	//       "location": "path",
139868	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139869	//       "required": true,
139870	//       "type": "string"
139871	//     },
139872	//     "vpnGateway": {
139873	//       "description": "Name of the VPN gateway to return.",
139874	//       "location": "path",
139875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139876	//       "required": true,
139877	//       "type": "string"
139878	//     }
139879	//   },
139880	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
139881	//   "response": {
139882	//     "$ref": "VpnGatewaysGetStatusResponse"
139883	//   },
139884	//   "scopes": [
139885	//     "https://www.googleapis.com/auth/cloud-platform",
139886	//     "https://www.googleapis.com/auth/compute",
139887	//     "https://www.googleapis.com/auth/compute.readonly"
139888	//   ]
139889	// }
139890
139891}
139892
139893// method id "compute.vpnGateways.insert":
139894
139895type VpnGatewaysInsertCall struct {
139896	s          *Service
139897	project    string
139898	region     string
139899	vpngateway *VpnGateway
139900	urlParams_ gensupport.URLParams
139901	ctx_       context.Context
139902	header_    http.Header
139903}
139904
139905// Insert: Creates a VPN gateway in the specified project and region
139906// using the data included in the request.
139907func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
139908	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139909	c.project = project
139910	c.region = region
139911	c.vpngateway = vpngateway
139912	return c
139913}
139914
139915// RequestId sets the optional parameter "requestId": An optional
139916// request ID to identify requests. Specify a unique request ID so that
139917// if you must retry your request, the server will know to ignore the
139918// request if it has already been completed.
139919//
139920// For example, consider a situation where you make an initial request
139921// and the request times out. If you make the request again with the
139922// same request ID, the server can check if original operation with the
139923// same request ID was received, and if so, will ignore the second
139924// request. This prevents clients from accidentally creating duplicate
139925// commitments.
139926//
139927// The request ID must be a valid UUID with the exception that zero UUID
139928// is not supported (00000000-0000-0000-0000-000000000000).
139929func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
139930	c.urlParams_.Set("requestId", requestId)
139931	return c
139932}
139933
139934// Fields allows partial responses to be retrieved. See
139935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139936// for more information.
139937func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
139938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139939	return c
139940}
139941
139942// Context sets the context to be used in this call's Do method. Any
139943// pending HTTP request will be aborted if the provided context is
139944// canceled.
139945func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
139946	c.ctx_ = ctx
139947	return c
139948}
139949
139950// Header returns an http.Header that can be modified by the caller to
139951// add HTTP headers to the request.
139952func (c *VpnGatewaysInsertCall) Header() http.Header {
139953	if c.header_ == nil {
139954		c.header_ = make(http.Header)
139955	}
139956	return c.header_
139957}
139958
139959func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
139960	reqHeaders := make(http.Header)
139961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139962	for k, v := range c.header_ {
139963		reqHeaders[k] = v
139964	}
139965	reqHeaders.Set("User-Agent", c.s.userAgent())
139966	var body io.Reader = nil
139967	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
139968	if err != nil {
139969		return nil, err
139970	}
139971	reqHeaders.Set("Content-Type", "application/json")
139972	c.urlParams_.Set("alt", alt)
139973	c.urlParams_.Set("prettyPrint", "false")
139974	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
139975	urls += "?" + c.urlParams_.Encode()
139976	req, err := http.NewRequest("POST", urls, body)
139977	if err != nil {
139978		return nil, err
139979	}
139980	req.Header = reqHeaders
139981	googleapi.Expand(req.URL, map[string]string{
139982		"project": c.project,
139983		"region":  c.region,
139984	})
139985	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139986}
139987
139988// Do executes the "compute.vpnGateways.insert" call.
139989// Exactly one of *Operation or error will be non-nil. Any non-2xx
139990// status code is an error. Response headers are in either
139991// *Operation.ServerResponse.Header or (if a response was returned at
139992// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139993// to check whether the returned error was because
139994// http.StatusNotModified was returned.
139995func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139996	gensupport.SetOptions(c.urlParams_, opts...)
139997	res, err := c.doRequest("json")
139998	if res != nil && res.StatusCode == http.StatusNotModified {
139999		if res.Body != nil {
140000			res.Body.Close()
140001		}
140002		return nil, &googleapi.Error{
140003			Code:   res.StatusCode,
140004			Header: res.Header,
140005		}
140006	}
140007	if err != nil {
140008		return nil, err
140009	}
140010	defer googleapi.CloseBody(res)
140011	if err := googleapi.CheckResponse(res); err != nil {
140012		return nil, err
140013	}
140014	ret := &Operation{
140015		ServerResponse: googleapi.ServerResponse{
140016			Header:         res.Header,
140017			HTTPStatusCode: res.StatusCode,
140018		},
140019	}
140020	target := &ret
140021	if err := gensupport.DecodeResponse(target, res); err != nil {
140022		return nil, err
140023	}
140024	return ret, nil
140025	// {
140026	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
140027	//   "httpMethod": "POST",
140028	//   "id": "compute.vpnGateways.insert",
140029	//   "parameterOrder": [
140030	//     "project",
140031	//     "region"
140032	//   ],
140033	//   "parameters": {
140034	//     "project": {
140035	//       "description": "Project ID for this request.",
140036	//       "location": "path",
140037	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140038	//       "required": true,
140039	//       "type": "string"
140040	//     },
140041	//     "region": {
140042	//       "description": "Name of the region for this request.",
140043	//       "location": "path",
140044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140045	//       "required": true,
140046	//       "type": "string"
140047	//     },
140048	//     "requestId": {
140049	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140050	//       "location": "query",
140051	//       "type": "string"
140052	//     }
140053	//   },
140054	//   "path": "{project}/regions/{region}/vpnGateways",
140055	//   "request": {
140056	//     "$ref": "VpnGateway"
140057	//   },
140058	//   "response": {
140059	//     "$ref": "Operation"
140060	//   },
140061	//   "scopes": [
140062	//     "https://www.googleapis.com/auth/cloud-platform",
140063	//     "https://www.googleapis.com/auth/compute"
140064	//   ]
140065	// }
140066
140067}
140068
140069// method id "compute.vpnGateways.list":
140070
140071type VpnGatewaysListCall struct {
140072	s            *Service
140073	project      string
140074	region       string
140075	urlParams_   gensupport.URLParams
140076	ifNoneMatch_ string
140077	ctx_         context.Context
140078	header_      http.Header
140079}
140080
140081// List: Retrieves a list of VPN gateways available to the specified
140082// project and region.
140083func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
140084	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140085	c.project = project
140086	c.region = region
140087	return c
140088}
140089
140090// Filter sets the optional parameter "filter": A filter expression that
140091// filters resources listed in the response. The expression must specify
140092// the field name, a comparison operator, and the value that you want to
140093// use for filtering. The value must be a string, a number, or a
140094// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140095// `<`.
140096//
140097// For example, if you are filtering Compute Engine instances, you can
140098// exclude instances named `example-instance` by specifying `name !=
140099// example-instance`.
140100//
140101// You can also filter nested fields. For example, you could specify
140102// `scheduling.automaticRestart = false` to include instances only if
140103// they are not scheduled for automatic restarts. You can use filtering
140104// on nested fields to filter based on resource labels.
140105//
140106// To filter on multiple expressions, provide each separate expression
140107// within parentheses. For example: ``` (scheduling.automaticRestart =
140108// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
140109// is an `AND` expression. However, you can include `AND` and `OR`
140110// expressions explicitly. For example: ``` (cpuPlatform = "Intel
140111// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
140112// (scheduling.automaticRestart = true) ```
140113func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
140114	c.urlParams_.Set("filter", filter)
140115	return c
140116}
140117
140118// MaxResults sets the optional parameter "maxResults": The maximum
140119// number of results per page that should be returned. If the number of
140120// available results is larger than `maxResults`, Compute Engine returns
140121// a `nextPageToken` that can be used to get the next page of results in
140122// subsequent list requests. Acceptable values are `0` to `500`,
140123// inclusive. (Default: `500`)
140124func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
140125	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140126	return c
140127}
140128
140129// OrderBy sets the optional parameter "orderBy": Sorts list results by
140130// a certain order. By default, results are returned in alphanumerical
140131// order based on the resource name.
140132//
140133// You can also sort results in descending order based on the creation
140134// timestamp using `orderBy="creationTimestamp desc". This sorts
140135// results based on the `creationTimestamp` field in reverse
140136// chronological order (newest result first). Use this to sort resources
140137// like operations so that the newest operation is returned
140138// first.
140139//
140140// Currently, only sorting by `name` or `creationTimestamp desc` is
140141// supported.
140142func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
140143	c.urlParams_.Set("orderBy", orderBy)
140144	return c
140145}
140146
140147// PageToken sets the optional parameter "pageToken": Specifies a page
140148// token to use. Set `pageToken` to the `nextPageToken` returned by a
140149// previous list request to get the next page of results.
140150func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
140151	c.urlParams_.Set("pageToken", pageToken)
140152	return c
140153}
140154
140155// Fields allows partial responses to be retrieved. See
140156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140157// for more information.
140158func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
140159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140160	return c
140161}
140162
140163// IfNoneMatch sets the optional parameter which makes the operation
140164// fail if the object's ETag matches the given value. This is useful for
140165// getting updates only after the object has changed since the last
140166// request. Use googleapi.IsNotModified to check whether the response
140167// error from Do is the result of In-None-Match.
140168func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
140169	c.ifNoneMatch_ = entityTag
140170	return c
140171}
140172
140173// Context sets the context to be used in this call's Do method. Any
140174// pending HTTP request will be aborted if the provided context is
140175// canceled.
140176func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
140177	c.ctx_ = ctx
140178	return c
140179}
140180
140181// Header returns an http.Header that can be modified by the caller to
140182// add HTTP headers to the request.
140183func (c *VpnGatewaysListCall) Header() http.Header {
140184	if c.header_ == nil {
140185		c.header_ = make(http.Header)
140186	}
140187	return c.header_
140188}
140189
140190func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
140191	reqHeaders := make(http.Header)
140192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140193	for k, v := range c.header_ {
140194		reqHeaders[k] = v
140195	}
140196	reqHeaders.Set("User-Agent", c.s.userAgent())
140197	if c.ifNoneMatch_ != "" {
140198		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140199	}
140200	var body io.Reader = nil
140201	c.urlParams_.Set("alt", alt)
140202	c.urlParams_.Set("prettyPrint", "false")
140203	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
140204	urls += "?" + c.urlParams_.Encode()
140205	req, err := http.NewRequest("GET", urls, body)
140206	if err != nil {
140207		return nil, err
140208	}
140209	req.Header = reqHeaders
140210	googleapi.Expand(req.URL, map[string]string{
140211		"project": c.project,
140212		"region":  c.region,
140213	})
140214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140215}
140216
140217// Do executes the "compute.vpnGateways.list" call.
140218// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
140219// status code is an error. Response headers are in either
140220// *VpnGatewayList.ServerResponse.Header or (if a response was returned
140221// at all) in error.(*googleapi.Error).Header. Use
140222// googleapi.IsNotModified to check whether the returned error was
140223// because http.StatusNotModified was returned.
140224func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
140225	gensupport.SetOptions(c.urlParams_, opts...)
140226	res, err := c.doRequest("json")
140227	if res != nil && res.StatusCode == http.StatusNotModified {
140228		if res.Body != nil {
140229			res.Body.Close()
140230		}
140231		return nil, &googleapi.Error{
140232			Code:   res.StatusCode,
140233			Header: res.Header,
140234		}
140235	}
140236	if err != nil {
140237		return nil, err
140238	}
140239	defer googleapi.CloseBody(res)
140240	if err := googleapi.CheckResponse(res); err != nil {
140241		return nil, err
140242	}
140243	ret := &VpnGatewayList{
140244		ServerResponse: googleapi.ServerResponse{
140245			Header:         res.Header,
140246			HTTPStatusCode: res.StatusCode,
140247		},
140248	}
140249	target := &ret
140250	if err := gensupport.DecodeResponse(target, res); err != nil {
140251		return nil, err
140252	}
140253	return ret, nil
140254	// {
140255	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
140256	//   "httpMethod": "GET",
140257	//   "id": "compute.vpnGateways.list",
140258	//   "parameterOrder": [
140259	//     "project",
140260	//     "region"
140261	//   ],
140262	//   "parameters": {
140263	//     "filter": {
140264	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140265	//       "location": "query",
140266	//       "type": "string"
140267	//     },
140268	//     "maxResults": {
140269	//       "default": "500",
140270	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140271	//       "format": "uint32",
140272	//       "location": "query",
140273	//       "minimum": "0",
140274	//       "type": "integer"
140275	//     },
140276	//     "orderBy": {
140277	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140278	//       "location": "query",
140279	//       "type": "string"
140280	//     },
140281	//     "pageToken": {
140282	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140283	//       "location": "query",
140284	//       "type": "string"
140285	//     },
140286	//     "project": {
140287	//       "description": "Project ID for this request.",
140288	//       "location": "path",
140289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140290	//       "required": true,
140291	//       "type": "string"
140292	//     },
140293	//     "region": {
140294	//       "description": "Name of the region for this request.",
140295	//       "location": "path",
140296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140297	//       "required": true,
140298	//       "type": "string"
140299	//     }
140300	//   },
140301	//   "path": "{project}/regions/{region}/vpnGateways",
140302	//   "response": {
140303	//     "$ref": "VpnGatewayList"
140304	//   },
140305	//   "scopes": [
140306	//     "https://www.googleapis.com/auth/cloud-platform",
140307	//     "https://www.googleapis.com/auth/compute",
140308	//     "https://www.googleapis.com/auth/compute.readonly"
140309	//   ]
140310	// }
140311
140312}
140313
140314// Pages invokes f for each page of results.
140315// A non-nil error returned from f will halt the iteration.
140316// The provided context supersedes any context provided to the Context method.
140317func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
140318	c.ctx_ = ctx
140319	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140320	for {
140321		x, err := c.Do()
140322		if err != nil {
140323			return err
140324		}
140325		if err := f(x); err != nil {
140326			return err
140327		}
140328		if x.NextPageToken == "" {
140329			return nil
140330		}
140331		c.PageToken(x.NextPageToken)
140332	}
140333}
140334
140335// method id "compute.vpnGateways.setLabels":
140336
140337type VpnGatewaysSetLabelsCall struct {
140338	s                      *Service
140339	project                string
140340	region                 string
140341	resource               string
140342	regionsetlabelsrequest *RegionSetLabelsRequest
140343	urlParams_             gensupport.URLParams
140344	ctx_                   context.Context
140345	header_                http.Header
140346}
140347
140348// SetLabels: Sets the labels on a VpnGateway. To learn more about
140349// labels, read the Labeling Resources documentation.
140350func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
140351	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140352	c.project = project
140353	c.region = region
140354	c.resource = resource
140355	c.regionsetlabelsrequest = regionsetlabelsrequest
140356	return c
140357}
140358
140359// RequestId sets the optional parameter "requestId": An optional
140360// request ID to identify requests. Specify a unique request ID so that
140361// if you must retry your request, the server will know to ignore the
140362// request if it has already been completed.
140363//
140364// For example, consider a situation where you make an initial request
140365// and the request times out. If you make the request again with the
140366// same request ID, the server can check if original operation with the
140367// same request ID was received, and if so, will ignore the second
140368// request. This prevents clients from accidentally creating duplicate
140369// commitments.
140370//
140371// The request ID must be a valid UUID with the exception that zero UUID
140372// is not supported (00000000-0000-0000-0000-000000000000).
140373func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
140374	c.urlParams_.Set("requestId", requestId)
140375	return c
140376}
140377
140378// Fields allows partial responses to be retrieved. See
140379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140380// for more information.
140381func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
140382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140383	return c
140384}
140385
140386// Context sets the context to be used in this call's Do method. Any
140387// pending HTTP request will be aborted if the provided context is
140388// canceled.
140389func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
140390	c.ctx_ = ctx
140391	return c
140392}
140393
140394// Header returns an http.Header that can be modified by the caller to
140395// add HTTP headers to the request.
140396func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
140397	if c.header_ == nil {
140398		c.header_ = make(http.Header)
140399	}
140400	return c.header_
140401}
140402
140403func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
140404	reqHeaders := make(http.Header)
140405	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140406	for k, v := range c.header_ {
140407		reqHeaders[k] = v
140408	}
140409	reqHeaders.Set("User-Agent", c.s.userAgent())
140410	var body io.Reader = nil
140411	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
140412	if err != nil {
140413		return nil, err
140414	}
140415	reqHeaders.Set("Content-Type", "application/json")
140416	c.urlParams_.Set("alt", alt)
140417	c.urlParams_.Set("prettyPrint", "false")
140418	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/setLabels")
140419	urls += "?" + c.urlParams_.Encode()
140420	req, err := http.NewRequest("POST", urls, body)
140421	if err != nil {
140422		return nil, err
140423	}
140424	req.Header = reqHeaders
140425	googleapi.Expand(req.URL, map[string]string{
140426		"project":  c.project,
140427		"region":   c.region,
140428		"resource": c.resource,
140429	})
140430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140431}
140432
140433// Do executes the "compute.vpnGateways.setLabels" call.
140434// Exactly one of *Operation or error will be non-nil. Any non-2xx
140435// status code is an error. Response headers are in either
140436// *Operation.ServerResponse.Header or (if a response was returned at
140437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140438// to check whether the returned error was because
140439// http.StatusNotModified was returned.
140440func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140441	gensupport.SetOptions(c.urlParams_, opts...)
140442	res, err := c.doRequest("json")
140443	if res != nil && res.StatusCode == http.StatusNotModified {
140444		if res.Body != nil {
140445			res.Body.Close()
140446		}
140447		return nil, &googleapi.Error{
140448			Code:   res.StatusCode,
140449			Header: res.Header,
140450		}
140451	}
140452	if err != nil {
140453		return nil, err
140454	}
140455	defer googleapi.CloseBody(res)
140456	if err := googleapi.CheckResponse(res); err != nil {
140457		return nil, err
140458	}
140459	ret := &Operation{
140460		ServerResponse: googleapi.ServerResponse{
140461			Header:         res.Header,
140462			HTTPStatusCode: res.StatusCode,
140463		},
140464	}
140465	target := &ret
140466	if err := gensupport.DecodeResponse(target, res); err != nil {
140467		return nil, err
140468	}
140469	return ret, nil
140470	// {
140471	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
140472	//   "httpMethod": "POST",
140473	//   "id": "compute.vpnGateways.setLabels",
140474	//   "parameterOrder": [
140475	//     "project",
140476	//     "region",
140477	//     "resource"
140478	//   ],
140479	//   "parameters": {
140480	//     "project": {
140481	//       "description": "Project ID for this request.",
140482	//       "location": "path",
140483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140484	//       "required": true,
140485	//       "type": "string"
140486	//     },
140487	//     "region": {
140488	//       "description": "The region for this request.",
140489	//       "location": "path",
140490	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140491	//       "required": true,
140492	//       "type": "string"
140493	//     },
140494	//     "requestId": {
140495	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140496	//       "location": "query",
140497	//       "type": "string"
140498	//     },
140499	//     "resource": {
140500	//       "description": "Name or id of the resource for this request.",
140501	//       "location": "path",
140502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140503	//       "required": true,
140504	//       "type": "string"
140505	//     }
140506	//   },
140507	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/setLabels",
140508	//   "request": {
140509	//     "$ref": "RegionSetLabelsRequest"
140510	//   },
140511	//   "response": {
140512	//     "$ref": "Operation"
140513	//   },
140514	//   "scopes": [
140515	//     "https://www.googleapis.com/auth/cloud-platform",
140516	//     "https://www.googleapis.com/auth/compute"
140517	//   ]
140518	// }
140519
140520}
140521
140522// method id "compute.vpnGateways.testIamPermissions":
140523
140524type VpnGatewaysTestIamPermissionsCall struct {
140525	s                      *Service
140526	project                string
140527	region                 string
140528	resource               string
140529	testpermissionsrequest *TestPermissionsRequest
140530	urlParams_             gensupport.URLParams
140531	ctx_                   context.Context
140532	header_                http.Header
140533}
140534
140535// TestIamPermissions: Returns permissions that a caller has on the
140536// specified resource.
140537func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
140538	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140539	c.project = project
140540	c.region = region
140541	c.resource = resource
140542	c.testpermissionsrequest = testpermissionsrequest
140543	return c
140544}
140545
140546// Fields allows partial responses to be retrieved. See
140547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140548// for more information.
140549func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
140550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140551	return c
140552}
140553
140554// Context sets the context to be used in this call's Do method. Any
140555// pending HTTP request will be aborted if the provided context is
140556// canceled.
140557func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
140558	c.ctx_ = ctx
140559	return c
140560}
140561
140562// Header returns an http.Header that can be modified by the caller to
140563// add HTTP headers to the request.
140564func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
140565	if c.header_ == nil {
140566		c.header_ = make(http.Header)
140567	}
140568	return c.header_
140569}
140570
140571func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
140572	reqHeaders := make(http.Header)
140573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140574	for k, v := range c.header_ {
140575		reqHeaders[k] = v
140576	}
140577	reqHeaders.Set("User-Agent", c.s.userAgent())
140578	var body io.Reader = nil
140579	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
140580	if err != nil {
140581		return nil, err
140582	}
140583	reqHeaders.Set("Content-Type", "application/json")
140584	c.urlParams_.Set("alt", alt)
140585	c.urlParams_.Set("prettyPrint", "false")
140586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
140587	urls += "?" + c.urlParams_.Encode()
140588	req, err := http.NewRequest("POST", urls, body)
140589	if err != nil {
140590		return nil, err
140591	}
140592	req.Header = reqHeaders
140593	googleapi.Expand(req.URL, map[string]string{
140594		"project":  c.project,
140595		"region":   c.region,
140596		"resource": c.resource,
140597	})
140598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140599}
140600
140601// Do executes the "compute.vpnGateways.testIamPermissions" call.
140602// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
140603// non-2xx status code is an error. Response headers are in either
140604// *TestPermissionsResponse.ServerResponse.Header or (if a response was
140605// returned at all) in error.(*googleapi.Error).Header. Use
140606// googleapi.IsNotModified to check whether the returned error was
140607// because http.StatusNotModified was returned.
140608func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
140609	gensupport.SetOptions(c.urlParams_, opts...)
140610	res, err := c.doRequest("json")
140611	if res != nil && res.StatusCode == http.StatusNotModified {
140612		if res.Body != nil {
140613			res.Body.Close()
140614		}
140615		return nil, &googleapi.Error{
140616			Code:   res.StatusCode,
140617			Header: res.Header,
140618		}
140619	}
140620	if err != nil {
140621		return nil, err
140622	}
140623	defer googleapi.CloseBody(res)
140624	if err := googleapi.CheckResponse(res); err != nil {
140625		return nil, err
140626	}
140627	ret := &TestPermissionsResponse{
140628		ServerResponse: googleapi.ServerResponse{
140629			Header:         res.Header,
140630			HTTPStatusCode: res.StatusCode,
140631		},
140632	}
140633	target := &ret
140634	if err := gensupport.DecodeResponse(target, res); err != nil {
140635		return nil, err
140636	}
140637	return ret, nil
140638	// {
140639	//   "description": "Returns permissions that a caller has on the specified resource.",
140640	//   "httpMethod": "POST",
140641	//   "id": "compute.vpnGateways.testIamPermissions",
140642	//   "parameterOrder": [
140643	//     "project",
140644	//     "region",
140645	//     "resource"
140646	//   ],
140647	//   "parameters": {
140648	//     "project": {
140649	//       "description": "Project ID for this request.",
140650	//       "location": "path",
140651	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140652	//       "required": true,
140653	//       "type": "string"
140654	//     },
140655	//     "region": {
140656	//       "description": "The name of the region for this request.",
140657	//       "location": "path",
140658	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140659	//       "required": true,
140660	//       "type": "string"
140661	//     },
140662	//     "resource": {
140663	//       "description": "Name or id of the resource for this request.",
140664	//       "location": "path",
140665	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140666	//       "required": true,
140667	//       "type": "string"
140668	//     }
140669	//   },
140670	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
140671	//   "request": {
140672	//     "$ref": "TestPermissionsRequest"
140673	//   },
140674	//   "response": {
140675	//     "$ref": "TestPermissionsResponse"
140676	//   },
140677	//   "scopes": [
140678	//     "https://www.googleapis.com/auth/cloud-platform",
140679	//     "https://www.googleapis.com/auth/compute",
140680	//     "https://www.googleapis.com/auth/compute.readonly"
140681	//   ]
140682	// }
140683
140684}
140685
140686// method id "compute.vpnTunnels.aggregatedList":
140687
140688type VpnTunnelsAggregatedListCall struct {
140689	s            *Service
140690	project      string
140691	urlParams_   gensupport.URLParams
140692	ifNoneMatch_ string
140693	ctx_         context.Context
140694	header_      http.Header
140695}
140696
140697// AggregatedList: Retrieves an aggregated list of VPN tunnels.
140698func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
140699	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140700	c.project = project
140701	return c
140702}
140703
140704// Filter sets the optional parameter "filter": A filter expression that
140705// filters resources listed in the response. The expression must specify
140706// the field name, a comparison operator, and the value that you want to
140707// use for filtering. The value must be a string, a number, or a
140708// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140709// `<`.
140710//
140711// For example, if you are filtering Compute Engine instances, you can
140712// exclude instances named `example-instance` by specifying `name !=
140713// example-instance`.
140714//
140715// You can also filter nested fields. For example, you could specify
140716// `scheduling.automaticRestart = false` to include instances only if
140717// they are not scheduled for automatic restarts. You can use filtering
140718// on nested fields to filter based on resource labels.
140719//
140720// To filter on multiple expressions, provide each separate expression
140721// within parentheses. For example: ``` (scheduling.automaticRestart =
140722// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
140723// is an `AND` expression. However, you can include `AND` and `OR`
140724// expressions explicitly. For example: ``` (cpuPlatform = "Intel
140725// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
140726// (scheduling.automaticRestart = true) ```
140727func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
140728	c.urlParams_.Set("filter", filter)
140729	return c
140730}
140731
140732// IncludeAllScopes sets the optional parameter "includeAllScopes":
140733// Indicates whether every visible scope for each scope type (zone,
140734// region, global) should be included in the response. For new resource
140735// types added after this field, the flag has no effect as new resource
140736// types will always include every visible scope for each scope type in
140737// response. For resource types which predate this field, if this flag
140738// is omitted or false, only scopes of the scope types where the
140739// resource type is expected to be found will be included.
140740func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
140741	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
140742	return c
140743}
140744
140745// MaxResults sets the optional parameter "maxResults": The maximum
140746// number of results per page that should be returned. If the number of
140747// available results is larger than `maxResults`, Compute Engine returns
140748// a `nextPageToken` that can be used to get the next page of results in
140749// subsequent list requests. Acceptable values are `0` to `500`,
140750// inclusive. (Default: `500`)
140751func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
140752	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140753	return c
140754}
140755
140756// OrderBy sets the optional parameter "orderBy": Sorts list results by
140757// a certain order. By default, results are returned in alphanumerical
140758// order based on the resource name.
140759//
140760// You can also sort results in descending order based on the creation
140761// timestamp using `orderBy="creationTimestamp desc". This sorts
140762// results based on the `creationTimestamp` field in reverse
140763// chronological order (newest result first). Use this to sort resources
140764// like operations so that the newest operation is returned
140765// first.
140766//
140767// Currently, only sorting by `name` or `creationTimestamp desc` is
140768// supported.
140769func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
140770	c.urlParams_.Set("orderBy", orderBy)
140771	return c
140772}
140773
140774// PageToken sets the optional parameter "pageToken": Specifies a page
140775// token to use. Set `pageToken` to the `nextPageToken` returned by a
140776// previous list request to get the next page of results.
140777func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
140778	c.urlParams_.Set("pageToken", pageToken)
140779	return c
140780}
140781
140782// Fields allows partial responses to be retrieved. See
140783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140784// for more information.
140785func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
140786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140787	return c
140788}
140789
140790// IfNoneMatch sets the optional parameter which makes the operation
140791// fail if the object's ETag matches the given value. This is useful for
140792// getting updates only after the object has changed since the last
140793// request. Use googleapi.IsNotModified to check whether the response
140794// error from Do is the result of In-None-Match.
140795func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
140796	c.ifNoneMatch_ = entityTag
140797	return c
140798}
140799
140800// Context sets the context to be used in this call's Do method. Any
140801// pending HTTP request will be aborted if the provided context is
140802// canceled.
140803func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
140804	c.ctx_ = ctx
140805	return c
140806}
140807
140808// Header returns an http.Header that can be modified by the caller to
140809// add HTTP headers to the request.
140810func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
140811	if c.header_ == nil {
140812		c.header_ = make(http.Header)
140813	}
140814	return c.header_
140815}
140816
140817func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
140818	reqHeaders := make(http.Header)
140819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140820	for k, v := range c.header_ {
140821		reqHeaders[k] = v
140822	}
140823	reqHeaders.Set("User-Agent", c.s.userAgent())
140824	if c.ifNoneMatch_ != "" {
140825		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140826	}
140827	var body io.Reader = nil
140828	c.urlParams_.Set("alt", alt)
140829	c.urlParams_.Set("prettyPrint", "false")
140830	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
140831	urls += "?" + c.urlParams_.Encode()
140832	req, err := http.NewRequest("GET", urls, body)
140833	if err != nil {
140834		return nil, err
140835	}
140836	req.Header = reqHeaders
140837	googleapi.Expand(req.URL, map[string]string{
140838		"project": c.project,
140839	})
140840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140841}
140842
140843// Do executes the "compute.vpnTunnels.aggregatedList" call.
140844// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
140845// non-2xx status code is an error. Response headers are in either
140846// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
140847// returned at all) in error.(*googleapi.Error).Header. Use
140848// googleapi.IsNotModified to check whether the returned error was
140849// because http.StatusNotModified was returned.
140850func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
140851	gensupport.SetOptions(c.urlParams_, opts...)
140852	res, err := c.doRequest("json")
140853	if res != nil && res.StatusCode == http.StatusNotModified {
140854		if res.Body != nil {
140855			res.Body.Close()
140856		}
140857		return nil, &googleapi.Error{
140858			Code:   res.StatusCode,
140859			Header: res.Header,
140860		}
140861	}
140862	if err != nil {
140863		return nil, err
140864	}
140865	defer googleapi.CloseBody(res)
140866	if err := googleapi.CheckResponse(res); err != nil {
140867		return nil, err
140868	}
140869	ret := &VpnTunnelAggregatedList{
140870		ServerResponse: googleapi.ServerResponse{
140871			Header:         res.Header,
140872			HTTPStatusCode: res.StatusCode,
140873		},
140874	}
140875	target := &ret
140876	if err := gensupport.DecodeResponse(target, res); err != nil {
140877		return nil, err
140878	}
140879	return ret, nil
140880	// {
140881	//   "description": "Retrieves an aggregated list of VPN tunnels.",
140882	//   "httpMethod": "GET",
140883	//   "id": "compute.vpnTunnels.aggregatedList",
140884	//   "parameterOrder": [
140885	//     "project"
140886	//   ],
140887	//   "parameters": {
140888	//     "filter": {
140889	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140890	//       "location": "query",
140891	//       "type": "string"
140892	//     },
140893	//     "includeAllScopes": {
140894	//       "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.",
140895	//       "location": "query",
140896	//       "type": "boolean"
140897	//     },
140898	//     "maxResults": {
140899	//       "default": "500",
140900	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140901	//       "format": "uint32",
140902	//       "location": "query",
140903	//       "minimum": "0",
140904	//       "type": "integer"
140905	//     },
140906	//     "orderBy": {
140907	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140908	//       "location": "query",
140909	//       "type": "string"
140910	//     },
140911	//     "pageToken": {
140912	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140913	//       "location": "query",
140914	//       "type": "string"
140915	//     },
140916	//     "project": {
140917	//       "description": "Project ID for this request.",
140918	//       "location": "path",
140919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140920	//       "required": true,
140921	//       "type": "string"
140922	//     }
140923	//   },
140924	//   "path": "{project}/aggregated/vpnTunnels",
140925	//   "response": {
140926	//     "$ref": "VpnTunnelAggregatedList"
140927	//   },
140928	//   "scopes": [
140929	//     "https://www.googleapis.com/auth/cloud-platform",
140930	//     "https://www.googleapis.com/auth/compute",
140931	//     "https://www.googleapis.com/auth/compute.readonly"
140932	//   ]
140933	// }
140934
140935}
140936
140937// Pages invokes f for each page of results.
140938// A non-nil error returned from f will halt the iteration.
140939// The provided context supersedes any context provided to the Context method.
140940func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
140941	c.ctx_ = ctx
140942	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140943	for {
140944		x, err := c.Do()
140945		if err != nil {
140946			return err
140947		}
140948		if err := f(x); err != nil {
140949			return err
140950		}
140951		if x.NextPageToken == "" {
140952			return nil
140953		}
140954		c.PageToken(x.NextPageToken)
140955	}
140956}
140957
140958// method id "compute.vpnTunnels.delete":
140959
140960type VpnTunnelsDeleteCall struct {
140961	s          *Service
140962	project    string
140963	region     string
140964	vpnTunnel  string
140965	urlParams_ gensupport.URLParams
140966	ctx_       context.Context
140967	header_    http.Header
140968}
140969
140970// Delete: Deletes the specified VpnTunnel resource.
140971func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
140972	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140973	c.project = project
140974	c.region = region
140975	c.vpnTunnel = vpnTunnel
140976	return c
140977}
140978
140979// RequestId sets the optional parameter "requestId": An optional
140980// request ID to identify requests. Specify a unique request ID so that
140981// if you must retry your request, the server will know to ignore the
140982// request if it has already been completed.
140983//
140984// For example, consider a situation where you make an initial request
140985// and the request times out. If you make the request again with the
140986// same request ID, the server can check if original operation with the
140987// same request ID was received, and if so, will ignore the second
140988// request. This prevents clients from accidentally creating duplicate
140989// commitments.
140990//
140991// The request ID must be a valid UUID with the exception that zero UUID
140992// is not supported (00000000-0000-0000-0000-000000000000).
140993func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
140994	c.urlParams_.Set("requestId", requestId)
140995	return c
140996}
140997
140998// Fields allows partial responses to be retrieved. See
140999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141000// for more information.
141001func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
141002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141003	return c
141004}
141005
141006// Context sets the context to be used in this call's Do method. Any
141007// pending HTTP request will be aborted if the provided context is
141008// canceled.
141009func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
141010	c.ctx_ = ctx
141011	return c
141012}
141013
141014// Header returns an http.Header that can be modified by the caller to
141015// add HTTP headers to the request.
141016func (c *VpnTunnelsDeleteCall) Header() http.Header {
141017	if c.header_ == nil {
141018		c.header_ = make(http.Header)
141019	}
141020	return c.header_
141021}
141022
141023func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
141024	reqHeaders := make(http.Header)
141025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141026	for k, v := range c.header_ {
141027		reqHeaders[k] = v
141028	}
141029	reqHeaders.Set("User-Agent", c.s.userAgent())
141030	var body io.Reader = nil
141031	c.urlParams_.Set("alt", alt)
141032	c.urlParams_.Set("prettyPrint", "false")
141033	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
141034	urls += "?" + c.urlParams_.Encode()
141035	req, err := http.NewRequest("DELETE", urls, body)
141036	if err != nil {
141037		return nil, err
141038	}
141039	req.Header = reqHeaders
141040	googleapi.Expand(req.URL, map[string]string{
141041		"project":   c.project,
141042		"region":    c.region,
141043		"vpnTunnel": c.vpnTunnel,
141044	})
141045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141046}
141047
141048// Do executes the "compute.vpnTunnels.delete" call.
141049// Exactly one of *Operation or error will be non-nil. Any non-2xx
141050// status code is an error. Response headers are in either
141051// *Operation.ServerResponse.Header or (if a response was returned at
141052// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141053// to check whether the returned error was because
141054// http.StatusNotModified was returned.
141055func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141056	gensupport.SetOptions(c.urlParams_, opts...)
141057	res, err := c.doRequest("json")
141058	if res != nil && res.StatusCode == http.StatusNotModified {
141059		if res.Body != nil {
141060			res.Body.Close()
141061		}
141062		return nil, &googleapi.Error{
141063			Code:   res.StatusCode,
141064			Header: res.Header,
141065		}
141066	}
141067	if err != nil {
141068		return nil, err
141069	}
141070	defer googleapi.CloseBody(res)
141071	if err := googleapi.CheckResponse(res); err != nil {
141072		return nil, err
141073	}
141074	ret := &Operation{
141075		ServerResponse: googleapi.ServerResponse{
141076			Header:         res.Header,
141077			HTTPStatusCode: res.StatusCode,
141078		},
141079	}
141080	target := &ret
141081	if err := gensupport.DecodeResponse(target, res); err != nil {
141082		return nil, err
141083	}
141084	return ret, nil
141085	// {
141086	//   "description": "Deletes the specified VpnTunnel resource.",
141087	//   "httpMethod": "DELETE",
141088	//   "id": "compute.vpnTunnels.delete",
141089	//   "parameterOrder": [
141090	//     "project",
141091	//     "region",
141092	//     "vpnTunnel"
141093	//   ],
141094	//   "parameters": {
141095	//     "project": {
141096	//       "description": "Project ID for this request.",
141097	//       "location": "path",
141098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141099	//       "required": true,
141100	//       "type": "string"
141101	//     },
141102	//     "region": {
141103	//       "description": "Name of the region for this request.",
141104	//       "location": "path",
141105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141106	//       "required": true,
141107	//       "type": "string"
141108	//     },
141109	//     "requestId": {
141110	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141111	//       "location": "query",
141112	//       "type": "string"
141113	//     },
141114	//     "vpnTunnel": {
141115	//       "description": "Name of the VpnTunnel resource to delete.",
141116	//       "location": "path",
141117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141118	//       "required": true,
141119	//       "type": "string"
141120	//     }
141121	//   },
141122	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
141123	//   "response": {
141124	//     "$ref": "Operation"
141125	//   },
141126	//   "scopes": [
141127	//     "https://www.googleapis.com/auth/cloud-platform",
141128	//     "https://www.googleapis.com/auth/compute"
141129	//   ]
141130	// }
141131
141132}
141133
141134// method id "compute.vpnTunnels.get":
141135
141136type VpnTunnelsGetCall struct {
141137	s            *Service
141138	project      string
141139	region       string
141140	vpnTunnel    string
141141	urlParams_   gensupport.URLParams
141142	ifNoneMatch_ string
141143	ctx_         context.Context
141144	header_      http.Header
141145}
141146
141147// Get: Returns the specified VpnTunnel resource. Gets a list of
141148// available VPN tunnels by making a list() request.
141149func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
141150	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141151	c.project = project
141152	c.region = region
141153	c.vpnTunnel = vpnTunnel
141154	return c
141155}
141156
141157// Fields allows partial responses to be retrieved. See
141158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141159// for more information.
141160func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
141161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141162	return c
141163}
141164
141165// IfNoneMatch sets the optional parameter which makes the operation
141166// fail if the object's ETag matches the given value. This is useful for
141167// getting updates only after the object has changed since the last
141168// request. Use googleapi.IsNotModified to check whether the response
141169// error from Do is the result of In-None-Match.
141170func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
141171	c.ifNoneMatch_ = entityTag
141172	return c
141173}
141174
141175// Context sets the context to be used in this call's Do method. Any
141176// pending HTTP request will be aborted if the provided context is
141177// canceled.
141178func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
141179	c.ctx_ = ctx
141180	return c
141181}
141182
141183// Header returns an http.Header that can be modified by the caller to
141184// add HTTP headers to the request.
141185func (c *VpnTunnelsGetCall) Header() http.Header {
141186	if c.header_ == nil {
141187		c.header_ = make(http.Header)
141188	}
141189	return c.header_
141190}
141191
141192func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
141193	reqHeaders := make(http.Header)
141194	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141195	for k, v := range c.header_ {
141196		reqHeaders[k] = v
141197	}
141198	reqHeaders.Set("User-Agent", c.s.userAgent())
141199	if c.ifNoneMatch_ != "" {
141200		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141201	}
141202	var body io.Reader = nil
141203	c.urlParams_.Set("alt", alt)
141204	c.urlParams_.Set("prettyPrint", "false")
141205	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
141206	urls += "?" + c.urlParams_.Encode()
141207	req, err := http.NewRequest("GET", urls, body)
141208	if err != nil {
141209		return nil, err
141210	}
141211	req.Header = reqHeaders
141212	googleapi.Expand(req.URL, map[string]string{
141213		"project":   c.project,
141214		"region":    c.region,
141215		"vpnTunnel": c.vpnTunnel,
141216	})
141217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141218}
141219
141220// Do executes the "compute.vpnTunnels.get" call.
141221// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
141222// status code is an error. Response headers are in either
141223// *VpnTunnel.ServerResponse.Header or (if a response was returned at
141224// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141225// to check whether the returned error was because
141226// http.StatusNotModified was returned.
141227func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
141228	gensupport.SetOptions(c.urlParams_, opts...)
141229	res, err := c.doRequest("json")
141230	if res != nil && res.StatusCode == http.StatusNotModified {
141231		if res.Body != nil {
141232			res.Body.Close()
141233		}
141234		return nil, &googleapi.Error{
141235			Code:   res.StatusCode,
141236			Header: res.Header,
141237		}
141238	}
141239	if err != nil {
141240		return nil, err
141241	}
141242	defer googleapi.CloseBody(res)
141243	if err := googleapi.CheckResponse(res); err != nil {
141244		return nil, err
141245	}
141246	ret := &VpnTunnel{
141247		ServerResponse: googleapi.ServerResponse{
141248			Header:         res.Header,
141249			HTTPStatusCode: res.StatusCode,
141250		},
141251	}
141252	target := &ret
141253	if err := gensupport.DecodeResponse(target, res); err != nil {
141254		return nil, err
141255	}
141256	return ret, nil
141257	// {
141258	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
141259	//   "httpMethod": "GET",
141260	//   "id": "compute.vpnTunnels.get",
141261	//   "parameterOrder": [
141262	//     "project",
141263	//     "region",
141264	//     "vpnTunnel"
141265	//   ],
141266	//   "parameters": {
141267	//     "project": {
141268	//       "description": "Project ID for this request.",
141269	//       "location": "path",
141270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141271	//       "required": true,
141272	//       "type": "string"
141273	//     },
141274	//     "region": {
141275	//       "description": "Name of the region for this request.",
141276	//       "location": "path",
141277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141278	//       "required": true,
141279	//       "type": "string"
141280	//     },
141281	//     "vpnTunnel": {
141282	//       "description": "Name of the VpnTunnel resource to return.",
141283	//       "location": "path",
141284	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141285	//       "required": true,
141286	//       "type": "string"
141287	//     }
141288	//   },
141289	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
141290	//   "response": {
141291	//     "$ref": "VpnTunnel"
141292	//   },
141293	//   "scopes": [
141294	//     "https://www.googleapis.com/auth/cloud-platform",
141295	//     "https://www.googleapis.com/auth/compute",
141296	//     "https://www.googleapis.com/auth/compute.readonly"
141297	//   ]
141298	// }
141299
141300}
141301
141302// method id "compute.vpnTunnels.insert":
141303
141304type VpnTunnelsInsertCall struct {
141305	s          *Service
141306	project    string
141307	region     string
141308	vpntunnel  *VpnTunnel
141309	urlParams_ gensupport.URLParams
141310	ctx_       context.Context
141311	header_    http.Header
141312}
141313
141314// Insert: Creates a VpnTunnel resource in the specified project and
141315// region using the data included in the request.
141316func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
141317	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141318	c.project = project
141319	c.region = region
141320	c.vpntunnel = vpntunnel
141321	return c
141322}
141323
141324// RequestId sets the optional parameter "requestId": An optional
141325// request ID to identify requests. Specify a unique request ID so that
141326// if you must retry your request, the server will know to ignore the
141327// request if it has already been completed.
141328//
141329// For example, consider a situation where you make an initial request
141330// and the request times out. If you make the request again with the
141331// same request ID, the server can check if original operation with the
141332// same request ID was received, and if so, will ignore the second
141333// request. This prevents clients from accidentally creating duplicate
141334// commitments.
141335//
141336// The request ID must be a valid UUID with the exception that zero UUID
141337// is not supported (00000000-0000-0000-0000-000000000000).
141338func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
141339	c.urlParams_.Set("requestId", requestId)
141340	return c
141341}
141342
141343// Fields allows partial responses to be retrieved. See
141344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141345// for more information.
141346func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
141347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141348	return c
141349}
141350
141351// Context sets the context to be used in this call's Do method. Any
141352// pending HTTP request will be aborted if the provided context is
141353// canceled.
141354func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
141355	c.ctx_ = ctx
141356	return c
141357}
141358
141359// Header returns an http.Header that can be modified by the caller to
141360// add HTTP headers to the request.
141361func (c *VpnTunnelsInsertCall) Header() http.Header {
141362	if c.header_ == nil {
141363		c.header_ = make(http.Header)
141364	}
141365	return c.header_
141366}
141367
141368func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
141369	reqHeaders := make(http.Header)
141370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141371	for k, v := range c.header_ {
141372		reqHeaders[k] = v
141373	}
141374	reqHeaders.Set("User-Agent", c.s.userAgent())
141375	var body io.Reader = nil
141376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
141377	if err != nil {
141378		return nil, err
141379	}
141380	reqHeaders.Set("Content-Type", "application/json")
141381	c.urlParams_.Set("alt", alt)
141382	c.urlParams_.Set("prettyPrint", "false")
141383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
141384	urls += "?" + c.urlParams_.Encode()
141385	req, err := http.NewRequest("POST", urls, body)
141386	if err != nil {
141387		return nil, err
141388	}
141389	req.Header = reqHeaders
141390	googleapi.Expand(req.URL, map[string]string{
141391		"project": c.project,
141392		"region":  c.region,
141393	})
141394	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141395}
141396
141397// Do executes the "compute.vpnTunnels.insert" call.
141398// Exactly one of *Operation or error will be non-nil. Any non-2xx
141399// status code is an error. Response headers are in either
141400// *Operation.ServerResponse.Header or (if a response was returned at
141401// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141402// to check whether the returned error was because
141403// http.StatusNotModified was returned.
141404func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141405	gensupport.SetOptions(c.urlParams_, opts...)
141406	res, err := c.doRequest("json")
141407	if res != nil && res.StatusCode == http.StatusNotModified {
141408		if res.Body != nil {
141409			res.Body.Close()
141410		}
141411		return nil, &googleapi.Error{
141412			Code:   res.StatusCode,
141413			Header: res.Header,
141414		}
141415	}
141416	if err != nil {
141417		return nil, err
141418	}
141419	defer googleapi.CloseBody(res)
141420	if err := googleapi.CheckResponse(res); err != nil {
141421		return nil, err
141422	}
141423	ret := &Operation{
141424		ServerResponse: googleapi.ServerResponse{
141425			Header:         res.Header,
141426			HTTPStatusCode: res.StatusCode,
141427		},
141428	}
141429	target := &ret
141430	if err := gensupport.DecodeResponse(target, res); err != nil {
141431		return nil, err
141432	}
141433	return ret, nil
141434	// {
141435	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
141436	//   "httpMethod": "POST",
141437	//   "id": "compute.vpnTunnels.insert",
141438	//   "parameterOrder": [
141439	//     "project",
141440	//     "region"
141441	//   ],
141442	//   "parameters": {
141443	//     "project": {
141444	//       "description": "Project ID for this request.",
141445	//       "location": "path",
141446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141447	//       "required": true,
141448	//       "type": "string"
141449	//     },
141450	//     "region": {
141451	//       "description": "Name of the region for this request.",
141452	//       "location": "path",
141453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141454	//       "required": true,
141455	//       "type": "string"
141456	//     },
141457	//     "requestId": {
141458	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141459	//       "location": "query",
141460	//       "type": "string"
141461	//     }
141462	//   },
141463	//   "path": "{project}/regions/{region}/vpnTunnels",
141464	//   "request": {
141465	//     "$ref": "VpnTunnel"
141466	//   },
141467	//   "response": {
141468	//     "$ref": "Operation"
141469	//   },
141470	//   "scopes": [
141471	//     "https://www.googleapis.com/auth/cloud-platform",
141472	//     "https://www.googleapis.com/auth/compute"
141473	//   ]
141474	// }
141475
141476}
141477
141478// method id "compute.vpnTunnels.list":
141479
141480type VpnTunnelsListCall struct {
141481	s            *Service
141482	project      string
141483	region       string
141484	urlParams_   gensupport.URLParams
141485	ifNoneMatch_ string
141486	ctx_         context.Context
141487	header_      http.Header
141488}
141489
141490// List: Retrieves a list of VpnTunnel resources contained in the
141491// specified project and region.
141492func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
141493	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141494	c.project = project
141495	c.region = region
141496	return c
141497}
141498
141499// Filter sets the optional parameter "filter": A filter expression that
141500// filters resources listed in the response. The expression must specify
141501// the field name, a comparison operator, and the value that you want to
141502// use for filtering. The value must be a string, a number, or a
141503// boolean. The comparison operator must be either `=`, `!=`, `>`, or
141504// `<`.
141505//
141506// For example, if you are filtering Compute Engine instances, you can
141507// exclude instances named `example-instance` by specifying `name !=
141508// example-instance`.
141509//
141510// You can also filter nested fields. For example, you could specify
141511// `scheduling.automaticRestart = false` to include instances only if
141512// they are not scheduled for automatic restarts. You can use filtering
141513// on nested fields to filter based on resource labels.
141514//
141515// To filter on multiple expressions, provide each separate expression
141516// within parentheses. For example: ``` (scheduling.automaticRestart =
141517// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
141518// is an `AND` expression. However, you can include `AND` and `OR`
141519// expressions explicitly. For example: ``` (cpuPlatform = "Intel
141520// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
141521// (scheduling.automaticRestart = true) ```
141522func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
141523	c.urlParams_.Set("filter", filter)
141524	return c
141525}
141526
141527// MaxResults sets the optional parameter "maxResults": The maximum
141528// number of results per page that should be returned. If the number of
141529// available results is larger than `maxResults`, Compute Engine returns
141530// a `nextPageToken` that can be used to get the next page of results in
141531// subsequent list requests. Acceptable values are `0` to `500`,
141532// inclusive. (Default: `500`)
141533func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
141534	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141535	return c
141536}
141537
141538// OrderBy sets the optional parameter "orderBy": Sorts list results by
141539// a certain order. By default, results are returned in alphanumerical
141540// order based on the resource name.
141541//
141542// You can also sort results in descending order based on the creation
141543// timestamp using `orderBy="creationTimestamp desc". This sorts
141544// results based on the `creationTimestamp` field in reverse
141545// chronological order (newest result first). Use this to sort resources
141546// like operations so that the newest operation is returned
141547// first.
141548//
141549// Currently, only sorting by `name` or `creationTimestamp desc` is
141550// supported.
141551func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
141552	c.urlParams_.Set("orderBy", orderBy)
141553	return c
141554}
141555
141556// PageToken sets the optional parameter "pageToken": Specifies a page
141557// token to use. Set `pageToken` to the `nextPageToken` returned by a
141558// previous list request to get the next page of results.
141559func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
141560	c.urlParams_.Set("pageToken", pageToken)
141561	return c
141562}
141563
141564// Fields allows partial responses to be retrieved. See
141565// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141566// for more information.
141567func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
141568	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141569	return c
141570}
141571
141572// IfNoneMatch sets the optional parameter which makes the operation
141573// fail if the object's ETag matches the given value. This is useful for
141574// getting updates only after the object has changed since the last
141575// request. Use googleapi.IsNotModified to check whether the response
141576// error from Do is the result of In-None-Match.
141577func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
141578	c.ifNoneMatch_ = entityTag
141579	return c
141580}
141581
141582// Context sets the context to be used in this call's Do method. Any
141583// pending HTTP request will be aborted if the provided context is
141584// canceled.
141585func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
141586	c.ctx_ = ctx
141587	return c
141588}
141589
141590// Header returns an http.Header that can be modified by the caller to
141591// add HTTP headers to the request.
141592func (c *VpnTunnelsListCall) Header() http.Header {
141593	if c.header_ == nil {
141594		c.header_ = make(http.Header)
141595	}
141596	return c.header_
141597}
141598
141599func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
141600	reqHeaders := make(http.Header)
141601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141602	for k, v := range c.header_ {
141603		reqHeaders[k] = v
141604	}
141605	reqHeaders.Set("User-Agent", c.s.userAgent())
141606	if c.ifNoneMatch_ != "" {
141607		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141608	}
141609	var body io.Reader = nil
141610	c.urlParams_.Set("alt", alt)
141611	c.urlParams_.Set("prettyPrint", "false")
141612	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
141613	urls += "?" + c.urlParams_.Encode()
141614	req, err := http.NewRequest("GET", urls, body)
141615	if err != nil {
141616		return nil, err
141617	}
141618	req.Header = reqHeaders
141619	googleapi.Expand(req.URL, map[string]string{
141620		"project": c.project,
141621		"region":  c.region,
141622	})
141623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141624}
141625
141626// Do executes the "compute.vpnTunnels.list" call.
141627// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
141628// status code is an error. Response headers are in either
141629// *VpnTunnelList.ServerResponse.Header or (if a response was returned
141630// at all) in error.(*googleapi.Error).Header. Use
141631// googleapi.IsNotModified to check whether the returned error was
141632// because http.StatusNotModified was returned.
141633func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
141634	gensupport.SetOptions(c.urlParams_, opts...)
141635	res, err := c.doRequest("json")
141636	if res != nil && res.StatusCode == http.StatusNotModified {
141637		if res.Body != nil {
141638			res.Body.Close()
141639		}
141640		return nil, &googleapi.Error{
141641			Code:   res.StatusCode,
141642			Header: res.Header,
141643		}
141644	}
141645	if err != nil {
141646		return nil, err
141647	}
141648	defer googleapi.CloseBody(res)
141649	if err := googleapi.CheckResponse(res); err != nil {
141650		return nil, err
141651	}
141652	ret := &VpnTunnelList{
141653		ServerResponse: googleapi.ServerResponse{
141654			Header:         res.Header,
141655			HTTPStatusCode: res.StatusCode,
141656		},
141657	}
141658	target := &ret
141659	if err := gensupport.DecodeResponse(target, res); err != nil {
141660		return nil, err
141661	}
141662	return ret, nil
141663	// {
141664	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
141665	//   "httpMethod": "GET",
141666	//   "id": "compute.vpnTunnels.list",
141667	//   "parameterOrder": [
141668	//     "project",
141669	//     "region"
141670	//   ],
141671	//   "parameters": {
141672	//     "filter": {
141673	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
141674	//       "location": "query",
141675	//       "type": "string"
141676	//     },
141677	//     "maxResults": {
141678	//       "default": "500",
141679	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
141680	//       "format": "uint32",
141681	//       "location": "query",
141682	//       "minimum": "0",
141683	//       "type": "integer"
141684	//     },
141685	//     "orderBy": {
141686	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
141687	//       "location": "query",
141688	//       "type": "string"
141689	//     },
141690	//     "pageToken": {
141691	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
141692	//       "location": "query",
141693	//       "type": "string"
141694	//     },
141695	//     "project": {
141696	//       "description": "Project ID for this request.",
141697	//       "location": "path",
141698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141699	//       "required": true,
141700	//       "type": "string"
141701	//     },
141702	//     "region": {
141703	//       "description": "Name of the region for this request.",
141704	//       "location": "path",
141705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141706	//       "required": true,
141707	//       "type": "string"
141708	//     }
141709	//   },
141710	//   "path": "{project}/regions/{region}/vpnTunnels",
141711	//   "response": {
141712	//     "$ref": "VpnTunnelList"
141713	//   },
141714	//   "scopes": [
141715	//     "https://www.googleapis.com/auth/cloud-platform",
141716	//     "https://www.googleapis.com/auth/compute",
141717	//     "https://www.googleapis.com/auth/compute.readonly"
141718	//   ]
141719	// }
141720
141721}
141722
141723// Pages invokes f for each page of results.
141724// A non-nil error returned from f will halt the iteration.
141725// The provided context supersedes any context provided to the Context method.
141726func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
141727	c.ctx_ = ctx
141728	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141729	for {
141730		x, err := c.Do()
141731		if err != nil {
141732			return err
141733		}
141734		if err := f(x); err != nil {
141735			return err
141736		}
141737		if x.NextPageToken == "" {
141738			return nil
141739		}
141740		c.PageToken(x.NextPageToken)
141741	}
141742}
141743
141744// method id "compute.zoneOperations.delete":
141745
141746type ZoneOperationsDeleteCall struct {
141747	s          *Service
141748	project    string
141749	zone       string
141750	operation  string
141751	urlParams_ gensupport.URLParams
141752	ctx_       context.Context
141753	header_    http.Header
141754}
141755
141756// Delete: Deletes the specified zone-specific Operations resource.
141757// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
141758func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
141759	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141760	c.project = project
141761	c.zone = zone
141762	c.operation = operation
141763	return c
141764}
141765
141766// Fields allows partial responses to be retrieved. See
141767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141768// for more information.
141769func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
141770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141771	return c
141772}
141773
141774// Context sets the context to be used in this call's Do method. Any
141775// pending HTTP request will be aborted if the provided context is
141776// canceled.
141777func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
141778	c.ctx_ = ctx
141779	return c
141780}
141781
141782// Header returns an http.Header that can be modified by the caller to
141783// add HTTP headers to the request.
141784func (c *ZoneOperationsDeleteCall) Header() http.Header {
141785	if c.header_ == nil {
141786		c.header_ = make(http.Header)
141787	}
141788	return c.header_
141789}
141790
141791func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
141792	reqHeaders := make(http.Header)
141793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141794	for k, v := range c.header_ {
141795		reqHeaders[k] = v
141796	}
141797	reqHeaders.Set("User-Agent", c.s.userAgent())
141798	var body io.Reader = nil
141799	c.urlParams_.Set("alt", alt)
141800	c.urlParams_.Set("prettyPrint", "false")
141801	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
141802	urls += "?" + c.urlParams_.Encode()
141803	req, err := http.NewRequest("DELETE", urls, body)
141804	if err != nil {
141805		return nil, err
141806	}
141807	req.Header = reqHeaders
141808	googleapi.Expand(req.URL, map[string]string{
141809		"project":   c.project,
141810		"zone":      c.zone,
141811		"operation": c.operation,
141812	})
141813	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141814}
141815
141816// Do executes the "compute.zoneOperations.delete" call.
141817func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
141818	gensupport.SetOptions(c.urlParams_, opts...)
141819	res, err := c.doRequest("json")
141820	if err != nil {
141821		return err
141822	}
141823	defer googleapi.CloseBody(res)
141824	if err := googleapi.CheckResponse(res); err != nil {
141825		return err
141826	}
141827	return nil
141828	// {
141829	//   "description": "Deletes the specified zone-specific Operations resource.",
141830	//   "httpMethod": "DELETE",
141831	//   "id": "compute.zoneOperations.delete",
141832	//   "parameterOrder": [
141833	//     "project",
141834	//     "zone",
141835	//     "operation"
141836	//   ],
141837	//   "parameters": {
141838	//     "operation": {
141839	//       "description": "Name of the Operations resource to delete.",
141840	//       "location": "path",
141841	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141842	//       "required": true,
141843	//       "type": "string"
141844	//     },
141845	//     "project": {
141846	//       "description": "Project ID for this request.",
141847	//       "location": "path",
141848	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141849	//       "required": true,
141850	//       "type": "string"
141851	//     },
141852	//     "zone": {
141853	//       "description": "Name of the zone for this request.",
141854	//       "location": "path",
141855	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141856	//       "required": true,
141857	//       "type": "string"
141858	//     }
141859	//   },
141860	//   "path": "{project}/zones/{zone}/operations/{operation}",
141861	//   "scopes": [
141862	//     "https://www.googleapis.com/auth/cloud-platform",
141863	//     "https://www.googleapis.com/auth/compute"
141864	//   ]
141865	// }
141866
141867}
141868
141869// method id "compute.zoneOperations.get":
141870
141871type ZoneOperationsGetCall struct {
141872	s            *Service
141873	project      string
141874	zone         string
141875	operation    string
141876	urlParams_   gensupport.URLParams
141877	ifNoneMatch_ string
141878	ctx_         context.Context
141879	header_      http.Header
141880}
141881
141882// Get: Retrieves the specified zone-specific Operations resource.
141883// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
141884func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
141885	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141886	c.project = project
141887	c.zone = zone
141888	c.operation = operation
141889	return c
141890}
141891
141892// Fields allows partial responses to be retrieved. See
141893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141894// for more information.
141895func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
141896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141897	return c
141898}
141899
141900// IfNoneMatch sets the optional parameter which makes the operation
141901// fail if the object's ETag matches the given value. This is useful for
141902// getting updates only after the object has changed since the last
141903// request. Use googleapi.IsNotModified to check whether the response
141904// error from Do is the result of In-None-Match.
141905func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
141906	c.ifNoneMatch_ = entityTag
141907	return c
141908}
141909
141910// Context sets the context to be used in this call's Do method. Any
141911// pending HTTP request will be aborted if the provided context is
141912// canceled.
141913func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
141914	c.ctx_ = ctx
141915	return c
141916}
141917
141918// Header returns an http.Header that can be modified by the caller to
141919// add HTTP headers to the request.
141920func (c *ZoneOperationsGetCall) Header() http.Header {
141921	if c.header_ == nil {
141922		c.header_ = make(http.Header)
141923	}
141924	return c.header_
141925}
141926
141927func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
141928	reqHeaders := make(http.Header)
141929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141930	for k, v := range c.header_ {
141931		reqHeaders[k] = v
141932	}
141933	reqHeaders.Set("User-Agent", c.s.userAgent())
141934	if c.ifNoneMatch_ != "" {
141935		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141936	}
141937	var body io.Reader = nil
141938	c.urlParams_.Set("alt", alt)
141939	c.urlParams_.Set("prettyPrint", "false")
141940	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
141941	urls += "?" + c.urlParams_.Encode()
141942	req, err := http.NewRequest("GET", urls, body)
141943	if err != nil {
141944		return nil, err
141945	}
141946	req.Header = reqHeaders
141947	googleapi.Expand(req.URL, map[string]string{
141948		"project":   c.project,
141949		"zone":      c.zone,
141950		"operation": c.operation,
141951	})
141952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141953}
141954
141955// Do executes the "compute.zoneOperations.get" call.
141956// Exactly one of *Operation or error will be non-nil. Any non-2xx
141957// status code is an error. Response headers are in either
141958// *Operation.ServerResponse.Header or (if a response was returned at
141959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141960// to check whether the returned error was because
141961// http.StatusNotModified was returned.
141962func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141963	gensupport.SetOptions(c.urlParams_, opts...)
141964	res, err := c.doRequest("json")
141965	if res != nil && res.StatusCode == http.StatusNotModified {
141966		if res.Body != nil {
141967			res.Body.Close()
141968		}
141969		return nil, &googleapi.Error{
141970			Code:   res.StatusCode,
141971			Header: res.Header,
141972		}
141973	}
141974	if err != nil {
141975		return nil, err
141976	}
141977	defer googleapi.CloseBody(res)
141978	if err := googleapi.CheckResponse(res); err != nil {
141979		return nil, err
141980	}
141981	ret := &Operation{
141982		ServerResponse: googleapi.ServerResponse{
141983			Header:         res.Header,
141984			HTTPStatusCode: res.StatusCode,
141985		},
141986	}
141987	target := &ret
141988	if err := gensupport.DecodeResponse(target, res); err != nil {
141989		return nil, err
141990	}
141991	return ret, nil
141992	// {
141993	//   "description": "Retrieves the specified zone-specific Operations resource.",
141994	//   "httpMethod": "GET",
141995	//   "id": "compute.zoneOperations.get",
141996	//   "parameterOrder": [
141997	//     "project",
141998	//     "zone",
141999	//     "operation"
142000	//   ],
142001	//   "parameters": {
142002	//     "operation": {
142003	//       "description": "Name of the Operations resource to return.",
142004	//       "location": "path",
142005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142006	//       "required": true,
142007	//       "type": "string"
142008	//     },
142009	//     "project": {
142010	//       "description": "Project ID for this request.",
142011	//       "location": "path",
142012	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142013	//       "required": true,
142014	//       "type": "string"
142015	//     },
142016	//     "zone": {
142017	//       "description": "Name of the zone for this request.",
142018	//       "location": "path",
142019	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142020	//       "required": true,
142021	//       "type": "string"
142022	//     }
142023	//   },
142024	//   "path": "{project}/zones/{zone}/operations/{operation}",
142025	//   "response": {
142026	//     "$ref": "Operation"
142027	//   },
142028	//   "scopes": [
142029	//     "https://www.googleapis.com/auth/cloud-platform",
142030	//     "https://www.googleapis.com/auth/compute",
142031	//     "https://www.googleapis.com/auth/compute.readonly"
142032	//   ]
142033	// }
142034
142035}
142036
142037// method id "compute.zoneOperations.list":
142038
142039type ZoneOperationsListCall struct {
142040	s            *Service
142041	project      string
142042	zone         string
142043	urlParams_   gensupport.URLParams
142044	ifNoneMatch_ string
142045	ctx_         context.Context
142046	header_      http.Header
142047}
142048
142049// List: Retrieves a list of Operation resources contained within the
142050// specified zone.
142051// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
142052func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
142053	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142054	c.project = project
142055	c.zone = zone
142056	return c
142057}
142058
142059// Filter sets the optional parameter "filter": A filter expression that
142060// filters resources listed in the response. The expression must specify
142061// the field name, a comparison operator, and the value that you want to
142062// use for filtering. The value must be a string, a number, or a
142063// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142064// `<`.
142065//
142066// For example, if you are filtering Compute Engine instances, you can
142067// exclude instances named `example-instance` by specifying `name !=
142068// example-instance`.
142069//
142070// You can also filter nested fields. For example, you could specify
142071// `scheduling.automaticRestart = false` to include instances only if
142072// they are not scheduled for automatic restarts. You can use filtering
142073// on nested fields to filter based on resource labels.
142074//
142075// To filter on multiple expressions, provide each separate expression
142076// within parentheses. For example: ``` (scheduling.automaticRestart =
142077// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142078// is an `AND` expression. However, you can include `AND` and `OR`
142079// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142080// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142081// (scheduling.automaticRestart = true) ```
142082func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
142083	c.urlParams_.Set("filter", filter)
142084	return c
142085}
142086
142087// MaxResults sets the optional parameter "maxResults": The maximum
142088// number of results per page that should be returned. If the number of
142089// available results is larger than `maxResults`, Compute Engine returns
142090// a `nextPageToken` that can be used to get the next page of results in
142091// subsequent list requests. Acceptable values are `0` to `500`,
142092// inclusive. (Default: `500`)
142093func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
142094	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142095	return c
142096}
142097
142098// OrderBy sets the optional parameter "orderBy": Sorts list results by
142099// a certain order. By default, results are returned in alphanumerical
142100// order based on the resource name.
142101//
142102// You can also sort results in descending order based on the creation
142103// timestamp using `orderBy="creationTimestamp desc". This sorts
142104// results based on the `creationTimestamp` field in reverse
142105// chronological order (newest result first). Use this to sort resources
142106// like operations so that the newest operation is returned
142107// first.
142108//
142109// Currently, only sorting by `name` or `creationTimestamp desc` is
142110// supported.
142111func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
142112	c.urlParams_.Set("orderBy", orderBy)
142113	return c
142114}
142115
142116// PageToken sets the optional parameter "pageToken": Specifies a page
142117// token to use. Set `pageToken` to the `nextPageToken` returned by a
142118// previous list request to get the next page of results.
142119func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
142120	c.urlParams_.Set("pageToken", pageToken)
142121	return c
142122}
142123
142124// Fields allows partial responses to be retrieved. See
142125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142126// for more information.
142127func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
142128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142129	return c
142130}
142131
142132// IfNoneMatch sets the optional parameter which makes the operation
142133// fail if the object's ETag matches the given value. This is useful for
142134// getting updates only after the object has changed since the last
142135// request. Use googleapi.IsNotModified to check whether the response
142136// error from Do is the result of In-None-Match.
142137func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
142138	c.ifNoneMatch_ = entityTag
142139	return c
142140}
142141
142142// Context sets the context to be used in this call's Do method. Any
142143// pending HTTP request will be aborted if the provided context is
142144// canceled.
142145func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
142146	c.ctx_ = ctx
142147	return c
142148}
142149
142150// Header returns an http.Header that can be modified by the caller to
142151// add HTTP headers to the request.
142152func (c *ZoneOperationsListCall) Header() http.Header {
142153	if c.header_ == nil {
142154		c.header_ = make(http.Header)
142155	}
142156	return c.header_
142157}
142158
142159func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
142160	reqHeaders := make(http.Header)
142161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142162	for k, v := range c.header_ {
142163		reqHeaders[k] = v
142164	}
142165	reqHeaders.Set("User-Agent", c.s.userAgent())
142166	if c.ifNoneMatch_ != "" {
142167		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142168	}
142169	var body io.Reader = nil
142170	c.urlParams_.Set("alt", alt)
142171	c.urlParams_.Set("prettyPrint", "false")
142172	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
142173	urls += "?" + c.urlParams_.Encode()
142174	req, err := http.NewRequest("GET", urls, body)
142175	if err != nil {
142176		return nil, err
142177	}
142178	req.Header = reqHeaders
142179	googleapi.Expand(req.URL, map[string]string{
142180		"project": c.project,
142181		"zone":    c.zone,
142182	})
142183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142184}
142185
142186// Do executes the "compute.zoneOperations.list" call.
142187// Exactly one of *OperationList or error will be non-nil. Any non-2xx
142188// status code is an error. Response headers are in either
142189// *OperationList.ServerResponse.Header or (if a response was returned
142190// at all) in error.(*googleapi.Error).Header. Use
142191// googleapi.IsNotModified to check whether the returned error was
142192// because http.StatusNotModified was returned.
142193func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
142194	gensupport.SetOptions(c.urlParams_, opts...)
142195	res, err := c.doRequest("json")
142196	if res != nil && res.StatusCode == http.StatusNotModified {
142197		if res.Body != nil {
142198			res.Body.Close()
142199		}
142200		return nil, &googleapi.Error{
142201			Code:   res.StatusCode,
142202			Header: res.Header,
142203		}
142204	}
142205	if err != nil {
142206		return nil, err
142207	}
142208	defer googleapi.CloseBody(res)
142209	if err := googleapi.CheckResponse(res); err != nil {
142210		return nil, err
142211	}
142212	ret := &OperationList{
142213		ServerResponse: googleapi.ServerResponse{
142214			Header:         res.Header,
142215			HTTPStatusCode: res.StatusCode,
142216		},
142217	}
142218	target := &ret
142219	if err := gensupport.DecodeResponse(target, res); err != nil {
142220		return nil, err
142221	}
142222	return ret, nil
142223	// {
142224	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
142225	//   "httpMethod": "GET",
142226	//   "id": "compute.zoneOperations.list",
142227	//   "parameterOrder": [
142228	//     "project",
142229	//     "zone"
142230	//   ],
142231	//   "parameters": {
142232	//     "filter": {
142233	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
142234	//       "location": "query",
142235	//       "type": "string"
142236	//     },
142237	//     "maxResults": {
142238	//       "default": "500",
142239	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142240	//       "format": "uint32",
142241	//       "location": "query",
142242	//       "minimum": "0",
142243	//       "type": "integer"
142244	//     },
142245	//     "orderBy": {
142246	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
142247	//       "location": "query",
142248	//       "type": "string"
142249	//     },
142250	//     "pageToken": {
142251	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142252	//       "location": "query",
142253	//       "type": "string"
142254	//     },
142255	//     "project": {
142256	//       "description": "Project ID for this request.",
142257	//       "location": "path",
142258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142259	//       "required": true,
142260	//       "type": "string"
142261	//     },
142262	//     "zone": {
142263	//       "description": "Name of the zone for request.",
142264	//       "location": "path",
142265	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142266	//       "required": true,
142267	//       "type": "string"
142268	//     }
142269	//   },
142270	//   "path": "{project}/zones/{zone}/operations",
142271	//   "response": {
142272	//     "$ref": "OperationList"
142273	//   },
142274	//   "scopes": [
142275	//     "https://www.googleapis.com/auth/cloud-platform",
142276	//     "https://www.googleapis.com/auth/compute",
142277	//     "https://www.googleapis.com/auth/compute.readonly"
142278	//   ]
142279	// }
142280
142281}
142282
142283// Pages invokes f for each page of results.
142284// A non-nil error returned from f will halt the iteration.
142285// The provided context supersedes any context provided to the Context method.
142286func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
142287	c.ctx_ = ctx
142288	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142289	for {
142290		x, err := c.Do()
142291		if err != nil {
142292			return err
142293		}
142294		if err := f(x); err != nil {
142295			return err
142296		}
142297		if x.NextPageToken == "" {
142298			return nil
142299		}
142300		c.PageToken(x.NextPageToken)
142301	}
142302}
142303
142304// method id "compute.zoneOperations.wait":
142305
142306type ZoneOperationsWaitCall struct {
142307	s          *Service
142308	project    string
142309	zone       string
142310	operation  string
142311	urlParams_ gensupport.URLParams
142312	ctx_       context.Context
142313	header_    http.Header
142314}
142315
142316// Wait: Waits for the specified Operation resource to return as `DONE`
142317// or for the request to approach the 2 minute deadline, and retrieves
142318// the specified Operation resource. This method differs from the `GET`
142319// method in that it waits for no more than the default deadline (2
142320// minutes) and then returns the current state of the operation, which
142321// might be `DONE` or still in progress.
142322//
142323// This method is called on a best-effort basis. Specifically:
142324// - In uncommon cases, when the server is overloaded, the request might
142325// return before the default deadline is reached, or might return after
142326// zero seconds.
142327// - If the default deadline is reached, there is no guarantee that the
142328// operation is actually done when the method returns. Be prepared to
142329// retry if the operation is not `DONE`.
142330func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
142331	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142332	c.project = project
142333	c.zone = zone
142334	c.operation = operation
142335	return c
142336}
142337
142338// Fields allows partial responses to be retrieved. See
142339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142340// for more information.
142341func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
142342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142343	return c
142344}
142345
142346// Context sets the context to be used in this call's Do method. Any
142347// pending HTTP request will be aborted if the provided context is
142348// canceled.
142349func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
142350	c.ctx_ = ctx
142351	return c
142352}
142353
142354// Header returns an http.Header that can be modified by the caller to
142355// add HTTP headers to the request.
142356func (c *ZoneOperationsWaitCall) Header() http.Header {
142357	if c.header_ == nil {
142358		c.header_ = make(http.Header)
142359	}
142360	return c.header_
142361}
142362
142363func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
142364	reqHeaders := make(http.Header)
142365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142366	for k, v := range c.header_ {
142367		reqHeaders[k] = v
142368	}
142369	reqHeaders.Set("User-Agent", c.s.userAgent())
142370	var body io.Reader = nil
142371	c.urlParams_.Set("alt", alt)
142372	c.urlParams_.Set("prettyPrint", "false")
142373	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}/wait")
142374	urls += "?" + c.urlParams_.Encode()
142375	req, err := http.NewRequest("POST", urls, body)
142376	if err != nil {
142377		return nil, err
142378	}
142379	req.Header = reqHeaders
142380	googleapi.Expand(req.URL, map[string]string{
142381		"project":   c.project,
142382		"zone":      c.zone,
142383		"operation": c.operation,
142384	})
142385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142386}
142387
142388// Do executes the "compute.zoneOperations.wait" call.
142389// Exactly one of *Operation or error will be non-nil. Any non-2xx
142390// status code is an error. Response headers are in either
142391// *Operation.ServerResponse.Header or (if a response was returned at
142392// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142393// to check whether the returned error was because
142394// http.StatusNotModified was returned.
142395func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142396	gensupport.SetOptions(c.urlParams_, opts...)
142397	res, err := c.doRequest("json")
142398	if res != nil && res.StatusCode == http.StatusNotModified {
142399		if res.Body != nil {
142400			res.Body.Close()
142401		}
142402		return nil, &googleapi.Error{
142403			Code:   res.StatusCode,
142404			Header: res.Header,
142405		}
142406	}
142407	if err != nil {
142408		return nil, err
142409	}
142410	defer googleapi.CloseBody(res)
142411	if err := googleapi.CheckResponse(res); err != nil {
142412		return nil, err
142413	}
142414	ret := &Operation{
142415		ServerResponse: googleapi.ServerResponse{
142416			Header:         res.Header,
142417			HTTPStatusCode: res.StatusCode,
142418		},
142419	}
142420	target := &ret
142421	if err := gensupport.DecodeResponse(target, res); err != nil {
142422		return nil, err
142423	}
142424	return ret, nil
142425	// {
142426	//   "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`.",
142427	//   "httpMethod": "POST",
142428	//   "id": "compute.zoneOperations.wait",
142429	//   "parameterOrder": [
142430	//     "project",
142431	//     "zone",
142432	//     "operation"
142433	//   ],
142434	//   "parameters": {
142435	//     "operation": {
142436	//       "description": "Name of the Operations resource to return.",
142437	//       "location": "path",
142438	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142439	//       "required": true,
142440	//       "type": "string"
142441	//     },
142442	//     "project": {
142443	//       "description": "Project ID for this request.",
142444	//       "location": "path",
142445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142446	//       "required": true,
142447	//       "type": "string"
142448	//     },
142449	//     "zone": {
142450	//       "description": "Name of the zone for this request.",
142451	//       "location": "path",
142452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142453	//       "required": true,
142454	//       "type": "string"
142455	//     }
142456	//   },
142457	//   "path": "{project}/zones/{zone}/operations/{operation}/wait",
142458	//   "response": {
142459	//     "$ref": "Operation"
142460	//   },
142461	//   "scopes": [
142462	//     "https://www.googleapis.com/auth/cloud-platform",
142463	//     "https://www.googleapis.com/auth/compute",
142464	//     "https://www.googleapis.com/auth/compute.readonly"
142465	//   ]
142466	// }
142467
142468}
142469
142470// method id "compute.zones.get":
142471
142472type ZonesGetCall struct {
142473	s            *Service
142474	project      string
142475	zone         string
142476	urlParams_   gensupport.URLParams
142477	ifNoneMatch_ string
142478	ctx_         context.Context
142479	header_      http.Header
142480}
142481
142482// Get: Returns the specified Zone resource. Gets a list of available
142483// zones by making a list() request.
142484// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
142485func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
142486	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142487	c.project = project
142488	c.zone = zone
142489	return c
142490}
142491
142492// Fields allows partial responses to be retrieved. See
142493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142494// for more information.
142495func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
142496	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142497	return c
142498}
142499
142500// IfNoneMatch sets the optional parameter which makes the operation
142501// fail if the object's ETag matches the given value. This is useful for
142502// getting updates only after the object has changed since the last
142503// request. Use googleapi.IsNotModified to check whether the response
142504// error from Do is the result of In-None-Match.
142505func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
142506	c.ifNoneMatch_ = entityTag
142507	return c
142508}
142509
142510// Context sets the context to be used in this call's Do method. Any
142511// pending HTTP request will be aborted if the provided context is
142512// canceled.
142513func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
142514	c.ctx_ = ctx
142515	return c
142516}
142517
142518// Header returns an http.Header that can be modified by the caller to
142519// add HTTP headers to the request.
142520func (c *ZonesGetCall) Header() http.Header {
142521	if c.header_ == nil {
142522		c.header_ = make(http.Header)
142523	}
142524	return c.header_
142525}
142526
142527func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
142528	reqHeaders := make(http.Header)
142529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142530	for k, v := range c.header_ {
142531		reqHeaders[k] = v
142532	}
142533	reqHeaders.Set("User-Agent", c.s.userAgent())
142534	if c.ifNoneMatch_ != "" {
142535		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142536	}
142537	var body io.Reader = nil
142538	c.urlParams_.Set("alt", alt)
142539	c.urlParams_.Set("prettyPrint", "false")
142540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
142541	urls += "?" + c.urlParams_.Encode()
142542	req, err := http.NewRequest("GET", urls, body)
142543	if err != nil {
142544		return nil, err
142545	}
142546	req.Header = reqHeaders
142547	googleapi.Expand(req.URL, map[string]string{
142548		"project": c.project,
142549		"zone":    c.zone,
142550	})
142551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142552}
142553
142554// Do executes the "compute.zones.get" call.
142555// Exactly one of *Zone or error will be non-nil. Any non-2xx status
142556// code is an error. Response headers are in either
142557// *Zone.ServerResponse.Header or (if a response was returned at all) in
142558// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
142559// whether the returned error was because http.StatusNotModified was
142560// returned.
142561func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
142562	gensupport.SetOptions(c.urlParams_, opts...)
142563	res, err := c.doRequest("json")
142564	if res != nil && res.StatusCode == http.StatusNotModified {
142565		if res.Body != nil {
142566			res.Body.Close()
142567		}
142568		return nil, &googleapi.Error{
142569			Code:   res.StatusCode,
142570			Header: res.Header,
142571		}
142572	}
142573	if err != nil {
142574		return nil, err
142575	}
142576	defer googleapi.CloseBody(res)
142577	if err := googleapi.CheckResponse(res); err != nil {
142578		return nil, err
142579	}
142580	ret := &Zone{
142581		ServerResponse: googleapi.ServerResponse{
142582			Header:         res.Header,
142583			HTTPStatusCode: res.StatusCode,
142584		},
142585	}
142586	target := &ret
142587	if err := gensupport.DecodeResponse(target, res); err != nil {
142588		return nil, err
142589	}
142590	return ret, nil
142591	// {
142592	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
142593	//   "httpMethod": "GET",
142594	//   "id": "compute.zones.get",
142595	//   "parameterOrder": [
142596	//     "project",
142597	//     "zone"
142598	//   ],
142599	//   "parameters": {
142600	//     "project": {
142601	//       "description": "Project ID for this request.",
142602	//       "location": "path",
142603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142604	//       "required": true,
142605	//       "type": "string"
142606	//     },
142607	//     "zone": {
142608	//       "description": "Name of the zone resource to return.",
142609	//       "location": "path",
142610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142611	//       "required": true,
142612	//       "type": "string"
142613	//     }
142614	//   },
142615	//   "path": "{project}/zones/{zone}",
142616	//   "response": {
142617	//     "$ref": "Zone"
142618	//   },
142619	//   "scopes": [
142620	//     "https://www.googleapis.com/auth/cloud-platform",
142621	//     "https://www.googleapis.com/auth/compute",
142622	//     "https://www.googleapis.com/auth/compute.readonly"
142623	//   ]
142624	// }
142625
142626}
142627
142628// method id "compute.zones.list":
142629
142630type ZonesListCall struct {
142631	s            *Service
142632	project      string
142633	urlParams_   gensupport.URLParams
142634	ifNoneMatch_ string
142635	ctx_         context.Context
142636	header_      http.Header
142637}
142638
142639// List: Retrieves the list of Zone resources available to the specified
142640// project.
142641// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
142642func (r *ZonesService) List(project string) *ZonesListCall {
142643	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142644	c.project = project
142645	return c
142646}
142647
142648// Filter sets the optional parameter "filter": A filter expression that
142649// filters resources listed in the response. The expression must specify
142650// the field name, a comparison operator, and the value that you want to
142651// use for filtering. The value must be a string, a number, or a
142652// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142653// `<`.
142654//
142655// For example, if you are filtering Compute Engine instances, you can
142656// exclude instances named `example-instance` by specifying `name !=
142657// example-instance`.
142658//
142659// You can also filter nested fields. For example, you could specify
142660// `scheduling.automaticRestart = false` to include instances only if
142661// they are not scheduled for automatic restarts. You can use filtering
142662// on nested fields to filter based on resource labels.
142663//
142664// To filter on multiple expressions, provide each separate expression
142665// within parentheses. For example: ``` (scheduling.automaticRestart =
142666// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142667// is an `AND` expression. However, you can include `AND` and `OR`
142668// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142669// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142670// (scheduling.automaticRestart = true) ```
142671func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
142672	c.urlParams_.Set("filter", filter)
142673	return c
142674}
142675
142676// MaxResults sets the optional parameter "maxResults": The maximum
142677// number of results per page that should be returned. If the number of
142678// available results is larger than `maxResults`, Compute Engine returns
142679// a `nextPageToken` that can be used to get the next page of results in
142680// subsequent list requests. Acceptable values are `0` to `500`,
142681// inclusive. (Default: `500`)
142682func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
142683	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142684	return c
142685}
142686
142687// OrderBy sets the optional parameter "orderBy": Sorts list results by
142688// a certain order. By default, results are returned in alphanumerical
142689// order based on the resource name.
142690//
142691// You can also sort results in descending order based on the creation
142692// timestamp using `orderBy="creationTimestamp desc". This sorts
142693// results based on the `creationTimestamp` field in reverse
142694// chronological order (newest result first). Use this to sort resources
142695// like operations so that the newest operation is returned
142696// first.
142697//
142698// Currently, only sorting by `name` or `creationTimestamp desc` is
142699// supported.
142700func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
142701	c.urlParams_.Set("orderBy", orderBy)
142702	return c
142703}
142704
142705// PageToken sets the optional parameter "pageToken": Specifies a page
142706// token to use. Set `pageToken` to the `nextPageToken` returned by a
142707// previous list request to get the next page of results.
142708func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
142709	c.urlParams_.Set("pageToken", pageToken)
142710	return c
142711}
142712
142713// Fields allows partial responses to be retrieved. See
142714// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142715// for more information.
142716func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
142717	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142718	return c
142719}
142720
142721// IfNoneMatch sets the optional parameter which makes the operation
142722// fail if the object's ETag matches the given value. This is useful for
142723// getting updates only after the object has changed since the last
142724// request. Use googleapi.IsNotModified to check whether the response
142725// error from Do is the result of In-None-Match.
142726func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
142727	c.ifNoneMatch_ = entityTag
142728	return c
142729}
142730
142731// Context sets the context to be used in this call's Do method. Any
142732// pending HTTP request will be aborted if the provided context is
142733// canceled.
142734func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
142735	c.ctx_ = ctx
142736	return c
142737}
142738
142739// Header returns an http.Header that can be modified by the caller to
142740// add HTTP headers to the request.
142741func (c *ZonesListCall) Header() http.Header {
142742	if c.header_ == nil {
142743		c.header_ = make(http.Header)
142744	}
142745	return c.header_
142746}
142747
142748func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
142749	reqHeaders := make(http.Header)
142750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142751	for k, v := range c.header_ {
142752		reqHeaders[k] = v
142753	}
142754	reqHeaders.Set("User-Agent", c.s.userAgent())
142755	if c.ifNoneMatch_ != "" {
142756		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142757	}
142758	var body io.Reader = nil
142759	c.urlParams_.Set("alt", alt)
142760	c.urlParams_.Set("prettyPrint", "false")
142761	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
142762	urls += "?" + c.urlParams_.Encode()
142763	req, err := http.NewRequest("GET", urls, body)
142764	if err != nil {
142765		return nil, err
142766	}
142767	req.Header = reqHeaders
142768	googleapi.Expand(req.URL, map[string]string{
142769		"project": c.project,
142770	})
142771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142772}
142773
142774// Do executes the "compute.zones.list" call.
142775// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
142776// code is an error. Response headers are in either
142777// *ZoneList.ServerResponse.Header or (if a response was returned at
142778// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142779// to check whether the returned error was because
142780// http.StatusNotModified was returned.
142781func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
142782	gensupport.SetOptions(c.urlParams_, opts...)
142783	res, err := c.doRequest("json")
142784	if res != nil && res.StatusCode == http.StatusNotModified {
142785		if res.Body != nil {
142786			res.Body.Close()
142787		}
142788		return nil, &googleapi.Error{
142789			Code:   res.StatusCode,
142790			Header: res.Header,
142791		}
142792	}
142793	if err != nil {
142794		return nil, err
142795	}
142796	defer googleapi.CloseBody(res)
142797	if err := googleapi.CheckResponse(res); err != nil {
142798		return nil, err
142799	}
142800	ret := &ZoneList{
142801		ServerResponse: googleapi.ServerResponse{
142802			Header:         res.Header,
142803			HTTPStatusCode: res.StatusCode,
142804		},
142805	}
142806	target := &ret
142807	if err := gensupport.DecodeResponse(target, res); err != nil {
142808		return nil, err
142809	}
142810	return ret, nil
142811	// {
142812	//   "description": "Retrieves the list of Zone resources available to the specified project.",
142813	//   "httpMethod": "GET",
142814	//   "id": "compute.zones.list",
142815	//   "parameterOrder": [
142816	//     "project"
142817	//   ],
142818	//   "parameters": {
142819	//     "filter": {
142820	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
142821	//       "location": "query",
142822	//       "type": "string"
142823	//     },
142824	//     "maxResults": {
142825	//       "default": "500",
142826	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142827	//       "format": "uint32",
142828	//       "location": "query",
142829	//       "minimum": "0",
142830	//       "type": "integer"
142831	//     },
142832	//     "orderBy": {
142833	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
142834	//       "location": "query",
142835	//       "type": "string"
142836	//     },
142837	//     "pageToken": {
142838	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142839	//       "location": "query",
142840	//       "type": "string"
142841	//     },
142842	//     "project": {
142843	//       "description": "Project ID for this request.",
142844	//       "location": "path",
142845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142846	//       "required": true,
142847	//       "type": "string"
142848	//     }
142849	//   },
142850	//   "path": "{project}/zones",
142851	//   "response": {
142852	//     "$ref": "ZoneList"
142853	//   },
142854	//   "scopes": [
142855	//     "https://www.googleapis.com/auth/cloud-platform",
142856	//     "https://www.googleapis.com/auth/compute",
142857	//     "https://www.googleapis.com/auth/compute.readonly"
142858	//   ]
142859	// }
142860
142861}
142862
142863// Pages invokes f for each page of results.
142864// A non-nil error returned from f will halt the iteration.
142865// The provided context supersedes any context provided to the Context method.
142866func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
142867	c.ctx_ = ctx
142868	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142869	for {
142870		x, err := c.Do()
142871		if err != nil {
142872			return err
142873		}
142874		if err := f(x); err != nil {
142875			return err
142876		}
142877		if x.NextPageToken == "" {
142878			return nil
142879		}
142880		c.PageToken(x.NextPageToken)
142881	}
142882}
142883